Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
como crear una busqueda mediante diversos parametros

Hola que tal. Tengo un problema en el modulo de consultas de mi aplicacion. En una tabla llamada SERVICIO tengo algunos campos (id_progresivo,region,municipio,localidad,tipo_escuela,fecha_atencion,subsistema.etc, etc, etc). Quiero un formulario donde cada campo sea representado por un ComboBox y asi, el usuario elija que registros buscar. Ahora, el usuario puede elegir varios criterios de busqueda mediante los comboBox, puede usar la combinacion de mas de dos para realizar su busqueda. Por ejemplo: Buscar las escuelas que son de tipo XXXXX y que fueron atendidas en X dia. O tambien, Buscar las escuelas De tipo XXXX, que son de esta localidad, y que fueron atendidas XXX dias.
Entonces, quiero que el usuario sea capaz de hacer esto. Y por ultimo, en el formulario, tener unos botones de checkbox(para poner palomitas en el cuadrito) para que el usuario elija que campos desea que sean visualizados. Ya por ultimo el boton de buscar, que realizara la busqueda y la presentara en un DBGrid. Y pues tambien la opcion de imprimir. Utilizo ADOConnection. Espero su ayuda, gracias
Responder Con Cita
  #2  
Antiguo 08-04-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
¿Y la pregunta es?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 08-04-2008
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 196
Poder: 20
darkerbyte Va por buen camino
Thumbs down Muchos problemas, una solución!

Cita:
Empezado por metroyd Ver Mensaje
Hola que tal. Tengo un problema en el modulo de consultas de mi aplicacion. En una tabla llamada SERVICIO tengo algunos campos (id_progresivo,region,municipio,localidad,tipo_escuela,fecha_atencion,subsistema.etc, etc, etc). Quiero un formulario donde cada campo sea representado por un ComboBox y asi, el usuario elija que registros buscar. Ahora, el usuario puede elegir varios criterios de busqueda mediante los comboBox, puede usar la combinacion de mas de dos para realizar su busqueda. Por ejemplo: Buscar las escuelas que son de tipo XXXXX y que fueron atendidas en X dia. O tambien, Buscar las escuelas De tipo XXXX, que son de esta localidad, y que fueron atendidas XXX dias.
Entonces, quiero que el usuario sea capaz de hacer esto. Y por ultimo, en el formulario, tener unos botones de checkbox(para poner palomitas en el cuadrito) para que el usuario elija que campos desea que sean visualizados. Ya por ultimo el boton de buscar, que realizara la busqueda y la presentara en un DBGrid. Y pues tambien la opcion de imprimir. Utilizo ADOConnection. Espero su ayuda, gracias
Pues la mejor solución es que contrates a alguien que sepa programar bien y que te resuelva el problema.
Pides muchas cosas y no eres muy específico.
Que SGBD estas utilizando?
En lugar utilizar un ComboBox, debes utilizar un Dbcombobox, de hecho un lookup si deseas que te muestre un texto que referencíe a otro valor.
Por cierto, la mayoría de los que entramos aquí sabemos que es un "checkbox" y no necesitas decirnos que es.
Utiliza los mismos controles que has mencionado para ir formando una Query, y mandala a tu servidor, usa un DataSource para ligar el resultado de tu Query a tu DBGrid, y bueno, el imprimir es otra cosa, busca en el foro acerca de Quickreport.
Te recomiendo que leas la guia de estilo.
Responder Con Cita
  #4  
Antiguo 08-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Casi todos mis formularios de selección son así y lo que hago es reconstruir la consulta cada vez. Simplemente con varios if-else consecutivos para ir añadiendo las condiciones que necesito en cada ejecución.

Claro que yo no uso ADO.
Responder Con Cita
  #5  
Antiguo 08-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola yo tiendo a pensar demasiado en POO, al punto de llegar a ponerme en una situación "Purista".
A mi modo de ver, no veo nada malo e que para estos casos se pueda emplear un pequeño "motor" o generador de expresiones SQL en una clase.

Puede que la idea de Lepe inspire a metroyd.

Considero que debe rechazarse un análisis desde el punto de vista de la Capa Interfaz y abordar el problema desde el plano lógico (que es donde realmente está el lio).

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 08-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
Casi todos mis formularios de selección son así y lo que hago es reconstruir la consulta cada vez. Simplemente con varios if-else consecutivos para ir añadiendo las condiciones que necesito en cada ejecución.

Claro que yo no uso ADO.
ME podrias ayudar
Responder Con Cita
  #7  
Antiguo 08-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
Claro, el problema que tengo es generar consultas en tiempo de ejecucion, y cheque el link que pusieron por ahi pero creo que esta en un nivel demasiado avanzado a comparacion mia
Gracias de cualquier forma
Responder Con Cita
  #8  
