Formularios Maestro-Detalle


([N2] zenonburgos) #1

Hola comunidad velneo, no se a cuántos les ha pasado que en los formularios maestro detalle si se pulsa el botón cancelar y previamente se trabajaron líneas de detalle los registros siempre se graban, no sucede lo mismo si solo se ha comenzado a rellenar datos del encabezado; fecha, número de documento, etc. Pero por qué la preocupación por algo aparentemente tan banal? pues mucha ya que si los usuarios deciden a último momento cancelar el proceso los registros se irán grabando sin ellos saberlo y porque… vamos, no puede funcionar así, si se pulsa cancelar tiene que ser cancelar.
Por otro lado, quiero aprovechar a pedirle a uno de ustedes, con mas experiencia si pudieran regalarme su contacto a través de skype u otro medio para compartir dudas, muchas veces surgen dudas como estas y aunque los muchachos de soporte siempre están allí para ayudarnos, las preguntas son muy sencillas para molestarles. Una de las cosas de las que me puedo quejar de velneo, es que aunque hay una gran cantidad de información en ayuda, videotutoriales, blogs, este foro, etc. se hace muy difícil buscar temas puntuales


([N2] zenonburgos) #2

Etiqueté Jesus Arboleya (profunda admiración para él por su gran aporte, gracias a su tutorial de pedidos me inicié) porque revisé su aplicación de pedidos y presenta el mismo problema, a ver si Jesús se aparece por acá para sacarme de esta duda


([N1] wikan) #3

Buenas,

no es un problema en sí. Ten en cuenta que para asignar las líneas al pedido Velneo automáticamente guarda la cabecera y a su vez cada línea es un registro distintos. Aunque los usuarios vean un “documento” dentro hay varios registros.

Creo que es más bien un problema de educación al usuario. Puedes poner un botón que sea Eliminar o Anular pedido y que cargue las líneas y luego borres la cabecera.


([N4] mittosoftware) #4

Yo si creo que es realmente un problema, lo señalé en su tiempo. Puse el ejemplo de SAP, porque no se que otra cosa es tan conocida en Europa a nivel empresarial.

Si cancelas la modificación de un comprobante, se supone que quieres que vuelva a su estado original TODO, los campos de la tabla padre y los registros hijos. No puedo entender que aquí consideren que eso no es lo estándar. Incluso en otras herramientas que prefiero no mencionar para evitar problemas, ese es el comportamiento por defecto.

¿Se imaginan que cada usuario tenga que imprimir el comprobante original, antes de empezar a modificarlo, todo porque no hay forma de saber como estaba el comprobante antes de iniciar las modificaciones? El comprobante con todos sus details, se debe considerar una unidad indivisible, los commit y rollback deben abarcar parent y details.

Incluso el vArquitecto en su momento se enorgullecía del bloqueo duro, pueden ver en el video la cara de felicidad que pone porque en un cancelar, los details vuelven a su estado original. https://www.youtube.com/watch?v=L030afhd5lg

Este comportamiento deberia ser el default (como lo es en SAP), es lo mas lógico. Lastima que lo que mostró el vArquitecto entonces, no sirve para ambientes multiusuarios, es decir, no sirve para la gran mayoría de los casos empresariales.

Entonces, hay que usar tablas en memoria, ¿el problema?, Velneo aun adolece de una funcionalidad que existe hace mucho en otros lados, el DEEP ASIGNMENT, donde uno pueda hacer TablaDestino.registro :=: TablaOrigen.registro, lo que permitiría un uso mucho mas optimo de tablas en memoria, equivalente a las tablas físicas.

No se como ponerlo como ‘idea’ de una forma que se entienda rápidamente, aunque ya existe una idea para que los tubos V7 funcionen bien (pues asi como estan ahora, mas es lo que atrasan que lo que ayudan). La idea es esta
https://velneo.zendesk.com/entries/21890268-Automatizar-resolucion-de-TUBOS-

Hay unos tubos en javascript, que no me convencen, ya que para meterme a eso cuando necesite uso intensivo de tablas en memoria, prefiero hacerlo con otras herramientas donde el deep asignment si funciona.


([N4] Infortic) #5

Es un tema de programación, para cancelar la edición de líneas como bien dicen, tienes que programarlo tú usando tablas temporales, con todo lo que conlleva tanto en diseño (código a tutiplen) como en ejecución (al darle a aceptar ponte a esperar a que aplique todas las líneas).

Como dice cjribera el tema de copiado de registros está bastante en pañales en velneo, porque los tubos no van muy finos que digamos, todos conocemos la problemática cuando añades campos a la tabla. En js se pueden hacer cosas de autoresolución de campos, pero se echa de menos alguna función nativa que copie los campos de una tabla a otra, dicha función debería poder funcionar ejecutando contenidos iniciales o sin ejecutarlos para que sea más sencilla.

Otra cosa que ayudaría mucho es poder definir variables locales de tipo REGISTER de una tabla, para poder usarlas en las fórmulas del tipo

modificar campo(#CLIENTE,FACTURA_ANTERIOR.CLIENTE)

Por cada vez que toca hacer algo de traspaso de campos, toca crear mil variables locales…


([N1] zenon burgos) #6

Vaya… Ojalá que el departamento de desarrollo de Velneo tome nota del asunto. Gracias a todos.


([N1] leonardo daniel velazquez fuentes) #7

No veo ningun comentario del equipo de Velneo…???

Si esto sigue igual, me parece inconcebible.!!! vamoss es algo que existe en otras herramientas en las que eh trabajado como Powerbuilder con sus DataWindows, que hasta que no diga Dw_encabeza.update() = correcto entonce dw_detalle.update() si no rollback

incluso hasta en Visual FoxPro se puede… con el almacenamiento en buffer de tablas.!!

cuando trabaje en Adobe Flex por ser Ria y no tener contacto directo con los datos, lo que hacia era que si hacia cambios en el detalle y le daba guardar, mandaba borrar todo el detalle ala b.d. claro si eran compras o ventas tenia que regresarlas al inventario y luego aplicar el nuevo detalle (ya lo se poco optimo, pero me saco del apuro al no tener una capacidad como la de PB o Vfox)

ENTONCES ??? Alguien encontro solucion para esto ?? yo so y novato totalmente, pero pues este problema que platican me lo voy a topar dentro de muy poco.!


([N4] Infortic) #8

Hola.

El equipo de velneo no responde por aquí, si le han respondido será desde el centro de soporte a su ticket en concreto.

No hay solución porque no hay problema, el tema es el mismo que tenías en adobe flex. Si en tu programa metes una línea de detalle en la tabla de líneas de detalle se introduce (valga la redundancia). Si no quieres que lo haga hasta que aceptes el formulario, tendrás que programarlo tú por tu cuenta, usando tablas temporales y aplicando todos lo cambios al aceptar por código. No es tan raro la verdad.


([N1] leonardo daniel velazquez fuentes) #9

Ok gracias por responder… asi ya se a que atenerme y no andarle buscando 5 patas al gato jaja

saludos

[quote quote=42386]Hola.

El equipo de velneo no responde por aquí, si le han respondido será desde el centro de soporte a su ticket en concreto.

No hay solución porque no hay problema, el tema es el mismo que tenías en adobe flex. Si en tu programa metes una línea de detalle en la tabla de líneas de detalle se introduce (valga la redundancia). Si no quieres que lo haga hasta que aceptes el formulario, tendrás que programarlo tú por tu cuenta, usando tablas temporales y aplicando todos lo cambios al aceptar por código. No es tan raro la verdad.

[/quote]