![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Creo que no me expliqué muy bien xDD. Ya está programado la creación de 1 albarán y 1 factura, con sus tablas factura y línea factura... típico xD
La duda era si es razonable usar un bucle para recorrer los albaranes y a su vez cada una de las líneas de ese albarán e ir guardando con 2 whiles. Por ahora he hecho esto: Código:
DataModule_Fact_Albar.Query_Alb.First;
DataModule_Fact_Albar.Query_Alb.DisableControls;
while not(DataModule_Fact_Albar.Query_Alb.Eof) do
begin
DataModule_Fact_Albar.Query_Lin_Alb.First;
DataModule_Fact_Albar.Query_Lin_Alb.DisableControls;
while not(DataModule_Fact_Albar.Query_Lin_Alb.Eof) do
begin
with DataModule_Fact_Albar do
begin
Query_Lin_Fact.Edit;
Query_Lin_FactCANTIDAD.Value:=Query_Lin_AlbCANTIDAD.Value;
Query_Lin_FactCONCEPTO.Value:=Query_Lin_AlbCONCEPTO.Value;
Query_Lin_FactPRECIOUNIDAD.Value:=Query_Lin_AlbPRECIOUNIDAD.Value;
Query_Lin_FactTOTAL.Value:=Query_Lin_AlbTOTAL.Value;
Query_Lin_Fact.Post;
Query_Lin_Alb.Next;
end;
end;
DataModule_Fact_Albar.Query_Lin_Alb.EnableControls;
DataModule_Fact_Albar.Query_Alb.Next;
end;
DataModule_Fact_Albar.Query_Alb.EnableControls;
Salu2!!! ![]() Última edición por CarmaZone fecha: 27-06-2005 a las 18:38:20. |
|
#2
|
||||
|
||||
Te equivocas, lo añade todo, el problema es que estas haciendo un Query_Lin_Fact.Edit, por tanto, todos los albaranes se machacan en la misma linea de la factura. ¿No Debería ser Query_Lin_Fact.Append? Por otra parte.... yo usaría tbl_Lin_Fact, la tabla, en lugar de un Query. Supongo que es un extracto del código, ya que no se crean nuevos registros en la tabla Facturas, y siendo una relación Maestro-Detalle, debe crearse la Factura antes que las lineas de factura. En cuanto a la pregunta original, se podría hacer con consultas de inserción.... pero tal cual está, es más simple. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#3
|
|||
|
|||
|
Es verda tio, que se está machacando xDDDDDDDD, he cambiado "edit" por append y ahora lo hace pero da un problema.
Si convierto de 1 albarán a 1 factura lo hace perfecto, mete bien el cuerpo, sin embargo si la conversión es de 2 albaranes a 1 factura, me mete las líneas dobles , me mete 2 veces el cuerpo del 1º albarán y el cuerpo del 2º albarán no lo mete. Tiene haber algo mal en esa parte del codigo que me hace una pasada la 1º pasada 2 veces y ya no hace más.Gracias Y Salu2!!! Última edición por CarmaZone fecha: 27-06-2005 a las 20:57:15. |
|
#4
|
||||
|
||||
|
Si query_Lin_Alb tiene los albaranes a meter en cada linea de factura. ¿Qué tiene query_Alb?
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#5
|
|||
|
|||
|
Albaran: nº albaran,fecha,cliente,base imponible..
Linea Albaran: cantidad, concepto,precio/unidad, total Factura: nº factura,fecha,cliente, cif,base imponible, iva... Linea Factura: cantidad, concepto,precio/unidad, total Yo meto en query_fact desde query_alb el nombre del cliente y su CIF y en query_lin_fact voy metiendo las lineas de query_lin_alb. Mi conversión me crea bien la cabecera de la factura, (nº factura, fecha, cliente...) lo que falla es la copia del cuerpo de varios albaranes al cuerpo de 1 sola factura Salu2!!! Última edición por CarmaZone fecha: 27-06-2005 a las 21:11:32. |
|
#6
|
||||
|
||||
|
Parte de culpa de todo esto lo tienen los nombres, mira este codigo, es identico al tuyo, pero cambiando los nombres de query_lin_alb y query_alb, ya que no se corresponde con los datos que representa, y lo único que hace es "molestar". Es importante dar nombres descriptivos
![]()
Yo al menos lo veo más claro, para cada cliente, se mira los albaranes que tiene que facturar, y para cada uno de ellos se crea la linea de factura. Tu problema reside en la relación que has definido entre qry_Clientes y qry_Alb_A_Facturar. Esa relación seguro que no está bien. Si quieres ver mejor el fallo, da de alta 4 clientes, 3 albaranes por cada cliente y manda a facturar ![]() Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#7
|
|||
|
|||
|
Revisare tu codigo, pero he de decir que no tengo relacionado cliente con factura ni albaranes, cada albaran o factura guarda su propio campo nombre_cliente... por lo tanto de ahi no viene el problema, mi relacion es albaran con linea_albaran y lo mismo para factura. De ahi los nombres:
Query_Alb y Query_Lin_Alb--> quey albaran y query linea albaran y lo mismo para facturas, creo que los nombre son descriptivos xDDDD Voy a seguir probando. Gracias y Salu2!!! Edito: Tu trozo de codigo es una relación cliente-albarán que en mi caso equivale a albaran-línea_albaran. Lo he peusto como en tu ejemplo: Código:
with DataModule_Fact_Albar do
begin
Query_Alb.First;
Query_Alb.DisableControls;
while not(Query_Alb.Eof) do
begin
Query_Lin_Alb.First;
Query_Lin_Alb.DisableControls;
while not(Query_Lin_Alb.Eof) do
begin
Query_Lin_Fact.Append;
Query_Lin_FactCANTIDAD.Value:=Query_Lin_AlbCANTIDAD.Value;
Query_Lin_FactCONCEPTO.Value:=Query_Lin_AlbCONCEPTO.Value;
Query_Lin_FactPRECIOUNIDAD.Value:=Query_Lin_AlbPRECIOUNIDAD.Value;
Query_Lin_FactTOTAL.Value:=Query_Lin_AlbTOTAL.Value;
Query_Lin_Fact.Post;
Query_Lin_Alb.Next;
end;
Query_Lin_Alb.EnableControls;
Query_Alb.Next;
end;
Query_Alb.EnableControls;
end;
![]() Última edición por CarmaZone fecha: 27-06-2005 a las 22:03:42. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|