SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: luccan en Viernes 4 de Junio de 2004, 17:41

Título: Como Generar El Folio O El Id Automaticamente
Publicado por: luccan en Viernes 4 de Junio de 2004, 17:41
A ver si pueden Ayudarme, ya que en Visual no existe un contador como Generar el folio o el ID de la Factura Automaticamente al Cargar el Formulario de Acuerdo al Ultimo Registro Grabado en la Base de Datos...

Espero sus Comentario



Lucio Canul Andrade
Cozumel, Mexico :blink:
Título: Re: Como Generar El Folio O El Id Automaticamente
Publicado por: Juanolo en Viernes 4 de Junio de 2004, 19:27
Pues bien... Eso lo solucioné creando una pequeña tabla para la mantención de los documentos. En ella están los campos Documento y Folio (entre otros). En documento está la clave para el documento (FA para facturas, por ejemplo) y en Folio el número que corresponde imprimir.
  Este número lo mantengo con dos funciones públicas.

La primera es sólo para saber el número que corresponde asignar. Es útil cuando aún no estás seguro de que la factura se vaya a emitir realmente.

Código: Text
  1. public function LeeNumero(Doc as string) as long
  2.   'Acá voy a la tabla y leo el número que
  3.   'corresponde a DOC y lo asigno.
  4.   .....
  5.   .....
  6.   With rsDocs
  7.      leenumero = !Folio
  8.   End With
  9. end sub
  10.  

La otra función, como ya habrás adivinado es para incrementar el folio cuando se emite definitivamente la factura.

Adicionalmente, debes implementar un mantenedor para esta tabla, de forma que los usuarios puedan manipular el número; por ejemplo, es necesario hacerlo en caso de que un atasco de papel malogre algunos de estos documentos.

Espero te inspire

Salu2.
Título: Re: Como Generar El Folio O El Id Automaticamente
Publicado por: Brroz en Sábado 5 de Junio de 2004, 09:02
Hola.

Se podría (si el número realmente es numérico) obtener el correspondiente mediante una consulta SQL. Me explico:

En mi caso, en las aplicaciones de facturación, suelo utilizar como clave para la factura estos campos:
(SERIE) - alfanumérico para contener la serie de la factura.
(NUMERO) - numérico para contener el número correlativo de factura.
(AÑO) - para contener el año.
Según esta estructura de campos clave, para obtener el número para una nueva factura ejecuto un SQL de este estilo:
Código: Text
  1.  
  2. Dim strSQL as string
  3. strSql = "SELECT Max(NUMERO) " _
  4. & "FROM FacturasCabecera " _
  5. & "WHERE SERIE='F' AND AÑO=" & Year(Now)
  6.  
  7.  
Con esto ya tengo el último número de fra para la serie y año... sumo 1 y listo.

Suerte.