Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas para mostrar campo calculado en Grid (https://www.clubdelphi.com/foros/showthread.php?t=54159)

whatson 10-03-2008 21:43:15

Problemas para mostrar campo calculado en Grid
 
Buen dia,
Estoy utilizando 2 tablas de MySql llamadas Zprods y ZProdsPaso.
con los campos de clave,descrip,precio
Estoy utilizando Delphi 7 y componentes Zeos.
Lo primero que hago es compararlas para filtrar los registros que no contiene la tabla de prods con estos parametros dentro del Zquery:

SELECT * FROM prodspaso LEFT JOIN prods
ON prodspaso.articulo = prods.articulo
WHERE prods.articulo IS NULL ;

Me funciona bien y lo despliego a un Grid para su posterior exportacion a excel.
Lo que no he podido lograr es poner una columna mas en el grid con el campo de precio * 1.15.

La conexion es la siguiente DataSorce1-Zquery1-DBGrid.

Hice en la ZtablaProdsPaso un campo calculado para que atravez de la conexion de mis componentes me pueda mostrar la columna con este valor calculado. Pero no logro hacer que Me aparezca el campo para agregarlo en el grid.

El desplegado de la informacion en el grid, logicamente se hace unicamente abriendo el Query ( ZQueryNuevos.Open).

No he podido localizar informacion para hacer esto. Les agradeceria que me pudieran ayudar. Si Me hace falta algun dato mas , con gusto Lo puedo proporcionar.

Gracias.

eduarcol 10-03-2008 21:51:02

A ver, si logre entender deberia funcionar algo asi:

Código SQL [-]
SELECT clave,descrip,precio, precio * 1.15 as preconimp FROM prodspaso LEFT JOIN prods 
ON prodspaso.articulo = prods.articulo
WHERE prods.articulo IS NULL ;

whatson 11-03-2008 00:21:33

Gracias por responder eduarcol.

En realidad si es el resultado que estoy buscando, pero Me manda un error:
SQL error column:'articulo' in field list is ambiguous.

Tengo este mismo campo en las dos tablas son indice principal en ambas.

eduarcol 11-03-2008 01:06:02

y estas utilizando la instruccion tal cual esta arriba???, o le hicistes alguna modificacion??

whatson 11-03-2008 01:37:37

Mira , este es el codigo que puse en el Query:


Código SQL [-]
SELECT clave,descrip,precio, precio * 1.15 as precioventa FROM prodspaso 
LEFT JOIN prods ON prodspaso.articulo = prods.articulo
WHERE prods.articulo IS NULL ;

mas o menos como Me lo dejaste, pero cambié preconimppor PRECIOVENTA que es un campo calculado en mi ZtableProdsPasoGracias por tu atension.

whatson 11-03-2008 02:01:21

Muchas gracias por Tu ayuda.

Ya funciona.

Lo que hice fue utilizar en el query

<DIV class=frame_codigo_sql>Código SQL [-]<DIV class=texto_codigo_sql id=sql_div_47d5d9b5b5f80>

eduarcol 11-03-2008 02:01:55

Pero ya el error que mencionas viene dado por la setencia del JOIN, y alli no estoy muy puesto, asi que si otro compañero puede ayudarte :D

whatson 11-03-2008 02:08:24

Muchas gracias por Tu ayuda.

Ya funciona.



Lo que hice fue utilizar en el query



SELECT * FROM prodspaso LEFT JOIN prods

ON prodspaso.articulo = prods.articulo

WHERE prods.articulo IS NULL



y le agregue a este mismo query un campo calculado.

y en el evento OnCalcFields puse :



ZQueryNuevosPRECIOVENTA.Value := ZQueryNuevosCOSTO_U.Value * 1.15;



y Me funciono.

Lo que estaba haciendo mal, creo, es de que hacia el campo calculado en la

ztableProsdsPaso.



Gracias de nuevo.

whatson 11-03-2008 02:10:32

Disculpen que no le coloque las etiquetas para la sintaxis, Me da algunos errores.


La franja horaria es GMT +2. Ahora son las 05:47:26.

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