Gabriel Cabral Postado Julho 17, 2009 Denunciar Share Postado Julho 17, 2009 Estou a muito tempo tentando ajustar isso mas não consigo de jeito nenhum..Eu uso uma query [QueryRelCaixa] para fazer uma busca e preencher o relatório.A busca é feita desta forma:with dm.QueryRelCaixa do begin Close; SQL.Clear; SQL.Add('SELECT * FROM ESTACAI.dbf'); SQL.Add('WHERE CAIDAT BETWEEN :DataI AND :DataF'); SQL.Add('AND CAIHOR BETWEEN :HoraI AND :HoraF'); SQL.Add('AND CAINCX = :Ncaixa'); SQL.Add('AND CAIFLA = ""'); ParamByName('DataI') .AsDateTime := StrToDateTime(txtDataIni.Text); ParamByName('DataF') .AsDateTime := StrToDateTime(txtDataFin.Text); ParamByName('HoraI') .AsString := txtHoraIni.Text; ParamByName('HoraF') .AsString := txtHoraFin.Text; ParamByName('Ncaixa').AsString := txtNumCaixa.Text; Open; end;Mas além disso, preciso calcular a soma dos valores de CAIENT quando CAIDIN = 'X'e isso é feito já em uma outra Region do Rave Reports.Com a função SUM() do Rave não é possível, porque dessa forma ele faz a somatória de todos os registros, independente da primeira busca realizada.Alguém pode me salvar???Muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William - TI Postado Julho 17, 2009 Denunciar Share Postado Julho 17, 2009 a pesquisa esta retornando os dados corretos? se tiver é so você fazer um wile para preencher um variavel com o valor cujo CAIDIN = 'X'.este codigo abaixo não irá funcionar é só a logica.EX.varSoma : real;beginSoma :=0;QueryRelCaixa.firt;while not QueryRelCaixa.eof do beginif QueryRelCaixa.fieldbyname('CAIDIN').asString=X then beginSoma :=soma + QueryRelCaixa.fieldbyname('VALOR').asFloat;end;QueryRelCaixa.next;end;end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Julho 17, 2009 Autor Denunciar Share Postado Julho 17, 2009 Entendi, William - TI...mas ele não faz a soma...quando passa por while not QueryRelCaixa.eof, acusa que a query.eof = trueaí a soma dá sempre zero Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William - TI Postado Julho 17, 2009 Denunciar Share Postado Julho 17, 2009 o motivo é que sua query esta vazia a epsquisa não esta retornando nada.foi minha primeira perguntaa pesquisa esta retornando os dados corretos?verifica a pesquisa novamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Julho 17, 2009 Autor Denunciar Share Postado Julho 17, 2009 Pois é... também já tinha achado q era isto...mas essa pesquisa é feita para gerar o relatorio... e este é gerado corretamente de acordo com a pesquisa.. então não tem porque a query estar vazia. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Julho 20, 2009 Autor Denunciar Share Postado Julho 20, 2009 (editado) Coloquei uma MessageBox pra verificar o RecordCount da Query...with dm.QueryRelCaixa do begin Close; SQL.Clear; SQL.Add('SELECT * FROM ESTACAI.dbf'); SQL.Add('WHERE CAIDAT BETWEEN :DataI AND :DataF'); SQL.Add('AND CAIHOR BETWEEN :HoraI AND :HoraF'); SQL.Add('AND CAINCX = :Ncaixa'); SQL.Add('AND CAIFLA = ""'); ParamByName('DataI') .AsDateTime := StrToDateTime(txtDataIni.Text); ParamByName('DataF') .AsDateTime := StrToDateTime(txtDataFin.Text); ParamByName('HoraI') .AsString := txtHoraIni.Text; ParamByName('HoraF') .AsString := txtHoraFin.Text; ParamByName('Ncaixa').AsString := txtNumCaixa.Text; Open; Application.MessageBox(PChar(dm.QueryRelCaixa.recordCount), 'RecordCount', mb_OK); end;Mas a MessageBox não retorna nada... aparece vazia..não consigo entender porque a query fica vazia depois da consulta..porque não é pra ficar... existem registros dentro do que eu pedi..Além disso, essa mesma busca é feita para gerar o relatório...e este é gerado corretamente. Editado Julho 20, 2009 por Gabriel Cabral Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 20, 2009 Denunciar Share Postado Julho 20, 2009 Experimente usarShowmessage(inttostr(dm.QueryRelCaixa.recordCount));abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Julho 20, 2009 Autor Denunciar Share Postado Julho 20, 2009 Ok, Jonas.. obrigado...agora apareceu ZERO..ou seja, não tem nada na query após a busca realizadamas esta mesma busca eu utilizo para gerar o relatório e funciona perfeitamente...o que pode estar havendo?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 20, 2009 Denunciar Share Postado Julho 20, 2009 agora apareceu ZERO..ou seja, não tem nada na query após a busca realizadamas esta mesma busca eu utilizo para gerar o relatório e funciona perfeitamente...Estranho ... procure fazer uma comparação com as 2 e veja se voce deixou passar alguma coisaabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Julho 20, 2009 Autor Denunciar Share Postado Julho 20, 2009 Muito obrigado, Jhonas..como existem 4 maneiras diferentes no programa pra eu gerar o relatorio, eu estava testando a soma em um lugar errado...agora deu certo...muito obrigado mesmo e desculpe minha distração.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William - TI Postado Julho 21, 2009 Denunciar Share Postado Julho 21, 2009 Caro amigo desculpa não ter respondido mais pois aqui estava sem internet agora que volou, fico feliz que já tenha resolvido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Gabriel Cabral
Estou a muito tempo tentando ajustar isso mas não consigo de jeito nenhum..
Eu uso uma query [QueryRelCaixa] para fazer uma busca e preencher o relatório.
A busca é feita desta forma:
Mas além disso, preciso calcular a soma dos valores de CAIENT quando CAIDIN = 'X'
e isso é feito já em uma outra Region do Rave Reports.
Com a função SUM() do Rave não é possível, porque dessa forma ele faz a somatória de todos os registros, independente da primeira busca realizada.
Alguém pode me salvar???
Muito obrigado.
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.