![]() |
Facturacion con varias tablas
Hola a todos, antes que nada se que hay varios ejemplos de facturacion pero no encontre nada parecido a lo que necesito.
En el sistema de una veterinaria en la parte de facturacion toma datos de dos tablas para facturar, osea de las cuales se va a calcular el importe, mas las de datos, como la del cliente y quien realiza la factura: Productos: cod_prod // * numerico autoincrementable Codigo // string el que le crea el cliente para que lo ubique mejor fk Cod_prov // para relacionarlo con el proveedor fk nombre descripcion import-compra import-venta Servicios: Cod_servicios * codigo // IDEM productos Servicio // descripcion del servicio prestado, ej. radiografia importe cree una tercera para relacionarlas Factura: cod_factura Cod_servicio Cod_producto Cantidad // para que los multiplique por los productos y una cuarta para almacenar todo Cod_facturacion Cod_factura Cod_cliente Cod_administ // quien realiza la facturacion Fecha hora Espero que este bien encarado, se supone que el cliente vera un boton de carga en donde eligira si es producto o servicio y en un DBGrid ira viendo cada cosa que carga con la posibilidad de borrarlo. Codigo I producto o servicio I importe I Cantidad I mostrare el subtotal luego el total y lo mostrare en un Qreport. El problema es que el cliente pueda seleccionar de cualquiera de las dos tablas y la vea como una en el DBGrid, se puede hacer eso? desde ya muchas gracias Por cierto utilizo Delphi 7 y Paradox (no me critiquen es solo un ejemplo:) |
un saludo DOS
para poder desarrollarlo esto yo te recomiendo db Acces te animo a que vayas programandolo, te sera mas facil q encontrar uno en la web y vayas parchaandolo no veo nada de codigo de Delphi o DB y no se donde podemos ayudarte, si vas programando y tiene dudas no dudo q todos los del club te ayudamos cuando hay CERO codigo CERO todos miran y nadie menciona nada ahi esperamos tu codigo para apoyarte ;) |
Ok darkbits, lo que pasa este es un sistema de una veterinaria, ya esta terminado todo lo previo, alta, baja y modificacion de datos, mostrar informacion, claves, etc. el problema surgio cuando llegue a este punto, la facturacion, con una tabla, no tengo problemas, solo selecciono y cargo los datos en un DBGrid, con la demas informacion de la factura y con un QRep lo imprimo.
El asunto es que no se como encarar que el cliente cargue datos de dos tablas distintas y la vea como si fuese una al cargarlas, supongamos en un DBGrid. No pido que me lo resuelvan y codifiquen (aunque no estaria mal :D) solo que me vayan tirando ideas para ver si lo puedo solucionar, no puedo codificar nada si no se como encararlo. Esto es el anteultimo paso el sistema esta en un 90%. Cualquier ayuda/idea, gracias.^\||/ |
El problema es que no se entiende qué problema tienes, hablas de que funciona bien con una tabla y no sabes cómo presentar datos de dos tablas... o algo así, explica mejor lo que necesitas, gracias.
|
Hola
Da la impresion de que quieres cargar los datos con el componente TTable y no usar el TQuery. Si estas usando un table tendras que hacer un masterdetail. Es mejor hacer una consulta sql con el tquery. Saludos |
Cita:
Tratare de ser lo mas basico y a la vez detallado para explicar lo que necesito hacer. Tengo 2 tablas, una con servicios otra con productos, en el formulario de facturacion el cliente cargara todo en (supongamos) un DBGrid, pero para el debe ser, creo yo, que lo viera como si fuese una sola tabla de datos, al cliente no le importa buscar si es un producto, en un lugar, si es un servicio en otro, si es alguna otra cosa en otro lado o sino voy a tener que crear una unica tabla en donde se encuentren los servicios, productos, etc. todo aquello que sea viable de facturacion, para que lo cargue sin problemas. No me parece la mejor solucion, no creo que sea correcto, aunque si funcionaria. Por otro lado puedo realizar un maestro detalle o consulta con sql lo que convenga, pero que realice lo que necesito. gracias. |
Hola
No entiendo muy bien, me parece que: 1- tienes dos tablas 2- quieres poder cargar tanto servicios como productos en un dbgrid. 3- me parece que puedes cargarlos independientemente pero verlos juntos en el dbgrid. No entiendo amigo. Saludos |
Creo que la explicación nos ha confundido más :confused:
|
Hola
Creo entender mas o menos que que necesita, el problema para mi es que (segun lo que veo en otros hilos) esta usando muchos tables y prácticamente lo hace todo sin codigo. No entiendo bien cual es el problema de UNIR la informacion de dos tablas en un dbgrid, para mi sigue siendo el uso de tables y no usar sql. Me gustaria ayudar con algun ejemplo pero el amigo DOS usa paradox y ahi ya me canso solo de pensarlo.....:D:D Saludos |
Cita:
|
Es verdad casi todo lo realizo sin codigo, lamentablemente lo de Paradox es con lo que me estan enseñando :( no fue mi eleccion. de hecho muchas de las cosas que hago las he aprendido de San Google y en este foro, puedo intentar algo nuevo, pero no me queda mucho para la presentacion del proyecto.
Supongamos que comienzo de 0 a crear las tablas y las relaciones, cual seria el lenguaje y o programa para realizarlo, que no sea muy dificil y por supuesto mejor que Paradox. Gracias. |
Hola
Ya lo tienes casi todo montado, sigue con paradox de momento. tienes que tener en cuenta que no estamos sentados al lado tuyo y nos es dificil entender lo que quieres hacer, tennos paciencia. coloca el programa con la base de datos en un zip y lo subes aqui, a ver si puedo hacer algo. saludos PD: Como me conecto a paradox :D:confused: |
Ok lo subi a la nube https://www.dropbox.com/s/k4oh0ou4ndvkr4m/ITM.rar , se decomprime y lo pones en C: asi mantiene la ruta y no hay problemas, son dos carpetas una con las tablas la otra con los units, queda disponible para el que le sirva de algo, saludos.
|
Hola
Ya tengo el programa. Veo que tienes un form factura (form14) Veo que tienes tres dbgrid Ahora que necesitas, que quieres hacer ?. saludos |
Caral la idea seria que haya un DBGrid en vez de 3 en donde el usuario vea lo que carga para facturar, tal vez con un boton cargar, donde selecciona lo que va a cobrar, sea productos y/o servicios luego en la otra pestaña veria la factura final antes de imprimir y guardar, por supuesto que me tendra que actualizar el stock, pero ese es otro tema y tal vez lo solucione solo :D
se va entendiendo un poco mas? |
Hola
Si, te entiendo. Vamos paso a paso: Empecemos........ 1- coloca un combobox en el form14 la propiedad text dejala en blanco. en la propiedad string ponle: Productos Servicios 2- en el evento onchance del combobox pondras la activacion de las tablas solo para un dbgrid. me sigues... saludos |
Hola
La idea es muy simple: Tienes un combobox con los item productos y servicios cuando cambias de uno a otro se establece el datasource que esta ligado a la tabla que necesitas. Como los datos no coinciden de una tabla a otra se establece el item de cada dbgrid en ese mismo paso. luego se activa. Saludos |
Hola
Hoy es un poco tarde pero mañana te digo el codigo para que lo pongas y te funcione sin problemas. Hasta mañana, Buenas noches. Saludos |
Gracias Caral, hoy a la noche cuando llegue a casa lo voy a implementar a ver que sucede. Saludos.
|
Hola
aqui estan los cambios en el form 14. saludos |
muchas gracias.
La verdad que soy un cero a la izquierda :o supongo que ahora lo que faltaria seria poner un boton para seleccionar la fila donde este el elemento deseado o codificarlo en el evento oncellclick del dbgrid y pasarlo a un nuevo DBGrid que almacene la informacion de esa factura, no? |
Hola
Yo lo que haria seria: 1-Hacer una tabla temporal para ir colocando los items que voy a poner en la factura, asi, si quiero puedo eliminar alguno que no quiera. 2-usar el celldobleclick para cargar los datos. Saludos |
Gracias Caral, Hoy voy a ver si puedo implementarlo, para una tabla temporal debo agregar un Ttable mas?
y en el celldobleclick deberia codificar en SQL, para asignar a esa tabla? Saludos. |
Te encuentro muy perdido, amigo DOS, te aconsejo este libro, es gratis y además es de lo mejor que existe sobre bases de datos en delphi.
|
Hola
Se puede hacer con un ttable mas. El concepto de una facturacion va de la mano con el tipo de articulo, servicio, etc, el precio y la cantidad. tienes que manejar mejor esos puntos. coincido con Casimiro, lee el libro que te recominda, te quitara muchas dudas, de todos modos sabes que en lo que podamos aqui tambien te seguiremos ayudando. saludos |
Leere ese gran libro, pero por el momento ya que debo presentar este trabajo el martes, creo que voy a unificar las tablas de servicios y productos, seguramente perdere algun punto en la calificacion, pero bueno, es lo que puedo hacer, para que el sistema funcione, muchas gracias.
|
Hola
No veo el problema de hacer una tabla temporal ? Saludos |
El problema no es la tabla el problema soy yo :(, se que es muy sencillo y ustedes lo sacan a todo esto de taquito, de tantas veces que lo hicieron, pero yo me tengo que devanar el cerebro y googlear por todos lados para tratar de ver que le pongo a un boton para que me vaya colocando los materiales que selecciono de las tablas anteriores en una nueva para poder guardarla e imprimirla.
|
Hola
No es dificil, si lo puedo hacer yo cualquiera lo hace. 1-Crea una tabla, ponle los campos: Cod_Producto Codigo Descripcion Unidad ImporteUnid Cantidad TotalImporte 2- Por un dbgrid en la parte del Tabshet2 del form14 Una vez hecho esto se usara el evento Oncelldobleclick del dbgrid1 Ahi se indicara que se guarde los datos en esa tabla y se pedira la cantidad la cual se multiplicara por el importe y se guardara el todal se se ira sumando para el total general Saludos |
Cita:
|
Hola
Si, la haces en paradox Si, le puedes poner el cod_servicio, pero si cada cosa tiene un codigo, no creo que se necesite tener los dos. Si, el evento hay que codificarlo para que haga lo que necesitas. Saludos |
OK, hasta ahora voy bien :D ya lo he hecho
|
Hola
Tienes que pones un ttable adicional que este enlazado a la tabla temporal que creaste. saludos |
ok, ya esta listo
|
Hola
dale doble click al nuevo ttable que hiciste y ponle los campos ahi, tal y como lo tienes con los otros dos el ttable3 y el 5. una vez hecho esto en el evento del dbbrid pones un codigo como este: Es un ejemplo que guardara el primer dato, esto lo tendras que hacer con los demas. Saludos |
Hola tengo unos pequeños problemas, uno cuando ejecuto el programa y voy a facturación, por defecto el DBComboL.. aparece como servicios, cuando selecciono Productos me tira un error.
otro, cuando estando en servicio, hago doble click para cargar un item, me tira otro error. Adjunto imagen de los errores ![]() El segundo DBGrid por el momento esta en la primer hoja, junto al otro solo para ver como funciona. La codificacion completa Gracias |
Hola
Paseame el programa completo otra vez y lo reviso. Saludos PD: Recuerda que los honorarios van subiendo :) |
Me parece que voy a tener que embargar varias cosas, esto ya es un abuso de mi parte.
https://www.dropbox.com/s/0a3qcadb6l...cional2012.rar |
Hola
Dame un minuto me lo complicaste con el campo tipo money, voy a buscar en google Saludos |
no hay problemas, aca es medio tarde, cualquier cosa lo vemos mañana, un abrazo.
|
La franja horaria es GMT +2. Ahora son las 12:56:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi