![]() |
:o lo siento, no discutais por mi.
Creo que todas las opiniones son buenas y os agradezco que las deis pero no os calenteis entre vosotros por tan poca cosa. Cita:
es cierto que me he hecho un pequeño lío con esto de las bases de datos pero insisto en que solo pretendo hacer algo sencillo y por encima de todo aprender. Seguro que cuando termine la aplicación, si es que llega ese día :) , empezaré a encontrarle cosas que no me gustan y empezaré de nuevo con mas experiencia. David, muchas gracias por tu retoque, había visto que no funcionaba bien esa opción de cerrar la ventana principal pero no he querido marear con ello, ya doy bastante lata con lo demas :( Ante todo insisto en que no quiero molestar ni interferir con mi desconocimiento, si se considera en algun momento que mis comentarios no son apropiados no me parecería mal tener que dejar de postearlos. Mi simple intención es ir comentando la evolución del aprendizaje y puesta en marcha de mi proyecto por si puede servir de referencia a otras personas. Os pongo los últimos cambios: http://rapidshare.de/files/37107612/Gesatrans.zip.html El asunto está en Ficheros, Clientes y pulsando Buscar En el form que aparece, aunque me he entretenido a dejarlo completo, solo funciona la opción Edit2, bueno ni eso porque es donde no consigo hacer la busqueda, no se si el fallo está en el DBGrid que pongo por debajo pero no consigo filtrar la tabla. Hasta mañana y gracias |
Hola
Tienes que crear los formularios cuando accedas a ellos y no todos de golpe , por ese vete en Delphi a Project - Options y en la pestaña Forms , hay dos listas , en la de la izquierda tienes todos los forms , pues bien , menos el form principal y el DataModule , pasa los demás forms al lado de la derecha , donde pone algo así como Avalaibles forms . Luego en el formulario para acceder a clientes , en el evento onclick , cambia tu código de Form2.Show por este :
y en el formulario de clientes , en el evento Onclose , pon esto : Action := CaFree; Ademas el formulario de clientes no deberia de llamarse Form2 , sino algo como FClientes , WnClientes , FrmClientes ... |
Hola otra vez Delphitest
Te envio una pequeña ampliacion y modificacion de tu programa eso si hecho con una base de datos access. Puedes modificarlo a tu base de datos si quieres esto te lo envio nada mas para que veas lo sencillo y rapido que se hace con access. Hay alguna informacion en el programa Espero te sirva para darte cuenta de muchas cosas. Este es el linK. http://rapidshare.de/files/37142966/Gesatrans.zip.html Saludos |
1 Archivos Adjunto(s)
Un pequeño aporte para filtar los datos. Uso un ComboBox, el cual contiene los nombres de los campos de la tabla que se usarán para filtar los datos en la propiedad items (doble click en strings).
El nombre o parte del mismo se escribe en la caja de texto que hay al lado. Estoy aprendiendo a usar base de datos al mismo tiempo que delphitest. saludos p.d no se si sube el zip con el formulario y el *.pas, espero que si. |
Buenas tardes a tod@s,
ante todo agradeceros de corazón por las molestias que os estais tomando, hoy he tardado un poco mas en dar señales de vida, no me ha dado un infarto todavía pero igual no ando lejos :eek: Me ha costado digerir tanta información asi que voy por partes: David, gracias por la limpieza que le haces a mi código, son detalles que pueden pasar desapercibidos para un principiante pero no a un entendido, tomo buena nota de ello y logicamente lo llevo a cabo y procuro no reincidir en ello. (Ya tengo una hoja titulada ERRORES donde apunto todas esas cosas para que me sirvan en un futuro) Robert01, tus modificaciones me han sido de gran utilidad para acabar de rematar esto de los filtros. y por último Caral ... que decir ... si apuras un poco ya usaba tu programa y me tomaba un descanso durante unos días, seguro que has hecho en menos de 30 minutos lo que llevo intentando desde hace mas de una semana, el que sabe sabe ... ;) Os cuento por donde ando en este momento: Tras ver el código de amablemente Caral se ha tomado la molestia de programar he llegado a la conclusion que cada vez tengo menos claro todo este tema relacionado con los motores de base de datos, entonces me he puesto a buscar en internet y por eso he tardado en decidirme. Por ahora sigo con mi base de datos inicial pero ya tengo la mosca detras de la oreja. Si lo que yo uso es BDE (Borland Data Engine) de la casa Borland lógicamente y el sistema ADO (ActiveX Data Objects) es de microsoft por lógica este último me dara menos quebraderos de cabeza a la hora de instalar la versión definitiva en un equipo que funciona bajo Windows. Vamos que no lo se pero quizas me cambie mas adelante a ese tipo de base de datos. Por otra parte veo que hay operadores, ordenes , funciones .... o lo que sea que funcionan con un sistema de BD y no para otros, esa parte tambien me tiene intrigado. He hecho pruebas como es normal, veo que en Modulo que he creado si para Paradox usaba TDatabase con Access hay que usar TADOConnection y que para el tema de las tablas en lugar de dejar todo preparado en el Módulo principal hay que abrir y cerrarlas en los formularios con el objeto Table ... el caso es que he trasteado un poco con ello para al menos saber por donde van los tiros pero por ahora dejo la BD que inicialmente tenía creada sin descartar algun posible cambio mas adelante. Vamos al tema : Os paso la nueva versión con algunas modificaciones, como era tarea pendiente, la opción que hay que probar es Ficheros,Clientes, Buscar. Solo funciona el campo Nombre Comercial, al menos he conseguido dar un paso mas, una vez que se empieza a escribir en el la tabla se filtra y si aparece el registro del cliente que queremos basta con hacer doble click en el para que se cierre el form de búsqueda y aparezca la ficha individual del cliente. Es mas o menos lo que quería y lo he conseguido sin duda gracias a vosotros, cuando veais el código os sonara de algo :) El siguiente paso que me gustaría dar es conseguir una búsqueda multiple, o sea por varios campos pero que se puedan combinar entre ellos. He probado con varios IF para indicar varias condiciones pero no acabo de dar con ello, no se si será posible aplicar todo en una sola linea con la orden .filter o solo admite un campo y en cuanto se pone otra nueva orden queda la primera anulada. Por otro lado busco algo parecido al TModule (aunque no tiene nada que ver) para hacer lo siguiente: Visto que para buscar uso el evento OnChange de las casillas Edit y hay varias, no se si existiría una forma de poder indicar una serie de linea de comandos en un Objeto y poderle llamar cuando se necesite. De este modo evitaría tener que repetir un monton de lineas en cada Edit. No se si me he explicado bien. Aqui va el link con lo nuevo: http://rapidshare.de/files/37233058/Gesatrans.zip.html Creo que no me olvido de nada :rolleyes: Hasta mañana y gracias por todo |
Hola
Creo que no as podido ver el programa que te envie funcionando, si no sabes como hacerlo, te lo explico, si ves el codigo, sin experiencia, no lo vas a entender, sin verlo funcionando. El ajuste que te envie, no solo puede trabajar con access, el codigo del form que busca al cliente filtra letra a letra, tienes que verlo. Coloco cada componente en cada form, no porque sea mejor o porque asi se haga con access, lo hago porque lo entiendo mejor. En esto de la programacion hay mucha tela que cortar, cada quien lo hace a su manera y de una u otra forma va bien. Solo quiero darte mi ultima opinion al respecto de la bases de datos, hay que tener en cuenta que tu programa posiblemente tendra que trabajar en cualquier ordenador, preguntate a ti mismo o al foro: Necesitare instalar el programa con archivos de delphi para que funcione con esta, o esta otra base de datos?, Tendre que crear un instalador ?. Se que eres como yo un novato en esto, solo creo que al igual que yo te haras estas preguntas tarde o temprano, no insisto en el uso de una u otra base de datos, solo digo, por que recorrer el camino dos veces. Espero que tu proyecto funcione y se que lo lograras con la ayuda de este foro. Un saludo Cordial |
Hola Delphitest
Te envio esta modificacion con el fin de que entiendas lo que dije anteriormente con relacion a que cada quien tiene su manera particular de hacer las cosas, como veras en un solo form puedes hacer muchas cosas, esta ligado a tu base de datos, asi que lo puedes ejecutar igual. Aqui te lo envio: http://rapidshare.de/files/37251349/Gesatrans1.zip.html Se que te estamos llenando de informacion, no te preocupes que apenas empiezas.:D Saludos |
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 |
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 :rolleyes:
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);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 |
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 |
Por cierto. ¿Para que repites los filtros en cada evento del "OnChange"?
Coloca en cada Evento el que corresponda Saludos |
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 |
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. |
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 |
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
|
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 |
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. |
Cita:
Debido a que si no vas a tener 5000 usuarios Conectados un SQL-server o cualquier Motor que sea Servidro de Bases de Datos te va a funcionar de mil maravillas y te vas a evitar Futuras Rupturas de la Base de Datos. Pero Tambien Podes Tener solo el Acceso Directo de tu aplicacion en CLiente (PC en donde se va a ejecutar la aplicacion) haciendo refencia en "Iniciar en" La carpeta de la maquina a utilizar y lo que le comente funciona y en el Cliente no tenes que Instalar nada de nada! Pero no es lo mas Recomendable. de todas maneras. |
Pues de nuevo gracias por vuestra ayuda.
Ena0, poco a poco iré haciendo eso que dices de cambiar los nombres, tiene pinta de llevarme tiempo pero lo haré a ratos. Lo del código de la BD no consigo ponerlo, vamos que lo pongo en el uses pero me da error, asi que de momento lo he quitado. Lo que hago cuando veo un error de base de datos es simplemente crear la ruta que no encuentra y meto dentro la BD. Es el caso de la última de Caral, por lo que veo usa Delphi6 y yo el 7, he creado esa carpeta y funciona. Caral, muy amable tu colaboración. He repasado tu último código y al final lo que he hecho es una fusión del tuyo y del mío. Mas que nada porque lo de la búsqueda estoy empeñado en verlo como lo he hecho porque estoy acostumbrado a un programa comercial y me resulta mas cómodo así. Para adaptarme a lo tuyo he renombrado todos los form y units, ahora se llaman todos igual que los tuyos. Ando continuando con la ficha de cliente, he retocado eso del explorador como dices, y si pruebas lo mío verás que he empezado con lo de la impresión. Hay un botón desde cliente (está al lado del de Buscar) que llama a un Qreport, solo estoy probando porque ya es mucha información y tengo que organizarla un poco sino quiero que esto me desborde. Hoy digiero el Qreport, con las bandas de cabecera, titulos, detalles, pie de pagina ... mucha tela pero voy viendo por donde anda el tema. Lo último está aquí: http://rapidshare.de/files/37364030/Gesatrans.zip.html Me gustaría que lo hicieras funcionar, Caral, a ver que te parece lo de la búsqueda. Quizas te de error por el tema de la BD. Un saludo y buenas noches |
Bueno a ver.. Simplemente hace Doble Click Sobre el DataModule y en el Create pone ese codigo que te pase
o sino agregame en tu msn [email protected] Bueno ACA te Dejo el linck para que bajes el DmClientes. http://rapidshare.de/files/37367825/dmClientes.rar.html |
Hola Delphitest
Me has dejado con la voca abierta, ya pude ver tu programa, creo que ya no me necesitas para nada, estas hecho un experto, efectivamente yo tengo delphi6, pero ya me las arregle para verlo. Me costo, pero logre entender como hiciste el reporte, la verdad yo uso el reporteador del mismo quickreport, que lo hace todo y es facil, aqui te envio una pequeña modificacion al reporte para que lo veas, por lo demas vas estupendamente bien, creo que pronto te pedire consejo. Aqui esta la modificacion: http://rapidshare.de/files/37377381/Gesatrans.zip.html Vi el codigo que te envio Enan0 y que decir, que se puede esperar de un maestro. Saludos |
Buenos días,
perfecto Caral ya he 'plagiado' las modificaciones. Ahora estoy intentando dejar a mi gusto la ficha de cliente, pero tengo alguna duda, he puesto un mensaje en: http://www.clubdelphi.com/foros/showthread.php?t=36680 algo se me está pasando. Ayer probe esto mismo en un form nuevo y me funcionaba sin problemas, he repasado el código porque algo tiene que haber que me impide añadir campos en el Qreport. Ya os contaré. |
Buenas tardes,
vaya día mas duro que he tenido. A medida que se aculmula información esto se complica pero no pierdo el ánimo aunque si reconozco que por momentos me entra el apagón. Hoy me ha costado digerir estos del QReport y el tema SQL, no lo acabo de entender al 100% pero si he sido capaz de tirar para adelante. Esta es la evolución de hoy: Partimos de la base de que Caral me ha pasado mi codigo modificado y por lo tanto me ha dado un gran empujón, aun asi me gusta enterder las cosas y no ponerlas porque si, no siendo que alguna vez tenga que retocar algo y no sepa hacerlo, por eso me he comido tanto la cabeza hoy. --> He cambiado el DTMClientes (el módulo) añadiendo como bien decía Ena0 el código para agilar la localización de la base de datos. --> El botón imprimir de la ficha de cliente nos lleva a un QReport con aspecto de ficha individual lista para ser imprimida. Podemos buscar primero el cliente con el sistema de búsqueda que hice ayer. --> Por capricho en el form Buscar Cliente he añadido un sistema de ordenación de los datos en función de un campo que se selecciona a través de un RadioGroup. --> Desde el botón Imprimir del Form Buscar Cliente llegamos a una venta que nos pide si queremos imprimir fichas o listados, de momento solo funciona Ficha. La diferencia con respecto a la impresion que comente antes de ficha de cliente es que aqui se imprimen las fichas de los clientes filtrados anteriormente, no solo una. De hecho he metido dos por página. El tema es que solo soy capaz de filtrar por un campo a la vez. Si por ejemplo rellenamos mas de uno se va todo al garete y sale un error, pero con uno solo o ninguno la opción va bien. Este último paso es que tengo que terminar y luego hacer el apartado de listado general. Por hoy creo que ya está bien. Aqui os pongo lo último, rapidshare no iba bien, os lo pongo en cjoint: http://cjoint.com/data/kuuo6swuVh.htm Buen fin de semana a todos. |
Hola Delphitest
Me parecen estupendos los cambios pero, te voy a regañar:mad: , estas poniendo mucha atencion a la forma y no al contenido, bueno, despues de regañarte :D ; He visto el avance y me parece muy bien ;) , me he tomado el gusto con tu permiso de un par te caprichos, ya los veras, ejecuta el programa y presiona imprimir en el form clientes. Te he puesto en el menu principal, un poco de tarea, para que veas que no puedes entretenerte en un solo form, si no, te voy a dar baja calificacion, hay muchas cosas que componen un programa de facturacion, recuerdalo, ademas te he organizado la colocacion de los form, cuando ejecutes te daras cuenta :D . Bueno aqui te dejo mi capricho. http://rapidshare.com/files/65886/Gesatrans.zip.html Saludos |
Mira si soy buen alumno que hasta he madrugado, hoy sábado, para hacer mis deberes :)
Muchas gracias de nuevo Caral. Bueno, como de costumbre voy cogiendo lo que parece a mi gusto de tus cambios. Me has paralizado un poco con el super menú ese. jejeje, pero lo he puesto ya que solo son opciones y siempre podré quitar alguna si no consigo dar con su programación ;) Los cambios son los siguientes: ---> Como novedad el menú está lleno de opciones (ya se ajustarán sobre la marcha) --> Al pulsar el botón Imprimir en Buscar Cliente, antes se llamaba a otro Form para elegir el formato de impresión, ahora he adaptado un popup para elegir esa opción directamente sin abrir un nuevo form, es mas intuitivo y gasta menos recursos. --> Ya funciona el listado general, quizas haya que retocarlo mas adelante en función de las necesidades pero de momento abarca de forma legible mas de 10 registros de clientes por página en un formato que proporciona todos los campos y en una hoja apaisada. A ver si doy con el tema de filtrar esos informes con los datos que se pongan en buscar cliente y una vez solucionado pasamos a otro tema. Caral es cierto que me estoy centrando demasiado en el cliente pero parte de la base que hace dos semanas no sabia absolutamente nada, ahora tampoco se mucho pero ya voy abriendo boca poco a poco. Quiero acabar este punto del cliente antes de seguir, no me gusta dejar a medias las cosas. Una vez finalizado el filtro para los informes ya tendré muy a huevo hacer el de repartidores ya que es practicamente lo mismo a falta de retocar algun campo. Aqui está lo nuevo actualizado: http://rapidshare.com/files/92278/Gesatrans.zip.html Buen fin de semana a tod@s un abrazo |
No me gusta el consejo que voy a darte, pero hay que ser realistas.
Cuando yo estaba en tu misma situación, ví que era mejor dejar las cosas "a medias" al menos, hasta adelantar las demás partes. ¿Por qué? Porque si ahora terminas una rutina para clientes y la dejas "brillante como los chorros del oro", más tarde cuando veas la parte de repartidores, verás que esa misma rutina de clientes, cambiando 3 o 4 cosas tambien te sirve, es decir, reutilizar código escrito. Esto hace que hayas "perdido tiempo en afinar" mucho lo de clientes y ahora, de todas formas, tienes que retocarlo. Quizás dejando la parte de Clientes de forma que funcione pero sin llegar a "abrillantarlo", te permita despues, al hacer la de repartidores, realizarle cambios y afinar la misma rutina para dos funciones distintas. Sé que valoras todos los consejos, ahora es tu decisión echarle cuenta o no, simplemente con que lo pienses ya me doy por satisfecho. Según he visto tu QRClientesGeneral, es del tipo qrCreateList, échale una visual, ya que puede servirte. El mensaje nº 4 de ese hilo explica la forma de hacerlo. En tu caso necesitas un ADOTABLE o bien ADOQUERY. Como ves, en apenas 20 líneas de código, puedes hacer un listado de cualquier tabla o consulta, modificándolo para que quede:
Saludos. |
Por cierto la ultima versión de tu programa , no la he podido descargar , igual si te subes los programas en http://www.megaupload.com/es/ seria mejor .
Por otra parte , debias de plantearte usar la herencia , es decir hacer un formulario prototipo y de ahí derivar el resto . |
Buenas tardes,
el día ha sido de nuevo productivo :) Despues de un buen paseo para desconectar un poco y pensar en otras cosas mas relajantes he reanudo esta tarde mi empeño en solucionar el asunto pendiente; conseguir que los reportes tengan los mismos datos que lo que se ve en el DBGrid, es decir que esten filtrados y ordenados por los criterios que pongo en Form BuscaCliente. Despues de muchas vueltas y no acabando de entender el AODQuery ni el sql es hecho lo tipico que suelo hacer, quitar lo que no entiendo y aplicar la lógica. Se que posiblemente haya mejores formas de hacerlo pero os cuento como he dado con ello, YA FUNCIONA. Simplemente he quitado de los Qreport el AODQuery y a la hora de poner los objetos de los campos en lugar de relacionar el dataset con el AODQuery, lo he relacionado con la DB Clientes, por logica al usar esa base de datos que ha sido filtrada y ordenada previamente en el Form BuscaCliente debían mantenerse los filtros y el orden y asi ha sido. Solución mucho mas simple de lo que yo pensaba, pero me ha costado dar con ello. Lepe, es cierto que no avanzo mucho, pero ya por empeño tenía que terminar con esto. Aunque voy optar por lo que dices, tienes razon, puedo ir haciendo lo que ya se en repartidores y asi hacer los dos a la vez, total las dudas van a ser las mismas y asi tengo mas trabajo adelantado. Eso de las herencias David no lo acabo de entender bien pero se que es algo que voy a necesitar mas adelante. Investigaré a ver que se cuenta sobre ello y que parte es la que entiendo. Os pongo en rapidshare y el que dice David. Lo ultimo es el Form de BuscaCliente botón Imprimir, ya va el listado general y el formato por ficha, filtrado y ordenadito: http://www.megaupload.com/es/?d=96VN8N4F http://ul9l3.rapidshare.com/cgi-bin/...55452611349265 BUen fin de semana, el próximo paso es la opción repartidores, muy parecida a la de clientes, pero cambian unos campos. |
En Project - Options , acuerdate de pasar los formularios donde tienes los QuickReports , al otro lado , a la derecha . Sino lo estas creando nuevamente .
Luego en la lista pone el DataModule en primer lugar . Eso por un lado , por otro , mira si prefieres tener los formularios de clientes y buscar de esta manera . Vas al formulario a la propiedad BorderSyle y ponlo a bsToolWindow , después en borderIcons , dale al signo + y pon la primera opción a True y las demás a False . Así los formularios no pueden ser cambiados de tamaño .En estos dos formularios pon la propiedad Position en poScreenCenter o poDeskoptCenter , quedará mejor . |
Hola delphitest
No se peeden descargar más los archivos cpmprimidos de esos sitios, por lo menos yo no pude bajarlos de ninguno de los dos. ¿no hay otro sitio que sea menos complicado? saludos |
1 Archivos Adjunto(s)
Buenas tardes,
David, gracias por recordarme eso de la organización, tengo tantas cosas que tener en cuenta que se me había pasado. Ya lo he hecho y tambien lo que comentas de las ventanas, es cierto, queda mejor así. Hoy no subo nada nuevo pero ando en ello, prefiero ya pasaros las novedades mañana con los repartidores totalmente terminados y unos cuantos cambios mas que he hecho, está quedando bien. Por otra parte ando dandole vueltas a lo que viene despues de eso, que serán las tarifas y lo de los albaranes, por ahora no se ni por donde empezar, por lo que veo hay que dividir la factura o el albaran en dos partes, el encabezado y el detalle, eso va a tener trabajo :eek: . De momento esta semana quiero terminar los trozos que tengo a medias para no liarme mas. Cuando llegue a esto ya os avisaré. Subo de forma puntual en zip lo mismo que subí el otro día a ver si Robert lo puede descargar, sino ya miraré otras opciones para dejaros lo ficheros en sitios mas fiables que esas web, aunque yo no he tenido problemas para descargarlo. Hasta mañana |
Buenas tardes de nuevo,
esta vez he tardado un poco mas en poneros los adelantos. He estado haciendo la parte de repartidores, es muy parecida a la de clientes y no he visto oportuno iros dando detalles paso a paso de esta parte ya que no aportaría gran cosa hasta que no estuviese acabada. Como bien decía Lepe, a medida que he estado haciendo esta opción, han salido fallos en los clientes y ademas tambien he podido comprobar que había cosas que no me gustaban, asi que por eso he tardado un poco, pero ya está todo en orden. Estos son los cambios: --> Había un fallo en clientes, la impresion imprimía siempre todas las fichas en vez de una individual, lo he solucionado quitando el locate y poniendo un sistema de filtrado solo teniendo en cuenta el campo del código de cliente. --> Donde lo he visto mas conveniente he añadido a través de la propiedad "hint" información de los botones. --> He creado unos botones de acceso directo a Clientes y Repartidores desde el Form Principal. --> Me ha tocado crear dentro de la base de datos Gesatrans una nueva tabla, la he llamado Repartidores. --> En lugar de aprovechar el DTMClientes y para no liarme he preferido crear unos nuevo llamado DTMRepartidores, por eso de que el nombre sea mas identificativo. Tambien he creado el Form FRepartidores y FBuscarRepartidores, muy parecidos a los de los clientes. Como particularidad vereis que he cambiado algunos campos, por ej. nombre cial por Nombre y razon social por apellidos, ademas de quitar el campo Fax que no sirve para mucho en el caso de los repartidores. Tambien, y por eso de aprender algo nuevo, he añadido un campo con la foto del repartidor, es bastante sencillo y asi no me resulta todo tan monotono. Se puede añadir o borrar si se quiere, auque solo en formato .BMP --> Me he cansado del navegador predefinido porque no sabía indentificar las acciones de los botones de forma individual, entonces he creado botones propios y he dejado el navegador para movernos por los registros. Echarle un vistazo , ha quedado muy chulo (o eso me parece a mi). --> He tenido que ingeniarmelas como he podido para que los campos que aparecen en los formularios no sean editables de entrada, eso tiene peligro y no me gustaba. Por eso he tenido que poner botones para añadir, borrar y editar los registros. Aqui está lo nuevo, probarlo si podeis y ponerle pegas y fallos asi lo vamos depurando entre todos :) http://cjoint.com/data/kxqG37HGLK.htm Espero que no tengais problemas para descargarlo, creo que lo dejan ahí unos 20 días. Ahora voy con el apartado de tarifas. A grandes rasgos tengo que controlar el peso de la mercancía y la zona de destino, ya os iré contando. Un saludo |
Solo un segundin, ya tengo otra opción mas fiable para poneros los archivos, aquí no se borran con el tiempo.
Los voy a subir a un servidor donde tengo un hosting, espero que funcione mejor, ya me contareis. Lo de hoy lo meto tambien aquí: Lo pongo en formato RAR en vez de ZIP ya que parece que lo comprime mas y ocupa menos espacio. ya me direis. |
Hola Delphitest
No he podido ver el programa funcionando pero se ve bien el contenido, se ve que has trabajado, ya se que eres constante, la idea es que sigas y lo termines, que de aqui algo sale;) . Aqui te envio un adelanto de la parte de albaranes, ya se que le haras las modificaciones a tu gusto, pero, ayuda es ayuda:D , trata de enviar los archivos completos, ya que faltan algunos y no corre. Estas son tres pantallas, Albaranes, Transacciones, busqueda. Las situe en albaranes, pruebalo y me dices. Aqui esta: http://rapidshare.com/files/385786/G...31006.rar.html Necesitas, Cuentas X cobrar y Pagar ? Saludos |
Hola Caral,
es cierto, no funciona lo que he subido, me he debido liar con el modulo de los repartidores. Resulta que si esos archivos , no están dentro de Datos no va. (Son dmRepartidores), solo con cambiarlos a esa carpeta ya funciona. De todos modos ya he cambiado el .rar del link que puse antes. Voy a ver eso de los albaranes, en cuanto a X cobrar y pagar, solo necesito saber lo que falta X cobrar, ya que no llevaré por ahora control de gastos, solo de ingresos. Lo que pretendo un poco por encima es: Poder hacer presupuestos, albaranes y facturas pero estas últimas además de poder emitir una en blanco tambien me interesa poder convertir uno o varios albaranes en factura. Trabajamos mas bien el dia a dia con albaranes y solo facturamos a fin de mes, creo que pudiendolos convertir sería lo ideal. Voy a agilizar un poco lo de las tarifas aunque no quede completo por el momento y me pongo a ver eso que me has pasado. Gracias de nuevo Caral por las molestias que te estas tomando ;) Un abrazo |
Buenos días a tod@s,
acabo de terminar el apartado de Ficheros/Tarifas Os cuento las ampliaciones que he hecho: --> Crear una nueva tabla llamada Tarifa --> Crear el Form de la tarifa con un boton mas sencillo que los anteriores para imprimir ya que solo necesito imprimir la tarifa entera y no de un solo registro. --> Crear un Qreport para la impresión. Le falta texto de observaciones lógicamente para no meter ahí todos los detalles. --> He creado un botón de acceso a tarifa desde la pantalla principal. Voy a dejar tal cual esto de la tarifa de momento para no perder tanto tiempo en afinar y poder adelantar un poco el resto. Concretamente quiero empezar con los albaranes, la verdad estoy un poco en blanco y no se por donde empezar, ando leyendo todo lo que pillo en la red pero sigo teniendo dudas. Por lo que se ve hay hacer 2 tablas para los albaranes, una con el encabezado y otra con el detalle. el encabezado deberá ir de alguna forma vinculado en parte a la tabla de clientes para poder extraer los datos de ahi y el detalle a la tarifa para calcular los precios en funcion del peso de la mercancía. ... en fin esta parte parece tener mayor complicación que las anteriores. He mirado lo que hiciste Caral, pero me da un error en NumEdit del unit UFTransMaterial. Lo que yo pretendo hacer en albaranes es algo identico a una factura pero sin validez fiscal, solo para llevar un control diario de los servicios, luego a fin de mes facturo los albaranes. Aqui está lo nuevo Que paseis un buen día. |
Perdon por mi ignorancia, pero en argentina creo que no usamos la palabra ALBARAN, Si es asi no la conozco.
alguien seria tan amable de Decirme Que es un ALBARAN, O algun otro Sinonimo. gracias HE buscado en google pero algunas definiciones son mas complicadas que la aplicación de una RNA. pero bueno. Puede ser que SEa algo asi COMO un REMITO. |
Hola ena0,
pues no sabría decirte como llamais a los albaranes allí. Las 3 partes que necesito son: Presupuesto: Documento que emito para que un cliente sepa el precio de un servicio/transporte de una forma meramente informativa, sin compromiso por ninguna de las partes. Albarán: Documento que emito cuando se realiza un porte a un cliente habitual. Es como una nota de entrega que el cliente debe de firmar para dar conformidad pero no se cobra. (No tiene validez fiscal) Factura: Documento que emito a fin de mes y que agrupa todos los albaranes de un cliente para poder cobrar. (tiene validez fiscal) No se si con esto te he aclarado algo. Un saludo |
Hola
Un Albaran en realidad es un inventario de una u otra forma, la informacion que se saca es en relacion a un producto o servicio. La empresa vende algo, lo que sea, productos, servicios, etc, tiene clientes que necesitan de ese algo, el albaran indica lo que se tiene, es un archivo. Es una palabra que en realidad solo creo que se usa en España, en America se usa Inventario, que es en realidad un anglismo, (Proviene del sajon). Saludos |
El albaran es una simple tabla, la factura son dos tablas en relación maestro-detalle (cabecera de factura y cuerpo).
Albaran, campos: - id de albaran (autoincremento, puede haber huecos si no quieres huecos pregunta) - numero de albaran (correlativo, no es clave principal), tipo A0000032/2006 - fecha albaran date - remitente entero (clave ajena o foránea de cliente) con un DBLookup va que chuta - Destinatario entero (clave ajena o foránea de cliente) con un DBLookup va que chuta - Portes entero,un radiogrup con dos opciones: - Pagados (se supone que los portes del albaran los paga el Remitente- Base imponible - Porcentaje de iva - total de albaran currency (puede crearse o puede hacerse al vuelo) - Los demás campos que requiera. Para enlazar esto con la tarifa, puedo ayudarte un poco, ya que tengo algo parecido hecho. La filosofía que uso es: - Dependiendo del tipo de portes (pagados o debidos) se elige la tarifa correspondiente de ese cliente, despues, según los kilos se eligen las 2 tarifas más cercanas y se añaden a Un Combobox, donde el usuario, puede elegir una de esas tarifas o poner una distinta. Aunque se "debería elegir una de sus tarifas" a veces, por el volumen del paquete, se establece una "tarifa especial" para ese porte, por tanto, hay que dejar que el usuario pueda especificar esa tarifa excepcional. si te interesa puedo darte algún fragmento de código. Saludos. |
| La franja horaria es GMT +2. Ahora son las 04:30:52. |
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