Pular para o conteúdo principal

Curso Fast Report - Aula 02 - Primeiros Passos

Olá galera, mais uma mini-aula de FastReport saindo do forno. Desta vez iremos ver como gerar nosso primeiro relatório no FR. Mãos a obra (ou melhor, no mouse e teclado hehehe).

Nesta aula, estou usando um projeto novo, mais vocês podem usar o projeto de vocês.
O que vamos precisar:


  • 1 Conexao com banco de dados. Eu estou usando UniDAC - TUniConnection + MySQL, mas vc pode pode usar qualquer componente de conexão e qualquer banco de dados)
  • 1 Componente Query compatível com sua conexão (vou usar um comando SQL simples: SELECT id_cliente, nome, endereco, numero FROM clientes ORDER BY nome)
  • 1 Componente frxReport
  • 1 Componente frxDBDataset - aponte a propriedade DataSet para a query que você está usando






Agora vamos "desenhar" nosso relatório. Para isso, dê dois cliques no componente frxReport para abri o Designer. O FastReport trabalha com o sistema de bandas, parecido com outros geradores (Reduzi um pouco a tela, pra facilitar)




Primeiro, vamos criar um novo arquivo. Então va ao menu Arquivo, opção Novo Relatório. O Fast irá criar uma página com as bandas:



ReportTile: esta banda somente será mostrada na primeira página do relatorio
MasterData: onde serão listados os registros de nossa query
PageFooter: rodapé das páginas

Ainda não iremos precisar da banda ReportTile, por isso podemos deletá-la. Para isso, clique no titulo dela pra selecionar, e tecle DELETE



Agora vamos adicionar uma nova banda: PageHeader: usamos esta banda como cabeçalho de páginas, pois ela ira aparecer em todas as páginas do nosso relatório. Para inserir uma banda, selecione ela na paleta de componentes.



Lembra do componente frxDBDataSet? Agora vamos usar ele pra poder "buscar" os dados que estão no BD e que serão exibidos no nosso relatório. Para isso, vá ao menu Relatório, opção Dados, e selecione a origem dos dados desejada.



Depois, dê dois cliques na banda MasterData1 (na faixa laranja), para informar de onde ela irá buscar os registros.



Com isso, os fields da tabela ja serão listados na Área de Dados, do lado direito da tela, e a nossa banda irá mostrar todos registros contidos no DataSet.



Agora vamos inserir os fields na banda MasterData1, para que os dados sejam mostrados um a um. Para isso, arraste o field para o local desejado.





Depois de arrastar os fields, e ajustar as larguras, você já pode ver um preview do relatorio. Cuidado, pois se tiver muitos registros, pode gerar muitas páginas. O ideal seria você colocar um limite no seu SELECT para os testes.

Como podemos ver, nosso relatório não tem um cabeçalho decente. Agora vamos inserir os textos para informar o usuário do que se trata o relatório e quais informações são listadas. Primeiro aumente a altura do cabeçalho, depois selecione o componente Memo (Objeto Texto) na barra de ferramentas, e clique em alguma parte do cabeçalho. Insira quantos componentes forem necessários. No nosso caso serão 4 para as colunas e um adicional para o título do nosso relatório. Cada componente inserido, uma janela se abre para que possamos digitar nosso texto.




Agora podemos ver outro preview.

Salve o arquivo com o nome Relatorio1.fr3. E vamos voltar ao projeto no Delphi pra configurar algumas coisinhas, e ver como fazer pra "chamar" esse relatório via código.

Selecione o componente frxReport1, pois agora iremos ver algumas propriedades do mesmo.

Abra a propriedade PreviewOptions, para podemos iniciar as configuracoes:
  • AllowEdit: permite editar o relatorio quando o usuário está no preview, assim ele pode fazer anotações e outras alterações.
  • Buttons: os buttons que irão aparecer no preview do relatório
  • DoubleBuffered: setando esta propriedade para True, evita "flickers" na montagem do preview, porém é mais lento.
  • Maximized: inicia o preview maximizado
  • MDIChild: se o preview deve se comportar como formularios MDI
  • Modal: se o relatório deve ser mostrado em modo Modal
  • OutlineExpand: permite expandir/diminuir a largura da Outline (veremos isso em outro post)
  • OutlineVisible: se deve mostrar a Outline
  • OutlineWidth: largura da Outline
  • PagesInCache: quantidade de páginas que serão mantidas em memória. Cuidado ao usar esta opção caso seu relatório tenha imagens, pois quanto mais páginas em cache, maior o consumo de memória
  • PictureInCacheFile: se as imagens do relatório devem ser salvas em arquivos temporários. Isso diminui a quantidade de memória usada pelo relatório, porém deixa o mesmo mais lento
  • ShowCaptions: se o caption dos buttons devem ser mostrados. Ao ativar esta opção, você provavelmente terá q reduzir o número de buttos mostrados no preview
  • ThumbnailVisible: se deve mostrar miniaturas das páginas
  • Zoom: tamanho do zoom (1 = 100%)
  • ZoomMode: modo do zoom (pagina inteira, múltiplas páginas, uma página)
