Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Resultados en DBGrid según filtrado

Hola de nuevo a todos después de un largo puente (como cuesta vovlerse a enganchar, eh?).

Vamos a ello. Como algunos de vosotros recordareis estoy realizando una aplicación para el control de stock con acceso a tablas paradox. Tres de ellas son normales y después tengo una maestro detalle (pedido - detalle).

Bien, todo eso ya está pero ahora necesito hacer unos filtros predefinidos (por ejemplo: pedidos de fecha tal a fecha cual cuyo valor sea mayor que tantos euros) y que el resultado sea reflejado en un DBGrid, es decir en este DBGrid en un principio saldrían todos los pedidos y al pulsar el botón del filtrado que he indicado únicamente los resultados que cumplan el filtro para después poder imprimirlos.

DUDAS: todas las del mundo pero concretemos. Primero es posible con tablas Paradox, verdad?? decirme que si que como tenga que empezar me muero. Después como filtrar y representarlo en en el DBGrid y por último como imprimirlo ya que si no me equivoco el QReport tal como lo utilizo no imprime el DBGrid sino la tabla al completo.

He estado ojeando por ahí y he encontrado un componente llamado SMDBGrid (lo conocí en este foro y la URL es...
Cita:
http://www.scalabium.com/smdbgrid.htm
....)

Me sirve para lo que quiero??

No pretendo que me solucionen el problema, aunque si agradecería cualquier explicación, sino que me indiqueis cualquier página que haga referencia a lo que quiero hacer, parte de código o cualquier cosa que me pueda ayudar.

Como siempre...muchísimas gracias por vuestra ayuda.
Responder Con Cita
  #2  
Antiguo 12-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Mathom
Bien, todo eso ya está pero ahora necesito hacer unos filtros predefinidos (por ejemplo: pedidos de fecha tal a fecha cual cuyo valor sea mayor que tantos euros) y que el resultado sea reflejado en un DBGrid, es decir en este DBGrid en un principio saldrían todos los pedidos y al pulsar el botón del filtrado que he indicado únicamente los resultados que cumplan el filtro para después poder imprimirlos.

DUDAS: todas las del mundo pero concretemos. Primero es posible con tablas Paradox, verdad?? decirme que si que como tenga que empezar me muero. Después como filtrar y representarlo en en el DBGrid y por último como imprimirlo ya que si no me equivoco el QReport tal como lo utilizo no imprime el DBGrid sino la tabla al completo.
El tema del filtro se arregla generando la sentencia SQL correspondiente y "enganchándosela" al DBGrid. Es decir, si tu DBGrid usa como fuente de datos una consulta del tipo:

Código SQL [-]
Select * from pedidos

que es equivalente a usar la tabla Pedidos, cuando desees usar un filtro, cambias la consulta por:

Código SQL [-]
Select * from pedidos
where (fecha <:f1 and fecha>:f2) and (valor>:Valor)

y eso te mostrará en el DBGrid los registros que cumplan la condición.
Deberías buscar y revisar información sobre SQL y parámetros.

El tema de imprimir es lo mismo. Si imprimes una tabla, imprimirá todo, si imprimes una consulta sólo imprimirás lo que devuelva la consulta; Es cuestión de aplicar a la consulta los filtros que necesites.

Lo dicho; Te reciomiendo que hagas unas pruebas sencillas con DBGrid y TQuery añadiendo filtros a la consulta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 12-12-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Antes que nada....gracias. Ahora mi pregunta es...tengo que hacer las tablas en SQL?? no sirven las de Paradox?? o es lo mismo, es decir, puedo tener las tablas en Parados y las consultas en SQL sirven.

La pregunta igual os resulta absurda pero como he dicho antes..son mis comienzos.......y todo son dudas..

Gracias de nuevo.
Responder Con Cita
  #4  
Antiguo 12-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Correcto; Es lo mismo. No tienes que cambiar; Cuando hablamos de SQL me refiero a consultas, no a que tengas que cambiar de Base de Datos. El lenguage en el que se hacen las consultas (SELECT * FROM ...) se llama SQL de ahí que hablemos de trabajar con:
* Tablas: Componente TTable
* Con SQL: Componentes TQuery

Una consulta SQL es una forma de consultar la tabla de Paradox (o de cualquier otra Base de Datos).

Espero haberme explicado bien.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-12-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
A la perfección, te explicas muy bien. Conozco el lenguaje SQL, no soy un As pero conozco bastante por lo que no tendré problemas a la hora de realizar las consultas.
Voy a echarle un vistazo pero ya deduzco que el problema lo voy a tener a la hora de enlazar las consultas con el DBGrid. Me explico yo tengo un formulario donde aparece el grid que ya representa los datos, por ejemplo de todos los pedidos. el datasource y la tabla los tengo en un datamodule. Ahora bien, en el formulario del que os hablaba debe tener por ejemplo un boton cuya consulta sea "Select * from pedidos where comprar = "si" " y se vea reflejado en el grid que ya tenía reflejado los datos.
Bien, que me haría flata?? supongo que debería quitar la tabla del datamodule y sustituirlo por un Query cuya consulta sea "select * from pedidos" y posteriormente en el botón que active el filtro modificar la consulta a lo que se pretenda, no??.

por último, según he visto sería...
Código:
 procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL := 'select * from pedidos where comprar = "si";
Query1.Open;
end;
Muchas gracias por tu ayuda Neftali.
Responder Con Cita
  #6  
Antiguo 14-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Mathom
...supongo que debería quitar la tabla del datamodule y sustituirlo por un Query cuya consulta sea "select * from pedidos" y posteriormente en el botón que active el filtro modificar la consulta a lo que se pretenda, no?
Correcto, esa es una opcion, y la otra es mantener la tabla y el query; Cuando necesites todos "enganchas" el Grid con la tabla y cuando quieras filtrado lo "enganchas" a la consulta; Se trata simplemente de cambiar la propiedad por código del DataSet/Datasource, para que apunte a la tabla o a la consulta segun te vaya interesando.

De ambas formas debe funcionar corectamente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 14-12-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Por lo que deduzco también que hay dos modos de hacerlo, uno con un solo Query al que le vamos cambiando la consulta según el botón de filtrado que pinchemos....y la segunda con varios Querys, uno por tipo de consulta y en el botón de filtrado de cada consulta cambiar el direccionamietno del datasource. Me he explicado, verdad??

Pues bien a probar...

MIL GRACIAS !!

en cuanto me salga, aviso !!
Responder Con Cita
  #8  
Antiguo 15-12-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Me vais a echar bronca, pero es que ya no veo ni la pantalla. No me sale pq no me conecta. Es la sentencia la que està mal pero ahora mismo no entiendo el porqué.

Tengo en un DataModule (datamodule8) el datasource (datasource1), la tabla (table1) y el query (query1).

El DBGrid está en un formulario (form1). Bien, si quiero cambiar el DBGrid (ahora mismo apunta a la tabla) para que apunte a la query como sería??

He probado varias cosas pero como os digo algo tan elemental no lo veo.

Datamodule8.Datasource1.Dataset:= 'query1'

No seais muy crueles conmigo.
Responder Con Cita
  #9  
Antiguo 15-12-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
tambien he probado lo mismo pero con query sin las comas
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 23:37:56.


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