Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2006
paty_rlopez paty_rlopez is offline
Miembro
 
Registrado: ene 2006
Ubicación: Torreón
Posts: 46
Poder: 0
paty_rlopez Va por buen camino
Angry Funcion SUM me regresa una cadena

Hola a todos
Estoy haciendo un reporte que toma sus datos de la siguiente consulta
Código:
Select sum(T.MONTO) , e.nombre as e_nombre , e.id_empresa as id_estacion , c.nombre as c_Nombre , c.ID_CLIENTE , tc.NUMERO_TARJETA , tc.ID_TARJETA , co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO , t.CONSECUTIVO , t.ID_TICKET
From CORTE CO, TICKET__RELACION_IA T , empresa e , cliente c , TARJETA_CLIENTE TC
Where CO.ID_CORTE = T.ID_CORTE 
and t.id_empresa = e.ID_EMPRESA 
AND CO.ID_ESTACION = E.ID_EMPRESA 
and t.id_cliente = c.ID_CLIENTE 
AND T.ID_TARJETA = TC.ID_TARJETA 
Group by e.id_empresa, e.nombre, c.NOMBRE, c.ID_CLIENTE, tc.NUMERO_TARJETA, tc.ID_TARJETA, co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO, t.CONSECUTIVO, t.ID_TICKET
la cual ejecuto dentro de un TIBDataSet.
Pero sucede que cuando pongo una mascara al TQRDBText, me escribe el nombre del campo (ósea SUM).

Entonces en la ventana de whatches vi que el valor que me regresaba en ese campo era una cadena, ejemplo;
DataSet.FieldByName(‘SUM’).Value = ‘520.35’

Por lo anterior no puedo poner mascaras al TQRDBText que me muestra este campo y tampoco puedo hacer sumatoria de los resultados en un QRExpr

Alguien me puede explicar por qué me regresa el valor del la sumatoria en cadena, y como puedo solucionarlo.

De antemano gracias.
Responder Con Cita
  #2  
Antiguo 12-04-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Recuerda que Value es una propiedad Variant y por alguna razón está interpretando el valor como cadena en lugar de número flotante. En la lista de observaciones coloca las expresiones DataSet.FieldByName (‘SUM’).ClassName y DataSet.FieldByName (‘SUM’).DataType. Eso ayudará a saber qué tipo de dato esta resultando para esa columna de la consulta, lo cual nos dará más pistas.

Un abrazo sumado.

Al González.
Responder Con Cita
  #3  
Antiguo 12-04-2006
paty_rlopez paty_rlopez is offline
Miembro
 
Registrado: ene 2006
Ubicación: Torreón
Posts: 46
Poder: 0
paty_rlopez Va por buen camino
hola Al González
ya hice lo que me sugieres pero me muestra como resultado lo siguiente
Cita:
Inaccessible value
en las dos propiedades.
Por favor tenme paciencia
¿Que más puedo hacer?
Responder Con Cita
  #4  
Antiguo 13-04-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Allow function calls

¡Hola Paty! (supongo que ese es tu nombre)

Cuando agregues la observación, utiliza la opción Allow function calls para que se muestre el valor de las expresiones que introduces. Desde luego, también es necesario que el programa se encuentre detenido en un punto donde dichas expresiones sean válidas.

Espero esto sea de utilidad, seguimos en contacto.

Un abrazo depurando.

Al González.
Responder Con Cita
  #5  
Antiguo 18-04-2006
paty_rlopez paty_rlopez is offline
Miembro
 
Registrado: ene 2006
Ubicación: Torreón
Posts: 46
Poder: 0
paty_rlopez Va por buen camino
Sigue marcando lo mismo

Al González
¿Como lo supiste?
bueno, ya hice lo que dijiste y el resultado fue el siguiente:
Cita:
DataSet.FieldByName('sum').DataType: Inaccessible value
DataSet.FieldByName('SUM').ClassName: 'TFMTBCDField'
Mira para solucionarlo provisional mente agregue una casta a la consulta de tal manera que me quedó así. Dame tu opinión, y si sabes una mejor manera. Bienvenida.
Código:
Select cast(sum(T.MONTO) as numero (12,2)) , e.nombre as e_nombre ,
e.id_empresa  as id_estacion , c.nombre as c_Nombre , c.ID_CLIENTE ,
tc.NUMERO_TARJETA , tc.ID_TARJETA , co.FECHA_HORA_INI, co.ID_CORTE,
co.TURNO , t.CONSECUTIVO , t.ID_TICKET
From CORTE CO, TICKET__RELACION_IA T, empresa e , cliente c , TARJETA_CLIENTE TC
Where CO.ID_CORTE = T.ID_CORTE and t.id_empresa = e.ID_EMPRESA      AND
CO.ID_ESTACION = E.ID_EMPRESA and t.id_cliente = c.ID_CLIENTE AND T.ID_TARJETA = TC.ID_TARJETA
Group by e.id_empresa, e.nombre, c.NOMBRE, c.ID_CLIENTE, tc.NUMERO_TARJETA,
tc.ID_TARJETA, co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO, t.CONSECUTIVO, 
t.ID_TICKET
Gracias por tu ayuda.
Responder Con Cita
  #6  
