Ver Mensaje Individual
  #4  
Antiguo 24-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Cita:
Empezado por raffagia
lo ke kise hacer era crear una sola grilla e ir cambiandole dinamicamente el DATASOURCE,, pero no me andubo.
Pues debe andar sin problemas.
- Cierra el datasource del grid
- si hace falta, puedes hacer un DBgrid1.Datasource := nil;
- por código asignas el nuevo datasource.
- haces un dgrid1.RebuildColumns (no recuerdo ahora si es dgrid.Columns.Rebuildcolumns)
-abres el nuevo datasource.

En la unidad del grid, accedes siempre a los campos con Dbgrid1.Datasource.Dataset.FieldbyName, y tendrás un grid genérico para todos los Datasources que quieras.

Otra solución es mantener una consulta fija para el grid, pero cambiando el sql.text dependiendo de lo que el usuario elige. Es algo engorroso, pero puedes crearte funciones para separar el proceso:
Código Delphi [-]
query1.sql.text := CONSTANTE_SELECT_FROM + ' where ' + Fechas + Cliente;
query1.open;
Fechas y Clientes son funciones que devuelven parte de las restricciones que ha de tener la consulta.

Lo óptimo seria incluir en el select solo los campos necesarios para cada consulta; puedes tener varias constantes predefinidas (incluso en archivos .ini para modificarlas sin tener que recompilar) y deducir cual elegir segun el criterio del usuario.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita