Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Uso de Master/Detail con Interbase (https://www.clubdelphi.com/foros/showthread.php?t=81139)

Leopard2 15-10-2012 06:04:06

Uso de Master/Detail con Interbase
 
Hola, me estoy iniciando con Sql a pesar de que llevo varios años con Delphi en bases de escritorio. Ahora estoy desarrollando un programa con Delphi 7 y Firebird 2.5 y decidi usar los componentes de Interbase para conectarme a la base de datos.
Para varias tablas uso IBQuery para así programar por botones las acciones Editar, borrar, Ingresar pero necesito hacer un par de formularios que necesitan de dos tablas para un encabezado y un detalle y para esto veo que lo unico disponible es IBTable ya que tiene las propiedades Mastersource y Masterfields para conectarse a través de campos gemelos, mi consulta es que otros componentes me servirian para hacer estos formularios Master/Details y como se conectan ya que ni los IBQuery - IBDataset tienen esa propiedad.

Saludos y gracias por su ayuda.

Young 15-10-2012 07:04:26

Hola Leopard2, yo utilizo los componentes Interbase hace bastante tiempo y para hacer lo que dices (bueno cualquier edición) utilizo los componentes dataset y trataré de indicarte más o menos como lo hago. Para establecer una relación maestro/detalle pongo dos componentes del tipo ibdataset, supongamos que son facturas (albaranes como lo llaman los españoles), una de las tablas tiene la cabecera y la otra el detalle y obviamente están relacionados por un campo id o numero de factura.

Posteriormente completo la propiedad SelectSQL, luego botón derecho sobre el componente y pulsas Dataset Editor, en el dialogo que te aparece haces click en secuencia a los botones que estan a la derecha, con esta acción se completarán las propiedades restantes con las sentencias sql para insertar, modificar, eliminar y refrescar. Repite esta acción con la tabla de detalle y al igual que la tabla de cabecera debes restringir la edición a su ID, ejemplo:

Código SQL [-]
SELECT * CABECERA
WHERE CABECERA.ID = :ID;

SELECT * FROM DETALLE
WHERE DETALLE.ID = :ID;

Bueno estoy suponiendo que sabes usar los parámetros en este tipo de componentes. En este punto viene lo importante, el nombre del parámetro debe ser igual al del campo (por lo menos en la tabla detalle), y esto debe ser así por que ahora a la tabla detalle en la propiedad datasource le vamos a enlazar el datasource de la tabla de cabecera (o dataset de cabecera), entonces el componente detalle buscara en el componente de cabecera un campo con el mismo nombre del parámetro y lo utilizará, de esta manera y sin escribir ninguna línea de código ya tienes una relación maestro detalle funcionando. Está demás comentar que si cambias de registro en la tabla de cebecera, la tabla de detalle se actualizará automáticamente.

Espero que esto te ayude un poco, inténtalo y verás lo bien que marcha.

Saludos.

Casimiro Notevi 15-10-2012 09:59:40

Cita:

Empezado por Young (Mensaje 447103)
supongamos que son facturas (albaranes como lo llaman los españoles)

Sólo aclarar que nosotros no llamamos albaranes a las facturas :D
A los "albaranes" los llamamos "albaranes", y a las "facturas" las llamamos "facturas" :)

Delphius 15-10-2012 16:03:20

Cita:

Empezado por Casimiro Notevi (Mensaje 447109)
Sólo aclarar que nosotros no llamamos albaranes a las facturas :D
A los "albaranes" los llamamos "albaranes", y a las "facturas" las llamamos "facturas" :)

Cada vez que leo la palabra albarán me suena a árabe, y creo que lo es. ;) y me quedo flipando de que es.

He tenido que ir al diccionario... Digo yo, como gallego por "adopción", hostias tío ¿no es más fácil llamarlo recibo o comprobante? :D

Saludos,

Young 15-10-2012 16:33:21

Cita:

