PDA

Ver la Versión Completa : DBLookupComboBox con paradox


David
08-07-2006, 18:15:05
Hola

tengo una tabla llamada Nominas y otra llamada ConceptoNominas , en la tabla concepto Nominas hay dos campos , Código y Concepto (string).

En la tabla Nomina , hay un campo Codconcepto que es Integer . Y mediante un campo de lookup que he creado llamado strConcepto (string), busco el campo de texto de la tabla ConceptoNominas .

Lo que quiero hacer es tener un DBLookupComboBox , con los conceptos de la tabla nomina , por ejemplo Julio , Agosto , etc ... y cuando cambie de registro se muestren todos los datos , en un dbGrid que tengo debajo , filtrando según el concepto que haya en ese momento en el DBLookupComboBox .

¿Cómo se hace esto ?

marcoszorrilla
08-07-2006, 18:32:48
Pues filtrando por el concetpo elegido en el DbLookUpComboBox, o simplemente filtrando por la tabla origen de los datos del DbLookUpCombox, pues al hacer una selección mediante este componente se mueve el componente en la fuente de datos apuntando a aquél.

MiTabla.Filter:=QuotedStr(Tabla_que_Apunta_DblkCampoxxx.Value);

//o

MiTabla.Filter:=QuotedStr(Dblk1.Text);

MiTabla.Filtered:=True;

Un Saludo.

David
08-07-2006, 19:13:01
Me he hecho un pequeño ejemplo , pero no me llega a salir .

He puesto dos tablas con sus datasources . He creado en una el campo de lookup .

He puesto un Query con su datasource , y en el SQL del Query he escrito lo siguiente :

select distinct(concepto) from nominas // concepto es integer claro esta .

Luego pongo el DBGrid con el datasource de la tabla . Pongo el DBLookupCombobox , con el datasource ,también de la tabla , el mismo que el DBGrid .

y en la propiedad DataChange del datasource del Query escribo lo siguiente :


procedure TForm1.dsqueryDataChange(Sender: TObject; Field: TField);
begin
nomina.Filter:= 'concepto = ''' + IntToStr(Query1.FieldByName('concepto').AsInteger) + '''';
nomina.Filtered := True; // nomina es el nombre de la tabla
end;

end.

El caso es que me sale filtrado , pero el DBlookupcomobox , no me permite mover entre registros , es imposible cambiar de registros .

David
08-07-2006, 19:19:51
Me contesto a mi mismo , por casualidad he encontrado la solución .

Todo consiste en poner la propiedad ReadOnly del DBLookupCombobox a False .:D

David
08-07-2006, 19:46:31
Me he equivocado no me sale , cuando cambio en el DBlookupcombobox , lo unico que pasa en el grid es que se edita el campo que aparece en el combobox en ese momento .

Ahora si que estoy perdido .