alguma solucao p/ before print no QR ???

22/09/2004

boa tarde,

segue o codigo no qual estou enfrentando um probleminha ou problemao....pode-se observar onde esta em negrito que caso condicoes forem aceitas atualizo o subtotal e o total da ativ. agricola, o problema esta ai, onde, quando visualizo tudo bem os valores estao corretos mas quando imprimo o QR duplica meus valores, ou seja, imagino q este executa esta procedure duas vezes....qual seria a solucao p/ evitar esta duplicacao ???

procedure TFRelatorio_AtividadeCorretivoCl.QRSubDetail1BeforePrint(
  Sender: TQRCustomBand; var PrintBand: Boolean);
var aux,aux2,aux3,aux4:double;
begin
  if (DSCloreto.DataSet[´FXSAIACLORETO_BALQUIMICO´&93; * DSCloreto.DataSet&91;´FXSAIA_TALHAO´&93;+
  (DSCloreto.DataSet&91;´FXSULCOCLORETO_BALQUIMICO´&93; * DSCloreto.DataSet&91;´FXSULCO_TALHAO´&93;/2))/10>=100 then
    begin
      if(DSCloreto.DataSet&91;´FXSAIACLORETO_BALQUIMICO´&93; >= DSCloreto.DataSet&91;´FXSULCOCLORETO_BALQUIMICO´&93;) then
        begin
          if((DSCloreto.DataSet[´FXSAIACLORETO_BALQUIMICO´&93;-DSCloreto.DataSet&91;´FXSULCOCLORETO_BALQUIMICO´&93;)<=
          (DSCloreto.DataSet&91;´FXSAIACLORETO_BALQUIMICO´&93;*0.3)) then
            begin
              aux:=0;
              aux2:=strtofloat(QRSubTotal1.Caption);
              aux3:=strtofloat(QRTotal.Caption);
              aux4:=int((DSCloreto.DataSet&91;´FXSAIACLORETO_BALQUIMICO´&93; * DSCloreto.DataSet&91;´FXSAIA_TALHAO´&93; +
              (DSCloreto.DataSet&91;´FXSULCOCLORETO_BALQUIMICO´&93; * DSCloreto.DataSet&91;´FXSULCO_TALHAO´&93; / 2)) / 10) * DSCloreto.DataSet&91;´MTLINEAR_TALHAO´&93;  * 2 / 1000 / 1000;
              //subtotal
              QRSubTotal1.Caption:=format(´¬.2f´,&91;(aux4/2)+aux2&93;);
              //total
              QRTotal.Caption:=format(´¬.2f´,&91;(aux4/2)+aux3&93;);&91;/b&93;            end
          else
            aux:=-1;
        end
      else
        begin
          if((DSCloreto.DataSet[´FXSULCOCLORETO_BALQUIMICO´&93;-DSCloreto.DataSet&91;´FXSAIACLORETO_BALQUIMICO´&93;)<=
          (DSCloreto.DataSet&91;´FXSULCOCLORETO_BALQUIMICO´&93;*0.3)) then
            begin
              aux:=0;
              aux2:=strtofloat(QRSubTotal1.Caption);
              aux3:=strtofloat(QRTotal.Caption);
              aux4:=int((DSCloreto.DataSet&91;´FXSAIACLORETO_BALQUIMICO´&93; * DSCloreto.DataSet&91;´FXSAIA_TALHAO´&93; +
              (DSCloreto.DataSet&91;´FXSULCOCLORETO_BALQUIMICO´&93; * DSCloreto.DataSet&91;´FXSULCO_TALHAO´&93; / 2)) / 10) * DSCloreto.DataSet&91;´MTLINEAR_TALHAO´&93;  * 2 / 1000 / 1000;
              //subtotal
              QRSubTotal1.Caption:=format(´¬.2f´,&91;(aux4/2)+aux2&93;);
              //total
              QRTotal.Caption:=format(´¬.2f´,[(aux4/2)+aux3&93;);&91;/b&93;
            end
          else
            aux:=-1;
        end;
    end
  else
    aux:=-1;
PrintBand:=aux = 0;
end;



Maikiperin

Respostas

22/09/2004

Djjunior

no afterprint da banda que vai exibir os valores zere os contadores.

o problema ocorre pq qdo vc dá um preview o qr gera seu relatório, portando vc vai calculando tudo, mas, quando vc manda imprimir o qr gera o relatório todo denovo :twisted: portanto passa por todas as rotinas dinovo e... já viu né total dobrado !


Responder Citar