Determinar siguiente número de línea de pedido

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

JotaCeGe
vMate
vMate
Mensajes: 76
Registrado: 09 Jul 2008, 15:17

Determinar siguiente número de línea de pedido

Mensaje por JotaCeGe »

Hola vForeros:

Otra pregunta, para que nadie se aburra...jejeje

Tengo dos tablas relacionadas CABECERA y LINEAS, de manera que la segunda tiene los campos Código, Num_Pedido y Num_Linea.

Un PEDIDO puede tener varios LINEAS, determinadas por los campos citados. Lógicamente no puede haber un pedido con dos líneas con el mismo Num_Linea.

Necesito saber, al crear una nueva línea de un PEDIDO, qué número de LINEA tiene que ser para que no se repita.

Gracias, chicos.

(Tres tristes tigres, trigaban lineas en un trigal...)
----------------------------------------
--- vSaludos desde Zaragoza ---
----------------------------------------
Francisco Hoyos
vLeader
vLeader
Mensajes: 2712
Registrado: 22 Sep 2005, 17:56

Mensaje por Francisco Hoyos »

Ese tipo de problemática quedaría resuelta si la tabla LINEAS estuviera declarada como submaestra de CABECERAS. De todas formas, no veo la necesidad de usar un campo N_LINEA cuando puedes utilizar el campo Código como Nº de línea.

Espero no haberte liado.

Un saludo.
Francisco Hoyos
frhoydon@gmail.com
Avatar de Usuario
victor
vCool
vCool
Mensajes: 146
Registrado: 21 Sep 2005, 18:07

Mensaje por victor »

Si tienes la plantilla vGestion dedicale 2 minutos y veras como se resuelve lo que quieres hacer.
Un saludo, Víctor García
victor@guida21.com
www.guida21.com

ESPECIALISTAS EN PLANTILLAS FLOSS
JotaCeGe
vMate
vMate
Mensajes: 76
Registrado: 09 Jul 2008, 15:17

Mensaje por JotaCeGe »

vGestion no lo resuelve. Simplemente Añade el código siguiente al que toca y ya está.

Lo que pretendo es que el pedido 23455 tenga las líneas
10 -> 3u. Madera a 23€
20 -> 2u. Tornillo a 3€
30 -> 4u. Chapa a 28€

y que al añadir línea, añada automáticamente el 40 y luego 50...
y tenga la posibilidad de añadir manualmente un 25 para intercalar una línea

Luego tendré el pedido 23456 con las líneas
10 -> 30u. tornillos a 3.5€
20 -> 2u. Chapas a 2€
30 -> 1u. Tela a 28€

El vGestion sólo añade 1 y luego 2, 3, 4, 5, aunque sean de distinto pedido...
----------------------------------------
--- vSaludos desde Zaragoza ---
----------------------------------------
JotaCeGe
vMate
vMate
Mensajes: 76
Registrado: 09 Jul 2008, 15:17

Mensaje por JotaCeGe »

La opción de submaestro SI que funciona, pero no entiendo porqué el ejemplo no lo pone así directamente...
----------------------------------------
--- vSaludos desde Zaragoza ---
----------------------------------------
Avatar de Usuario
Agustin
vCoach
vCoach
Mensajes: 2953
Registrado: 21 Sep 2005, 06:17

Mensaje por Agustin »

Buenos dias: además de usar submaestra, podrías usar un campo numlinea, que fuera de 10 en 10. Su contenido inicial podría ser 10*Código.
Si necesitas incluir una linea en medio de otras dos, sólo tienes que revalorar ese campo con el valor que quieras.
Con un nuevo enlace a histórico desde la cabecera usando ese numllinea o con una rejilla alimentada por proceso, desde la cabecera verás las lineas ordenadas por numlinea.
Un saludo.
SC
Veni, vidi, vinci
Panta rei.
https://cagonmimantu.wordpress.com/
JotaCeGe
vMate
vMate
Mensajes: 76
Registrado: 09 Jul 2008, 15:17

Mensaje por JotaCeGe »

Sí, ya lo he conseguido. Además he importado con un tubo los pedidos de compra (más de 100.000 registros) y los ha puesto todos es su sitio, con las claves que le corresponde (NumPedido, NumLinea). Incluso he detectado dos registros con clave duplicada y que SQL Server había tragado... :?

Ahora sólo me falta para rematar la jugada que cuando abra el formulario de Añadir Nueva Línea, en el campo de NumLinea aparezca la siguiente que corresponde sin tener que ponerla a mano... 8)
----------------------------------------
--- vSaludos desde Zaragoza ---
----------------------------------------
Avatar de Usuario
Agustin
vCoach
vCoach
Mensajes: 2953
Registrado: 21 Sep 2005, 06:17

Mensaje por Agustin »

Buenos días: me alegro que te haya salido bien.
En cuanto a lo del contador de numlinea, también podrías usar una función que se cargara las lineas de la cabecera que tienes, las ordenara por num linea, tomara la última y te devolviera la última + 10.
Un saludo
SC
Veni, vidi, vinci
Panta rei.
https://cagonmimantu.wordpress.com/
JotaCeGe
vMate
vMate
Mensajes: 76
Registrado: 09 Jul 2008, 15:17

Mensaje por JotaCeGe »

Jejeje...

Analíticamente es eso lo que hay que hacer, pero cómo lo hace Velneo... :oops:
Con la iglesia hemos topado...

Lo preguntaba por si se podía hacer de alguna forma más sencilla... Hasta ahora me había sorprendido de que algunas cosas son coser y cantar... jejeje

Me pongo a coser, a ver si resulta... :D
----------------------------------------
--- vSaludos desde Zaragoza ---
----------------------------------------
Avatar de Usuario
Agustin
vCoach
vCoach
Mensajes: 2953
Registrado: 21 Sep 2005, 06:17

Mensaje por Agustin »

Ahora sí que no te entiendo. Velneo es una herramienta que tiene su estructura de programa interna, a la que no podemos acceder.
Está desarrollada en C++ pero no accedemos a cómo internamente hace las cosas.
Pero pone medios a nuestro alcance para resolver cuestiones o problemas.
No sé a dónde quieres llegar.
Un saludo.
SC
Veni, vidi, vinci
Panta rei.
https://cagonmimantu.wordpress.com/
Responder