# Disparar formularios en tiempo de ejecución

**URL:** <https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639>\
**Category:** Velneo\
**Created:** [12 Diciembre, 2014 13:31 UTC](https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639 "2014-12-12T13:31:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![alberto\_nudman](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@alberto\_nudman](https://foros.velneo.com/u/alberto_nudman)\
**Post date:** [12 Diciembre, 2014 13:31 UTC](https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639/1 "2014-12-12T13:31:59Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![tic-software](https://avatars.discourse-cdn.com/v4/letter/t/c4cdca/32.png) [@tic-software](https://foros.velneo.com/u/tic-software)\
**Post date:** [12 Diciembre, 2014 15:48 UTC](https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639/2 "2014-12-12T15:48:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![alberto\_nudman](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@alberto\_nudman](https://foros.velneo.com/u/alberto_nudman)\
**Post date:** [12 Diciembre, 2014 18:38 UTC](https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639/3 "2014-12-12T18:38:01Z")

</div>

Estimado Info,

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

---

<div class="post-metadata">

**Author:** ![tic-software](https://avatars.discourse-cdn.com/v4/letter/t/c4cdca/32.png) [@tic-software](https://foros.velneo.com/u/tic-software)\
**Post date:** [15 Diciembre, 2014 18:59 UTC](https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639/4 "2014-12-15T18:59:56Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![tic-software](https://avatars.discourse-cdn.com/v4/letter/t/c4cdca/32.png) [@tic-software](https://foros.velneo.com/u/tic-software)\
**Post date:** [16 Diciembre, 2014 08:57 UTC](https://foros.velneo.com/t/disparar-formularios-en-tiempo-de-ejecucion/7639/5 "2014-12-16T08:57:30Z")

</div>

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.

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/4/4f228cfef0da8d746e838a3eb8a47c9a6e949e52.png)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/d/d248715e416d75684c47dbfbab425ed6b98a85c4.png)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/f/feb5cac7ec1395a81af7c426e25630c79427c5eb.png)
