Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2011
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
en el evento onChange de los combos:

Código Delphi [-]
with dbgrid.datasource.dataset do
begin
  filter := 'mes>='+IntToStr(cmbdesde.itemIndex+1)+ ' AND mes<='+IntToStr(cmbhasta.itemIndex+1);
filtered := true;
end;
__________________
self.free;
Responder Con Cita
  #2  
Antiguo 27-04-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
No me muestra resultado alguno en el dbgrid!
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #3  
Antiguo 27-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
me parece que en lugar de filtrar por el nombre del mes debes hacer un artificio para filtrar por el "numero" del mes
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 27-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Código Delphi [-]
....
procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.ItemIndex:= 0;
  ComboBox2.ItemIndex:= ComboBox2.Items.Count -1;
end;

procedure TForm1.ComboBoxChange(Sender: TObject);
begin
  with DBGrid1.DataSource do
  begin
    DataSet.Filtered:= False;
    DataSet.Filter:= 'MES >= '+QuotedStr(ComboBox1.Items[ComboBox1.ItemIndex])+
                   ' AND MES <= '+QuotedStr(ComboBox2.Items[ComboBox2.ItemIndex]);
    DataSet.Filtered:= True;
  end; 
end;
...
Por supuesto funciona si en los combos tenés los nombres de los meses y asignas ComboBoxChange al evento OnChange de los dos combos...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 27-04-2011 a las 19:24:16.
Responder Con Cita
  #5  
Antiguo 27-04-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Muchas gracias por su ayuda, hice exactamente lo que me dijiste...le asigne Comboboxchange a ambos comobox, y ajuste el codigo a mi proyecto...Sin embargo los resultados no se ajustan a lo que quiero! Explico:

Si Selecciono ENERO y DICIEMBRE no me muestra resultados...

Si selecciono ENERO y NOVIEMBRE me muestra solo algunos resultados (ENERO, FEBRERO, MARZO, MAYO, JULIO, JUNIO, NOVIEMBRE) aun cuando también tengo ABRIL, DICIEMBRE en mis registros...

¿A que podría deberse?
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #6  
Antiguo 27-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
no lo se no he podido hacer pruebas
pero me parece que deberias hacer el filtro por numero de mes en lugar de nombre de mes salvo error u omision
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 28-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ZiriusB.

Es realmente extraño, a mí me funciona correctamente esté o no la columna ordenada alfabéticamente...
La prueba la realizé sobre Firebird, pero para estar seguro que trabajemos sobre los mismos datos y no sé que BD estás usando,
el código lo ajusté a la tabla Country (DBDDEMOS) ya que viene con Delphi.

Te adjunto la prueba para que puedas realizar las comprobaciones necesarias y si encontras algún caso en que no se cumpla la condición
del filtro, lo vemos en concreto.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-05-2011 a las 06:49:29.
Responder Con Cita
  #8  
Antiguo 28-04-2011
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Poder: 19
JoseAntonio Va por buen camino
es un problema de mal diseño, si quieres hacer un filtro por mes, debes definir dicho campo (en tu base de datos) como entero, si lo defines como cadena, el filtro no funcionara por que al hacer el filtro el componente dataset no sabra que 'MARZO' < 'ABRIL' puesto que el componente hace la comparacion por orden alfabetico cuando se trata de cadenas, suerte, salu2
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Se puede? (Filtrar desde dentro de un DBGrid?) b3nshi Conexión con bases de datos 3 27-04-2010 20:57:09
Filtrar un campo en un ComboBox zeta2 Varios 12 02-07-2008 11:17:41
Filtrar ADOTable al seleccionar combobox jeysi Varios 3 24-01-2008 09:48:36
FastReport - ComboBox y resultado SQL hecospina Varios 6 23-01-2008 22:19:30
Multiplicando el resultado de un ComboBox Camilo Conexión con bases de datos 10 06-12-2007 17:57:14


La franja horaria es GMT +2. Ahora son las 21:47:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi