Tópico
anteriorTópico
seguinte


Guia de iniciação 1: Criar um relatório de lista simples

Esta secção faculta instruções passo-a-passo para a elaboração de um relatório que enumere os nomes, números de telefone e nomes de contacto dos clientes. O relatório utiliza dados da base de dados exemplo, que é fornecida com o Desenhador de relatórios de BIRT, Classic Models. A Figura 1-1 apresenta uma parte do relatório terminado.

Figura 1-1 Relatório que apresenta nomes de clientes, números de telefone e contactos

Neste guia de iniciação, são executadas as seguintes tarefas:

Tarefa 1: Criar um novo projecto

O Eclipse organiza os ficheiros por projectos. É possível criar um projecto para organizar todos os relatórios ou criar diversos projectos para organizar os relatórios por categorias. Por cada projecto criado, o Eclipse cria um directório no sistema de ficheiros.

Se estiver a utilizar o Desenhador de relatórios RCP BIRT, esta tarefa não se aplica a si.

  1. Seleccione Ficheiro->Novo->Projecto. Novo projecto, que é apresentado na Figura 1-2, apresenta os tipos de projectos que é possível criar.
  2. Figura 1-2 Novo projecto
  3. Expanda Business Intelligence and Reporting Tools, seleccione Projecto de relatórios e, em seguida, seleccione Seguinte.
  4. Em Novo projecto de relatório, em Nome do projecto, introduza o seguinte texto, tal como indicado na Figura 1-3:
  5. My Reports 
     

    Figura 1-3 Novo projecto de relatório
  6. Para adicionar o projecto, seleccione Terminar. A partir deste momento já é possível visualizar o projecto na vista do Navegador, tal como indicado na Figura 1-4.
  7. Figura 1-4 Um projecto na vista Navegador

Tarefa 2: Criar um novo relatório

É possível criar um relatório das seguintes formas:

Neste guia de iniciação, inicia-se com uma concepção de relatório em branco.

  1. Seleccione Ficheiro->Novo->Relatório. É apresentada a janela Novo relatório. A Figura 1-5 mostra a janela apresentada no Desenhador de relatórios BIRT. A janela Novo relatório é ligeiramente diferente no Desenhador de relatórios RCP BIRT.
  2. Figura 1-5 Janela Novo relatório no Desenhador de relatórios BIRT
  3. No Desenhador de relatórios BIRT, em Introduza ou seleccione a pasta ascendente, seleccione o projecto criado. Este passo só se aplica a utilizadores do Desenhador de relatórios BIRT.
  4. Introduza o seguinte texto como o nome do ficheiro:
  5. Customers.rptdesign 
    
  6. Seleccione Seguinte. Novo relatório faculta opções para iniciar com um relatório em branco e diversos modelos de relatório, tal como é apresentado na Figura 1-6.
  7. Figura 1-6 Modelos de relatórios na janela Novo relatório
  8. Seleccione Relatório em branco e, em seguida, Terminar. O novo relatório é apresentado na janela principal. Esta janela apresenta o editor de esquema, tal como é possível confirmar na Figura 1-7. O editor de esquemas apresenta uma página do relatório vazia.

As restantes partes deste guia de iniciação facultam, em detalhe, os passos necessários para criar o relatório do cliente.

Figura 1-7 Concepção de um relatório em branco

Tarefa 3: Criar uma origem de dados

Antes de começar a conceber o relatório no editor de esquemas, crie uma origem de dados BIRT para estabelecer uma ligação entre o relatório e uma base de dados ou outros tipos de origens de dados. Ao criar uma origem de dados, são especificados o nome da origem de dados, a classe do controlador e outras informações sobre a ligação como, por exemplo o nome do utilizador e a palavra-passe. Para este guia de iniciação, é utilizada a base de dados exemplo, Classic Models, que já se encontra configurada para ser utilizada com o Desenhador de relatórios BIRT. Não é necessário especificar as informações de ligação para esta base de dados exemplo.

  1. Seleccione Explorador de dados. Caso utilize a perspectiva de concepção de relatório predefinida, o Explorador de dados encontra-se à esquerda do editor de esquemas, junto a Paleta, tal como é apresentado na Figura 1-8. Caso não esteja aberto, seleccione Janela->Abrir perspectiva->Explorador de dados.
  2. Figura 1-8 Explorador de dados
  3. Faça clique com o botão direito do rato em Origens de dados e, em seguida, seleccione Nova origem de dados a partir do menu contextual. A Nova origem de dados apresenta apresenta os tipos de origens de dados criados, tal como indicado na Figura 1-9.
  4. Figura 1-9 Nova origem de dados
  5. Seleccione Base de dados exemplo de Classic Models Inc. a partir da lista de tipos de origens de dados. Utilize o nome da origem de dados predefinido e, em seguida, faça clique em Seguinte. São apresentadas informações de ligação sobre a nova origem de dados.
  6. Seleccione Terminar. O Desenhador de relatórios BIRT cria uma nova origem de dados que estabelece uma ligação à base de dados exemplo. Esta é apresentada em Origens de dados no Explorador de dados, tal como indicado na Figura 1-10.
  7. Figura 1-10 Origens de dados no Explorador de dados

