Fórum Soma no FastReport no código do componente #454216
04/09/2013
0
Ajudem-me, por favor.
Estou compilando o código abaixo no componente do FastReport, porém apresenta o erro:
'''' is not a valid floating point value
procedure Memo11OnBeforePrint(Sender: TfrxComponent);
var
resultado, total, total_fat : double;
begin
total := StrToFloat(fdsRelatTOTAL_FAT.Value);
total_fat := StrToFloat(Memo12.Value);
resultado := total / total_fat;
Memo11.Text := FloatToStr(resultado);
end;
Elton Ésqui
Curtir tópico
+ 0Posts
04/09/2013
Marcos Oliveira
Porque você não insere um componente "Texto do Sistema" e faz a função dentro dele? Você pode criar uma função personalizada, além das básicas de agregação.
Att,
Marcos
Gostei + 0
05/09/2013
Elton Ésqui
O relatório deve ser assim:
Cli---Nome-----Total------Part.% 01----Joao-----950,00-----32,76% 02----José-----750,00-----25.86% 03----Maria----650,00-----22.41% 04----Pedro----550,00-----18.97% Total---------2900,00-----------
Neste caso, para obter o % deveria pegar o valor 950,00 e dividir pelo total. E os demais a mesma coisa.
Gostei + 0
05/09/2013
Marcos Oliveira
Gostei + 0
05/09/2013
Elton Ésqui
Mas deu algum erro.
Gostei + 0
05/09/2013
Marcos Oliveira
Gostei + 0
05/09/2013
Elton Ésqui
procedure TDMForm.frxRelatorioGetValue(const VarName: string; var Value: Variant);
var
total, total_fat, resultado : Double;
begin
total_fat := sdsRelat.FieldByName('TOTAL_FAT').AsFloat;
total := 0;
while not sdsRelat.Eof do
begin
total := total + sdsRelat.FieldByName('TOTAL_FAT').AsFloat;
sdsRelat.Next;
resultado := total_fat / total;
end;
if CompareText(VarName, 'Acumulado') = 0 then
begin
Value := FormatFloat('#,##0', resultado);
end;
end;
Gostei + 0
06/09/2013
Elton Ésqui
Seria melhor fazer a consulta normal e depois somar com o código acima?
SELECT
C.CODIGO,
C.NOME,
SUM(N.TOTAL) AS TOTAL_FAT
FROM
NRNOTA N
INNER JOIN VRNATU OP ON (N.NATU_OPE = OP.CODIGO)
INNER JOIN VRCLIE C ON (N.CLIENTE = C.CODIGO)
WHERE
N.DATA_EMI BETWEEN :DATAINI AND :DATAFIN AND
N.ORIG_NOTA IN ('1','2') AND
N.FLAG_EMI = 1 AND
OP.MOVIMENTO = 'S'
GROUP BY
C.CODIGO,
C.NOME
ORDER BY TOTAL_FAT DESC
Gostei + 0
13/09/2013
Elton Ésqui
Alguém teria alguma ideia?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)