Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-04-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Wink Cómo Usar el FormatFloat(<formatstr>, <value>)

Saludos a Todos,

Estoy utilizando Fast-Report, tengo que formatear números de como los siguientes
Entrada Salida Ideal
123456 123.456
-12345 (12.345)

Pero cuando utilizo números negativos que necesito que salgan entre ().

He leido la documentación de Fast-report al respecto, la cual hace referencia a que utiliza la misma estructura de Delphi. Busco la estructura (Format strings), la que necesito es '%m', el cual es para formatos de moneda. Cuando trato de comprobar el formato me sale un error.
Para ver estoy utilizando la siguiente en delphi
Formato : Variant;
Formato := Format('%8.0m',[-123456]);
y sale formato incompatible con el argumento.

Pregunta
Cual es el formato para que cuando entra un número negativo, salga entre () y positivo.

Gracias de antemano

Juan Carlos
Responder Con Cita
  #2  
Antiguo 20-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
supongo que para el formato %m espera un valor de coma flotante y le estas enviando un entero... probá con

Formato := Format('%8.0m',[-123456.0]);

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 20-04-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Wink

Gracias.

Lo probe en Delphi y salio todo bien, pero cuando lo probe en Fast-report, el resultado fue negativo.

La información de la función FormatFloat(<Fmt>, <Nro>),

Donde <Fmt> dice que tiene los mismos valores que en delphi, no es correcto.

Ahora mi pregunta es la siguiente, como puedo hacer (que no resulte costoso), para que los Números negativos salgan entre () en Fast-Report.

Por mi Parte estoy Utilizando lo siguiente

En la variable

[IF([TOTAL] > 0, [TOTAL] , [TOTAL] * (-1))]

En Antes de Imprimir
if [TOTAL] > 0 Then
Begin
Memo23.Visible := False;
Memo26.Visible := False;
End
Else
Begin
Memo23.Visible := True;
Memo26.Visible := True;
End;
En Donde
Memo23 := '(' y Memo26 := ')'

Resulta, pero cuando se tiene 5, o más variable, resulta costoso en tiempo.

Esperando sus respuestas Saluda Atte.

Juan Carlos
Responder Con Cita
  #4  
Antiguo 23-04-2004
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Saludos, encontre la solución, que es modificando los fuentes de fast-report )f_Class.pas)
de la siguiente manera

DecimalSeparator := Chr(Format and $FF);
case f2 of
0: Result := FormatFloat('##0.' + Dup('#', (Format div $0100) and $FF), v);
1: Result := FloatToStrF(v, ffFixed, 15, (Format div $0100) and $FF);
2: Result := FormatFloat('#,##0.' + Dup('#', (Format div $0100) and $FF), v);
3: Result := FloatToStrF(v, ffNumber, 15, (Format div $0100) and $FF);
4: Result := FormatFloat(FormatStr, v); // Aqui
end;
se cambia por lo sigyuiente
Se define
Valor : Currency;
se cambia
4: if Copy(FormatStr,1,1) = '%' then
Begin { TODO : Cambio en el Formato de Presentacion, para Nro Negativos }
Valor := v;
Result := ' ' + SysUtils.Format(FormatStr, [Valor]);
End
Else
Result := FormatFloat(FormatStr, v);

En la planilla fast-report, en formato de variables (personalizada) se coloca por ejemplo %18.0m con esto toma el número y lo cambiente a () positivo (cuando es negativo). Con esto puede usarse todo los formatos % de Delphi.

Y por Ultimo en la aplicación principal en

procedure TfMenu.FormShow(Sender: TObject);
begin
CurrencyString := '';
NegCurrFormat := 0;

end;
Saluda

Juan Carlos

Última edición por teletranx fecha: 23-04-2004 a las 00:34:44.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:40:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi