Paso de control treewidget a proceso JS


([N1] runasoft) #1

Tengo un proceso en JS cuya 1ras. lineas de código son:
var formulario = theParentWidget;
var arbol = formulario.control(“CONTROL_TW”);

Desde un manejador de evento de un formulario donde tengo el control treewidget “CONTROL_TW” como le paso este control al proceso JS?

Gracias anticipadas.


([N3] pacosatu) #2

Hola runasoft.

En Velneo no podemos pasar referencias de Objetos entre procesos (un handicap enorme), solo podemos establecer la Ficha o Lista de Entrada y fijar Variables Locales de tipo numérico, string, booleano o array.

Para acceder desde un proceso al Objeto instanciado en el Interface de un Formulario concreto, en este caso un TreeWidget, no tendrás más remedio que navegar por el modelo de Objetos del API de Velneo (theMainWindow, theParentWidget, theRoot, parentDataView, etc …).

Saludos
Paco Satué


([N1] runasoft) #3

Gracias Paco me temía algo de esto, veré que dicen los de soporte.


([N1] wikan) #4

Depende como lo hayas definido, el proceso JS es un fichero de script, si lo incluyes en el manejador y lo has previsto, podrás usar la variable arbol sin ningún problema.


([N1] runasoft) #5

Amigo wikan asi lo tengo montado anclado en un formulario mediante su manejador de evento, el caso es que lo mismo se repite en 6 lugares teniendo que repetir el mismo código en distintos formularios y sus respectivas tablas, por eso quería minimizar el uso de código.


([N1] runasoft) #6

Solucionado en realidad no es necesario crear un manejador de objeto para pasar el control treewidget, simplemente hacer:
Ejecutar proceso (nombre de proceso JS, 1° plano: Local(síncrono), ,)
Lo único que el control debe tener el mismo nombre en cada formulario.

Los de soporte me indicaron que revisara el nombre del control y allí me di cuenta del detalle.

Gracias a Paco y Wikan por tratar de ayudarme.

Un abrazo


([N3] pacosatu) #7

Hola runasoft.

Manuel se refiere a usar la instrucción #include “(CurrentProject)/MiGestion_TreeWidget.js” en el Manejador JS del formulario.
De esta forma solo escribes una sola vez el código y en el proceso Javascript usas theRoot.dataView().control(<TreeWidget>) que funcionará una vez incluido en el manejador del formualrio.

No es la forma más ortodoxa de hacer las cosas pero Velneo nos obliga a estas “chapucillas” para resolver sus limitaciones.

Saludos
Paco Satué


([N1] runasoft) #8

Comprendido amigo Paco.