Asunto: Visualizacion en DBGrid por medio de un campo seleccionado
Hola!
Alguna sugerencia?
Tengo una Ttabla (Tuniversitario) con los campos IdU, CiU, NombreUniversitario, ApeUniversitario,Sexo.....CarreraUniversitario, PaisDondeEstudia, SemestralizadoAnualizado, etc....
Lo que tengo que realizar es una busqueda a través de una seleccion por decir un ComboBox o DBComboBox, si elijo por decir del ComboBox el campo PaisDondeEstudia, con la informacion de Argentina, Ecuador, Chile, Peru, etc... de ahi elijo por decir Ecuador. En cuanto realice esa seleccion pues quiero que en un DBGrid me aparezca la informacion completa de la Ttabla TUniversitario de todos aquellos que estudian en ese Pais, en este caso Ecuador.
Lo que quiero es solo me aparezca datos en comun, mediante el usuario lo seleccione un campo.
Puede aparecer seleccionado la informacion por medio de los campos de Carrera,Pais, Carrera o Sexo (me refiero si es del sexo masculino o femenino).
Cabe mencionar que Tuniversitario ya tiene toda la informacion, esta con informacion.
Alguna idea?
Publicado:
Vie Mar 26, 2010 9:08 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Visualizacion en DBGrid por medio de un campo selecciona
Anuncios
Sizne escribió:
Hola!
Alguna sugerencia?
Tengo una Ttabla (Tuniversitario) con los campos IdU, CiU, NombreUniversitario, ApeUniversitario,Sexo.....CarreraUniversitario, PaisDondeEstudia, SemestralizadoAnualizado, etc....
Lo que tengo que realizar es una busqueda a través de una seleccion por decir un ComboBox o DBComboBox, si elijo por decir del ComboBox el campo PaisDondeEstudia, con la informacion de Argentina, Ecuador, Chile, Peru, etc... de ahi elijo por decir Ecuador. En cuanto realice esa seleccion pues quiero que en un DBGrid me aparezca la informacion completa de la Ttabla TUniversitario de todos aquellos que estudian en ese Pais, en este caso Ecuador.
Lo que quiero es solo me aparezca datos en comun, mediante el usuario lo seleccione un campo.
Puede aparecer seleccionado la informacion por medio de los campos de Carrera,Pais, Carrera o Sexo (me refiero si es del sexo masculino o femenino).
Cabe mencionar que Tuniversitario ya tiene toda la informacion, esta con informacion.
Alguna idea?
Puedes utilizar la propiedad "Filter" del TTable o del TQuery.
Sería algo así, recuerda como siempre que te ponemos un ejemplo cualquiera, el nombre de los campos y tablas no coincide:
Código:
procedure TFormAlbaranesProductos.BFiltrarPeriodoClick(Sender: TObject);
var
Filtro, campo, operador, FechaDesde, fechahasta: string;
begin
fechadesde := quotedstr(txtfiltrofecha.text);
fechahasta := quotedstr(txtfiltrofechahasta.text);
campo := 'Fecha';
if (tfacturas.filter <> '') and (acumularfiltro.checked) then
begin
Filtro := tfacturas.filter;
operador := '>=';
tfacturas.filter := Format ('[%s] %s %s', [Campo, operador, Fechadesde]);
operador := '<=';
tfacturas.filter := Format ('%s AND [%s] %s %s', [tfacturas.filter, Campo, operador, fechahasta]);
tfacturas.filter := Format ('%s AND %s', [tfacturas.filter,Filtro]);
end
else
begin
operador := '>=';
tfacturas.filter := Format ('[%s] %s %s', [Campo, operador, Fechadesde]);
operador := '<=';
tfacturas.filter := Format ('%s AND [%s] %s %s', [tfacturas.filter, Campo, operador, fechahasta]);
end;
tfacturas.filtered := true;
tfacturas.Refresh;
filtros.caption := tfacturas.Filter;
end;
El ejemplo anterior es un poco "complejo" porque permite acumular filtros, es decir, si tienes un filtro hecho, permite respetar ese filtro y añadir otro. Además, te lo hemos puesto para filtrar un período de fechas.
Pero, básicamente, la propiedad "Filter" sólo requiere del nombre del campo y el valor a filtrar. En tu caso sería algo así:
El ejemplo anterior está sacado de la aplicación [b]AjpdSoft Control de Campo[/code], que contiene en casi todas las ventanas una sección de filtros. Puedes echarle un vistazo pues tenemos disponible en la web el código fuente gratuito:
Hola!
Coloqué el código que me mencionó pero me aparece error:
Coloqué un ComboBox, que es donde selecciono por decir si es para el campo Pais, elijo Chile, y al hacer click en un Boton (que es donde puse el codigo q me dejaste) quise que me aparezca en un DBGrid toda la informacion.
Puse en el Form un Query1 y su DataSource1 que esta enlazado con el DBGrid1 donde quiero que me muestre toda la informacion comun.
Proyect Pbecarios.exe raised exception class EDatabaseError with message 'Query1:Field'economia' not found'.Process stopped. Use Setp or Run to continue.
Eso fue cuando seleccioné del ComboBox el campo carrera Economia.
Cabe mencionar que el el Query1 en la parte de Propiedades en la opcion SQL\String coloque el código en su String List Editor:
Código:
Select *
From BDinscripcion
Por que de esta tabla es de donde quiero saber una informacion espeficica cuando selecciono un campo.
Gracias
Publicado:
Lun Mar 29, 2010 8:36 pm
Sizne Magnífico usuario
Registrado: Oct 16, 2006 Mensajes: 46
Asunto:
Hola
Ya resolvi el problema, solo que es largo. La Busqueda que realizo en este caso es por carreras.
Donde RG es el TRadioGroup y C es el ComboBox. Y lo de colocar visible es solo para ver o no las columnas es opcional. DB es el DBGrid.
Código:
if RG.Items.Strings[RG.ItemIndex]= 'Carrera' then
begin
DB.DataSource.DataSet:=DataSource1.DataSet;
Query1.Close;
if Length(C.Text) > 0 then
begin
Query1.SQL[2] := 'WHERE CarreraE LIKE ''%' + C.Text + '%''';
DB.Columns[7].Visible:=False;
DB.Columns[11].Visible:=True;
DB.Columns[10].Visible:=True;
DB.Columns[9].Visible:=True;
end
else
Query1.SQL[2] := 'WHERE CarreraE LIKE ''%%''';
Query1.Open;
end;
Gracias por las ideas.
Publicado:
Jue Abr 01, 2010 1:55 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto:
Sizne escribió:
Hola
Ya resolvi el problema, solo que es largo. La Busqueda que realizo en este caso es por carreras.
Donde RG es el TRadioGroup y C es el ComboBox. Y lo de colocar visible es solo para ver o no las columnas es opcional. DB es el DBGrid.
Código:
if RG.Items.Strings[RG.ItemIndex]= 'Carrera' then
begin
DB.DataSource.DataSet:=DataSource1.DataSet;
Query1.Close;
if Length(C.Text) > 0 then
begin
Query1.SQL[2] := 'WHERE CarreraE LIKE ''%' + C.Text + '%''';
DB.Columns[7].Visible:=False;
DB.Columns[11].Visible:=True;
DB.Columns[10].Visible:=True;
DB.Columns[9].Visible:=True;
end
else
Query1.SQL[2] := 'WHERE CarreraE LIKE ''%%''';
Query1.Open;
end;
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A