PASAR PARAMETROS A FORMULARIO


([N1] yarumal) #1

Hola todos!

Necesito ayuda con lo siguiente:
Tengo un formulario de toma de pedidos, pero el mismo lo uso para capturar la toma de devoluciones, el asunto es que quiero evitar que el usuario tenga que hacer el cambio entre lo uno o lo otro (pedidos o devoluciones), es decir, que desde que se abra el formulario desde la opción de menú correspondiente se le puedan pasar los valores para que se abra como lo uno o como el otro. (lo he hecho desde un proceso, el cual es disparado por una acción, pero me abre en modo dialogo y lo deseo es en pantalla completa).

Espero me entiendan.

Mil gracias.


([N1] yarumal) #2

Me explico de otra forma:

Lo que quiero es activar o desactivar controles del formulario en base parámetros o valores de ficha que se le pasen durante el evento pre o postinicializado.


([N3] pacosatu) #3

Hola Henry

! Una pregunta interesante ¡

A un formulario en modo Vista no se le pueden pasar parámetros. En realidad, en Velneo no existe el concepto de parámetros sino el de variables locales que se pueden configurar antes de mostrar el formulario.

Tienes la opción socorrida de usar una Variable Global que fijas a “P” o “D” antes de ejecutar la Acción.

Otra solución, un poco más rebuscada es la siguiente:

  • Tienes 2 formularios PEDIDO y DEVOLUCION, con origen pedidos y únicamente con los botones <Guardar> y <Cancelar>. Tienen una variable local CTIPO_DOC que vale “P” o “D” según sea el caso.
  • Tienes otro formulario PEDIDO_DEVOLUCION con origen pedidos y con todos los campos de la tabla pedidos y también una variable local CTIPO_DOC.
  • En cada formulario PEDIDO y DEVOLUCION insertas un control PILA_DATOS de tipo Pila de formularios con un único componente que será el formulario PEDIDO_DEVOLUCION

De esta forma consigues editar la misma ficha desde el formulario principal y el embebido dentro de la Pila de formularios.
Tendrás 2 Acciones que llamarán a los formularios PEDIDO y DEVOLUCION con una ficha nueva.

  • En el POS_INI de los formularios PEDIDO y DEVOLUCION
Rem (Asignamos el tipo de documento según sea PEDIDO o DEVOLUCION)
Set ( CTIPO_DOC, "P" o "D" )
Rem (Indicamos el tipo de Ficha que vamos a añadir)
Modificar campo ( TIPO_DOC, CTIPO_DOC )
Rem (Indicamos al formulario con los datos del Pedido/devolución qué tipo de documento es)
Interfaz: Set variable local de vista de datos ( PILA_DATOS.FRM_DATOS, CTIPO_DOC, CTIPO_DOC )
  • En el ON_SHOW del formulario PEDIDO_DEVOLUCION
Rem (En el Show del formulario ya podemos saber qué tipo de documento estamos añadiendo)
Rem (Actuamos en consecuencia)
Rem (¡¡Cuidado con el ON_SHOW que se ejecuta cada vez que activas la Pestaña!!)
Rem (Usa un semáforo o indicador que se ponga a 1 cuando se ejecuta el código una vez)
if (CTIPO_DOC = "P")
...
else
...

En este caso, en el evento POS_INI de cada formulario PEDIDO y DEVOLUCION fijamos el “parámetro” CTIPO_DOC. Tenemos que hacerlo en el POS_INI porque es donde ya existe el control PILA_DATOS y podemos usar Interfaz: Set variable local de vista de datos.
El POS_INI del formulario PEDIDO_DEVOLUCION se ejecuta antes que el de PEDIDO y DEVOLUCION, por esa razón debemos acudir al evento ON_SHOW y obtener el valor de CTIPO_DOC. Un poco lioso pero es que Velneo tiene grandes limitaciones con el tema de eventos.

Saludos
Paco Satué


([N1] yarumal) #4

Muchas gracias, me has dado algunas ideas.

lo probaré.

de nuevo gracias.


([N1] yarumal) #5

Tienes la opción socorrida de usar una Variable Global que fijas a “P” o “D” antes de ejecutar la Acción.

Y como le cambio el valor antes de ejecutar la acción.

he creado un proceso en el que lo hago, y lo pongo en la acción en el objeto1 y en el objeto dos el formulario que deseo, pero no se dispara el formulario.

tanto el proceso como el formulario no están asociados a ninguna tabla.


([N3] pacosatu) #6

Hola Henry.

Es necesario que el Proceso tenga salida de Ficha para que pueda ser disparado el Formulario que a su vez tendrá origen de Ficha, de lo contrario no funciona.

Saludos
Paco Satué


([N1] yarumal) #7

Mil gracias pacostu fue muy importante tu ayuda.

Que bueno que hay personas en este foro dispuestas a ayudar.

finalmente terminan siendo soluciones muy sencillas, pero mientras uno no lo descubra son un gran problema.

Mil gracias de nuevo.


([N1] pinpez) #8

A ver si lo he entendido…

quieres tener activado dos formularios (pedidos y devoluciones) y ver solo aquel que te interese,

¿por qué no usas…
https://doc.velneo.es/pila-de-formularios.html


([N1] yarumal) #9

No, la idea es un solo formulario, ya que es similar en casi todo solo cambia el destino del los registros. (Y así evitar tener que mantener dos formularios)

Pero ya lo solucionamos con la ayuda de pacosatu.

Muchas gracias por tu interés.