Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ricardosoares1rj

[Resolvido] erro estranho com o quick report

Recommended Posts

Olá pessoal, bom dia

Eu estou com um problema estranho, eu tenho um relatorio que faz um somatorio e quando dou um preview, ele mostra o resultado certinho, depois que eu imprimo, ele dobra o valor desse somatorio, como se eu tivesse multiplicado por 2

e não existe nada no codigo ou em evento que after print que faça com que ele multiplique este valor.

 

Eu tentei usar o qrExpr, mas ele num esta somando valor nenhum

 

muito obrigado a todos

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você faz esse somatório?? Por sql ou numa variável que faz um count em runtime no quickreport?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você zera o valor da variável antes do print? Provavelmente está faltando inicializar o valor dela antes de mandar imprimir, o que faz ela duplicar o valor da variável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que o createform só executa no momento da criação do form.. depois de criado, as variáveis armazenam o valor que você calculou ao dar o preview e, no print, ele refaz as rotinas do beforeprint do report e ai como suas variáveis já possuem valores ele dobra o resultado saca??

 

Eu só não lembro agora de cabeça que evento usar pra controlar a inicialização das variáveis corretas no report para que entre o preview e o print não ocorra o problema da duplicação dos valores.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi..da uma olhada no codigo

aqui eu zero as procedures

procedure TFrm_RelProdRes.FormCreate(Sender: TObject);
begin
  lbInicio.Caption := DateToStr(frm_SelRelats.dtInicio);
  lbFim.Caption := DateToStr(frm_SelRelats.DtFim);
  SomaProd := 0;
  SomaProdSub := 0;
  SomaProdMensal := 0;
  SomaProdMensalSub := 0;
end;

 

 

aqui eu atribuo os valores as variaves:

procedure TFrm_RelProdRes.QRBand2BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
 {
   SomaProd := SomaProd + (Round(Query1Prod_Ind.Value * 100)/100);
   SomaProdSub := SomaProdSub + (Round(Query1Prod_Sub.Value * 100)/100);
   SomaProdMensal := SomaProdMensal + (Round(Query1Prod_Mensal.Value * 100)/100);
   SomaProdMensalSub := SomaProdMensalSub + (Round(Query1Prod_MensSub.Value * 100)/100);
 }
end;

e pra finalizar eu passo os valores das variaveis para as labels que vão mostrar os valores

 

procedure TFrm_RelProdRes.QRBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
{
  lbTotal.Caption := FloatToStrF(SomaProd,ffNumber,15,2);
  lbTotalSub.Caption := FloatToStrF(SomaProdSub,ffNumber,15,2);
  lbTotProdMensalSub.Caption := FloatToStrF(SomaProdMensalSub,ffNumber,15,2);
  lbTotProdMensal.Caption := FloatToStrF(SomaProdMensal,ffNumber,15,2);
}
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta iniciar o valor das variáveis no beforeprint do componente principal do quickreport (fora das bands).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta iniciar o valor das variáveis no beforeprint do componente principal do quickreport (fora das bands).

Cara, muito obrigado pela ajuda, o problema era o locais das variaveis mesmo, pois elas estavam sendo zeradas no oncreate do formulário e por isso o valor estava duplicando, passei para o before print e ficou tudo certo

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.