FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Busqueda usando un DBLookupComboBox
Hola gentes, bueno tengo un problema en como realizar una busqueda.
El problema es como se realiza. Lo que quiero hacer es que cuando selecciones una opcion del DBLookupComboBox, en el grid aparesca los resultados, y cuando lo deje en blanco esten todos los registros. estoy usando un modulo de datos donde tengo los dataset, query. y tngo el formulario clientes donde tngo el datasource, clientedataset, provider. qe es para conectar el DBLookupComboBox. nosotros damos de alta localidades y estas cuando vas a dar de alta un cliente aparece el campo localidad que atraves del DBLookupComboBox seleccionas cual queres. la tabla clientes tiene un inner join con tabla localidades. que es lo q tendria qe hacer?. que pongo en el qryclientes, y en que evento de DBLookupComboBox tngo que hacerlo muchas gracias vi un hilo que decia de como se realizaba la busqueda pero no entendi , estoy usando delphi 7 y ems interbase/firbird. Desde ya muchas gracias espero que me entiendan |
#2
|
||||
|
||||
Hola liito16, de hecho seguro que tienees un dataset para tus localidades y otro para clientes, para hacer lo que quieres debes utilizar el evento OnCloseUp del DBLookComboBox y hacer la consulta en tu qryClientes, tomando lo que tienes en ese momento en el DBLookComboBox:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#3
|
|||
|
|||
es que cuando pongo qryclientes. salta
error [Error] Clientes.pas(80): Undeclared identifier: 'QryClientes' [Error] Clientes.pas(80): Missing operator or semicolon [Error] Clientes.pas(81): Missing operator or semicolon [Error] Clientes.pas(81): Undeclared identifier: 'QryLocal' [Error] Clientes.pas(81): Missing operator or semicolon [Fatal Error] Videoclub.dpr(10): Could not compile used unit 'Clientes.pas' |
#4
|
|||
|
|||
solucione el problema de arriba y ahora cuando selecciono alguno para que muestre los resultados me tira:
project videoclub.exe raised exeption class edatabaseerror with message 'qrylocalidades':field 'cod ' not found |
#5
|
||||
|
||||
Cita:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#6
|
|||
|
|||
asi lo deje yo y me tira ese error no sera que en el qryclientes este poniendo algo mal? lo puse en la propiedad SQL.
|
#7
|
||||
|
||||
Muestranos el codigo completo que tienes en el OnCloseUp y ¿que componentes estas utilizando a parte del ClientDataSet?.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
|||
|
|||
ese es el codigo que puse en el evento del bdlookupcombobox utilizo el clientdataset que lo conecto con el provider y data source lo conecto con el client y el grid esta conectado con el data source el provider va a dataset clientes. para cada dblookupcombobox que utilizo creo uno de cada uno un data source, client, provider, y un qry porq es una consulta. espero que entiendas |
#9
|
||||
|
||||
Ahora que he leído mejor tus anteriores respuestas, el problema esta en el parámetro cod de tu qrylocalidades el cual no lo encuentra, revisa bien esa parte, para que estas utilizando esa parametro, cuando le asignas valor a cod......
Cita:
Por la consulta que muestras mas arriba en el Where tienes que comparar por el campo LOCALIDAD_NRO de tu tabla clientes que es con el campo con el que se realcionan tus tablas y no por LOCALIDAD NOMBRE.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. Última edición por Caro fecha: 01-09-2010 a las 20:51:18. |
#10
|
|||
|
|||
los qrys pertenecen a DBExpres,
y dsp el parametro se crea automaticamente en el qryclientes, y tngo que crear otro en el qrylocalidades? en el parametro del qryclientes en propiedades pongo name: cod datatype: ftinteger paramtype: ptInput nose si tiene que ver pero los formularios vienen heredados de una plantilla que creamos. Última edición por liito16 fecha: 02-09-2010 a las 00:43:21. Razón: Olvide de agregar algo |
#11
|
||||
|
||||
Hola lito16.
Cita:
Hace exáctamente lo que especificas en la cita.
Espero haberte interpretado bíen... Saludos. Última edición por ecfisa fecha: 03-09-2010 a las 10:00:03. |
#12
|
|||
|
|||
Influye algo que use los componentes de DBexPRESS, SQLDATASET? eso son los que estoy usando
|
#13
|
||||
|
||||
Hola liito.
No he trabajado con DBexPRESS, pero supongo que la lógica del programa es la misma para cualquier base de datos o componentes con los que trabajes. .Al abrir el combo asignas la propiedad KeyValue a '' para limpiar lo que está en la propiedad Text y mostras todos los registros el el DBGrid. .Al cerrarlo, verificas si hizo una seleccion (if KeyValue >''...) y si es así mostras en el DBGrid los registros que indique la consulta acorde a la seleccion del DBLookupComboBox. No tomes al pié de la letra el código que puse. Fué solo una prueba que realizé a fín de ejemplificar que eventos del DBLookupComboBox usar, para que funcione del modo que pediste. Saludos. Última edición por ecfisa fecha: 03-09-2010 a las 20:36:23. |
#14
|
|||
|
|||
Solucion
Gente comparto la solucion a mi problema,
Los componentes que use como el query y dataset estan en DBExpress. tube que agregar el modulo de datos creado en el dataset llamado dsetclientes en la propiedad commandtext
ademas de las lineas que ya tenia este dataset como el select from y order by, acomodar los dos parametros creados por medio de la propiedad params, que fue ponerle datatype ftInteger. y en el clientedataset, llamado clidatos poner en la propiedad Params los dos parametros creados y ponerle el mismo nombre y el mismo datatype. agregar en el formulario Clientes Un dblookupcombobox y en datasource y datafield nada. y en el listsource conectarlo con el query localidades llamado qrylocalidades que se encuentra en el modulo de datos, dsp ir al formulario Clientes y en el evento OnShow Código:
with clidatos do begin Close; params.ParamByName('LOCALIDAD').AsInteger:=0; Open; end; Código:
with Clidatos do begin close; Params.ParamByName('LOCALIDAD').AsInteger:=dbcLocalidadFiltro.KeyValue; open; end; chkTodos.Checked:=False; Código:
dbcLocalidadFiltro.KeyValue:=null; if chkTodos.Checked then begin with clidatos do begin Close; params.ParamByName('LOCALIDAD').AsInteger:=0; Open; end; end; ademas en la propiedad de estos dos componentes puse TabStop false para que si el usuario apretara tab no pase por estos dos componentes. ya que es un filtro que si quiere hacerlo lo hace. Hoy en la facu le pregunte al profesor como se hacia y me explico. Muchas gracias por ayudarme y comparto con ustdes la solucion que use espero que me entiendan . |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Búsqueda con DBLookupComboBox | Viky | Varios | 0 | 16-03-2009 14:17:38 |
Imprimir usando un DBLookupComboBox | esimon | Impresión | 0 | 05-10-2007 20:39:19 |
Ayuda en busqueda usando ADO | Victor Vega | SQL | 6 | 06-09-2007 06:21:35 |
Busqueda usando un DBLookupComboBox | esimon | OOP | 19 | 08-10-2006 22:31:42 |
Búsqueda usando un índice con ADO. | vpepen | Conexión con bases de datos | 9 | 03-02-2005 14:32:32 |
|