![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Una de las maneras para hacer lo que quieres es utilizar el evento OnGetText del campo FORMA_PAGO del DataSet en el cual vas a hacer la consulta.
No sé si tienes un DataSet para dicha consulta ? Pero si es así, puedes utilizar dicho evento que sería algo así como :
De esta manera en el DBGrid que utilizas sale el texto que defines ewn esta función. (En tiempo de diseño, no. Pero en tiempo de ejecución, si). Espero haberte ayudado. ![]()
__________________
Piensa siempre en positivo ! |
|
#2
|
||||
|
||||
|
Cita:
¡Y claro que eres una ayuda! Aunque no me contestes la pregunta directamente, me sirve para seguir familiarizándome con el resto de los controles y sus eventos. ![]()
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
|
#3
|
||||
|
||||
|
Perdón .... lo mismo es prácticamente utilizar el TIBDataSet que el TIBQuery.
No había sabido expresarme correctamente, y no me fijé detalladamente en tu exposición. Pues bien. El DBGrid lo tendrás asociado al TDataSource, y a su vez el DataSource lo tendrás asociado al TQuery. Correcto. hasta aquí. Lo que necesitas ahora es hacer doble click encima del elemento TQuery y ahí te aparecerá (en principio) una lista en blanco. De nuevo click derecho y añades todos los campos que te aparecen, que serán aquellos que has definido en tu consulta SQL. Siguiente paso. Sobre el campo FORMA_PAGO haz click, y en Object Inspector selecciona los eventos. Tendrás el evento OnGetText y ahí pones el código que te puse anteriormente. Y ya está. Con esto en tiempo de ejecución obtendrás el resultado esperado. ![]()
__________________
Piensa siempre en positivo ! |
|
#4
|
||||
|
||||
|
Tampoco ví la respuesta de Neftalí. Pero creo que lo más fácil e inmediato es lo que he detallado en mi respuesta anterior.
Yo al menos lo utilizo en innumerables ocasiones de dicha manera. ![]()
__________________
Piensa siempre en positivo ! |
|
#5
|
||||
|
||||
|
Funciona muy bien con ese sistema, no lo conocía.
![]() Gracias gluglu!!! Gracias Neftalí!!!
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
|
#6
|
||||
|
||||
|
Alguien lo ha comentado ya, pero aquí va más detallado:
Crea una tabla Formapago con los campos idformapago autoincrement y Formapago de tipo varchar(20). Crea una vista (View) que una la tabla Cliente y formapago. Usa un TIBQuery para consultar esa vista enlazado a un TIBUpdateSql. El query se usa para seleccionar un registro de la vista, (que ya incluye los campos idFormaPago y FormaPago) y el UpdateSql, se encarga de modificar la tabla cliente estableciendo el idformapago que se haya elegido de un DBLookUpComboBox. La tabla formapago, puedes dejarla oculta para el usuario (o crear un simple Form que permita añadir formas de pago ... ya esto depende del tiempo que tengas). La forma de pago puede cambiar: cheque, efectivo, pagaré, por internet, etc, y solo tendrás que añadir un registro a esa tabla para que todo funcione sin problemas. Si usas un carácter, después tienes que interpretar ese número en el código delphi y/o en consultas sqls, tendrás que modificar el código fuente y las sqls para añadir una nueva forma de pago. Ten en cuenta que la tabla Formapago tendrá 4 o 5 registros como mucho, no supone mucha carga extra, pero simplifica muchisimo actualizaciones, borrados, etc, estableciendo la integridad referencial. Por otra parte haces un correcto diseño de la Base de Datos, en cuanto a Normalización (por ejemplo). Saludos Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#7
|
||||
|
||||
|
Y como dijo Gabo que sabía hacer, no sería mejor que en vez de complicarnos la vida con un Vista adicional y tal, hacer directamente un Join en la consulta SQL y obtener los textos correspodientes según los valores del campo FORMA_PAGO.
Pero entiendo una vez más que esa no era la pregunta de Gabo, sino saber si se podía hacer sin crear precisamente esa tabla y sin el Join. Pongo un caso articular mío que viene a cuento de mi hilo 'paralelo' que anda ahora mismo por aquí en el foro SQL. Yo obtengo 3 campos de mi consulta SQL, Apellido1, Apellido2 y Nombre, y los quiero mostrar en una UNICA columna de un DBGrid, y en el 'formato' Apellido1 Apellido2, Nombre es decir los dos apellidos separados por un espacio y con una , del nombre. Pero condicionando a si existe o no el 2º Apellido, y a si existe o no también el Nombre obtenido en la consulta SQL. Para ello me viene ideal la función OnGetText de un campo del DBGrid.
En cualquier caso, Gabo sabrá usar la que a él mejor le interese con las diferentes opciones que le estamos dando. ![]()
__________________
Piensa siempre en positivo ! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Obtener valor de una celda de un DBGrid | Albano | Conexión con bases de datos | 10 | 13-01-2006 17:53:26 |
| Tomar el valor de una celda de un dbgrid | Petolansa | Conexión con bases de datos | 9 | 09-09-2005 02:33:34 |
| Obtener el valor de una celda de dbgrid | gescoto99 | OOP | 3 | 31-03-2004 22:47:16 |
|