![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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 |
|
#2
|
|||
|
|||
|
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 ![]() |
|
#3
|
|||
|
|||
|
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|