Tarefa 4: Criar um conjunto de dados

Agora está tudo preparado para criar um conjunto de dados. Um conjunto de dados identifica os dados a obter a partir da origem de dados. Se o relatório estabelecer uma relação com uma origem de dados JDBC, é utilizada uma instrução SQL SELECT para identificar os dados a obter.

  1. No Explorador de dados, faça clique com o botão direito do rato em Conjuntos de dados e seleccione Novo conjunto de dados a partir do menu contextual.
  2. Em Novo conjunto de dados, em Nome do conjunto de dados, introduza o seguinte texto, tal como indicado na Figura 1-11:
  3. Customers 
     

    Figura 1-11 Novo conjunto de dados
  4. Utilize os valores predefinidos para os restantes campos:
    • Origem de dados apresenta o nome da origem de dados criada anteriormente.
    • Conjunto de tipo de dados indica que o conjunto de dados utiliza uma consulta SQL SELECT.
  5. Seleccione Seguinte.
  6. Consulta apresenta as informações necessárias para criar uma consulta SQL. Itens disponíveis apresenta todas as tabelas existentes na base de dados Classic Models. É possível fazer clique no sinal de adição (+) junto a uma tabela para apresentar as colunas existentes na mesma. A área do texto à direita de Editar conjunto de dados, apresenta as palavras-chave necessárias a uma instrução SQL SELECT:
    select 
    from 
    
  7. Na área do texto, introduza a seguinte instrução SQL SELECT para especificar os dados a obter:
  8. select customerName, 
    contactLastName, 
    contactFirstName, 
    phone 
    from Customers 
    
    Apesar do editor de conjunto de dados apresentar os nomes das tabelas e das colunas em maiúsculas, é possível introduzir estes nomes como preferir visto que SQL não é sensível a maiúsculas e minúsculas. Se não pretender introduzir a consulta, é possível arrastar e tabelas de Itens disponíveis para a área do texto.
    A instrução SELECT criada, apresentada na Figura 1-12, obtém valores a partir das colunas CUSTOMERNAME, CONTACTLASTNAME, CONTACTFIRSTNAME e PHONE existentes na tabela CUSTOMERS.

    Figura 1-12 A instrução SQL SELECT em Editar conjunto de dados
  9. Seleccione Terminar para guardar o conjunto de dados. Editar conjunto de dados apresenta as colunas especificadas na consulta e faculta opções para editar o conjunto de dados.
  10. Seleccione Pré-visualizar resultados para se certificar de que a consulta é válida e que devolve os dados correctos. Se introduziu correctamente a instrução SELECT, deverá conseguir ver os resultados indicados na Figura 1-13. Estas são as linhas de dados que a consulta devolve.
  11. Figura 1-13 Linhas de dados devolvidas por uma instrução SQL SELECT
  12. Seleccione OK.

Tarefa 5: Esquematizar o relatório

