Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Exclamation Como relacionar varias tablas a un dbgrid?

Hola! Creo q lo q pregunto no es posible pero la idea si, el tema es como.
Voy a ver si me puedo explicar.
Ej: Quisiera hacer un formulario de factura, en el cual el encabezado de la factura lo saco de un tabla CLIENTES, ahora empieza el problema, en algo (lo mas parecido q encontre a una factura estandar es un DBGRID, por lo menos visualmente) quiero cargar los datos del producto (q estan en una tabla llamada PRODUCTOS), poner la cantidad vendidad y q empiece a calcular, sub-total total y todo eso (y a esto quisiera guardarlo en una tabla de DETALLEDEFACTURA), y con estos datos, las relaciones y demas ir armando una tabla q se llama FACTURA!

Con los DBedit no tendria problemas, el tema es q uno nunca sabe cuanto puede vender y entonces usar dbedit seria un problema xq estria limitado a las ventas q yo le ponga en el diseño.

Gracias y un abrazo para toda la comunidad del foro!!!
Responder Con Cita
  #2  
Antiguo 03-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Fijate que ahora estoy yo con un aplicativo para facturación y me cuesta entender lo que dices !!!

Te cuento como plantearía yo el diseño de datos (con los pocos datos que me has dado ) de esta forma; crearia las siguientes tablas:
  • Productos
  • Clientes
  • Facturas
  • Detalle Facturas

Lógicamente entre ellas definiría las claves foraneas para preservar la integridad referencial.

En la tabla Facturas iría la cabecera de tu factura, es decir, datos como Numero Factura, Cliente, Fecha, Importe Total....
y en la tabla Detalle Facturas metería las lineas de detalle que conforman tu factura (Numero linea, Producto, Cantidad, Moneda, Importe)

Con estas dos tablas crearía una relación maestro-detalle por el campo Numero de Factura, para luego según vas pasando de un registro a otro en la tabla Facturas, se te van seleccionando las lineas de detalle que contiene esa factura. Para mostrar los datos puedes utilizar dbcontrols o dbgrid a tu gusto.... incluso también puedes definir el maestro detalle de Clientes-Facturas para segun vas pasando por cada cliente vas viendo sus facturas y a su vez las lineas de detalle de estas...

No se yo lo veo sencillo

Saludos, Tony

Última edición por tcp_ip_es fecha: 03-07-2008 a las 12:27:25.
Responder Con Cita
  #3  
Antiguo 03-07-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Talking Gracias!!!

Claaaaaro...eso es lo q queria, tal vez mi error esta en el diseño de las tablas.
Luego lo pruebo y te cuento!!! Gracias!
Responder Con Cita
  #4  
Antiguo 05-07-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Question Otra vez!!!

Eh probado lo q tu me dice y esta bien, pero no es lo q yo queria, veamos si te lo puedo explicar de forma clara:
1) Yo tengo las mismas tablas q vos me mencionabas
2) Tengo un form en el cual tengo q usar las cuatros tablas, y otras cosas mas con las cuales voy a poder calcular, el total del importe a pagar y todo lo q haya q calcular.
Yo lo q busco es q poder relacionar, en algo parecido a un dbgrid (mas q nada por el formato muy parecido al de una factura en papel), las tres tablas (producto, factura y detalle), armar ese debegrid con los datos q salen de las tablas y a su vez poder ingresar la cantidad de productos q se venden para ir calculando los totales.
Espero ser un poco mas claro esta vez....Gracias por sus respeustas.
Responder Con Cita
  #5  
Antiguo 05-07-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Hola !

La opción que te da tcp_ip_es es bastante cercana (si no es que totalmente) a lo que pides...

En tu form define un área de "encabezado" usando tal vez TEdits o TDBEdits, como tu lo prefieras... ahí puedes designar todos los campos que irán guardados en tu Tabla de Facturas...

Aquí mismo ligas la tabla de Clientes, ¿cómo?, pues muy sencillo... si sales (o das Enter) de un TEdit donde haz colocado un valor que identifica a un Cliente, realiza una búsqueda en su tabla para traer sus datos por ejemplo de Nombre de la Empresa, Domicilio, Ciudad, País o que se yo qué más desees desplegar...

Para el caso del Detalle de la factura es cuando entra el DBGrid que mencionas... aquí puedes usar además de la Tabla de Detalle, la de Productos haciendo algo similar que en el caso de Clientes... si introduces algún código de producto, realiza una búsqueda en la tabla de Productos y trae información de ahí...

Espero que te sea de utilidad y mándanos más avances de lo que que ya hayas realizado (una imágen de tu formulario ya "armado" sería muy buena opción)...

Saludos,
Responder Con Cita
  #6  
Antiguo 05-07-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Exclamation Ok, pero sigo igual!!!

