![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
combo box -> campo calculado
Hola, yo como siempre con mis preguntas de primer grado :sonrojado:
Tengo un campo calculado que lo unico que hace es mostrar dos campos concatenados con una coma (Nombre y apellido, el valor del campo calculado resultante seria "PEREZ, JUAN" , por ejemplo). Un combobox que permite seleccionar la ordenación, entre ellas ordenar por Nombre o Apellido... Lo que yo quiero es que si ordena por apellido ponga primero el apellido, y si ordena por nombre ponga primero el nombre.... (si ordena por nombre que aparezca "JUAN, PEREZ"). Lo que se me ocurrió es que en el evento onCalcFields del componente Dataset poner un condicional que se fije el valor text del combo, pero no funciona... el combo al realizar la ordenación cierra y abre el dataSet, pensé que al reabrirse el evento se recalcularía como yo quiero pero nada... en teoría cual sería la forma correcta de lograrlo? al parecer no me toma el valor del combobox. la otra que me queda es usar dos campos calculados y setear a visible el que sea pertinente, pero esa forma como que no me agrada mucho... saludos! |
#2
|
||||
|
||||
Hola
La verdad no entiendo. Supongo que tendras una tabla en la que esten los campos nombre y apellido. Si es asi, para que hacer un campo calculado, si se puede hacer con una sentencia sql y un if then. Lo que haces en el campo calculado es una concatenacion, por que no directa?. Saludos |
#3
|
||||
|
||||
la sentencia sql del dataset es un simple 'select * from personas'
en el evento onCalcFields del campo calculado del dataset tengo una asignación como esta: 'Dataset1['cldNOMBRE_COMPLETO']:= Dataset1['APELLIDOS']+', '+Dataset1['NOMBRES'] ;' En el combo box tengo los criterios de ordenación, cuando cambia su texto a "Nombre" yo quiero que lo asignado al campo 'cldNOMBRE_COMPLETO' sea primero el nombre, después el apellido(dar vuelta la parte derecha de la asignación). Lo que hice es, dentro del evento onCalcFields un if then else que se fija el valor del combobox, pero de esta forma no funciona.... lo que dices supongo que es un select condicional en vez de el 'select * from personas' que tengo en el dataset? si es así, como sería la sintáxis de eso? gracias |
#4
|
||||
|
||||
utiliza un dblookupcpmbobox, conectado a un dataset que tenga el campo que tu dices, puedes separar el nombre de los campos con punto y coma ";"
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#5
|
||||
|
||||
hola eduarcol
en el combobox solamente aparecen los criterios de ordenamiento: "nombre" ... "apellido"... etc , una lista estática me basta, ese no es mi problema =( saludos |
#6
|
||||
|
||||
Hola
Veamos si logro entender esto. Tienes una tabla en la que hay dos campos, nombre y apellido. Tienes un combobox en el que tienes una serie de items para elegir, entre ellos Nombre y apellido. Este combobox es el que genera el filtro. Si estoy bien hasta aqui me dices. Ahora pregunto: donde vas a presentar ese filtro?. Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Campo Calculado!!! | Ledian_Fdez | OOP | 1 | 03-10-2007 22:10:01 |
Pasar un campo calculado a un campo del mismo DbGrid | maravert | Conexión con bases de datos | 3 | 12-05-2006 00:31:30 |
Campo calculado | sercornejov | MySQL | 3 | 09-08-2005 02:54:35 |
Campo de bd calculado | davidgaldo | MS SQL Server | 3 | 20-05-2005 15:50:22 |
![]() |
|