Fórum Como Programar Para Criar Relatórios De um Sistema Em Delphi. #522320
09/06/2015
0
O sistema já está desempenhando de alguma forma o que ele foi proposto para fazer... Só que na parte de relatório está um pouco difícil... Tenho três Rádios Buttons, Diário,Mensal,Por Data. Preciso que o relatório amostre as datas por exemplo de vendas do caixa de hoje.... Mensal do mês todo E por Data...
Fiz um Código aqui Assim...
if (Diário.Checked = true) then
begin
Ibtable1.Active := False;
Form4.Ibtable1.filter := 'DATA_VENDA = ' +''''+ DateToStr(Now)+'''';
Form4.Ibtable1.filtered := true;
Form4.Ibtable1.Active := true;
Ibtable1.filtered := true;
IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
Essa tabela pega os valores das vendas do caixa da lanchonete.. Quando eu abro aparece todas as vendas só que quando escolho umas das opções de Relatório os dados do caixa fica somente na data das vendas de Hoje sumindo as outras vendas.... Será que e a lógica do meu Código que está errada...
Valsistemasdelphi
Curtir tópico
+ 0Posts
09/06/2015
Marcos P
Qual versão do Delphi ?
Qual banco de dados ( e versão ) ?
Qual componente de acesso aos dados ?
Qual componente para geração de relatórios ?
O DataSource do seu report é Form4.Ibtable1 ?
Aonde está o tratamento do filtro para as demais opções ( Mensal e Por Data ) ?
Pelo visto esse trecho que você colocou é apenas parte do seu código.
Coloque o resto do código, para analisarmos....
Gostei + 0
11/06/2015
Valsistemasdelphi
Firebird 2.5 Administração do banco Ibexpert 2012
Estou usando Apenas um Ibtable para fazer conecção com os dados de outra tabela que está em outro Form...
FrxReport... Juntamente com o FrxDbDataset...
Não conecto o DataSourse deixo ele em branco
if (Diário.Checked = true) then
begin
//pegar o periodo da data atual menos (-) 30 dias
Ibtable1.Active := True;
Form4.Ibtable1.filter := 'DATA_VENDA = ' +''''+ DateToStr(Now)+'''';
Form4.Ibtable1.filtered := true;
//Form4.Ibtable1.Active := true;
//Ibtable1.filtered := true;
Form4.IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
exit; //Forçar a sair da rotina, ou vai executar os ifs após o else...}
//*********************************************************************
end
else
if (Mensal.Checked= true) then
begin
{Form4.Ibtable1.Active := True;
Form4.IBtable1.Filter := 'DATA_Venda = ' + ''''+datetostr(now)+'''';// pegar a data atual do micro
IBtable1.filtered := true;}
Ibtable1.Active := TRUE;
Form4.Ibtable1.filter := 'DATA_VENDA >= ' +''''+ DateToStr(Now-30)+'''' + ' and '+
'Data_Venda <= ' + ''''+ datetostr(Now) + '''';
Form4.Ibtable1.filtered := true;
//Form4.Ibtable1.Active := true;
//Ibtable1.filtered := true;
Form4.IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
exit; //Forçar a sair da rotina, ou vai executar o teste abaixo
end;
Gostei + 0
11/06/2015
Valsistemasdelphi
Firebird 2.5 Administração do banco Ibexpert 2012
Estou usando Apenas um Ibtable para fazer conecção com os dados de outra tabela que está em outro Form...
FrxReport... Juntamente com o FrxDbDataset...
Não conecto o DataSourse deixo ele em branco
if (Diário.Checked = true) then
begin
//pegar o periodo da data atual menos (-) 30 dias
Ibtable1.Active := True;
Form4.Ibtable1.filter := 'DATA_VENDA = ' +''''+ DateToStr(Now)+'''';
Form4.Ibtable1.filtered := true;
//Form4.Ibtable1.Active := true;
//Ibtable1.filtered := true;
Form4.IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
exit; //Forçar a sair da rotina, ou vai executar os ifs após o else...}
//*********************************************************************
end
else
if (Mensal.Checked= true) then
begin
{Form4.Ibtable1.Active := True;
Form4.IBtable1.Filter := 'DATA_Venda = ' + ''''+datetostr(now)+'''';// pegar a data atual do micro
IBtable1.filtered := true;}
Ibtable1.Active := TRUE;
Form4.Ibtable1.filter := 'DATA_VENDA >= ' +''''+ DateToStr(Now-30)+'''' + ' and '+
'Data_Venda <= ' + ''''+ datetostr(Now) + '''';
Form4.Ibtable1.filtered := true;
//Form4.Ibtable1.Active := true;
//Ibtable1.filtered := true;
Form4.IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
exit; //Forçar a sair da rotina, ou vai executar o teste abaixo
end;
Gostei + 0
12/06/2015
Marcos P
Exatamente qual tipo de problema você está enfrentando ?
O relatório está sendo gerado ou não está sendo gerado ?
Sua dificuldade é na aplicação com o filtro pelo tipo de data ?
Chegou a debugar o código para verificar se o parâmetro do filtro gera uma data válida, tanto do lado do Delphi, quanto do lado do FastReport ?
Tentou filtrar por algum outro campo, apenas para testar se o problema não está na formatação da data ?
Chegou a dar uma olhada nesses vídeos ?
Fast Report - Conhecendo e Criando
Fast Report - Criando o relatório de Usuários
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)