FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática Apostila de Programação IV Módulo V Fundação Educacional Machado de Assis Escola Técnica Machado de Assis Curso Técnico em Informática Prof. José Luís Schiavo Santa Rosa, Maio de 2011. _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 1 FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática SUMÁRIO 1 Criando Relatórios 1.1 Introdução ao QuickReport 3 1.2 Usando o QuickReport 3 1.3 Os Componentes do QuickReport 4 1.4 Bandas de Dados 5 1.5 Os Tipos Possíveis de Bandas 6 1.6 Ordem de Impressão das Bandas 7 _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 2 FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática 1 Criando Relatórios 1.1 – Introdução ao QuickReport O QuickReport é um conjunto de componentes Delphi concebidos para permitir a criação de relatórios com rapidez e facilidade, possibilitando inclusive a visualização dos relatórios sem a necessidade de impressão o que evita o desperdício de papel em muitas situações nas quais a impressão é desnecessária, e ainda, exportar dados para outros formatos de arquivo, tais como texto ASCII, valores separados por vírgulas (CSV), Microsoft Excel, PDF, Rich Text e HTML. O QuickReport é escrito em Delphi e portanto, possui também compatibilidade com o modelo Delphi para acesso a bancos de dados, permitido assim a criação de relatórios a partir de dados com origem em qualquer formato ou padrão de banco de dados, sejam os padrões nativos Paradox e dBase, os padrões cliente/servidor como o Interbase, Oracle, DB2, Informix, Sybase ou ainda, de qualquer fonte de dados compatível com ODBC. 1.2 - Usando o QuickReport Implementar o recurso de Impressão no DELPHI é uma tarefa fácil, tendo em vista que ele possui uma grande quantidade de componentes, caixas de diálogo, funções e ferramentas relacionadas a Impressão. O QuickReport permite que você projete visualmente Relatórios. Você constrói relatórios com bandas, adicionando títulos, cabeçalhos e rodapés de página, detalhes, sumários, cabeçalhos e rodapés de grupo, etc. O QuickReport possui um conjunto de componentes nativos que permite ao desenvolvedor desenhar relatórios dentro de um Form do Delphi. Estes componentes executam toda a tarefa de vizualização e impressão de relatórios. Os relatórios podem ser tão complexos e sofisticados quanto for necessário. _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 3 FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática A seguir são apresentados dois componentes da guia Dialogs do Delphi, responsáveis pela manipulação das caixas de diálogo padrão para configuração de impressoras e impressão de documentos: PrintDialog PrintSetupDialog COMPONENTE: DESCRIÇÃO: Exibe uma caixa de diálogo padrão Imprimir, onde o usuário PrintDialog poderá escolher qual impressora quer imprimir, o número de cópias, etc. Exibe a caixa de diálogo Configurar Impressora para que o PrintSetupDialog usuário configure a impressora antes de imprimir. Também pode ser chamada a partir da caixa de diálogo Imprimir. 1.3 - Os Componentes do QuickReport O DELPHI possui uma página na sua paleta de componentes chamada QReport. Nesta página está uma série de componentes relativos à criação de Relatórios baseados em tabelas de um banco de dados. Para usar os componentes do QReport você terá que adicionar um novo formulário à sua aplicação e em seguida inserir neste formulário o componente QuickReport. Desta forma, o formulário se tornará um Formulário de Relatório; a seguir, ligar o componente QuickReport à origem de dados através da sua propriedade de DataSet, inserir bandas no formulário, e dentro delas colocar os componentes relativos a dados. Finalmente, para imprimir o relatório, executar os Métodos Preview ou Print. A grande vantagem do QuickReport é a forma de criar um relatório, ela é muito similar à criação das janelas de uma aplicação. Ou seja, você cria um relatório com o QuickReport da mesma maneira que uma janela no DELPHI, visualmente. _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 4 FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática Componentes da guia QReport: A seguir, a descrição dos principais componentes: COMPONENTE: QuickReport QRSubDetail QRBand QRChildBand QRGroup QRLabel QRDBText QRExpr QRSysData QRMemo QRRichText QRDBRichText QRShape QRImage DESCRIÇÃO: É o principal componente na execução da impressão. Transforma um formulário comum em um formulário de relatório. Usado para criar qualquer tipo de relatório Master/Detail (umpara-vários). Um relatório é construído em Bandas (regiões). Estas regiões podem ser: cabeçalho, detalhes, rodapé, etc. Se você tem Bandas com componentes expandidos movidos para baixo adequadamente, você pode criar uma banda fina e os componentes que serão movidos nela. Permite que se agrupe os registros em blocos, com pelo menos uma característica em comum. Mostra um texto no relatório. Normalmente é utilizado para representar títulos, tais como Cabeçalho de Colunas. Mostra o conteúdo de um determinado campo do DataSet (Tabela ou Query). Também imprime campos Memo. Avalia e imprime qualquer expressão QuickReport. Permite também usar campos de banco de dados em expressões. Exibe informações do sistema, tais como: data, hora, número de página, título do relatório, etc. Usado para imprimir um texto com múltiplas linhas. Normalmente usado para áreas longas de texto estático. Exibe um componente Memo do tipo RichText. Pode ser ligado a um componente RichText no formulário e imprimir o conteúdo. Tal qual QRRichText, só que para Campos de banco de dados (Data-Aware). Adiciona objetos de desenho (retângulo, circunferência, linhas horizontais e verticais) ao formulário. Usado para mostrar uma imagem estática no relatório. _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 5 FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática QRDBImage QRPreview QRChart Usado para imprimir imagens armazenadas em Campos Binários (BLOB). Possibilita que você crie seu próprio formulário de Preview (Visualização) de impressão. Liga os componentes TChart ou TDChart com oQuickReport. 1.4 - Bandas de Dados O QuickReport gera relatórios usando bandas. Você constrói seus relatórios adicionando o componente TQRBand ( um tipo especial de TPanel ) ao TQuickReport. Cada banda do seu relatório possui uma finalidade diferente no resultado final. Um relatório pode ter várias bandas de tipos diferentes e/ou iguais. 1.5 - Os Tipos Possíveis de Bandas Title : Representa o título do relatório. É impressa apenas uma vez durante todo o relatório: no início da primeira página. Você pode ter várias bandas deste tipo: elas serão impressas uma após a outra, no início da primeira página. PageHeader : Essa banda é impressa uma vez a cada início de página. Para cada página do relatório existe uma impressão de uma banda deste tipo. Na primeira página esta banda também é impressa. Você pode ter várias bandas deste tipo no relatório, que elas serão impressas uma após a outra automaticamente. ColumnHeader : Esta banda se assemelha bastante com a PageHeader, com a única diferença de que ela é impressa no topo de cada coluna, num relatório de várias colunas na mesma página. Detail : Esta banda é repetida para cada registro de dados do seu relatório. Usualmente existe somente uma banda Detail em cada relatório, embora seja possível colocar mais de uma. _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 6 FEMA – Fundação Educacional Machado de Assis LINGUAGEM DE PROGRAMAÇÃO III ________________________________________________________________________ Técnico em Informática PageFooter : A banda PageFooter é impressa no final de cada página do relatório. Funciona como a PageHeader , com a diferença que é impressa embaixo da página. Summary : É impressa na última página depois de todas as bandas de detalhe. SubDetail : É um tipo de banda especial usada pelo componente TQRSubDetail. Serve para efetuar relatórios Master / Detail. Não configure este tipo de banda manualmente. GroupHeader : Este tipo de banda é usualmente usada para a agrupar valores ( em relatórios Master/Detail ) e você pode efetuar um somatório em pequenos grupos de valores, dependendo de uma certa condição. GroupFooter : É um tipo que serve como finalizador para a banda GroupHeader. Child : É um tipo especial de banda, usada pelo componente TQRChilBand. Não configure este tipo manualmente. 1.6 - Ordem de Impressão das Bandas Não importa que ordem as banda aparecem em tempo de desenvolvimento no seu relatório. Elas sempre aparecerão na ordem correta na hora da impressão. Vamos aqui mostrar qual é a ordem seguida pelo QuickReport. PageHeader (para todas as páginas) Title (primeira página) ColumnHeader (para todas as colunas) Detail (repetida para todos os registros principais do relatório) SubDetail (caso haja um) Summary (última página) PageFooter (para todas as páginas). _____________________________________________________________________________ Escola Técnica Machado de Assis José Luís Schiavo 7