 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
monicadosal Cdt


Registrado: 28 Ene 2004Mensajes: 10
|
Publicado: Lun 09 Ago, 2004 11:48 am Asunto: forzar a guardar dos decimales |
|
|
Tengo un campo definido como:
Tambien he probado con:
lo utilizo para guardar el precio de una factura, el caso es que cuando guardo por ejemplo 1200,50 euros quiero que me guarde exactamente esa cantidad y no 1200,5.
Tambien quiero que cuando se introduzca 1200 guarde 1200,00 y no 1200, es decir, forzarle a guardar siempre 2 decimales.
Lo necesito porque luego cuando imprimo una factura unas cifras me aparecen con ningun decimal, otras con dos decimales... y queda feo porque no queda alineado.
Alguna sugerencia? |
|
| Volver arriba |
|
 |
mopa Cmdr

Registrado: 29 Jun 2004Mensajes: 145
|
Publicado: Lun 09 Ago, 2004 1:55 pm Asunto: |
|
|
Hola,
utiliza FormatFloat. Mira en la ayuda de builder, es muy sencillo, y puedes formatear el numero decimal como quieras.
un ejemplo..
double x=23.5;
AnsiString cad=FormatFloat("0.00",x)
Cad tendria 23.50 ya que has obligado a que tenga dos decimales.
Saludos. |
|
| Volver arriba |
|
 |
monicadosal Cdt


Registrado: 28 Ene 2004Mensajes: 10
|
Publicado: Lun 09 Ago, 2004 2:53 pm Asunto: |
|
|
Eso ya lo he utilizado para mostrar ese campo en un TEdit.
El problema es que tengo un QuickReport que tiene campos tipo TQRDBText y me leen información directamente de la base de datos.
Es decir le tengo asignado:
| Código: | DataSet=<UNA_TABLA>
DataField=<CAMPO_DE_ESA_TABLA_DONDE_GUARDO_EL_PRECIO> |
Como en la base de datos tiene guardado 23,5 en vez de 23,50, en mi QuickReport me aparece 23,5 y no se cómo puedo hacer para que me aparezca con dos decimales siempre. |
|
| Volver arriba |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Lun 09 Ago, 2004 4:36 pm Asunto: |
|
|
Si has creado campos, puedes configurar su propiedad DisplayFormat a 0.00 para especificar los decimales, esto se reflejará en cualquier componente que use este campo.
Si solo lo deseas especificar en el QuickReport, y como indicas haces uso del componente TQRDBText, en este configura su propiedad Mask a 0.00, si lo que deseas es cambiar radicalmente lo que se va ha mostrar, mejor trabajas con el evento OnPrint del TQRDBText y redefines lo que se va ha mostrar. Por Ejemplo:
| Código: | void __fastcall TAT_PadronPrediosExpPredios::qrdbEtapaPrint(TObject *sender,
AnsiString &Value)
{
if ( Value == "0" )//Si se iba a imprimir "0"
Value = "-";//Hago que Imprima "-"
if ( Value == "" )//y si estaba vacío
Value = "Vacío";// escribo la palabra "Vacío"
}
//No importa a que tipo de campo este relacionado el TQRDBText siempre se pasará el valor del campo como una cadena en Value |
Te recomiendo revisar todas las propiedades y eventos que utilizan las tabla/querys, y los objetos campos. Muchas validaciones y/o formatos simplemente se dan configurando la respectiva propiedad o evento, lo cual va a hacer tu desarrollo más fácil. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|