Disparar formularios en tiempo de ejecución


([N1] Spicer) #1

Distinguidos,

Enfrento el siguiente desafío: necesito disparar ciertos formularios a partir de los datos de una lista, pero el formulario no es el mismo: depende del contenido de campos bool A, B, C y otros en la ficha de la lista que se está leyendo.

Es decir:
Si el contenido de la ficha cumple con las condiciones A, B: Disparar form 1
Si el contenido de la ficha cumple con las condiciones A, C: Disparar form 2
Si el contenido de la ficha cumple con las condiciones B, C: Disparar form 3
… y así.

Pero como son muchas combinaciones, no quiero llenarme de if. Lo que me gustaría sería crear una tabla con columnas A, B, C y poner en cada una de ellas un 1 o un 0, y en otra columna, el nombre o Id del formulario a disparar. De esta forma:

A - B - C Nombreform
1 - 1 - 0 form1
1 - 0 - 1 form2

De este modo, remplazo una retahíla de Ifs por una tabla que es mucho más cómoda de mantener para mi.

En consecuencia, la pregunta es… ¿cómo puedo pasar el nombre del form a una instrucción vJavaScript que lo instancie y dispare?

Mil gracias!


([N4] Infortic) #2

A ver, tendrás que crear un proceso que tenga como entrada un registro e la tabla en cuestión y una variable local FORM_A_LANZAR.

No lo he probado, no tengo idea si funciona, pero probablemente el proceso será algo asi como:

var formulario = new VDataViewDialog(theRoot);
formulario.setDataView(VObjectInfo.TypeForm, theRoot.varToString(“FORM_A_LANZAR”))
formulario.setRegister(theRegisterIn);
formulario.exec();

Para lanzarlo desde la rejilla, recupera el registro seleccionado, crea un manejador de objeto para el proceso js, setéale la variable, setéale el registro y lo lanzas.

Ten en cuentaque el nombre del formlario es PROYECTO/FORMULARIO


([N1] Spicer) #3

Estimado Info,

Lamentablemente no funciona… no lanza el formulario… ¿se te ocurre qué puede ser?


([N4] Infortic) #4

Pon la barra de estado para ver el error javascript, a ver si puedes hacerte una idea, si tengo un rato lo pruebo y te digo…


([N4] Infortic) #5

A mi si que me funciona.

Te paso unas capturas.

  1. Vigila que has inducido la ficha al formulario
  2. Esto sólo funcionará en 7.16 ya que la clase VDataViewDialog no existía antes
  3. Si has hecho copypaste ojo con las comillas dobles, seguro que las ha copiado mal
  4. Vigila que el nombre del formulario sea correcto, con el proyecto como prefijo.