Buenas tardes vi el mail que le mandaste a Ismael, tengo un problema similar:
En el siguiente c�digo lo que quiero es que si el n�mero es igual a "10", debe de colocarlo sin el ".0", debe de ser un n�mero entero sin decimal,
pero si el n�mero es menor a "10", me debe de poner los decimales aunque estos sean ceros ejemplo "9.0" o "8.0", hice la siguiente rutina, pero al momento de que pasa los valores a lazreport me da el siguiente error:
El proyecto ***** ha lanzado una excepci�n EConvertErrorEConvertError con el mensaje: Invalid argument index in format""
Cuando genero el Memo#, dentro de lazreport, tiene formato num�rico, con un d�gito, alg�n comentario? de antemano gracias
procedure TModuloDatosFrm.frReport1UserFunction(const AName: String; p1, p2,
p3: Variant; var Val: Variant);
var
sdato: double;
Entero: Double;
Fraccion: Double;
begin
If AName = 'FORMATO' Then
Begin
sdato:=frParser.Calc(P1);
if sdato = 10 then
Begin
sdato := Int(sdato);
Val:=Format('%n', [sdato]);
End
else
Begin
Entero := Int(sdato);
Val:=format('%n', [Entero]);
Fraccion := Frac(sdato);
If Fraccion 0 Then
Val := Val + Format('%d', [Fraccion])
Else
Val := Val + Format('%.1d', [Fraccion]);
end;
end;
end;