![]() |
![]() |
| 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
|
|||
|
|||
|
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. |
|
#2
|
|||
|
|||
|
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) |
|
#3
|
||||
|
||||
|
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 |
|
#4
|
||||
|
||||
|
Por cierto. ¿Para que repites los filtros en cada evento del "OnChange"?
Coloca en cada Evento el que corresponda Saludos |
|
#5
|
|||
|
|||
|
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) |
|
#6
|
||||
|
||||
|
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. |
|
#7
|
||||
|
||||
|
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 20:38:09. |
|
#8
|
||||
|
||||
|
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 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 |
|