Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como somar valores de um FrxReport


valSistemasDelphi

Pergunta

16 respostass a esta questão

Posts Recomendados

  • 0

iae.. Jhonas estou com um problema aqui no meu FRXReport...   Todas as vendas do meu caixa está sendo visualizadas em forma de relatório até ai tudo bem. os registros estão em sequência corretamente.. Só que quando chega no 17º registro quando fecho e abro de novo o relatório os registros estão todos bagunçados entendeu.. Se poder explicar porque está acontecendo isso eu agradeço..

Link para o comentário
Compartilhar em outros sites

  • 0

provavelmente porque voce não esta zerando alguma variável global no relatório

imagine que voce esta fazendo um calculo e armazenando esse calculo em uma variável ... se voce não zera essa variável, quando voce fecha e abre o relatório novamente, aquela variável permanece com o valor anterior e acaba bagunçando o resultado mais a frente.

abraço

 

Link para o comentário
Compartilhar em outros sites

  • 0

568c25cd3cbba_CapturadeTela(127).thumb.p

Jhonas estou fazendo da seguinte maneira e ate agora não deu certo.. Estou pegando os valores do caixa.Do campo Total no relatório adicionei um sumary e um system text. E coloquei a seguinte função [(Sum(<frxDBDataset1."Total">,MasterData1))] mais ele não soma ele apenas junta os valores.. Por exemplo no registro 1 tem 45 no registro 2 tem 45 invés de ele somar ele ajunta 4545. Se poder me ajudar..

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

coloquei a seguinte função [(Sum(<frxDBDataset1."Total">,MasterData1))] mais ele não soma ele apenas junta os valores

se voce quer somar campos diferentes, seria isso:

exemplo

SUM(CDS_Opcoes.TOT_CORR) + SUM(CDS_Opcoes.SALDO)

lembrando: um sumary vai retornar a soma total, da soma individual do grupo

abraço

 

Link para o comentário
Compartilhar em outros sites

  • 0

somar campo total com o mesmo campo total não tem lógica

mas somar...   os campos Sub-Total em um Total-Geral, ai sim tem lógica

se no sumary voce colocar somente  Sum(<frxDBDataset1."Total"> )  voce vai ter a soma total dos campos dos registros

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas apaguei aqui no meu sistema um Ibtable que eu tinha colocado por que vi que não necessitava.. ai salvei beleza. Só que quando copilo a aplicação. a aplicação inicia meio que travado. Aplicação entra na tela principal do sistema ate ai tudo bem. Só que quando faço qualquer manipulação no sistema fica tudo que meio travado ta funcionando a aplicação so que meio travado... E aparece esse evento em vermelho quando a aplicação e iniciada  Module Load: UNKNOWN_MODULE_10. No Debug Info. Base Address: $721D0000. Process Project1.exe (6468).. Queria saber se tem como eu restaurar meu projeto ate onde eu fiz a modificação.. Desde já agradeço pela resposta.

Link para o comentário
Compartilhar em outros sites

  • 0

Queria saber se tem como eu restaurar meu projeto ate onde eu fiz a modificação..

uma boa pratica é salvar o seu projeto todo em um arquivo ZIP, no final do dia de trabalho, ou de tempos em tempos

com isso voce sempre vai ter uma cópia do seu projeto que voce sabe que esta funcionando perfeitamente

entretanto, o delphi pode nos livrar de dores de cabeça como essa.

cada vez que voce modifica algum form de seu projeto, ele cria um backup desse form antes da modificação

exemplo

UCadAlu.~dpp

UCadAlu.~dfm

UCadAlu.~pas

então basta deletar os arquivos .dfm e .pas  e renomear novamente os .~dfm e .~pas tirando o ~

recompile novamente o projeto, e ele vai voltar ao que era, antes da modificação

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas deixa eu tirar uma dúvida .. Criei um código que ele filtra a data vendida por exemplo hoje. para ser visualizado no relatório. Visualiza as datas normalmente so que quando eu vo la no meu caixa no dbgrid a data que ele filtrou la no banco de dados fica como sendo a primeira... por exemplo Registro 1,2,3.. Ai eu faço uma venda hoje ai ele cria o registro 4...  depois volto na tela do caixa no dbgrid Fica assim  Registros 4,1,2,3..  Ele modifica o registro se poder me ajudar...

Link para o comentário
Compartilhar em outros sites

  • 0

essa é a ordem de gravação dos registros

para que fique sempre na ordem cronológica, basta colocar no select um comando ORDER BY ( ordenar por )