Propriedade PrintOptions

  • Collate: permite imprimir "múltiplas páginas" em sequencia. Caso você tenha criado um relatório com múltiplas páginas, geralmente é impresso assim Page1: 1,2,3...n, Depois Page2: 1,2,3. Setando para True, a impressão será assim: Page1: 1, Page2: 1, Page1: 2, Page2: 2....
  • Copies: número de cópias
  • PageNumbers: as páginas que deverão ser impressas. Exemplo: 1,3,5: imprime somente as páginas 1, 3 e 5. Exemplo: 3-10: imprime da página 3 até a página 10
  • Printer: nome da impressora a ser usada
  • PrintMode: modo de impressão (Juntar páginas pequenas, Dividir, escalar para caber)
  • PrintOnSheet: tamanho do papel
  • PrintPages: quais páginas devem ser impressas: todas, somente as pares, somente as ímpares
  • Reverse: se o relatório deve ser impresso da última página para a primeira
  • ShowDialog: se o diálogo de impressão deve ser exibido. deixe false pra imprimir direto pra impressora, sem intervenção do usuário
Propriedade ReportOptions: são informações relacionadas ao relatório, como autor, data de criação, versão, etc.

Propriedade StoreInDFM: incorpora o relatório ao DFM. Geralmente eu deixo esta opção como False, pois o relatório já está salvo. Se você não quiser salvar o relatório, deixe True, e use um frxReport para cada relatório criado, mas o arquivo .DFM irá ficar "gigantesco"

Agora adicione um Button ao form, pra podermos "chamar" o relatório via programação:

procedure TForm9.Button1Click(Sender: TObject);
begin
  // abre a query
  UniQuery1.Close;
  UniQuery1.Open;

  // limpa o relatório anterior q foi carregado no frxReport
  // se vc deixou a propriedade StoreInDfm = True, não use a linha abaixo
  frxReport1.Clear;

  // carrega o relatório
  // se vc deixou a propriedade StoreInDfm = True, não use a linha abaixo
  frxReport1.LoadFromFile(ExtractFilePath(ParamStr(0))+'Relatorio1.fr3');

  // mostra o relatorio
  frxReport1.ShowReport;

  UniQuery1.Close
end;


Bom pessoal, é isso. Até a próxima aula.

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Curso Fast Report - Aula 07 - Impressão de Etiquetas

Olá pessoal, bem vindos a mais uma aula de Fast Report. Desta vez iremos falar sobre impressão de etiquetas.  Primeiro iremos preparar nosso ambiente de dados. Geralmente eu uso uma tabela temporária (em memória ou ClientDataSet - qual você estiver acostumado a usar), pra poder preencher os dados das etiquetas, com uma estrutura simples: Texto1 - String - 100 Texto2 - String - 100 Texto3 - String - 100 Texto4 - String - 100 Texto5 - String - 100 Dessa forma, eu pego os dados de qualquer tabela e vou inserindo nessa tabela temporária. Assim eu consigo, por exemplo, imprimir várias cópias da mesma etiqueta, como por exemplo, quando é necessário etiquetar produtos, e existem várias peças de um mesmo produto. Veja um exemplo de produtos/estoque: Primeiro eu percorro a tabela, e vou inserindo um registro pra cada item. Se o item possui estoque maior que um 1 (por exemplo, estoque = 10), eu insiro 10 registros do mesmo item. Veja o código abaixo: procedure ... var i...

ACBR - Corrigir Erro Interno: 12175/12030/12029/12031

Erro Interno: 12175/12030/12029/12031 Atualização do Windows - Habilitar o TSL 1.2 ✔1.0) Instalar o Service Pack 1 (SP1) - Baixar em  https://www.microsoft.com/pt-BR/download/details.aspx?id=5842 ✔1.1) Responsável por atualização dos protocolos de SSL - Instalar KB2992611, https://www.catalog.update.microsoft.com/Search.aspx?q=2992611 ✔1.2) Responsável por HABILITAR o protocolo TLS 1.1 e 1.2. Instalar KB3140245  https://www.catalog.update.microsoft.com/search.aspx?q=kb3140245 ✔1.3) ou Baixar todas as atualizações disponíveis. Configuração do Protocolo no Internet Explorer Marque as opções Opções de Internet (no IE, menu Ferramentas, Opções de Internet) ✔ Não salvar páginas criptografadas em disco;  ✔ Usar SSL 3.0;   ✔ Usar TLS 1.0;   ✔ Usar TLS 1.2;  Desmarque as opções caso tenha ou estejam marcadas: ❌ Usar SSL 2.0;  ❌ Usar TLS 1.1; #Atualizações das Cadeias de Certificado ✔ https://www.gov.br/iti/pt-br/assuntos/navegadores Certificados por ...

Curso Fast Report - Aula 03 - Agrupamento de Dados e Totalizadores

Olá pessoal, estamos aqui mais uma vez com nosso curso de Fast Report. Hoje iremos ver como fazer o agrupamento dos dados, e fazer totalizadores, tanto por grupo como um totalizador geral. Vamos lá. Adicione uma nova query e outro frxDBDataSet ao form, e configure-os assim: Query Name : sqlReceber SQL : SELECT nome, numero, vencimento, valor, historico FROM receber ORDER BY vencimento frxDBDataSet Name : frxSqlReceber (nome usado pra referencias no Delphi) UserName : frxSqlReceber (nome usado pra referencias no FastReport) DataSet : sqlReceber Dê dois cliques no frxReport pra abrir o designer. Clique no botão Novo, vá ao menu Relatório, opção Dados e marque o frxSqlReceber. 2 cliques no MasterData e selecionar a fonte dos dados novamente. Remova a banda PageTitle e adicione a banda PageHeader . Adicione a banda GroupHeader e informe o field que será usado como agrupador. As opções dessa tela são: Manter grupo unido : não separa o cabeçal...