Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 21
Delphitest Va por buen camino
Buenos días,

voy a hacerte caso Caral. Encima que se está tomando tantas molestias solo faltaba que no te hiciera caso y siguiera con Paradox

Si que he conseguido ejecutar el programa que modificaste, funciona sin problemas, aunque le he tenido que dar vueltas para que me dejase de dar el error ese de la base de datos, pero ya va bien.

He cambiado por lo tanto a Access. Me ha bastado con crear una nueva base de datos desde access e importar la tabla clientes de paradox. Una vez ahí he llamado Gesatrans a la base de datos y mantengo clientes para la tabla.

Un detalle que he notado es que ocupa mucho mas espacio que antes, pero no tiene demasiada importancia.

Pienso que con este cambio lo que venga de ahora en adelante podría ser algo mas sencillo. Me refiero a posibles impresiones de consultas y cosas de esas.

Como cambios a tener en cuenta han sido lo siguientes:

En el TMOdule he tenido que quitar lo que había y poner un ADOConnection, ADOTable y DataBaseSource, el resto se mantiene practicamente sin cambios por lo tanto no ha sido muy dificil aportar las modificaciones.

Otra aportacion ha sido la opción Herramientas, Calendario que ya funciona con un calendario sencillito amablemente facilitado por Caral.

Y he puesto un botón en la ficha de clientes para salir, hasta le he añadido un icono muy chulo

Ya que hablo de botones, ¿Que diferencia hay entre Boton, BitBoton y SpeedBoton ?? veo que el boton normal no deja poner un icono y el Bitboton si pero no veo que mas cosillas pueden cambiar.

Y por último antes de pasar al proceso de listados de clientes e impresion de ficha y listado sigo atascado en el tema de la búsqueda. Si que puedo filtrar por un solo campo pero no por varios a la vez. ¿Sabe alguien si se puede hacer y como ?

Gracias y que tengais un buen día.

Aquí esta la última versión :

http://rapidshare.de/files/37296275/Gesatrans.zip.html

Para que no tengais el mismo problema que yo la ruta de la base de datos es:

C:\Archivos de programa\Borland\Delphi7\Projects\Datos

Si lo teneis en otro sitio os toca modificar el path de los objetos del TModule

Última edición por Delphitest fecha: 19-10-2006 a las 08:44:51.
Responder Con Cita
  #2  
Antiguo 19-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 21
Delphitest Va por buen camino
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;
un poco lío verdad ??

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)
Responder Con Cita
  #3  
Antiguo 19-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 289
Poder: 24
kalimero Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 19-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 289
Poder: 24
kalimero Va por buen camino
Por cierto. ¿Para que repites los filtros en cada evento del "OnChange"?
Coloca en cada Evento el que corresponda

Saludos
Responder Con Cita
  #5  
Antiguo 19-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 21
Delphitest Va por buen camino
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:
kalimeroPor cierto. ¿Para que repites los filtros en cada evento del "OnChange"?
Coloca en cada Evento el que corresponda

Saludos
He hecho tantas pruebas que al final es lo único que parece que funciona. A cada vez que se pulsa una tecla estes en la casilla que este tiene que 'refiltrar' la tabla teniendo en cuenta lo que hay en los otros campos y si no hay nada en ninguna (el super if que he puesto al final) pues tiene que quitar el filtro. Igual se puede hacer de otra forma pero no he dado con ella.

Un saludo
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #6  
Antiguo 19-10-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 19-10-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
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
Código Delphi [-]

ADOConnection1.Close;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
                                 'Data Source='+ExtractFilePath(paramstr(0))+ 'Datos\Gesatrans.mdb;'+
                                 'Persist Security Info=False';
ADOConnection1.Open;
TClientes.open;



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

Código Delphi [-]
TClientes.close;
Adoconnection1.close;

Última edición por Enan0 fecha: 19-10-2006 a las 20:38:09.
Responder Con Cita
  #8  
Antiguo 19-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
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:
C:\Archivos de programa\Borland\Delphi7\Projects\Gesatrans1
Espero que sea lo que necesitas.
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
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
Ejecutar Query Paso a Paso??? juliopag1 SQL 0 17-06-2006 02:51:10
Novato (Paso a Paso de una consulta) enecumene Conexión con bases de datos 2 29-05-2006 21:52:19
Motor Paso a Paso jluisx C++ Builder 3 12-09-2005 17:48:07
Red Paradox paso a paso Aldo Josué Conexión con bases de datos 2 13-12-2003 14:53:37
procedure paso a paso Silver Varios 1 26-08-2003 21:24:00


La franja horaria es GMT +2. Ahora son las 16:45:35.


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