exemplo usando SQL

select * from tabela order by nomecampo

select * from produtos order by venda

exemplo usando Ordenação crescente e decrescente no ClientDataSet

http://pt.stackoverflow.com/questions/6075/ordena%C3%A7%C3%A3o-crescente-e-decrecente-no-clientdataset

outra maneira

http://www.linhadecodigo.com.br/artigo/714/delphi-realizando-consultas_pesquisas-iniciante.aspx

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu ai jhonas pela ajuda.. Consegui resolver de certa parte da seguinte maneira 

Form4.IbTable1.IndexFieldNames :='COD_PRODUTO';

ele fica em ordem quando eu clico no button onde está o código mais se eu fechar em abrir o formulário ele fica bagunçado.Só arruma quando clico no button e ele le o código.. será que falta mais o que um insert por exemplo o um post no final.

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas ate agora não consegui resolver os problemas do TDateTimerPicker... tenho dois TDateTimerPicker Data inicial e outro para data final... E um button que monstra o relatório de vendas entre as datas. jhonas tenho um código em sql.. tem como eu mudar ele aqui para Ibtable por exemplo. DEsde já agradeço pela ajuda..

 

inicio : string [60];
final : string [60];
end;

if (PorData.Checked=true) then
begin
  If TDateTimePicker2.Date < TDateTimePicker1.Date Then
begin
ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');
TDateTimePicker2.Date := TDateTimePicker1.Date;
end
Else
begin
Inicio := DateToStr(DateTimePicker1.Date);
Final := DateToStr(DateTimePicker2.Date);
edit1.text:= inicio;
edit2.Text:= final;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := 'SELECT Data, Num_veiculo, Placa, Km FROM bdgeral '+
'WHERE Data >= DateToStr(INICIO) and data <= DateToStr(FINAL) ORDER BY Data';
Query1.Prepare;
Query1.Open;
DBGrid1.SetFocus

Link para o comentário
Compartilhar em outros sites

  • 0

isso está errado .... se inicio e final são strings, porque voce esta convertendo data para string na select, se já é uma string

se eu me engano ...tambem vai ocorrer um erro de: Tipos incompativeis

inicio : string [60];
final : string [60];

Query1.SQL.Text := 'SELECT Data, Num_veiculo, Placa, Km FROM bdgeral '+
'WHERE Data >= DateToStr(INICIO) and data <= DateToStr(FINAL) ORDER BY Data';

 

veja um exemplo simples:  maneira correta

procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Active := FALSE;
  Query1.SQL.Clear;
  Query1.SQL.Append('SELECT * FROM Moviment WHERE DTENTREGA >= :INI AND DTENTREGA <= :FIM ORDER BY DTENTREGA ');
  Query1.Params[0].AsDate := DateTimePicker1.Date;
  Query1.Params[1].AsDate := DateTimePicker2.Date;
  Query1.Active := TRUE;
end;

agora jogando dentro de uma variavel

procedure TForm1.Button1Click(Sender: TObject);
var inicio, final :TDate;
begin
  inicio := DateTimePicker1.Date;
  final := DateTimePicker2.Date;

  Query1.Active := FALSE;
  Query1.SQL.Clear;
  Query1.SQL.Append('SELECT * FROM Moviment WHERE DTENTREGA >= :INI AND DTENTREGA <= :FIM ORDER BY DTENTREGA ');
  Query1.Params[0].AsDate := inicio;
  Query1.Params[1].AsDate := final;
  Query1.Active := TRUE;
end;

 

então podemos dizer que no seu caso ficaria assim

inicio : TDate;
final : TDate;
end;

if (PorData.Checked=true) then
begin
  If TDateTimePicker2.Date < TDateTimePicker1.Date Then
begin
ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');
TDateTimePicker2.Date := TDateTimePicker1.Date;
end
Else
begin
Inicio := DateTimePicker1.Date;
Final := DateTimePicker2.Date;
edit1.text:= datetostr(inicio);
edit2.Text:= datetostr(final);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := 'SELECT Data, Num_veiculo, Placa, Km FROM bdgeral '+
'WHERE Data >= :INI and data <= :FIN ORDER BY Data';

  Query1.Params[0].AsDate := inicio;
  Query1.Params[1].AsDate := final;

Query1.Prepare;
Query1.Open;
DBGrid1.SetFocus

=======================================================

OBS: voce esta colocando assuntos diferentes no mesmo post ... quando forem assuntos diferentes coloque em outros posts... ok ?

abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...