Antiguo 08-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
metroyd,
Primeramente debe establecer hasta que punto pretendes que sea flexible el armado de las consultas.

La manera más sencilla de conseguir lo que deseas hacer es tener una serie de variables en donde registres las opciones que elija el usuario. El SQL se compondrá entonces de la concatenación de dichas opciones.

Por ejemplo podrías tener algo así:

Código Delphi [-]
var
StrTabla1, StrTabla2, StrOpeador, StrCampo1, StrCampo2: string;

Y por ejemplo suponer que en un OnChage de un Combo para seleccionar una condición hacer algo como esto:
Código Delphi [-]
if Combo.ItemIndex = 0
   then StrOperador := 'OR'
   then StrOperador := 'AND';

Y hacer por ejemplo en un OnClick de un botón algo como esto:

StrSQL := 'select from ' + StrTabla1 + StrCampo1 + ' where ' + StrCampo1 + ' ' + StrOperador + ' ' + StrCampo2;

Para "confirmar" la consulta.

Y para ir finalizando hacer algo como:
Código Delphi [-]
Query.sSql := StrSQL;

Para asociar la consulta generada.

¿Me explico?
Como te he dicho antes... necesitas definir que tan flexible serán tus consultas. Dependiendo de ello puede que se logren hacer más o menos fácil estructurar los anidamientos y las series de IFs...

Hay muchas maneras de conseguir lo que buscas.

Creo que lo que te dicho te puede servir de orientación. Como podrás comprender el problema no es de interfaz sino de lógica, necesitarás sentarte un rato para saber armar las condiciones. Ten presente que es posible que algunas condiciones que elija el usuario pueden no ser compatibles, por ello cuando armes el SQL deberás preveer algunas condiciones.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #9  
Antiguo 08-04-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
metroyd,
Primeramente debe establecer hasta que punto pretendes que sea flexible el armado de las consultas.

La manera más sencilla de conseguir lo que deseas hacer es tener una serie de variables en donde registres las opciones que elija el usuario. El SQL se compondrá entonces de la concatenación de dichas opciones.

Por ejemplo podrías tener algo así:

Código Delphi [-]var StrTabla1, StrTabla2, StrOpeador, StrCampo1, StrCampo2: string;


Y por ejemplo suponer que en un OnChage de un Combo para seleccionar una condición hacer algo como esto:
Código Delphi [-]if Combo.ItemIndex = 0
then StrOperador := 'OR' then StrOperador := 'AND';


Y hacer por ejemplo en un OnClick de un botón algo como esto:

StrSQL := 'select from ' + StrTabla1 + StrCampo1 + ' where ' + StrCampo1 + ' ' + StrOperador + ' ' + StrCampo2;

Para "confirmar" la consulta.

Y para ir finalizando hacer algo como:
Código Delphi [-]Query.sSql := StrSQL;


Para asociar la consulta generada.

¿Me explico?
Como te he dicho antes... necesitas definir que tan flexible serán tus consultas. Dependiendo de ello puede que se logren hacer más o menos fácil estructurar los anidamientos y las series de IFs...

Hay muchas maneras de conseguir lo que buscas.

Creo que lo que te dicho te puede servir de orientación. Como podrás comprender el problema no es de interfaz sino de lógica, necesitarás sentarte un rato para saber armar las condiciones. Ten presente que es posible que algunas condiciones que elija el usuario pueden no ser compatibles, por ello cuando armes el SQL deberás preveer algunas condiciones.

Saludos,
Si gracias, por eso. Y la razon por las que quiero que sean asi, es porque el usuario, antes de tener el sistema que le voy a proponer, tenia su base de datos en Excel, y estaba configurado de esta manera. En la parte de la fila de los encabezados (titulos de columnas) estaba el titulo y una flechita, en donde podias desplegar todos los datos, y asi, al seleccionar uno, se iban generando las busquedas automaticamente. Es por eso que yo lo quiero manejar asi.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Qreport es posible imprimir un label con diversos Fonts ??? QuarkBcn Impresión 2 03-04-2008 10:15:08
Crear base de datos mediante componentes de Interbase vivamotos Conexión con bases de datos 5 08-02-2008 09:16:05
Novato (Parametros de busqueda) enecumene Conexión con bases de datos 4 02-06-2006 00:03:18
busqueda por distintos parametros raffagia Varios 10 26-08-2005 11:45:51
busqueda por dos parametros rolando_s Conexión con bases de datos 1 03-03-2005 12:12:20


La franja horaria es GMT +2. Ahora son las 00:41:25.


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