Neste procedimento, são introduzidos elementos numa página de relatório para apresentar os dados do conjunto de dados criado anteriormente. Deverá começar por inserir um elemento de tabela e, em seguida, elementos de dados na tabela. É importante compreender a funcionalidade facultada pela tabela:

  1. Seleccione Paleta. A paleta apresenta todos os elementos que podem ser colocados num relatório.
  2. Arraste um elemento de tabela da paleta até ao relatório existente no editor de esquemas. Inserir tabela apresenta um pedido de especificação do número de colunas e linhas de detalhe a criar para a tabela.
  3. Especifique 3 colunas e uma linha de detalhes e, em seguida, seleccione OK. A tabela com três colunas e uma linha de detalhes é apresentada no editor de esquemas. Agora está tudo preparado para introduzir dados na tabela.
  4. Seleccione Explorador de dados.
  5. No Explorador de dados, expanda Conjuntos de dados e, em seguida, expanda Clientes. As colunas especificadas na consulta são apresentadas abaixo de Clientes.
  6. Arraste CUSTOMERNAME a partir do Explorador de dados até à primeira célula da linha de detalhes da tabela, tal como indicado na Figura 1-14. A linha de detalhes apresenta os dados principais do relatório. No relatório concluído, a linha de detalhes repete-se de forma a apresentar todas as linhas de dados do conjunto de dados.
  7. Figura 1-14 Arrastar uma coluna do Explorador de dados até uma célula da tabela
    O Desenhador de relatórios BIRT cria uma coluna designada associada ao campo do conjunto de dados. Seleccionar associação de dados, apresentada na Figura 1-15, apresenta esta associação de dados.

    Figura 1-15 Uma coluna designada associada a um campo de conjunto de dados
  8. Seleccione OK para aceitar a associação de dados predefinida.
  9. No editor de esquemas, a célula da tabela para a qual arrastou o campo CUSTOMERNAME contém um elemento de dados que apresenta [CUSTOMERNAME]. Acima deste elemento de dados está um elemento de etiqueta que o editor de esquemas adicionou automaticamente à linha do título. Esta etiqueta apresenta o nome do campo como texto estático. Funciona como o título da coluna. A Figura 1-16 apresenta os elementos de dados e de etiqueta.

    Figura 1-16 Elementos de dados e de etiqueta numa tabela
  10. Arraste PHONE do Explorador de dados até à segunda célula da linha de detalhes. Seleccione OK para aceitar a associação de dados predefinida.
  11. Arraste CONTACTFIRSTNAME até à terceira célula da linha de detalhes. Seleccione OK para aceitar a associação de dados predefinida.
  12. Arraste CONTACTLASTNAME até à terceira célula da linha de detalhes, abaixo de CONTACTFIRSTNAME. Seleccione OK para aceitar a associação de dados predefinida. A página do relatório deverá ter um aspecto semelhante à apresentada na Figura 1-17.
  13. Figura 1-17 Informações de contactos e clientes adicionadas a uma tabela
  14. Seleccione Pré-visualizar, o separador localizado na parte inferior do editor de esquemas. O Desenhador de relatórios BIRT cria e apresenta o relatório no formato HTML, tal como é indicado na Figura 1-18. Desloque a página para baixo para visualizar todo o relatório. É também possível pré-visualizar um relatório em formato PDF. Este procedimento é executado seleccionando Ficheiro->Ver o relatório em formato PDF ano menu principal.
  15. Tal como a Figura 1-18 apresenta, os dados estão correctos mas são apresentados de forma aleatória. Faz mais sentido ordenar os dados alfabeticamente de acordo com o nome do cliente. O aspecto do relatório também precisa de ser melhorado.

    Figura 1-18 Pré-visualização dos dados do relatório

Tarefa 6: Ordenar os dados

