Fórum Somar no QuickReport #131329
29/03/2010
0
Lucas Souza
Curtir tópico
+ 0Posts
30/03/2010
Douglas Fernandes
Gostei + 0
30/03/2010
Douglas Fernandes
procedure TFrmTeste.DetailBand1BeforePrint(Sender: TQRCustomBand;var PrintBand: Boolean);
Var
Sum : Integer;
begin
Sum := QAux1.FieldByName('Valor1').AsInteger + QAux1.FieldByName('Valor2').AsInteger;
QRLabel2.Caption := IntToStr(Sum);
end;
Gostei + 0
30/03/2010
Lucas Souza
Gostei + 0
30/03/2010
Robson Catunda
Você pode fazer isso de três formas distintas:
1 - Criando em seu dataset um campo do tipo calculed ou um do tipo internalcalc, e no evento OnCalcField do dataset faz o cálculo,
dmGeral.QryQuantExamesE.FieldByName('totalcoluna3').asInteger := dmGeral.QryQuantExamesE.FieldByName('campocoluna1').asInteger + dmGeral.QryQuantExamesE.FieldByName('campocoluna2').asInteger;
2 - Criando um campo pra soma dentro da sql do dataset:
select compocoluna1,campocoluna2,(coalesce(campocoluna1,0)+coalesce(campocoluna2,0)) as totalcoluna3 from Exames
3 - Utilizando o componente QRExpr do próprio QuickReport.
Obs.: na opção 1 utilizei fieldbyname no lugar de fieldvalues para determinar valores nulos como zero, pois dará erro se pegar valor null. E na opção 2 o coalesce tem a mesma finalidade, ou seja, se coluna1 ou coluna2 forem null será considerado o valor como zero, pois de outra forma o sql ignora os calculos com valor null.
Gostei + 0
31/03/2010
Lucas Souza
var PrintBand: Boolean);
begin
//var1 := 0;
QRLabel12.Caption := dmGeral.cdsQuantExamesE.FieldValues['PESO'] * dmGeral.cdsQuantExamesE.FieldValues['TOTAL'];
var1 := var1 + strtoint(QRLabel12.Caption);
//QRLabel13.Caption := inttostr(var1);
end; na banda page footer: QRLabel14.Caption := inttostr(var1); Moral da história: o QRLabel12 de cada linha pega a multiplicação do campo PESO e TOTAL, até aí tudo bem, depois soma tudo e mostra no QRLabel14. Soma direitinho sem problemas, mas quando peço para imprimir ou quanso salvo em PDF ele duplica o valor do QRLabel14, se o resoltado da soma é 1000, se imprimi sai 2000 e sem imprimo novamente imprime 4000, ele vai duplicando o campo QRLabel14 a cada impressão ou salvamento.
Gostei + 0
06/08/2014
Joao Silva
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)