Clarion - Consecutivo Factura SQL 2005

 
Vista:

Consecutivo Factura SQL 2005

Publicado por TONY (8 intervenciones) el 18/04/2015 03:41:31
Buenas.
Tengo una consulta.
Estoy iniciándome en clarión con la versión 6.3 y uso un servidor SQL 2005.
Mi pregunta es esta.
Tengo una tabla llamada (FACTURAS) y tengo otra llamada (VENTAS) que son las lineas de los productos en las facturas.
Lo que estoy haciendo es que en un campo de la taba VENTAS guardo el numero de factura para poder mostrarlas en las facturas.
Mi problema viene al ejecutar mi programa en red ya que por ejemplo un Equipo A al abrir el form de crear la factura digamos que obtiene el consecutivo 103 y segundos después un Equipo B abre el form y este obtiene el consecutivo 104, logicamente al comenzar a agregarle las lineas a la factura (TABLA VENTAS), estas guardan en el campo nFactura el numero de la factura que se esta realizando. El problemas es que si por algún motivo el usuario del Equipo B llena la factura con las lineas y en ese mismo intante el usuario del Equipo A cancela la creacion de la factura el sistema me dara un error a la hora de guardar la factura ya que queda un consecutivo por fuera y esto genera error en la factura y en las lineas que se guardan en la tabla ventas.
Como gestiono el consecutivo de las facturas ya que si utilizo clarion para que las gestione siempre me dara ese error y si utiizo SQL con un campo INT autoincremento no se como hago en clarion para calcular el numero de factura para guardarlo en el campo nFactura de la tabla VENTAS.

Espero su pronta ayuda y muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ricardo
Val: 78
Bronce
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Consecutivo Factura SQL 2005

Publicado por ricardo (214 intervenciones) el 18/04/2015 18:34:08
Hola Tony, tal vez tengas algo mal definido en tu DCT ya que cabezera detalle no tendria que tener problema

un ejemplo:
archivo facturas
interno
tipo
letra
prefijo
numero
etc,etc

aca tu calve autonumerada seria interno clave principal

ventas (Detalle)
IntenoVentas
IntenoFacturas
articulo
etc
etc

aca tucalave seria internoventas clave unica autonumerada
segunda clave internofacturas,internoventas clave unica

tu relacion mucho ventas a un facturas cascade
archivo facturas archivo ventas
interno internofacturas
internoventas

acordate que en sql simpre son claves unicas


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ramon de Jesús

Consecutivo Factura SQL 2005

Publicado por Ramon de Jesús (63 intervenciones) el 09/07/2015 05:07:18
Hola
Colega

Lo que platea nos ha pasado a todos lo que fuimos novato en clarion cuando inciamos eso es normal

Mira hay dos problema cuando uno usa clarion con sqls o cualquier motor de base detaos
El primero, es tu relaciones en sql hay regla procedimiento que hay que cumplir primeros todas la llaves
son unicas, si usa relaciones de factura_padre y detalle_hijos, en sqls hay una ley que dice que los padre o la cabecera deben guandanse primero ante de los hijos, para evita que hayan hijos huerfanos, te explico antes que tu pueda agregar iteem a tu Detallefactura debe guardar el padre o el encabezado, quiza ahi es que se genera tu numero de factura. revisa eso. no debe ser ahi sino en el momento que se guardar la factura definitiva.
puede ser ese tu caso. si usar la relaciones tiene que sabe bien la tecnica de la normalizacion de datos en sql.

Segundo problema: muchos clarioneros no utilizan en los motores de bases de datos las relacione en clarion con sql, porque esto da muchos problemas y lo que hacen es dejar todos suelto y solo utilizan las relaciones desde el dicionario de clarion y noen el motor,si es así que tu trabaja no te debe dar problema, ahora lo que debe es crear un procedimento donde genere el numero de factura en momento de grabar, que si otro usuario abrio el mismo modulo a la vez, el que le de a grabar primero sea que tome el numero consecutivo siguientes, tambien deben tomar el cuenta cuando un cliente cancela la factura y no decide llevar la mercaderia, para que el sistema retorne normal y no te genere numero huerfanos.

Espero haber colaborado un poco, si necesita mas apoyo estamos skype pachecoramon

Dios te bendiga de manera especial.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar