Relatórios com Quickreport



Documentos relacionados
CRIAÇÃO DE RELATÓRIOS EM DELPHI

Apostila de Programação IV. Módulo V

GERADOR DE RELATÓRIOS WINREPORT VERSÃO 2.0. Conteúdo

Relatórios com Rave Reports

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Como já foi dito anteriormente o Excel possui recursos que permitem alterar a aparência de nossas planilhas.

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Impressão de Relatórios com Data Report Professor Sérgio Furgeri. A figura seguinte ilustra a geração de um relatório a partir de uma tabela de...

Tutorial do ADD Analisador de Dados Dinâmico.

Banco de Dados Microsoft Access: Criar tabelas

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Guia de Início Rápido

VALIDAÇÃO DOS DADOS. JOTEC Tecnologia em Software. Manual Validação dos dados 1

Microsoft Access: Criar relatórios para um novo banco de dados. Vitor Valerio de Souza Campos

Bem-vindo ao tópico sobre consultas no SAP Business One.

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

Introdução a relatórios Crosstab com ireport/jasperreports

Lição 1 - Criação de campos calculados em consultas

Max Fatura Sistema de Gestão

Tutorial contas a pagar

Elaborado por SIGA-EPT. Projeto SIGA-EPT: Manual do Usuário Almoxarifado

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

PAG CONTAS CARNÊ Agora ficou mais fácil pagar suas contas. PAG CONTAS CARNÊ. Geração de Boletos MANUAL DO USUÁRIO

MICROSOFT EXCEL AVANÇADO

Banco de Dados BrOffice Base

Práticas Empresariais em Excel. Professor: Pádua

Manual do Visualizador NF e KEY BEST

Inserindo Dados no Banco de Dados Paradox.

1. FILTRAR OS DADOS ATRAVÉS DE FORMULÁRIO (FILTER BY FORM)

APOSTILA WORD BÁSICO

Tutorial do módulo Carteira Nacional de Militante

CRIANDO UM BANCO DE DADOS

Livro Caixa. Copyright ControleNaNet

Treinamento de. Linx Pos

Novas Funcionalidades do MyABCM v.4.0

Os elementos básicos do Word

UNESP Universidade Estadual Paulista Faculdade de Ciências Farmacêuticas

Word 1 - Introdução Principais recursos do word A janela de documento Tela principal

MANUAL DE NAVEGAÇÃO DO MILLENNIUM BUSINESS

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

Sistema básico de cadastro em Delphi com banco de dados InterBase.

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório

GladiusSimpleReport. Este manual, visa mostrar, como utilizar o GladiusSimpleReport atravéz de exemplos.

COMO TRABALHAR COM A FERRAMENTA SUBTOTAIS DO EXCEL

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR 8VDQGRSDUkPHWURV

MICROSOFT EXCEL - AULA NÚMERO 06

Microsoft PowerPoint

WORD. Professor: Leandro Crescencio Colégio Politécnico 1

APOSTILA DE EXCEL 2007

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Aula 01 Conceitos Iniciais sobre Excel 2010

Geração Impressão - Consultas

Conteudo. Conteúdo. Part I Novidades Versão Novidades Versão (Contas) Editorial Brazil

Visualização dos resultados de uma consulta

Vendas. Manual do Usuário. Copyright ControleNaNet

Microsoft Word INTRODUÇÃO

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD

Passo a Passo do Orçamentos de Entrada no SIGLA Digital

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Questão Essência do Excel

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

ÍNDICE... 2 INTRODUÇÃO... 4

Painel de Navegação Para ver o Painel de Navegação, prima CTRL+F. Pode arrastar os cabeçalhos dos documentos neste painel para reorganizá-los.

Gerente de Tecnologia: Ricardo Alexandre F. de Oliveira Marta Cristiane Pires M. Medeiros Mônica Bossa dos Santos Schmid WORD 2007

Treinamento Sistema Condominium Módulo III

ATUALIZAÇÃO DA VERSAO Abaixo constam as alterações referentes a versão do dia 28/09/2012:

Manual do Painel Administrativo

Mozart de Melo Alves Júnior

Como funciona? SUMÁRIO

Manual do Almoxarifado SIGA-ADM