Quando criar e pré-visualizar um relatório pela primeira vez, este apresenta as linhas de dados de acordo com a ordem em que foram devolvidas pela consulta. A ordem pode variar, dependendo de muitos factores como, por exemplo, a forma como os dados foram fornecidos à origem de dados. Na maioria dos casos, é provável que pretenda alterar a ordem pela qual os dados são apresentados no relatório.

  1. Seleccione Esquema para regressar ao editor de esquemas.
  2. Caso seja necessário, abra o Editor de propriedades. Caso utilize a perspectiva de concepção de relatório predefinida, o Editor de propriedades é apresentado abaixo do editor de esquemas. Caso não esteja aberto, seleccione Janela->Abrir perspectiva->Editor de propriedades.
  3. No editor de esquemas, seleccione a tabela seleccionando o separador Tabela existente no canto inferior esquerdo. Este separador é apresentado sempre que passa com o ponteiro do rato sobre esta área. O Editor de propriedades apresenta as propriedades da tabela, como indicado na Figura 1-19.
  4. Figura 1-19 Editor de propriedades
  5. Seleccione o separador Ordenar.
  6. Seleccione Adicionar para criar uma expressão de ordenação. É apresentada uma linha em Chave de ordenação.
  7. Faça clique na linha abaixo de Chave de ordenação e, em seguida, seleccione o botão de seta apresentado e CUSTOMERNAME na lista de selecção.
  8. Utilize o valor Crescente predefinido para Direcção de ordenação, tal como indicado na Figura 1-20.
  9. Figura 1-20 Direcção ordenada de forma ascendente
  10. Pré-visualize o relatório. Os dados são ordenados de forma ascendente de acordo com o nome de cliente, tal como indicado na Figura 1-21.
  11. Figura 1-21 Dados ordenados por nome de cliente
    Tenha em conta o facto de que os nomes com maiúsculas são apresentados na parte superior da lista. O BIRT ordena os dados em cadeia de acordo com os valores de pontos do código UCS2. Em conjuntos de caracteres baseados em ASCII, as letras maiúsculas possuem valores de pontos de código mais baixos que as letras minúsculas. Consequentemente, as letras maiúsculas são apresentadas antes das minúsculas.
  12. Para ordenar os nomes dos clientes ignorando a existência de letras maiúsculas ou minúsculas de forma a que o cliente ANG Resellers seja apresentado depois de American Souvenirs Inc. e não antes, altere a expressão da Chave de ordenação existente na página Ordenar para a seguinte expressão:
  13. row["CUSTOMERNAME"].toUpperCase( ) 
    
    Esta expressão utiliza a função JavaScript toUpperCase( ) para converter todos os valores dos nomes dos clientes para maiúsculas antes de proceder à ordenação. Os nomes da função JavaScript são sensíveis a maiúsculas e minúsculas, portanto deverá introduzir toUpperCase( ) exactamente como é apresentado. As referências a nomes de colunas são também sensíveis a maiúsculas e minúsculas. Nesta expressão, row["CUSTOMERNAME"] é o nome correcto a utilizar. Se introduzir row["customername"], ocorrerá, por exemplo, um erro no Desenhador de relatórios BIRT ao executar o relatório. É possível verificar a existência de maiúsculas e minúsculas no nome de uma coluna consultando o nome com que é apresentada no Explorador de dados.
  14. Pré-visualize o relatório. Os nomes dos clientes são apresentados numa outra ordem. Os nomes com maiúsculas não são apresentados na parte superior da lista.

Tarefa 7: Formatar o relatório

Agora que verificou que o relatório apresenta os dados correctos pela ordem correcta, pode dedicar-se a melhorar o aspecto do mesmo. Execute as seguintes tarefas nesta secção:

Editar os títulos das colunas

  1. Seleccione Esquema para regressar ao editor de esquemas.
  2. Faça duplo clique no título da primeira coluna, CUSTOMERNAME. O título da coluna está localizado na primeira linha da tabela (a linha do título).
  3. Para substituir todo o texto realçado, comece a introduzir texto e, em seguida, prima Enter quando terminar. Para editar o texto, faça clique uma vez para anular a selecção do texto e, em seguida, posicione o cursor onde pretender eliminar ou adicionar caracteres.
  4. Substitua CUSTOMERNAME com o seguinte texto:
    Customer 
    
  5. Repita os passos 2 e 3 para alterar os títulos da segunda e terceira colunas para o seguinte texto:
  6. Phone 
    Contact 
    
    A concepção do relatório deverá ter um aspecto semelhante à indicada na Figura 1-22.

    Figura 1-22 Títulos das colunas revistos na concepção de um relatório

Formatar os títulos das colunas

Para formatar um elemento de relatório, defina as suas propriedades. Há duas formas de executar esta tarefa:

