Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2005
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
Fallo Nº Factura y Linea Factura

Hola a todos, espero que este sea el foro adecuado, no lo sabia seguro ya que tiene que ver con varias cosas creo.

Utilizo Delphi 6, y BDE con tablas paradox y TQuerys.

Tengo un formulario hijo con un boton "nueva factura" que me abre un form normal, pues bien, necesito que se me autogenere un Nº de factura para posteriormente, cuando añado una "linea de factura", el campo Nº Factura de la Line de Factura sea igual a la factura para poder relacionarlo.

Es decir: nueva factura --> Nº Factura (1) -->
Nueva Linea(Nº Factura(1), Linea(1)), Nueva Linea(Nº Factura(1), Linea(2))

Y asi, bueno el funcionamiendo normal jeje.

Mi BBDD esta así:

Factura: Nº Factura (Numerico)

Linea: Codigo (AutoIncremento), Nº Factura (Numerico)

He intentado poner un campo autonumerico a factura y asignarselo a Nº Factura en cada nueva inserccion y me lo hace bien, pero solo la 1º vez. He pprovado en el oncreate del form_nueva_factura, en el afterpost y onnewrecord del query_factura y de varias formas y solo consigo que me lo haga la 1º vez.

Espero me puedan aconsejar ya que no lo consigo, no tiene porque haber un autoincremento en la tabla factura ni nada, yo solo era intentando solucionarlo.

Espero haberme explicado lo mejor posible.

Muchas Gracias De Antemano y Salu2!!!
Responder Con Cita
  #2  
Antiguo 17-05-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Utiliza una tabla auxiliar, y en ella guardas el último número de factura. En el evento OnNewRecord de la factura generas el nuevo número:
Código Delphi [-]
 MiFacturaNumero.Value:=MiTablaAuxiliarnumero.Value +1;

si se confirma la grabación de la factura:
Código Delphi [-]
 MiTablaAuxiliar.Edit;
 MiTablaAuxiliarnumero.Value:=MiFacturaNumero.Value;
 MiTablaAuxiliar.Post;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 17-05-2005
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
SIIIIIIIIIIIIIIIIIIIIII, AHORA SIIIIIIIIIIIII, MUCHISIMAS GRACIAS!!! Ya habia probado yo con una tabla auxiliar pero algo aría mal porque no me salía jeje.

Como yo usaba TQuerys pues al guardar la factura he tenido que poner esto:

Código:
    
//DataModule_Fact_Albar.Query_Fact.Edit;
DataModule_Fact_Albar.Query_NUM_FACT.Edit;
DataModule_Fact_Albar.Query_NUM_FACTNUM_FACT.Value:=DataModule_Fact_Albar.Query_FactNUM_FACT.Value;
DataModule_Fact_Albar.Query_NUM_FACT.Post;
DataModule_Fact_Albar.Query_Fact.Post;
Close;
He comentado la 1º línea porque al cerrar la ventana al guardar no lo necesita, si optara por no cerrarla, tendría que descomentar la 1º línea.

Explico lo que he echo por si a alguien le sirve.

Tengo echo un maestro detalle con factura/linea_factura.

Añado 1 factura y me coje el Nº Factura + 1 de la auxiliar (correcto) y al añadir una línea a dicha factura pues hago:

Código:
DataModule_Fact_Albar.Query_Lin_FactNUM_FACT.Value:=DataModule_Fact_Albar.Query_FactNUM_FACT.Value;
Y así consigo que las líneas que añado solo pertenecen a esa factura.

Bueno espero que le sirva a alguien. Si alguien tiene alguna duda sobre lo que he hecho le ayudaré en lo que pueda.

Pues nada marcoszorrilla muchas gracias de nuevo.

Salu2!!!
Responder Con Cita
  #4  
Antiguo 17-05-2005
Avatar de mazinger
mazinger mazinger is offline
Miembro
 
Registrado: jul 2004
Ubicación: Zamora
Posts: 85
Poder: 20
mazinger Va por buen camino
Lo que yo suelo hacer para campos que de tipo entero que son correlativos, como es el caso del nº de factura, ejecuto en un query independiente la sentencia:

Código:
  With Query do begin 
	SQL.Add(SELECT Max(Num_Factura) as Maximo From Facturas);
	Open;
	NumeroFactura := FieldByName('Maximo').AsInteger + 1;
	Close;
  End;
Donde NumeroFactura es el campo de la tabla facturas
Con ello te aseguras que siempre obtienes un nº de factura sin utilizar.
__________________
Visita mi página (en construcción):

http://mazinger.wordpress.com/
Responder Con Cita
  #5  
Antiguo 20-05-2005
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
Perdón, solucionado

Última edición por CarmaZone fecha: 20-05-2005 a las 02:11:12.
Responder Con Cita
  #6  
Antiguo 26-05-2005
PiPerraK PiPerraK is offline
Registrado
 
Registrado: may 2005
Posts: 9
Poder: 0
PiPerraK Va por buen camino
motivao

xD posi tío, esta tarde cuando me ponga a hacer las facturas fijo ke me va servir tu gran ayuda en el foro xDDDDDD

ya keda menos pal proyecto, a ver si acaba ya el ciclo de una puta vez XDDDD
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 21:14:27.


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