Antiguo 18-04-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Ah, el problema debe ser el tipo del campo TICKET__RELACION_IA.MONTO en la base de datos. Si ese campo es monetario, te sugiero que lo crees de tipo "Numeric (15, 4)" (numérico, precisión de 15, escala de 4); de esa manera no te dará problemas.

Una observación: eso que llamas «casta» en realidad se conoce como molde de tipo o moldear.

Cambiando de tema, veo que vives en Torreón. Tengo buenos recuerdos de cuando viví en aquella ciudad, especialmente del Paseo de La Rosita, Torreón Jardín y La Nive de Chepo. Lo único que no me gustaba era subirme a un taxi y que el conductor no supiera leer (me sucedió en 1997) . Por cierto, Contraveneno, un conocido y amigable participante de estos foros, también vive ahí.

Un abrazo lagunero.

Al González.
Responder Con Cita
  #7  
Antiguo 18-04-2006
paty_rlopez paty_rlopez is offline
Miembro
 
Registrado: ene 2006
Ubicación: Torreón
Posts: 46
Poder: 0
paty_rlopez Va por buen camino
Si esta declarado numeric

hola
Volviendo al tema del hilo, la declaración de la tabla es la siguiente:
Código:
RECREATE TABLE TICKET__RELACION_IA 
(
  ID_TICKET                          INTEGER         NOT NULL,
ID_CLIENTE                         INTEGER,
  CVE_DESPACHADOR                    VARCHAR(    15)  COLLATE NONE,
  POSICION                           INTEGER,
  CONSECUTIVO                        INTEGER,
  PRINCIPAL                          INTEGER,
  TIPO_VENTA                         VARCHAR(    15)  COLLATE NONE,
  ESTADO                             VARCHAR(    45)  COLLATE NONE,
  NUM_COPIAS                        SMALLINT,
  FECHA                            TIMESTAMP,
  HORA                             TIMESTAMP,
  CAPTURADOR                         VARCHAR(    25)  COLLATE NONE,
  FECHA_CAPTURA                    TIMESTAMP,
  ID_TARJETA                         INTEGER,
  FECHA_HORA                       TIMESTAMP,
  ID_CORTE                           INTEGER,
  ODOMETRO                           NUMERIC( 12, 4),
  RUTA_FOTO_RESTRICCION              VARCHAR(   300)  COLLATE NONE,
  RUTA_FOTO_TICKET                   VARCHAR(   300)  COLLATE NONE,
  RENDIMIENTO                        NUMERIC( 18, 6),
 MONTO                              NUMERIC( 18, 6),
  FP_ELECTRONICO                     NUMERIC( 18, 6),
  FP_TRADICIONAL                     NUMERIC( 18, 6),
  ID_RESTRICCION                     INTEGER,
  ID_FACTURA                         INTEGER,
  ID_TICKET_LOCAL                    INTEGER,
  ID_EMPRESA                         INTEGER,
CONSTRAINT PK_TICKET__RELACION_IA PRIMARY KEY (ID_TICKET)
);

el campo MONTO esta declarado como numerico, asi que sigo sin saber cual es le problema.

Gracias por los saludos y por los conocimientos que compartes conmigo
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
Funcion de Que Retorna una Cadena Abel Garcia Firebird e Interbase 4 23-07-2005 10:30:02
Problema: Un tipo LONGBLOB me regresa sólo 32,769 bytes molarte MySQL 4 08-02-2005 19:19:59
SQLClientDataSet no regresa lo esperado EITB OOP 2 27-09-2004 18:45:25
[Europa - Patentes de SW]: el peligro regresa ... kinobi Noticias 16 19-05-2004 13:32:33
Buscar cadena dentro de otra cadena doverzhoff Varios 4 27-01-2004 05:27:15


La franja horaria es GMT +2. Ahora son las 13:39:42.


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