Para inserir custo fixo às tarefas, siga os passos abaixo :

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

Módulo Vendas Balcão. Roteiro passo a passo. Sistema Gestor New

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel

MVREP- Manual do Gerador de Relatórios. ÍNDICE

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

DAP. 1. Pré-Faturamento automático Filtros Configurações Finalizar...27

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

Para pesquisar o código do cliente, caso não saiba, aperte o botão ao lado do campo Cliente.

O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

SEI-SS Sistema Extrajudicial Integrado Módulo Site dos Serviços

Manual Sistema Curumim. Índice

Freedom Software. Sistema de Representação. Freedom Software Sistema de Representação Página 1

CRIANDO TEMPLATES E LEGENDAS

43 11 Relatórios, Listagens e Exportações para Excel, TXT e HTML

Criando formulário de pesquisa vinculando caixa de texto e caixa de listagem

Criando uma mala direta com o Word 2007 em 6 Passos

Table of Contents. PowerPoint XP

Treinamento sobre SQL

Como Gerar documento em PDF com várias Imagens

Montar planilhas de uma forma organizada e clara.

ÍNDICE... 2 POWER POINT Abas... 7 Salvando Arquivos... 8 Abrindo um arquivo LAYOUT E DESIGN... 13

Escola Info Jardins. Microsoft Excel Aula 1

Passo a Passo do Checkout no SIGLA Digital

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial

Transcrição:

C A P Í T U L O 6 Relatórios com Quickreport O QuickReport permite a criação de relatórios que podem ser impressos diretamente a partir do Delphi. Ele elimina alguns problemas verificados em ferramentas de relatório externas, como o ReportSmith. Os componentes QuickReport permitem que os desenvolvedores trabalhem de uma forma similar à que já conhecem quando desenham formulários de entrada de dados. Para iniciar a construção de um relatório, é preciso adicionar o componente QuickReport a um formulário. Ele fornece a superfície de desenho do relatório Formulário com o objeto QuickReport O componente QuickReport possui uma série de opções que podem ser definidas clicando-se com o botão direito e escolhendo a opção Report Settings. Nesta janela, podemos especificar várias definições para o layout, como tamanho do papel, margens, borda, etc.

Janela Report Setings Bandas Os geradores de relatórios atuais trabalham com o conceito de seções, como Cabeçalho, Título da Página, Rodapé da Página, Página Inicial, Última Página, Linhas Detalhes, e assim por diante. No QuickReport, essas seções são chamadas de Bandas. Existem duas formas de colocar bandas num relatório. A primeira é utilizando a área Bands da janela da figura 2 (Report Setings), marcando o tipo de banda desejada. Outra é colocar manualmente o componente QRBand sobre o QuickReport. O componente QRBand possui uma propriedade chamada BandType que determina a posição e com que frequência ela será impressa. Vejamos o que cada opção representa: Tipo da banda Posição e Freqüência rbtitle Somente uma vez no início do relatório rbpageheader No início de cada página. rb Uma vez para cada registro do Dataset rbpagefooter No rodapé da cada página rbsummary No final do relatório, depois da banda rb rbcolumnheader No topo de cada coluna do relatório. Útil para imprimir nomes de campos em relatórios com mais de uma coluna. rbgroupheader Uma vez para cada grupo, antes dos dados. Usado também para fazer os cabeçalhos da banda QRSub. rbgroupfooter Uma vez para cada grupo, depois dos dados. rbsub Tipo especial de banda usada pelo componente QRSub. Não ajuste esse tipo de banda manualmente rbchild Tipo especial de banda usada pelo componente QRChildBand. Não ajuste esse tipo de banda manualmente rboverlay Não é usada na versão 2 do QuickReport. Incluída apenas para manter a compatibilidade com a versão anterior.

