Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
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
__________________
jql-51
Responder Con Cita
  #2  
Antiguo 18-09-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
currency

checate si en las propiedades del campo tienes en true la propiedad currency.
haber si con eso te sale bien ...

Saludos
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....
Responder Con Cita
  #3  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Juan Quintana Ver Mensaje
...
Recuerda poner los tags al código fuente, ejemplo:



Gracias


Debes asignarla una máscara de presentación al campo, ejemplo:
Código Delphi [-]
query.fieldbyname('importe').displayformat := '###,##';
Responder Con Cita
  #4  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
Gracias, por contestarme

Pero no se como poner esa propiedad al campo, me puedes proporcionar un ejemplo
__________________
jql-51
Responder Con Cita
  #5  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
Debes asignarla una máscara de presentación al campo, ejemplo:
Código Delphi [-]
query.fieldbyname('importe').displayformat := '###,##';
Gracias

Cuando pongo la mascara me da error, el compilar no reconoce a displayformat

Estoy usando Delphi 7
__________________
jql-51

Última edición por Casimiro Notevi fecha: 18-09-2012 a las 17:53:48.
Responder Con Cita
  #6  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon el código que estás usando, no tenemos bola de cristal
Responder Con Cita
  #7  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
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.
__________________
jql-51
Responder Con Cita
  #8  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Más arriba te he explicado cómo poner el código fuente
Responder Con Cita
  #9  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
Va de nuevo, espero que cumpla ya lo de los tags............... gracias



Código Delphi [-]
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, Grids, DBGrids, StdCtrls;
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);

begin
   query1.SQL.Clear;
   query1.SQL.Add(
class='sql'><div class="frame_codigo_sql">Código SQL [-]<div id="sql_div_6630e8febdf96" class="texto_codigo_sql">
''>select movinom.idtrab, idafecta, importe, paterno,materno,nombre '>from movinom,trabajador
'); query1.SQL.Add(
class='sql'><div class="frame_codigo_sql">Código SQL [-]<div id="sql_div_6630e8febe0df" class="texto_codigo_sql">
class='quotesql'>'where movinom.idtrab=35 and anodenom=2012 and numdenom=1 and movinom.idtrab=trabajador.idtrab'
div>div>
); query1.Open; end; end.
__________________
jql-51

Última edición por Casimiro Notevi fecha: 18-09-2012 a las 18:34:23.
Responder Con Cita
  #10  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Amigo, tan difícil no es: Seleccionas todo el código y pulsas el botón, nada más
A ver, te lo corrijo...
Responder Con Cita
  #11  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aquí está tu código del principio:
Código Delphi [-]
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.
Responder Con Cita
  #12  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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í:

Código Delphi [-]
TFloatField(Query1.FieldbyName('Importe')).DisplayFormat := '###,###,##0';

Puedes ponerlo después del query1.open;


También puedes probar con:
Código Delphi [-]
TNumericField(Query1.FieldbyName('Importe')).DisplayFormat := ',0.00';

Última edición por Casimiro Notevi fecha: 18-09-2012 a las 18:47:02.
Responder Con Cita
  #13  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
Gracias, lo voy a hacer y te digo
__________________
jql-51
Responder Con Cita
  #14  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
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
__________________
jql-51
Responder Con Cita
  #15  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿El campo de la tabla de qué tipo es?, es que si es integer entonces no puede tener decimales
Responder Con Cita
  #16  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
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)
__________________
jql-51
Responder Con Cita
  #17  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿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.
Responder Con Cita
  #18  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
Arrow

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
__________________
jql-51
Responder Con Cita
  #19  
Antiguo 18-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues aquí hay decimales:
Código:
       idtrab     idAfecta    Importe 
           14             10       95
           17             11        7
           22             10        5 
           25             10      823.13    <---- ¡¡¡ Aquí !!!
¿No será que es tan estrecha la columna que no cabe?
Responder Con Cita
  #20  
Antiguo 18-09-2012
Juan Quintana Juan Quintana is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 22
Poder: 0
Juan Quintana Va por buen camino
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
__________________
jql-51
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Contar y sumar importes de firebird MartinS SQL 4 09-07-2012 10:22:28
Sacar importes de ambas tablas por mes KeyMan SQL 2 27-07-2006 15:31:04
Es Normal Al Presionar ESC en DBDRID se Borre Registro en Uso???? AGAG4 Varios 3 06-04-2006 19:33:34
Importes con formato en rave? davidcm Impresión 2 11-02-2004 09:32:13


La franja horaria es GMT +2. Ahora son las 14:50:06.


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