Empezado por Casimiro Notevi (Mensaje 447109)
Sólo aclarar que nosotros no llamamos albaranes a las facturas :D
A los "albaranes" los llamamos "albaranes", y a las "facturas" las llamamos "facturas" :)

Oops! al parecer tengo una confución confusa. :o

Casimiro Notevi 15-10-2012 17:19:32

Cita:

Empezado por Delphius (Mensaje 447129)
Cada vez que leo la palabra albarán me suena a árabe, y creo que lo es. ;) y me quedo flipando de que es.
He tenido que ir al diccionario... Digo yo, como gallego por "adopción", hostias tío ¿no es más fácil llamarlo recibo o comprobante? :D
Saludos,

Cita:

Empezado por Young (Mensaje 447134)
Oops! al parecer tengo una confución confusa. :o

Muchísimas (miles) palabras españolas provienen del árabe, por algo España fue conquistada por los árabes durante ¡¡¡ 7 siglos !!!, así que nombres de ciudades, de objetos, de personas, de ríos, montañas, etc. provienen de sus nombres árabes. El último reducto en ser reconquistado fue la Alhambra de Granada en el año 1492. Tan contento estaban Isabel y Fernando (los reyes en aquella época) que ayudaron a realizar su proyecto a una persona que quería abrir una nueva ruta comercial para llegar a las islas de las especias, ya que el único camino que existía era a través del sur de África, pero eran territorios dominados por el reino de Portugal, y los barcos españoles eran atacados en esa ruta. Así que los reyes financiaron a un tal Cristobal Colón para que buscara una nueva ruta. De casualidad se encontró con un territorio al que llamó América y a partir de ahí cambió la historia y el rumbo del mundo, para bien y para mal.

Después de una breve introducción histórica, paso a explicar los documentos en España, básicamente: Presupuesto, pedido, albarán y factura.
Presupuesto: Hola, necesito que me dé un presupuesto de lo que me costaría unas piezas para mi ordenador y ustedes me lo instalan.
Artículo----------cantidad----precio--importe
Disco duro 1 TB--------1-------100-------100
Teclado cherry---------1--------50--------50
Mano de obra-----------1--------30--------30
SUMA--180
IVA 21%----37,8-------------------TOTAL--217,8

Pido presupuesto a varios negocios para ver quien me da mejores precios, elijo uno y lo acepto, por lo que me preparan el pedido:

Pedido
: Aceptado el presupuesto pero sin la mano de obra porque decido instalarlo yo mismo:
Artículo----------cantidad----precio--importe
Disco duro 1 TB--------1-------100-------100
Teclado cherry---------1--------50--------50
SUMA--150
IVA 21%----31.5-------------------TOTAL--181.5

Perdone, ¿la forma de pago?, por transferencia bancaria.
¿Me pueden enviar la mercancía a mi casa?, sin problemas. ok.
Hago una transferencia la empresa por el importe de 181,5 y recibo la mercancía con un documento de entrega, el albarán:
Albarán:
Artículo----------cantidad----precio--importe
Disco duro 1 TB--------1-------100-------100
Teclado cherry---------0-----
----0---------0
SUMA--100
IVA 21%----21---------------------TOTAL--121

Oiga, que no he recibido el teclado. Es que se nos han acabado, le enviamos la factura y le devolvemos la diferencia del importe mediante transferencia.
Al cabo de unos días recibo lo siguiente:
Factura:
Artículo----------cantidad----precio--importe
Disco duro 1 TB--------1-------100-------100
SUMA--100
IVA 21%----21---------------------TOTAL--121

Eso sería el recorrido completo, depende del tipo de negocio se puede saltar alguno de ellos, lo único que siempre debe existir es la Factura o en su lugar el Ticket, que es fiscalmente válido igual que una factura y que suele llevar el IVA incluido en los precios.

