![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola Niko,
el truco es facil. La solucion puede pasar por lo siguiente. En el adoTable "Detalle" modificas la propiedad "MasterSource" y a esta propiedad le indicas cuál es el adoTable "Maestro". Una vez que lo modifiques tienes que seleccionar qué campos son los que relacionan ambas tablas en la propiedad "MasterFields". Con esto cada vez que uses el navigator, automaticamente se mostrará la factura junto con su detalle de artículos. Un saludo.
__________________
Hay gente que esta demasiado educada para hablar con la boca llena pero no les importa hacerlo con la cabeza hueca. |
|
#2
|
|||
|
|||
|
Hola Hermes:
Con eso que me has dicho sale mas o menos bien pero luego al introducir un segundo detalle y guardar la tabla de facturas o la de detalle me sale Key Violation. Te explico todo lo que tengo para ver si me puedes ayudar un poco mejor. Tengo la tabla de Facturas, donde están los campos: FACTURANUM, FECHA, CLIENTENUM, RAZONSOCIALCLIENT, NIFCIFCLIENT, BRUTO, BASE, DTO, IVA, TOTAL IVA Y TOTAL FINAL. Para controlar esta tabla tengo un DBNavigator. Y luego tengo la tabla de Detalles, donde están los campos: DETALLENUM, FACTURANO, UNDS, REFERENCIA, CONCEPTO, PRECIOUND E IMPORTE. Esta tabla también esta controlada por un DBNavigator. He hecho lo que me has dicho, a la tabla 2 (Detalle), le he puesto en el mastersource 'DataSet1', que es el dataset de la tabla de facturas, y luego en MasterFields me sale como un dialogo donde en el listbox de la izquierda solo sale 'DETALLE' y en el de la derecha salen todos los campos de la tabla 1 (Facturas), asi que selecciono de la izquierda el unico campo que hay (detalle) y de la derecha el FACTURANUM, le doy a "Add" y a "OK". Pero luego siempre termina saliendo KEY VIOLATION. A ver si me puedes hechar una manilla. Muchas Gracias. Att. Jorge |
|
#3
|
||||
|
||||
|
Fíjate si en el DatSet detalle aparecen los siguientes valores:
IndexFieldNames = FACTURANO MasterFields = FACTURANUM Si es así y aún te da el error de "Key Violation", entonces, tendrás que modificar la clave principal de la tabla de Detalles para que incluya los campos: DETALLENUM y FACTURANO Y si aun así te falla, entonces, asegúrate de que el campo "DETALLENUM" genera un número distinto por cada línea de detalle o registro (lo mejor sería que este campo fuera de autoincremento). Saludos! |
|
#4
|
|||
|
|||
|
En la tabla 2 (detalle), en MasterField aparece FACTURANUM pero en Index FieldsNames aparece DETALLENUM y si pongo FACTURANO me dice que no existe y desplegando la lista tampoco sale, solo sale detalle. El DetalleNUM tiene puesto autoincremento.
Un Saludo. |
|
#5
|
|||
|
|||
|
+Error
Hola de nuevo:
Lo de KEY VIOLATION ya esta solucionado, ha sido un error mio, daba error por que el campo DETALLENUM de la tabla2 (detalle) es la "llave" de la tabla y como siempre se repetía la misma (por que no se le daba un número) saltaba el KEY VIOLATION. Pero ahora tengo un dilema, y es que he hecho todo lo que tu me has dicho. A la tabla 2 (detalle) le he puesto en MasterSource el DataSource1 (facturas), y ahora le doy a MasterFields para seleccionar los campos con los que quiero que se relacionen las tablas, de la tabla2 (detalle) solo me sale el campo para relacionar 'DETALLENUM' y de la tabla 1 (facturas) me salen todos los campos, y así no puedo relacionar la tabla por que el número de detalle y el de la factura nunca coinciden. Necesito relacionar el nº de factura de la tabla detalles con el nº de factura de la tabla facturas. ¿Alguien tiene idea de porque no lo puedo hacer? Agradecería muchisimo cualquier ayuda al respecto. Salu2. |
|
#6
|
||||
|
||||
|
Tu problema, seguramente, es que la clave principal de la tabla detalle está compuesta sólo por el campo "DETALLENUM" y, esto, es incorrecto. Necesitas que la clave principal de la tabla detalle esté formada por los campos "FACTURANO" y "DETALLENUM" (como te comenté antes). Una vez que actualices la clave principal, verás que podrás seleccionar el campo "FACTURANO" y relacionarlo con el campo "FACTURANUM" del DataSet principal.
(De todas formas, cualquier cosa vuelve a preguntar) Saludos! Última edición por jmariano fecha: 13-09-2005 a las 02:30:08. |
|
#7
|
|||
|
|||
|
Hola de nuevo:
Eso ya lo he probado, he abierto la tabla detalles para poner la "llave" también a FACTURANO y de esta manera si me sale en MasterFields y puedo linkar FACTURANUM con FACTURANO, pero la cuestion es que me dice que DETALLENUM también lo tengo que linkar con otro campo de la tabla facturas, y si hago el link con otro campo de la tabla facturas ya no me muestra los detalles de cada factura, ya que el numero de factura coincide pero el de DETALLENUM con el otro no. Muchas Gracias por tu ayuda, espero que esta duda sea la última y asi no te molesto mas, que empiezo a ser pesado. Salu2. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|