Neste procedimento, o primeiro método é utilizado para colocar os títulos das colunas a negrito e o segundo para adicionar cor à linha do cabeçalho.

  1. Para colocar os títulos das colunas a negrito utilizando o Editor de propriedades, proceda do seguinte modo:
    1. Seleccione todos os títulos das colunas. Para seleccionar múltiplos elementos, prima a tecla Shift à medida em que faz clique em cada elemento. O Editor de propriedades apresenta as propriedades dos elementos seleccionados, como indicado na Figura 1-23.
    2. Figura 1-23 Propriedades dos elementos seleccionados no Editor de propriedades

    3. Seleccione B para formatar os títulos das colunas como texto em negrito.
    4. Para anular a selecção dos títulos das colunas, faça clique no espaço em branco fora da tabela.
  2. Para adicionar uma cor de fundo à linha do cabeçalho, utilizando um estilo, proceda do seguinte modo:
    1. No menu principal, seleccione Elemento->Novo estilo.
    2. Novo estilo é apresentado, tal como indicado na Figura 1-24. O lado esquerdo apresenta as categorias das propriedades. O lado direito apresenta as propriedades para a categoria seleccionada.

      Figura 1-24 Novo estilo
    3. Para Estilo personalizado, especifique o seguinte nome para o estilo:
    4. table_header_row 
      
    5. Seleccione Segundo plano a partir da lista de categorias de propriedades. Novo estilo apresenta as propriedades do segundo plano que podem ser definidas.
    6. Especifique uma cor para a propriedade Segundo plano utilizando um dos seguintes métodos:
      • Seleccione o botão junto à propriedade e, em seguida, seleccione uma cor a partir da paleta de cores apresentada.
      • Seleccione uma cor a partir da lista de selecção.
      Seleccione OK.
    7. No editor de esquemas, seleccione a tabela seleccionando o separador Tabela existente no canto inferior esquerdo. Este separador é apresentado sempre que passa com o ponteiro do rato sobre esta área. São apresentadas células de orientação na parte superior da tabela e à esquerda desta, tal como indicado na Figura 1-25.
    8. Figura 1-25 Células de orientação na parte superior da tabela e à esquerda desta
    9. Seleccione a célula de orientação junto à linha do título. O Editor de propriedades apresenta as propriedades da linha seleccionada.
    10. Seleccione Propriedades e, em seguida, Geral para apresentar as propriedades gerais da linha.
    11. Aplique o estilo recentemente criado seleccionando table_header_row a partir da lista de selecção junto a Estilo. O Desenhador de relatórios BIRT aplica o estilo à linha do cabeçalho e é apresentado a cores.
  3. Pré-visualize o relatório. O relatório deverá ter um aspecto semelhante ao apresentado na Figura 1-26.
  4. Figura 1-26 Pré-visualização do relatório, mostrando o estilo da linha do título
    Por enquanto, o principal melhoramento está relacionado com o facto dos títulos estarem bem visíveis e definidos.

Apresentar o nome próprio e o apelido na mesma linha

Ao colocar múltiplos elementos numa única célula, o Desenhador de relatórios BIRT cria elementos de bloco. Se estiver familiarizado com o formato HTML, sabe que cada elemento de bloco tem início numa nova linha. Para apresentar múltiplos elementos na mesma linha, é necessário defini-los como elementos incluídos. Em alternativa, é possível concatenar o primeiro e o último valores de nome de forma a executar uma apresentação num único elemento de dados, tal como é descrito neste procedimento.

  1. Seleccione Esquema para regressar ao editor de esquemas.
  2. Elimine o elemento de dados que apresenta o apelido do contacto.
  3. Faça duplo clique no elemento de dados que apresenta o nome próprio do contacto.
  4. Seleccionar associação de dados apresenta todas as associações de dados utilizadas no relatório. Uma marca de confirmação junto a CONTACTFIRSTNAME indica a associação de dados utilizada pelo elemento de dados seleccionado.
  5. Faça clique na célula que apresenta a expressão dataSetRow["CONTACTFIRSTNAME"] e, em seguida, seleccione a elipse (...) "Anexar Origem...".
  6. O Construtor de expressões apresenta a seguinte expressão na área de texto existente na parte superior da janela:
    dataSetRow["CONTACTFIRSTNAME"] 
    
  7. Para concatenar o nome próprio e o apelido, utilize a seguinte expressão:
  8. dataSetRow["CONTACTFIRSTNAME"]+" "+ 
    dataSetRow["CONTACTLASTNAME"] 
    
    A Figura 1-27 apresenta esta expressão no Construtor de expressões. As aspas vazias (" ") adicionam um espaço entre o nome próprio e o apelido. É possível introduzir a expressão na área de texto ou fazer duplo clique num item existente no canto inferior direito da janela para o inserir na expressão.

    Figura 1-27 Dados concatenados no Construtor de expressões
  9. Seleccione OK para fechar o Construtor de expressões e, em seguida, seleccione OK em Seleccionar associação de dados para guardar a expressão modificada.
  10. Pré-visualize o relatório. O relatório deverá ter um aspecto semelhante ao apresentado na Figura 1-28.
  11. Figura 1-28 Pré-visualização do relatório, mostrando nomes dos contactos concatenados

