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
|
|||
|
|||
Problemas con un TDBLookupComboBox dentro de un TDBCtrlGrid
Hola
tengo una tabla de incidencias, donde uno de los campos es operador de tipo integer. También tengo otra tabla de operadores, con la clave integer y el nombre varchar(90), estoy con firebird. El caso es que tengo el control TBDCtrlGrid, ese que multiplica los controles en él insertado, enganchado a la tabla de incidencias, y he pensado en poner un DBLookupComboBox, que me cargue los operadores de la tabla de operadores, de manera que el usuario despliegue la lista con nombres y apellidos y al guardar se guarde el codigo en la tabla incidencias. La forma de cargar los operadores es asignandole a la propiedad listSource el datasource de Operadores, pero no me deja hacer esta acción, me dice que no esta permitida para dicho control ¿Qué puedo hacer? Un saludo |
#2
|
||||
|
||||
Se puede hacer eso asociando el datasource a un ClientDataset y especificando el campo que quieres usar como ftLookup, el Grid ya tiene todo lo necesario para colocar un dblookup cuando encuentre un campo de ese tipo
__________________
self.free; |
#3
|
|||
|
|||
Hola
Estoy utilizando clientDataSet y no me sale. Tengo la tabla incidencia, con el campo operador, he creado en el clientDataSet un campo lookup con otro clientDataSet(obviamente unido a un query con su provider), que tiene la tabla de operadores, así tengo en el clientDataSet cuyo datasource esta ligado al control DBCtrlGrid, el campo lookup OperadorNombre. Si añado un DBLookupComboBox y le asigno en su propiedad FieldName el nuevo campo operadorNombre, me da un error. Un saludo |
#4
|
|||
|
|||
nadie sabe la respuesta ?
|
#5
|
||||
|
||||
DBLooKupComboBox en DBCtrlGrid
Holas,
Con ello no pretendo que cambies tu trabajo, o tu forma de diseño solo deseo mostrar como lo hago y de ello prodrias obtener lo posiblemente necesites. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* *-*-*-* PRIMERA OPCION (creando a mano DBLoockupComboBox)*-*-*-* *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Tenemos dos tablas Incidencias 1.-Codigo_principal as integer 2.-codigo_operador as integer Operadores 1.-codigo_operador as integer 2.-nombre_operador as char(20) Lo siguiente no es un codigo real, pero la logica es la correcta, espero ayude. En un primer formulario (frm1) °°°°°°°°°°°°°°°°°°°°°° "ClientDataSet">>CDS_incidencias = tabla Incidencias "ClientDataSet">>CDS_operadores = tabla Operadores "DataSource">>DS_incidencias = con CDS_incidencias "DataSource">>DS_operadores =con CDS_operadores En cada ClientDaset dar doble click y saldrá una lista vacia, en esa lista presionar click derecho y elejir la opcion "Add all fields" "TDBGrid">>DBG_incidencias->DataSource-> DS_incidencias Configuremos nuestra grilla para que llame al formulario2 (frm2) con dobleck click, un enter.... En un segundo Formulario (frm2) °°°°°°°°°°°°°°°°°°°°°°°° TDBEdit's para los campos del CDS_incidencias "codigo_principal" y "codigo_operador" "TDBloockupComboBox">>DBLCB_operadores -- datos para la tabla incidencias --- DBLCB_operadores->DataSource->DS_incidencias DBLCB_operadores->DataField->codigo_operador (nombre campo/field) -- datos para la tabla operador ---- DBLCB_operadores->ListSource->DS_operadores DBLCB_operadores->ListField->nombre_operador (nombre campo/field) DBLCB_operadores->KeyField->codigo_operador (nombre campo/field) Sus botones de salvar , cancela... etc, etc. ---------------------------------------------------------------- Bueno, activamos nuestro ClientDaset's Navegamos por la grilla, presionamos enter y en el segundo formulario podemos elegir nuestro operador. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* *-*-*-* SEGUNDA OPCION (creando un campo Lookup)*-*-*-* *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Teniendo las mismas tablas de la primera opción En un primer formulario (frm1) °°°°°°°°°°°°°°°°°°°°°° "ClientDataSet">>CDS_incidencias = tabla Incidencias "ClientDataSet">>CDS_operadores = tabla Operadores "DataSource">>DS_incidencias = con CDS_incidencias "DataSource">>DS_operadores =con CDS_operadores En cada ClientDaset dar doble click y saldra una lista vacia, en ella presionar click derecho y elejir la opcion "Add all fields" Creando un campo "lookup" en el CDS_incidencias Estando dentro de la lista de campos del CDS_inciencias, hacer click derecho, y elegir la opción "New Field", aparece una caja de dialogo pidiendo datos para el nuevo campo---..llenamos lo siguente... en Field Properties Name:= lk_operadores Component:= CDS_incidenciaslk_operadores (es automatico) Type:=String Size:=20 En Field Type Elijes el radiobutton "lookup" En Lookup Definition Type KeyFields:=codigo_operador DataSet:=CDS_operador LookupKey:= codigo_operador ResultField:= nombre_operador Prdsionar boton "OK", listo ---------------------------------------------------------------- "TDBGrid">>DBG_incidencias->DataSource-> DS_incidencias Doble clik en la grilla, aparece una lista vacia... elegimos el icono "Add all fields" es el tercer icono (parte superior) Observa que el nuevo campo "lookup" -> lk_operadores tambien está Configuremos nuestra grilla para que llame al formulario2 (frm2) con doble click, un enter.... En un segundo Formulario (frm2) °°°°°°°°°°°°°°°°°°°°°°°° se debe tener activo las lista de campos (el editor de propiedades campos), aquel se activa con doble click en el CDS_incidencias. Eliges un campo de la lista (del editor de propiedades de campos) y arrastras al formulario 2 (frm2) y de forma automatica crea los dbedit's... Cuando se arrastre el campo lk_operadores, de forma automatica es un dblookupcombox. Bueno, activamos nuestro ClientDaset's Navegamos por la grilla --- y si tratamos de modificar la columna con el campo lk_operadores -- aparece un combito y eligen su operador ... Sigamos navegando -- presionamos enter en la grilla y en el segundo formulario podemos elegir tambien nuestro operador. *--------------------------------------------------- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* *-*-*-* TERCERA OPCION (la que se esta tratando de hacer ....)*-*-*-* *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Hago los mismos paso s de la OPCION 2, pero sin considerar el frm2 -Tratando de utilizar un solo formulario, -En vez de un DBGrid, utilizar un DBCtrlGrid.. Arrastro los campos del editor de propiedades de campos del CDS_incidencias al control DBCtrlGrid. En tiempo de diseño = correcto En tiempo de ejecucion = puedo navegar sobre el DBCtrlGrid Al tratar de cambiar un datos del dblookupcombobox me salta un error: "Operation not Allowed in a DBCtrlGrid" Operacion no permitida en un DBCtrlGrid Parece ser que no funciona el dblookupcombobox dentro del componente DBCtrlGrid... Por que?, no estoy seguro, pero que creo que si uno trata de modificar el dblookupcombobox de un registro de incidencias - este tratará de cambiar a todos los registros de incidencias, ya que todos los registros de CDS_incidencias apuntan a un mismo CDS_operadores. Al final, voy a tratar de salir de esa duda, si tu la haces antes o alguien la tiene, no DUDE en escribirlo en el foro Your friend StartKill Lima-Perú (startkill@hotmail.com) Última edición por StartKill fecha: 28-10-2008 a las 18:05:35. Razón: Tipografia |
#6
|
||||
|
||||
Saludos,
Aca hay una solucion, no es mia, pero funciona , la acabo de probar. Utilizando : *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* *-*-*-* TERCERA OPCION (la que se esta tratando de hacer ....)*-*-*-* *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Aca el enlace orignal : http://groups.google.com/group/borla...aca7768f03afd8
Your friend, StartKill Lima-Perú (startkill@hotmail.com) |
#7
|
||||
|
||||
Como hago que el componente DBLookupComboBox se vacie? Es decir... Cuando termino un filtro no quiero que siga mas el nombre anterior y quiero poner en blanco todo. He intentado pero no he tenido exito ya que no tiene estas propiedades:
- DBLookupComboBox.TexT - DBLookupComboBox1.Caption ... Saludos amigos... |
#8
|
|||
|
|||
DBLookupComboBox1.KeyValue := Null;
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Es TDBCtrlGrid el control adecuado para un TPV | hibero | OOP | 1 | 22-04-2008 08:45:18 |
problemas al integrar una aplicación dentro de otra | aranel | Varios | 1 | 23-10-2005 01:40:00 |
Problemas de desplazamiento dentro de un DBgrid? | andressanchez | Varios | 1 | 29-07-2005 21:55:43 |
problemas con threads dentro de un componente | elcigarra | OOP | 26 | 26-05-2005 04:29:35 |
Problemas con TDBLookupComboBox | ramiretor | Conexión con bases de datos | 3 | 30-01-2004 23:31:54 |
|