Criando um Relatório Simples Para exemplificar a criação de um relatório, utilizaremos uma tabela chamada Produto, com os seguintes campos: Codigo, Descricao, Embal (embalagem), Valor e Estoque. 1. primeiro passo é definir a estrutura das bandas do relatório. Um relatório básico precisa ter no mínimo duas bandas: PageHeader e. -------- Conterá o título do relatório, a data de emissão, número da página e os cabeçalhos das colunas -------- Conterá os objetos que imprimirão os dados da tabela Obs.: Se quiséssemos enfatizar os cabeçalhos das colunas, introduziríamos uma banda do tipo ColumnHeader. Algumas informações como número de página e data de emissão podem ser colocadas no rodapé, em uma banda Page Footer. E se quiséssemos totalizar alguma informação, colocaríamos ainda uma banda do tipo Summary. 2. o próximo passo será definir todas as informações estáticas do relatório. O componente do QuickReport que corresponde aos labels dos formulários é o QRLabel. Basta selecionar o componente, arrastar para a banda correta e modificar sua propriedade Caption. Assim, colocaremos o título do relatório e os cabeçalhos das colunas na banda PageHeader dispostos da seguinte forma. Relatório de Produtos Código Descrição Embalagem Valor Estoque Para centralizar o título, altere as seguintes propriedades do objeto QRLabel: Alignment: tacenterjustify e AlignToBand: True 3. depois de ter adicionado os objetos QRLabel, queremos mostrar o número da página no canto direito superior. Colocaremos na posição adequada um objeto QRSysData, que se encarrega de imprimir opções do sistema. Em seguida, temos que alterar sua propriedade Data para qrspagenumber. Depois, colocaremos o texto Página: na propriedade Text. Relatório de Produtos Página: (Page#) Código Descrição Embalagem Valor Estoque Se desejarmos imprimir a data do sistema também, basta colocarmos outro QRSysData e alterarmos a propriedade Data para qrsdate.

4. Para que o nosso relatório imprima os dados a partir de uma tabela, é necessário colocar um objeto Dataset (Table ou Query), que também podem estar num DataModule. No nosso exemplo, colocaremos um Table (TbProduto) e o conectaremos à tabela Produto Em seguida, selecionamos o componente QuickReport e alteramos sua propriedade Dataset para TbProduto. 5. Terminada a definição da parte estática, partiremos agora para a impressão dos dados. O componente responsável pela exibição dos campos é o QRDBText. Colocaremos cinco objetos QRDBText na banda, alinhados com os QRLabel do cabeçalho das colunas. Para cada QRDBText, alteraremos as propriedades Dataset e DataField, assim como fazemos num formulário comum com objetos DataControls. Relatório de Produtos Página: (Page#) Código Descrição Embalagem Preço de Venda Estoque [CODIGO] [DESCRICAO] [EMBAL] [VALOR] [ESTOQUE] 6. Para testar o relatório em tempo de projeto, alteramos a propriedade Active do table TbProduto para True e damos um clique com o botão direito em qualquer parte do objeto QuickReport e selecionamos a opção Preview. Preview do QuickReport

Relatórios Mestre/Detalhe Os relatórios mestre/detalhe seguem o mesmo padrão visto anteriormente. A única diferença é que precisamos de uma banda especial para imprimir os registros da parte detalhe, o QRSub. Um relatório mestre/detalhe deve possuir as seguintes bandas: QRSub -------- Título do relatório, data, nº da página e cabeçalho das colunas -------- Dados da tabela mestre -------- Dados da tabela detalhe 1. Como se trata de um relatório mestre/detalhe, devemos possuir primeiramente, dois datasets com esse relacionamento. Eles podem ficar no próprio relatório, ou de preferência, no Data Module. Para exemplificar, utilizaremos dois tables: TbPedido (mestre) e TbItem (detalhe). 2. depois, devemos alterar a propriedade Dataset do QuickReport para o dataset mestre (TbPedido) e o Dataset da banda QRSub para o dataset detalhe (tbitem). 3. o cabeçalho dos itens ficará logo abaixo dos campos da tabela mestre, na própria banda. Se quisermos que seja impresso apenas um pedido por página, precisamos alterar a propriedade ForceNewPage deta banda detail para True Pedido [NUMPEDIDO] Página: (Page#) Cliente [CLIENTE] Data: [DATA] Endereço [ENDERECO] Vendedor [VENDEDOR] Código Descrição Qtde Preco Unit Preço Total [CODIGO] Sub [DESCRICAO] [QUANT] [PRECOUNIT] [VALORTOTAL] Total do Pedido: [TOTALPEDIDO] Summary Totalizando Informações Para criar campos que façam algum tipo de cálculo baseado nos dados impressos por um relatório usaremos o componente QRExpr. É comum criar campos de totalização no final dos relatórios contendo o somatório, número de registros, média ou qualquer outro cálculo. O componente QRExpr possui a propriedade Expression, que abre uma caixa de diálogo permitindo construir um grande número de expressões.

Para exemplificar, criaremos um campo que conterá o somatório de uma coluna. Primeiramente, é necessário colocar um objeto QRBand e definir seu BandType para rbsummary, para que só será impresso no final do relatório. Em seguida, colocamos um componente QRExpr na banda Summary e clicamos na sua propriedade Expression. Na seção Function da janela Expression builder, selecionaremos a função SUM na lista e pressionaremos o botão ADD para adicionar à expressão. Em seguida, escolheremos o campo que será somado. Na seção Data Field, selecionaremos o objeto dataset que contém o campo a ser somado e damos um clique no campo da lista Field. Clicamos no botão ADD para adicioná-lo na expressão. Com a expressão terminada, clicamos em Ok. Ao final, termos que informar também o valor da propriedade Master, que será o nome do objeto QuickReport. Relatórios com Quebras Relatório com quebra é outra forma bastante comum de relatório. Observe a seguinte listagem de países com quebra por continente, obtido a partir da tabela Country do alias DbDemos do Delphi: North America Canada Cuba El Salvador... South America Argentina Bolivia Brazil... 1. esse relatório necessita de um componente query contendo um Sql de agrupamento (com a cláusula Group By) como o exemplo a seguir: SELECT continent, name FROM country GROUP BY continent, name

ORDER BY continent, name 2. em seguida, montaremos o esqueleto do relatório com as seguintes bandas: ---- Título do relatório, data, nº da página e cabeçalho das colunas QrGroup ---- Cabeçalho do grupo. Repete-se quando o campo agrupado se altera. ---- Imprime os dados dos registros agrupados 3. como o Delphi sabe a hora de mudar o grupo? Através da propriedade Expression da banda QrGroup. No nosso caso, o grupo mudará dependendo do valor de um campo da tabela. Assim, abrimos a janela Expression Wizard (clicando nas reticências da propriedade Expression), clicamos em Database Field e escolhemos o campo Continent 4. Por último, colocamos um QrDbText na banda QrGroup e o conectamos ao campo Continent, que representa o agrupamento. Ele só é impresso quando recebe um novo valor (início de cada grupo). E um QrDbText na banda para imprimir o nome do país. Esquema final do relatório: Relatório de Países por Continente Página: (Page#) Continente: [CONTINENT] Group Header País: [NAME] Definindo Máscaras A forma com que os dados são impressos num relatório é muito importante. Para campos numéricos, é interessante definir a propriedade Alignment dos objetos QRDBText para tarightjustify. Outra preocupação diz respeito às máscaras. Se o campo for alfanumérico, faremos da forma que já conhecemos: acessaremos a propriedade EditMask dos objetos Field (clique duplo no objeto Table ou Query para abrir o Field Editor) e especificamos a máscara. Se o campo for numérico, precisaremos mudar a propriedade Mask

dos componentes QRDBText ou QRExpr. Vejamos quais são as regras para gerar a formatação: Operador Descrição # Se houver um digito na posição ele será impresso. Caso contrário, nada é impresso. 0 Se não houver um dígito na posição, um zero será exibido.. Separador de casas decimais, Separador de milhar C Caracteres entre aspas são exibidos da forma como são informados ; Permite formatos diferentes para números positivos, negativos e zero Exemplo de máscara para valores monetários: R$ ###,##0.00 Chamando um Relatório a Partir do Programa Ao escrevermos um manipulador de eventos para executar um relatório, temos duas opções: mostrar o relatório na tela (preview) ou enviá-lo direto para a impressora (print). Para tanto, devemos seguir a seguinte sintaxe: Exemplo: <nome do formulário>.<nome do QuickReport>.Preview / Print FRelPedido.QuickRep1.Preview; // Mostra o relatório FRelPedido na tela FRelProduto.QuickRep1.Print; // Imprime o relatório FRelProduto