También existe la factura proforma, que es como una factura normal pero sin valor, se usa para varios casos, por ejemplo, una casa de seguros puede pedirte una factura proforma de lo que costaría arreglar un desperfecto en tu coche y te pagaría en razón a esa factura proforma, es como un presupuesto, tan sólo que el presupuesto es modificable, la factura proforma ya no se puede modificar, es la factura final, pero sin valor.

En cuanto a la pregunta de Delphius, el recibo o comprobante, son cosas distintas. Un recibo es eso, un recibo, algo así como:
Recibo:
He recibido de: Delphius
La cantidad de: 100 euros (====CIEN EUROS===)
En concepto de: Entrega a cuenta para impresora multifunción Brother DCP-7060.
Fecha y firma:


Y un comprobante aquí puede ser el "comprobante de compra", o sea, el ticket (factura con iva incluido en precios): Gracias por la compra de los zapatos, no pierda el comprobante/ticket porque lo necesitará si no le quedan bien y quiere descambiarlo por otros.

Saludos.

Leopard2 15-10-2012 17:37:28

Young, Gracias por la ayuda, voy a probar con tu ejemplo pero por lo que he estado investigando y leyendo por ahí va la cosa, además creo que voy a cambiar de los IBQuerys a los IBDataset ya que parece ser son mas fáciles de usar.
Saludos

pd. Casimiro le falto explicar como haces el Master/Detail con los Comprobantes, Presupuestos, Pedidos, Facturas, Albaran y etc, etc.

Young 15-10-2012 18:04:15

Cita:

Empezado por Casimiro Notevi (Mensaje 447143)

Presupuesto: Hola, necesito que me dé un presupuesto de lo que me costaría unas piezas para mi ordenador y ustedes me lo instalan.
Artículo----------cantidad----precio--importe
Disco duro 1 TB--------1-------100-------100
Teclado cherry---------1--------50--------50
Mano de obra-----------1--------30--------30
SUMA--180
IVA 21%----37,8-------------------TOTAL--217,8

Dolor... 21% I.V.A. y en Chile sufriendo por el 19%... más impuesto específico al combustible (42% aprox) ... :(

Por otro lado gracias por la aclaración... saludos.

Delphius 16-10-2012 00:23:39

Ya veo que llamamos a las cosas diferentes según el lado del charco :D

Aquí algunos, para el común de la gente, estilan llamar Recibo a ambas cosas... aunque aquí tenemos otro nombre más formal: Remito. Dejando el término Recibo para el propio papel describes en donde se deja la firma.
Y hay quienes le llaman Nota de Remito, como para diferenciar de lo que se estila llamar Nota de Pedidos... aquí hasta se inventa el término Nota de Reposición, Nota de Vencimiento, Nota de Devolución, Nota de Respuestos...
Uff... algunos (los clientes) se inventan notas (que de carácter legal no tiene nada). :D ¿Me pregunto, tendrán un nombre extra para ese papel que se llevan al baño? :D

Saludos,

Al González 16-10-2012 00:49:17

Cita:

Empezado por Delphius (Mensaje 447183)
¿Me pregunto, tendrán un nombre extra para ese papel que se llevan al baño? :D

Como van las cosas, quizá terminemos llamándole papel moneda.

Casi, me parece que no fue Colón quien llamó América al continente, sino un tal Américo Prepucio (o algo así).

:D

Casimiro Notevi 16-10-2012 01:37:01

Cita:

Empezado por Al González (Mensaje 447186)
Como van las cosas, quizá terminemos llamándole papel moneda.
Casi, me parece que no fue Colón quien llamó América al continente, sino un tal Américo Prepucio (o algo así).
:D

Sí, Américo Vespucio :p, menos mal que no se llamaba Federico, Pancracio o Romualdo :D
Aunque su nombre real era Amerigo Vespucci, nació en Italia.

Colón pensaba que eran tierras de "las indias", murió sin saber que era un continente desconocido para el "viejo mundo".


La franja horaria es GMT +2. Ahora son las 06:59:14.

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