Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   CAmpos calculados? (https://www.clubdelphi.com/foros/showthread.php?t=11460)

cmena 15-06-2004 02:59:06

CAmpos calculados?
 
Hola.
en un query tengo un atributo que es un campo numerico y tiene dos valores; 1 significa dia y 2 significa noche, como despliego el nombre y no el numero o codigo. dicen que es por medio de los campos calculados y estos no los entiendo o es la opcion mas simple, alguien me puede dar una ayuda con ejemplo.
muchas gracias
Carlos valpara¡so Chile.

Lepe 15-06-2004 04:15:36

mas bien lo que buscas es un DBLookupCombo, las propiedades que te interesan son estas:

Supon que tienes una tabla llamada Codigos, donde guardas el codigo numerico y otra tabla llamada Descripciones que guarda eso mismo, las descripciones (dia, noche) y el codigo numerico asociado.

Código:

datasource := tablaCodigos;
Datafield  := 'codigo';

ListSource := tablaDescripciones
ListField := 'codigo;Descripcion';
keyField := 'codigo';
ListIndex := 1;

con esta configuración, te aparece un combobox que al desplegarlo te aparece el codigo y a la derecha la descripcion (ListField), cuando eliges un valor, se sigue mostrando la descripcion (Listindex:=1) pero internamente guarda el codigo (Datafield).


Haz algunas pruebas variando cosas y entenderás mejor como furula.

espero haberme explicado. :confused:

cmena 16-06-2004 19:15:08

nuevamente
 
no tengo tabla de descripciones, estoy haciendo un select y viene en el taributo un 1 o un 2 y deseo mostrar en la grilla la palabra noche o dia

eduarcol 16-06-2004 19:32:22

Mira en el data set debes entrar al editor de campos, luego agregar un campo nuevo de tipo calculado, y en el evento oncalcfields del dataset realizas la operacion respectiva

if 1 then Noche
else if 2 then Dia

Lepe 17-06-2004 11:54:51

Si solámente lo vas a mostrar en la rejilla de datos, en el evento onColumnDrawCell hago el chequeo y pongo noche o dia.Si la rejilla puede entrar en modo Edición, entonces se complica más. Pero si además tienes que imprimirlo, entonces tendrás que hacer lo mismo, en el evento BeforePrint del QuickReport....

Si tienes que trabajar mucho con ese campo, igual te conviene modificarlo y guardar directamente el texto, (son pocos caracteres).

También puedes crear la tabla descripciones a mano, aunque lleva como consecuencia tener que hacer un inner join por ese campo....

La solución de Eduardocol parece la más simple, aunque nunca la he usado.
En fin, soluciones hay muchas, pero tu dirás que solución es la que te conviene.

Saludos.


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

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