Gracias Fenareth por tu respuesta, el encabezado de la factura no hay drama, el problema esta, en q no se como en un mismo dbgrid usar dos tablas, en caso de q no se pueda hacer de este modo como lo harian ustedes?

Lo q yo intento hacer es algo parecido a esto:

Id Item Cod producto Cantidad Detalle Precio Unitario Precio
*** **** ** ********* $** $***

Asi quisiera q me quedara el DbGrid, por una cuestion visual, comodidad y por q nunca me va a quedar chica la factura, simpre voy a poder seguir agragando ventas (registros).
El problema es q los datos Id item, Cantidad y Precio los voy a almacenar en la tabla Detalle (otra cosita, la cantidad la voy a ingresar por teclado, se puede en el dbgrid), los datos Cod producto, detalle y precio unitario los voy a buscar en la tabla Productos y para terminar el Precio o el total, fecha y Num de factura de la factura lo voy a guardar en la tabla FACTURA.

Por ahi mi idea es mala, yo con DbEdits y Dbtext ya lo hice pero siempre voy a tener un limite de productos en mi factura, cosa q no quiero!

Gracias y perdon por todas las molestias!!!
Responder Con Cita
  #7  
Antiguo 05-07-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Pero es que entonces si veo que en tu explicación resuelves bien lo que necesitas, no sé porqué deseas ligar dos tablas al DBGrid... sigo sin comprender cuál es la idea o más bien, la intención que tienes de hacer eso ?...

Para qué ligar otra Tabla además de la de Detalle en el DBGrid ?, no lo entiendo porque en realidad no es necesario...

Creo que tu idea va porque aparte del código del producto (introducido por el usuario) te preguntas cómo jalará el DBGrid el resto de datos de ese producto contenidos en la Tabla de Productos, es así ?

Última edición por Fenareth fecha: 05-07-2008 a las 16:12:21.
Responder Con Cita
  #8  
Antiguo 05-07-2008
Pollo2004 Pollo2004 is offline
Miembro
 
Registrado: sep 2006
Posts: 64
Poder: 18
Pollo2004 Va por buen camino
Lo q yo quiero es NO tener un tope a la hora de poner productos en la factura, ese es mi problema! de ahi empiezan salir el resto.
Responder Con Cita
  #9  
Antiguo 05-07-2008
Avatar de megaredoxk
megaredoxk megaredoxk is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Poder: 0
megaredoxk Va por buen camino
Thumbs up tu tienes la razó Pollo2004

Pollo2004: Asi quisiera q me quedara el DbGrid, por una cuestion visual, comodidad..... tu mismo lo dices.

por q te complicas, si haciendo un DBGrid para los productos no vas a limitar la factura...al contrario..puedes ingresar cuantos miles de registros quieras, puedes hacer lo siguiente en el DBGrid.

Cod producto Cantidad Precio Unitario Subtotal ------tabla producto

y en una Label calculas el total con descuentos y todo-----tabla detalle

cliente, dir, tel-----tabla cliente

espero te sirva
Responder Con Cita
  #10  
Antiguo 07-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Te voy a mostrar una imagen de lo que yo he hecho para que lo veas más claro, espero que hagas lo mismo con tu formulario y lo cuelgues aqui y asi lo vemos todos....

http://img58.imageshack.us/my.php?im...delhpi2ul0.jpg

En tu tabla facturas y por cada linea de detalle has de meter el código de producto, cantidad y precio, aunque tu tengas otra tabla maestra con productos. Luego en el dbgrid puedes mostrar lo que quieras, de hecho puedes hacer un tfield en tu tabla facturas que sea maestro-detalle con tu tabla productos con lo que tu en el dbgrid puedes ver el detalle del producto pero lo que estas grabando en el detalle factura es el código.....

Espero que esta vez si que nos hayas entendido

Saludos, Tony y VIVA NADAL Y LA MADRE QUE LO PARIÓ
Responder Con Cita
  #11  
Antiguo 07-07-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Mira hay dos formas de hacer esto: Una JOIN con las tablas y cargar en el Grid lo que tu quieres o usar un TcxGrid de la Developer Express. El TcxGrid es pago, unos 1000 Euros toda la suit. Lo que vi en su link, es una JOIN.
Responder Con Cita
Respuesta



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
relacionar 3 tablas vivys27 SQL 13 25-03-2008 01:12:36
Problema al Relacionar Tablas dfmco999 Tablas planas 3 15-11-2006 05:40:01
relacionar mas de dos tablas dmagui Firebird e Interbase 2 30-06-2005 16:40:54
relacionar dos tablas digital Conexión con bases de datos 1 20-11-2003 09:54:53
Como Relacionar 2 Tablas andrestsas Varios 4 03-08-2003 21:09:10


La franja horaria es GMT +2. Ahora son las 13:08:23.


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