[Lazarus-es] Variables en LazReport

Francisco Javier Solis Palma fsolispa en gmail.com
Mar Jul 5 00:56:45 CEST 2011


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;




More information about the Lazarus-es mailing list