Aumentar o espaço entre as linhas

O esquema predefinido adiciona um espaço mínimo entre as linhas da tabela. Normalmente, vai querer ajustar o espacejamento entre as linhas.

  1. Seleccione Esquema para regressar ao editor de esquemas.
  2. Seleccione todas as células existentes na linha de detalhes, a linha do meio. Para seleccionar múltiplas células, faça clique enquanto prime a tecla Shift. Tenha o cuidado de seleccionar as células e não os elementos de dados existentes nas células. É apresentada uma caixa em redor das células seleccionadas, tal como indicado na Figura 1-29.
  3. Figura 1-29 Células seleccionadas no editor de esquemas
    O Editor de propriedades apresenta as propriedades das células. O título apresentado no Editor de propriedades apresenta o tipo de elemento seleccionado, portanto deverá consultar Editor de propriedades - Célula.
  4. Seleccione Preenchimento. O Editor de propriedades apresenta as propriedades do preenchimento. Estas propriedades permitem especificar a quantidade de espaço a adicionar às partes superior, inferior, esquerda e direita do elemento.
  5. Defina o preenchimento do topo para 12 pontos.
  6. Poderá interrogar-se por que razão não seleccionou simplesmente a linha para ajustar o espacejamento da linha em vez de seleccionar as células individuais da linha. O Desenhador de relatórios BIRT não suporta o preenchimento de linhas porque alguns browsers não suportam esta função.
  7. Pré-visualize o relatório. O relatório deverá ter um aspecto semelhante ao apresentado na Figura 1-30. Há mais espaço entre as linhas de dados.
  8. Figura 1-30 Pré-visualização do relatório, mostrando o espacejamento entre as linhas

Tarefa 8: Criar um título de relatório

Agora a única coisa de que o relatório necessita é de um título. Para apresentar um título, é possível utilizar um elemento de etiqueta, um elemento de texto ou um elemento de data:

Neste procedimento, são utilizados controlos HTML e um elemento de texto para formatar o texto. Tenha em conta o facto de que não é necessário utilizar HTML para criar o texto formatado. No entanto, caso esteja familiarizado com o formato HTML ou com web design, talvez prefira utilizar HTML para criar um bloco de texto formatado.

  1. Seleccione Esquema para regressar ao editor de esquemas.
  2. Seleccione Paleta.
  3. Arraste o elemento de texto da paleta até à tabela.
  4. Em Editar artigo de texto, seleccione Texto dinâmico/HTML a partir da lista de selecção que apresente Texto simples.
  5. Ao seleccionar HTML ou texto dinâmico, é possível incorporar controlos HTML ou propriedades CSS no texto. É possível introduzir os controlos ou, então, inserir os controlos HTML mais utilizados facultados pelo editor de texto.
  6. Especifique o seguinte texto na área de texto, indicada na Figura 1-31:
  7. <CENTER><B><span style="font-size: larger"> 
    Customer List 
    </B></span><BR> 
    <FONT size="small">For internal use only</FONT><BR><BR> 
    Report generated on <VALUE-OF>new Date( )</VALUE-OF> 
    </CENTER><BR><BR> 
     

    Figura 1-31 Texto com controlos HTML
  8. Seleccione OK e, em seguida, pré-visualize o relatório. O relatório deverá ter um aspecto semelhante ao apresentado na Figura 1-32.
  9. Figura 1-32 Pré-visualização do relatório, mostrando o título do relatório formatado

Como é possível verificar, a utilização do elemento de texto com HTML incorporado permite:

Em alternativa, pode utilizar:

Passos seguintes

Acabou de criar o seu primeiro relatório e de trabalhar com algumas das funções e ferramentas mais básicas do Desenhador de relatórios BIRT. É possível executar muitas mais tarefas de forma a criar relatórios mais sofisticados. Algumas destas tarefas, descritas noutros capítulos deste livro, incluem:


(c)
Copyright Actuate Corporation 2006

Tópico
anteriorTópico
seguinte