![]() |
Filtro en dbgrid
Tengo un from con un dbgrid inegrado con un clientdataset, provaider y un datasouce y por supuesto una adotable, estoy trabajando con sqlserver. Mi pregunta es como hacho para que en una celda pueda yo filtrar y seleccionar atravez de un like los datos de otra tabla. Ejemplo en el grid de facturación debo poder seleccionar un producto de la tabla de producto y que me traiga en el grid el costo unitario, el codigo y la descripción del producto almacenado en la misma tabla.
|
Hola
El dbgrid MUESTRA el contenido de lo que necesites. NO me parece buena practica mostrar el contenido de una tabla, cambiar un dato y mostrar el contenido de otra tabla. Lo mas sencillo y logico es buscar el dato de otras maneras y si tienes que mostrarlos en ese dbrid hacerlo por lo menos con un masterdetail. Saludos |
Eso ya se puso difícil, bueno realmente quisiera que dentro del grid en una celda en especifico el usuario pueda accionar el eclipse y abrir una consulta con un like y al seleccionar la linea de la consulta me traiga el codigo y la descripción para que el usuario coloque solo la cantidad.
Lo que tu me esta recomendando no tengo ni idea como hacerlo. Oye! Gracias por tu pronta respuesta. Gracias a este foro estoy avanzando con mi programa. |
Hola
Lo mas seguro es que no estoy entendiendo lo que necesitas hacer. Saludos |
Cita:
|
Hola
Creo que seria bueno que vieras este tutorial que hice de facturacion, tal vez te de ideas. Revisa la parte del uso que hago del dbgrid, creo que es mas logico. Saludos |
Seguramente no me estoy explicando bien. Bueno pero puede decirme como hago para darle una función a buttonstyle cbsellipsis en una columna de un grid? Es allí donde quiero lograr lo que te comente. Al usuario presionar el cdsellipsis debe poder seleccionar un producto de una tabla y traerlo hasta el grid
|
Hola
Saludos |
Hola
Aqui te dejo un ejemplo de como usar el boton elipse que quieres, ademas de otras cosas.:) En la primera columna, IDUsuario, esta el boton, si lo presionas saldra un form con un memo. Es muy sencillo el uso, revisalo. Saludos |
|
Hola
Con gusto amigo, aunque es un ejemplo sencillito, a lo novato. Saludos |
Una pregunta?
Puedo usar un TDBLOOKUPCOMBO o TDBCOMBOBOX en una celda de un dbgrid? si la respuesta es si como lo hago? El TDBLOOKUPCOMBO o TDBCOMBOBOX deben estar conectado a una tabla y al selecionar la linea del TDBLOOKUPCOMBO o TDBCOMBOBOX debe traerme el codigo en la celda del dbgrid. |
Hola
El dbgrid tiene un combobox, es lo mismo, solo hay que llenarlo con los datos de la tabla. Osea, SI se puede. COMO ???: Depende de como lo quieras hacer ya que el dbgrid se supone que estara lleno, no??. Saludos |
El dbgrid no esta lleno, esta completamente vacio y conectado a clientdataset. ahora por la opción que tu me indicas (PICKLIST) solo me mostrara lo que yo le escribo alli, mas sin embargo yo quiero que me muestre la información de una tabla en especifico.
|
Hola
Hay que tener en cuenta que es cada cosa. 1- El dbgrid tiene celdas, en ellas se puede colocar un boton, un combobox o nada. 2- Cada celda se puede manejar como se necesite. 3- Si se quiere, por ejemplo, llenar el combobox que tiene el dbgrid entonces se utiliza la propiedad PickList (efectivamente). 4- Para llenar ese combobox con la informacion de una tabla entonces se puede, por ejemplo, hacer esto: Osea: Muy facil, no?. Saludos |
excelente esa es la mejor opcion, de verdad gracias.
|
pero ahora tengo una duda: donde coloco esta funcion? onshow, oncellclick? en donde.
|
Hola
No es una funcion. Colócalo en el evento ONShow del form que contiene el dbgrid. Saludos |
perfecto pero donde llamo el picklist?
|
Hola
No entiendo ?. A ver si es lo que imagino: El picklist esta en el campo que tiene el dbgrid. Si le das dobleclick al dbgrid te sale una pantalla, ahi deben estar los campos que tendra el dbgrid. Escoge el campo que necesites que tenga el combobox y pon en su propiedad Buttonstile cbsAuto. No se si es lo que preguntas ?. Saludos |
ya lo logre gracias a tu ayuda.
pero fijate:
dentro de PickList me muestra solo la columna codigo, pero para el usuario el codigo no le dice nada, quisiera que el usuario seleciones por des_tipo pero en el grid se guarde co_tipo. Sera posible hacer eso o estoy totalemente fuera de lugar? |
Hola
Por código, en el evento OnShow del form: Digamos que quieres que la primera columna del dbgrid contenga el combobox y te traiga los datos: Como ves: 1- Se le asigna el boton del combobox al dbgrid. 2- Se hace la consulta a la tabla. 3- Se recorre 4- Se le inserta en la propiedad PICKLIST del dbgrid los datos de la tabla. 5- Se cierra. Saludos |
Hola
El Dbgrid tiene una consulta que es la que cargo los datos, verdad ?. Hoy no traje la bola de cristal, si no la pones no me la imagino.:D:cool: Saludos |
el dbgrid como dije esta amarrado a un clientdataset por alli contruyo el grid y al terminar los guardo con los datos intruducido por el usuario.
Ahora como dije la opción del picklist es perfecta pero quisiera saber si hay forma de que el picklist me muestre las dos columna de la consulta pero solo me guarde la columna del codigo en el grid. |
Hola
Donde ?????. Donde quieres que la guarde ?. Se puede: SI, SI se puede, si se sabe donde. Saludos |
Hola
Muestrame el codigo con el que quieres guardar lo que necesitas. Saludos |
Hola
Pregunto: Cuando hablas de GUARDAR en el Dbgrid hablas de MOSTRAR ????. Saludos |
no! uso el dbgrid para atravez del clientdataset me proveea una tabla temporal para luego al finalizar guardar la informacion en la tabla correspodiente. el picklist lo necesito para armar la informacion del tada set,te explico es como un from de factura. Armo el detalle de la factura y luego la guardo.
|
Fijate en el select estoy cargando la informacion en el picklist 'Select co_tipo,des_tipo From tipo_aju' pero en el picklist solo puedo selecionar una forma de guardar ' DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0]' aunque puedo escojer entre .Fields[0] y el .Fields[1], yo quiero que se vean ambos pero al selecionar la linea en el picklist solo me pase al grid o client data set el .Fields[0], |
te mando el codigo completo para ver si me puedes ayudar tambien porque cuando salgo del from se me queda colgado el programa creo que tiene algo que ver con el clientdata set edit o incert.
|
Hola
Dos campos en el combobox del dbgrid: Columna 1, que es en realidad la segunda columna del dbgrid. Ejemplo 1: Datos seguidos:
Ejemplo 2: Uno arriba del otro:
Es eso ?. Saludos |
finalmente desisti estoy utilizando cbsEllipsis y un oneditbutooclick le estoy colocando un
en el otro from y perfecto al selecionar una linea en el grid donde hago la consulta me trae la informacion que quiero y en donde la quiero y hasta alli todo perfecto: pero como hago si tengo varias celdas donde colocar el cbsEllipsis y cada una de ella debe llamarme un from diferente? |
Hola
No entiendo. Creo que, a mi modo de ver, lo mejor seria que te olvidaras del dbgrid e hicieras todo con un stringgrid, es mucho mas manejable para lo que tiene que ver con introducir datos por linea, osea, una factura. Saludos |
debe haber algo que pueda solucionar esta situacion, de verdad veo muchos programas que hacen lo mismo, ahora no se como utilizar este componente voy a investigar a ver si puedo solucionarlo.
oye de verdad gracias por tu ayuda de verdad te quite mucho tiempo. |
Hola
No te preocupes por el tiempo, si no me apeteciera no lo daría. Lastima que cuando empezáis a programar os liéis con BD que no son fáciles de transportar. Por eso siempre recomiendo empezar con access y luego hacer el cambio a otra bd, es mas fácil ayudar si se puede tener el programa y ver lo que se necesita hacer. Saludos |
Hola
Bueno, pensando en esto creo entender lo que quieres hacer. 1- Tienes un dbgrid vacío. 2- Tienes un botón o combobox (el que sea) el que contiene la información de uno o varios campos de una tabla. 3- Quieres que cuando se seleccione un dato de los mostrados (en los anteriores) te llene otros datos en la fila correspondiente en ese mismo dbgrid. 4- hacer de todo esto una especie de lista que se vera en el dbgrid. Si es asi, me dices y lo vemos. Saludos |
| La franja horaria es GMT +2. Ahora son las 20:48:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi