Se presentan truncados los importes en un DBDrid
Hola a todos, estoy incursionando en el uso de Delphi con la base de Datos SQL Server, pero al hacer un Query y presentar los resultados en un DBgrid, todos los importes mayores a 999.99 se presentan mal, por ejemplo el importe de 27346.73 se presenta solo como 27; el codigo que estoy usando es:
SQL.Clear; SQL.Add('select movinom.idtrab, idafecta, importe, paterno,materno,nombre from movinom,trabajador '+ 'where movinom.idtrab=35 and anodenom=2012 and numdenom=1 and movinom.idtrab=trabajador.idtrab'); Open; Con este codigo se presentan correctamente todas las columnas exepto la de importe; que estare haciendo mal pues la base de datos si tiene los importes correctos. Gracias |
currency
checate si en las propiedades del campo tienes en true la propiedad currency.
haber si con eso te sale bien ... Saludos:cool: |
Cita:
Gracias :) Debes asignarla una máscara de presentación al campo, ejemplo:
|
Gracias, por contestarme
Pero no se como poner esa propiedad al campo, me puedes proporcionar un ejemplo |
Debes asignarla una máscara de presentación al campo, ejemplo:
Gracias Cuando pongo la mascara me da error, el compilar no reconoce a displayformat Estoy usando Delphi 7 |
Pon el código que estás usando, no tenemos bola de cristal ;)
|
Perdon, soy nuevo en estar usando este estupendo Foro, envio el codigo que estoy usando
Gracias uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBTables, DB, Grids, DBGrids, StdCtrls, n00o001; type TForm1 = class(TForm) DBGrid1: TDBGrid; Database1: TDatabase; Movinom: TTable; DataSource1: TDataSource; Query1: TQuery; DataSource2: TDataSource; Button1: TButton; Trabajador: TTable; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var wimpo: double; xImpo:string; begin query1.SQL.Clear; query1.SQL.Add('select movinom.idtrab, idafecta, importe, paterno,materno,nombre from movinom,trabajador '); query1.SQL.Add('where movinom.idtrab=35 and anodenom=2012 and numdenom=1 and movinom.idtrab=trabajador.idtrab'); query1.Open; query1.First; end; end. |
Más arriba te he explicado cómo poner el código fuente :confused:
|
Va de nuevo, espero que cumpla ya lo de los tags............... gracias
'); query1.SQL.Add( class='sql'><div class="frame_codigo_sql">Código SQL [-]<div id="sql_div_6653e3ab80ed1" class="texto_codigo_sql">); query1.Open; end; end.class='quotesql'>'where movinom.idtrab=35 and anodenom=2012 and numdenom=1 and movinom.idtrab=trabajador.idtrab'div>div> |
Amigo, tan difícil no es: Seleccionas todo el código y pulsas el botón, nada más :confused:
A ver, te lo corrijo... |
Aquí está tu código del principio:
|
El query1.first sobra porque cuando se hace query1.open se va al primer registro.
TQuery creo que es de los componentes dbexpress, no los he usado mucho, creo que es así:
Puedes ponerlo después del query1.open; También puedes probar con:
|
Gracias, lo voy a hacer y te digo
|
ya probe las 2 formas que me comentas, pero se sigue truncando;
no sera que la extraccion de los datos de la tabla sea la que me da el problema; aunque veo la tabla con el analizador de SQL y si estan los importes correctos, Te lo agradezco de todas formas Gracias |
¿El campo de la tabla de qué tipo es?, es que si es integer entonces no puede tener decimales ;)
|
El campo es TFloatField, asi me lo marca Delphi
Si veo el tipo de campo con el Analizador de SQL me marca Numeric (11, 2) |
¿No tendrás puesta una máscara en el dbgrid?, pega un dbgrid nuevo y sólamente asóciale el datasource, no le toques nada más y... prueba.
|
Siguiendo tu observacion, fui un poco mas alla y genere una nueva forma donde solamente pege un DBGRid y le asocie el data source y el resutado fue que la columna de importe sigue sin reflejar lo correcto;
me dio lo siguiente: idtrab idAfecta Importe ...... 14 10 95 17 11 7 22 10 5 25 10 823.13 cuando debia de haber sido idtrab idAfecta Importe ...... 14 10 95324.36 17 11 7045.79 22 10 5182.31 25 10 823.13 |
Pues aquí hay decimales:
Código:
idtrab idAfecta Importe |
Estuve checando otros campos de la tabla que tienen importes y lo que observe es que estan definidos como TStringField y esos campos si se presentan correctamente; pero los campos defindos como TFloatField cuando son mayores a 999.99 no se presentan bien;
Ya agrande la columna del importe y no salen bien.......ya no se que hacer Gracias de todos modos |
La franja horaria es GMT +2. Ahora son las 03:36:43. |
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