![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Perdona Caral, no había visto tu último mensaje. Está claro que se puede hacer de todo y de diferentes maneras. Todo me sirve, intento filtrar toda esa información aunque es mucha y a veces ya se me va un poco la cabeza
Los últimos progresos son estos: http://rapidshare.de/files/37325009/Gesatrans.zip.html Ya trabajo con la base de datos de access y he conseguido filtrar los datos de búsqueda por difentes campos a la vez. Le he dado muchas vueltas y estoy seguro que tiene que haber una forma mas sencilla de hacerlo, pero finalmente he aplicado la lógica y con varias lineas de comandos me ha salido. De por medio me he perdido varias veces con los if .. else ... los ';' y los diferentes tipos de campos, númericos y de tipo carácter pero lo tengo ya a mi manera. Este es el código que me ha resuelto la papeleta: Código:
procedure TFBCliente.Edit1Change(Sender: TObject);
begin
DTMClientes.TClientes.Filtered := False;
If (Edit1.text <> '') then
DTMClientes.TClientes.Filter := 'Cod_Cliente Like '+ Edit1.Text;
If (Edit2.text <> '') then
DTMClientes.TClientes.Filter := 'Nombre_Cial Like '''+ Edit2.Text + '*''';
If (Edit3.text <> '') then
DTMClientes.TClientes.Filter := 'Razon_Social Like '''+ Edit3.Text + '*''';
DTMClientes.TClientes.Filtered := True;
If (Edit5.text <> '') then
DTMClientes.TClientes.Filter := 'DNI Like '''+ Edit5.Text + '*''';
DTMClientes.TClientes.Filtered := True;
If (Edit6.text <> '') then
DTMClientes.TClientes.Filter := 'Localidad Like '''+ Edit6.Text + '*''';
DTMClientes.TClientes.Filtered := True;
If (Edit7.text <> '') then
DTMClientes.TClientes.Filter := 'Provincia Like '''+ Edit7.Text + '*''';
DTMClientes.TClientes.Filtered := True;
IF (Edit1.Text = '') and (Edit2.Text = '') and (Edit3.Text = '') and (Edit5.Text = '') and (Edit6.Text = '') and (Edit7.Text = '') then
DTMClientes.TClientes.Filtered := False;
end;
Pero funciona que es lo importante. Solo me he quedado con mal sabor de boca porque he tenido que asignar esto a cada uno de los eventos Onchange de los 6 Edit que hay, seguro que hay forma de ponerlo una vez en algun sitio y llamarlo después, pero no he dado con ello. Otra opción era poner un boton para filtrar, asi solo sería suficiente con uno, pero me gusta mas de esta manera, probarlo si teneis oportunidad, ha quedado curioso. De paso he visto sin querer un erro que daba la ficha de cliente al dar de alta uno nuevo, el campo DNI era un indice y campo requerido y si no ponía nada en el pues saltaba un error que no conseguía quitar; solución = ni indice ni requerido, jejejej, lo he puesto normal y fuera Tras el madrugón que me he pegado para hacer la busqueda ahora empiezo con el tema de la impresión de fichas individuales y listados de clientes. He instalado el QuickReport ya que es lo se dice por ahí, asi que vamos a por ello. Un saludo y gracias a todos por el empujoncito
__________________
Mi proyecto paso a paso (Parte I) |
|
#2
|
||||
|
||||
|
Hola.
Con que lo escribas el codigo en un evento es suficiente. Despues vas a cada edit y en el evento "Onchange" asignas el que has escrito que estará en la lista. Saludos |
|
#3
|
||||
|
||||
|
Por cierto. ¿Para que repites los filtros en cada evento del "OnChange"?
Coloca en cada Evento el que corresponda Saludos |
|
#4
|
|||
|
|||
|
Perfecto Kalimero, gracias.
He dejado solo el del Edit1 y he hecho es que dices, funciona perfectamente. Ya decía yo que tenía que haber un truco sencillo para ello, tomo nota para próximas veces Cita:
Un saludo
__________________
Mi proyecto paso a paso (Parte I) |
|
#5
|
||||
|
||||
|
Solo un conesejo
hola Delphitest, mira solo como a modo de consejo y no por complicarte la vida, te recomiendo que Renombres (a medida que tengas tiempo o sino en el futuro) Los objetos que vayas utilizando, te preguntaras para que, Simplemente para que el dia de mañana no te sea tan engorroso saber que hace el EDit1, el label5 y combobox1.
Lo ideal es tomar el lineamiento del diseño UML y es darle al componente una breve descripción de que es. ejemplo Si el Edit1, es para busqueda por nombre seria bueno un nombre asi mas omenos EdBuscaNombre (Ed de EDIT y busca nombre de lo que hace.) Te aseguro que cuando dejes el sistema por un tiempo y lo vuelvas a agarrar te va a ser de mucha ayuda. |
|
#6
|
||||
|
||||
|
consejo para no tener problemas con la DB
Hola Delphitest, mira para que no tengas problemas con donde debe encontrarse la Base de Datos te paso este codigo.
en el create del DATAMODULE
Esto lo que hace es buscar en donde esta tu aplicacion, extraer la Ruta y Agregar la carpeta "datos" y su archivo. entonces solo hace falta poner la carpeta dentro de la carpeta Padre en donde esta el Executable. No te hago los cambios yo ya que trabajo con Delphi 5 y hay una serie de Units que no utilizo y otras cosas Y para que la Base no te quede abierta en el Destroy del Datamodule
Última edición por Enan0 fecha: 19-10-2006 a las 19:38:09. |
|
#7
|
||||
|
||||
|
Hola Enan0
Me parece acertada tu opinion, yo particularmente uso un archivo .ini , con el que el ejecutable busca la base de datos, asi puedo poner la BD en cuarquier sitio, incluso en otro ordenador en red. Saludos |
|
#8
|
||||
|
||||
|
Y si te interesa Yo te recomiendo Eliminar el DBnavigator, y Utilizar Botones clasicos.
Es decir que el formulario Clientes (creo que es de carga) te aparezca en blanco y llenas los datos y al Hacer Click en agregar Checkea que dato no esta o es incorrecto y te lo pide nuevamente, Si esta todo OK, Te Crea el nuevo Registro. Ya que en este caso Tenes muchos botones MEdios Confusos para el 90 % de los usuarios, y por ultimo la comparacion de datos necesarios los hace El DBNavigator (cuando intenta Insertar) Generando un Error.. y de la otra forma los tendrias controlados vos. |
|
#9
|
||||
|
||||
|
Hola de nuevo Delphitest
La verdad no era mi intencion que te decidieras rotundamente por access, pero me alegro por ti, te va a ser mas facil esto, luego ya cambiaras si quieres. No he podido ver tu programa porque me da un error, he leido tus mensajes y creo, si estas de acuerdo en que esta modificacion al programa que te envio te servira, la verdad repito, si estas de acuerdo, me gustaria que siguieras con este y posteriormente le hagas los cambios que quieras, ya que si seguimos el mismo podre ayudarte mejor, queda a tu criterio, la verdad son superficiales los cambios, bueno el sistema de colocar los componentes varia un poco. He hecho un buscador con los filtros que creo necesitas, si presionas el boton buscar, veras que con solo poner la primera letra o numero este va filtrando hasta encontrar lo que quieres, si das dobleclick te aparecera la informacion completa, o presionas aceptar, ya veras, pruebalo y me dices. Con relacion al form clientes elimine la posivilidad de buscarlos desde el navegador, luego veras, mas adelante como hacerlo diferente y mejor. Para que el programa te funcione perfectamente y encuentre la base de datos, sin tener que hacer nada, cuando lo recibas coloca la carpeta que se llama Gesatrans1, en esta ubicacion: Cita:
Con respecto a los reportes se deberian hacer al final, ya que la manera de llamarlos es importante y normalmente tambien se filtran. Lo de los botones es mas que nada adorno, veras que se puede hacer un boton hasta de un label, panel, edit, etc,etc. Aqui te envio este: http://rapidshare.de/files/37355584/Gesatrans1.zip.html Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ejecutar Query Paso a Paso??? | juliopag1 | SQL | 0 | 17-06-2006 01:51:10 |
| Novato (Paso a Paso de una consulta) | enecumene | Conexión con bases de datos | 2 | 29-05-2006 20:52:19 |
| Motor Paso a Paso | jluisx | C++ Builder | 3 | 12-09-2005 16:48:07 |
| Red Paradox paso a paso | Aldo Josué | Conexión con bases de datos | 2 | 13-12-2003 13:53:37 |
| procedure paso a paso | Silver | Varios | 1 | 26-08-2003 20:24:00 |
|