Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Formato moneda Firebird 2.1 (https://www.clubdelphi.com/foros/showthread.php?t=72964)

santiago14 23-03-2011 00:33:16

Formato moneda Firebird 2.1
 
Buenas, estoy intentando poner en mi grilla unos precios que vienen desde una tabla en mi Base de Datos (Firebird 2.1)
El temas es que cuando el precio tiene sus dos decimales en cero ($10,00) el resultado es $10. No así cuando el precio tiene sus dos decimales distintos de cero.
Quisiera saber la forma de lograr que me muestre a todos los precios con dos decimales después de la coma, inclusive cuando ambos sean cero.
Uso Delphi 7, MDO para la conexión (Mercury Data Object) y Firebird 2.1

Gracias.

Casimiro Notevi 23-03-2011 00:39:09

En los campos del dataset debes poner el displayformat que te interese, ejemplo: '#,##0.00'

santiago14 23-03-2011 00:58:02

Cita:

Empezado por Casimiro Notevi (Mensaje 394307)
En los campos del dataset debes poner el displayformat que te interese, ejemplo: '#,##0.00'

¿Podrías poner un ejemplo por favor?

Supongamos que tenemos la siguiente forma:
Código Delphi [-]
  with qProducto do
  begin
    close;
    sql.clear;
    sql.add('Select p.cod_producto, p.nombre_producto, p.precio_producto as precio_unitario, ');
    sql.add('p.estado_producto ');
    sql.add('From productos p ');
    sql.add('Where p.nombre_producto LIKE :descripcion ');
    sql.add('and p.medida_producto LIKE :unidad ');
    sql.add('Order by p.nombre_producto asc ');

    ParamByName('descripcion').AsString:='%' + ansiUpperCase(descripcion) + '%';
    ParamByName('unidad').AsString:='%' + ansiUpperCase(unidad_medida) + '%';
    try
      Open;
    except
      raise;
    end; //del try
  end; //del with

Aquí me devuelve la lista, y los precios (p.precio_producto) tienen el problema citado. Lo veo cuando pongo la lista que me devuelve el query en la grilla.

Gracias.

Casimiro Notevi 23-03-2011 01:55:56

Puedes poner algo así como:

Código Delphi [-]
qProducto.FieldByName('precio_producto').displayformat:='#,##0.00';

ContraVeneno 23-03-2011 02:20:32

Utilizando el formato "$ ,0.00", sería fuciciente; no es necesario poner el símbolo " # ".

santiago14 23-03-2011 13:44:33

Cita:

Empezado por Casimiro Notevi (Mensaje 394315)
Puedes poner algo así como:

Código Delphi [-]
qProducto.FieldByName('precio_producto').displayformat:='#,##0.00';

"DisplayFormat" no está en la lista de propiedades del objeto TMDOQuery (qProducto), estuve buscando alguno que se pareciera pero nada.

Gracias.

Casimiro Notevi 23-03-2011 13:59:20

¿Qué componente estás usando?, un ¿MDOdataSet?, entonces haz un 'cast', algo así como:
(qProducto as TDataSet).Fieldbyname('precio_producto').displayformat := '#0.00';

Casimiro Notevi 23-03-2011 14:15:33

Lo he probado así:
Código Delphi [-]
(qProducto.FieldByName('precio_costo') as TMDOFloatField).DisplayFormat := '#,##0.00';

Otra cosa que puedes hacer es doble click en el componente query, añades los campos y entonces luego usarías algo así como:
Código Delphi [-]
qProductoprecio_costo.DisplayFormat := '#,##0.00';

guillotmarc 23-03-2011 15:51:50

Otra posibilidad :

qProducto.FieldByName('precio_producto').Currency := True;

Saludos.

Casimiro Notevi 23-03-2011 16:36:24

Ese modo lo desconocía, aunque no me gusta que por defecto te ponga el símbolo de la moneda.

guillotmarc 23-03-2011 18:14:10

Cita:

Empezado por Casimiro Notevi (Mensaje 394361)
Ese modo lo desconocía, aunque no me gusta que por defecto te ponga el símbolo de la moneda.

Sí, es una lástima, yo también dejé de usarlo por eso.

rgstuamigo 23-03-2011 18:38:58

Fuera del tema
 
Me llama la curiosidad los avatares de santiago14 y guillotmarc, pues me parece que son muy pero muy parecidos e identicos, por si acaso ¿no son parientes entre ustedes?:confused::D
Saludos...:)

santiago14 23-03-2011 20:33:39

Cita:

Empezado por rgstuamigo (Mensaje 394371)
Me llama la curiosidad los avatares de santiago14 y guillotmarc, pues me parece que son muy pero muy parecidos e identicos, por si acaso ¿no son parientes entre ustedes?:confused::D
Saludos...:)

No, la verdad es que no somos parientes, por lo menos cercanos. Tal vez si miramos en el árbol genealógico podamos despejar las dudas.
Lo del avatar podría ser simplemente una casualidad.

Igualmente le mando un afectuoso saludo a guillotmarc que siempre ha estado atento a las solicitudes de los foristas.

Saludos.

santiago14 23-03-2011 20:36:21

Cita:

Empezado por Casimiro Notevi (Mensaje 394342)
¿Qué componente estás usando?, un ¿MDOdataSet?, entonces haz un 'cast', algo así como:
(qProducto as TDataSet).Fieldbyname('precio_producto').displayformat := '#0.00';

Para realizar la consulta uso un TMDOQuery.
Voy a probar con las diversas opciones que me han puesto y luego les comento.

santiago14 23-03-2011 21:21:56

He probado todas las opciones que me han dado y no resultaron. Parece que hoy no es un buen día. Seguiré intentando.
Gracias igual.

Casimiro Notevi 24-03-2011 01:42:03

Cita:

Empezado por santiago14 (Mensaje 394419)
He probado todas las opciones que me han dado y no resultaron. Parece que hoy no es un buen día. Seguiré intentando.
Gracias igual.

¿Cómo que no resultaron?, tienen que resultar :D

Pon tu código aquí, que lo veamos.

santiago14 24-03-2011 05:46:04

Cita:

Empezado por Casimiro Notevi (Mensaje 394484)
¿Cómo que no resultaron?, tienen que resultar :D

Pon tu código aquí, que lo veamos.

Mañana a primera hora pongo el código y los mensajes de error que me dieron.
Gracias.

rastafarey 27-03-2011 01:44:06

resp
 
Hermino Si usas componentes dbaware busca la propieda para el formato. y si no usa formatfloat. aunque en los campos del componente de bd mdoquery debes tener esa propiedad.

santiago14 27-03-2011 03:26:29

Mil disculpas, aquí estamos con un feriado muuuuuy laaaargo así que el lunes sin falta les pongo el código fuente y demás para que veamos la cosa en detalle.


La franja horaria es GMT +2. Ahora son las 09:38:44.

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