Pular para o conteúdo principal

Curso Fast Report - Aula 04 - CrossTab Report

Olá "escovadores de bits" (essa é antiga hein kakaka), vamos a mais uma aula sobre Fast Report. Dessa vez iremos falar sobre o CrossTab Report. Este é um tipo de relatório, onde podemos gerar colunas "automaticas" com base nos campos de uma tabela. O relatório irá ficar parecido com uma planilha do excel. Vamos ver um exemplo no excel:



Agora vamos para o nosso projeto. Adicione o objeto frxCrossObject1 ao form. É ele q nos permite fazer a "mágica" acontecer. Adicione também uma nova Query (Name = sqlVendas) e um novo frxDBDataSet (Name/UserName = frxSqlVendas, ligando a propriedade DataSet ao sqlVendas)



Para gerar o relatório, vou usar 2 tabelas: DOCUMENTOS e VENDAS, fazendo um JOIN entre elas, gerando 3 colunas:

SELECT v.data, d.descricao, SUM(v.total) AS total
FROM vendas v
LEFT JOIN documentos d ON d.id_documentos = v.id_documento
GROUP BY v.data, d.descricao



Agora vamos para o Designer, criar no relatorio. Dentro dele ja inicie um relatorio novo. Remova todas as bandas e adicone somente a banda PageHeader.
Vá ao menu Relatório, opção Dados, e selecione frxVendas.
Agora adicione um object DBCrossTab.




Na janela de configuração do CrossTab, vamos arrastar os fields para as posições desejadas, e depois clicar OK. Fazendo isso, ja podemos ter um preview.





Agora só falta a perfumaria. Selecione uma das celulas do Crosstab e configure como desejar.





Agora o código pra visualizar o relatório. Adicione um novo Button e insira o código abaixo:

  // abre a query
  sqlVendas.Close;
  sqlVendas.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))+'Relatorio_Vendas.fr3');

  // mostra o relatorio

  frxReport1.ShowReport;

  sqlVendas.Close


Bem pessoal, é isso. Não esqueçam dos comentários. (E de ajudar na vaquinha.com.br rsrsrs)

Comentários

  1. Estou usando um crosstab, no entanto, como as vezes a quantidade de linhas será pequena, 3 ou 4 gostaria que o próximo crosstab ficasse na mesma página. Está tendo sempre um quebra.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

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...

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