Condiciones de visibilidad de separador de formulario no funcionan?

Hola estoy comprobando que las condiciones de visibilidad de los pestañas del separador de formularios cuando esta asociada a una variable boleana no funcionan… Alguien sabe algo al respecto?

Buenas tardes, funcionan, pero no forma dinámica. Al abrir el formualrio se evalua y la muestra o no. Si quieres que sea dinámico, debes de hacerlo con vJavaScript

Un ejemplo sencillo: de como mostrar:


var sepForm = theRoot.dataView().control("SEP");

//**************************Pestaña de actividades**************************
//Comprobamos si está visible
index = sepForm.findForm( "axosProductividad.app/TAR_ACT_ENT_GES_INS" );  
//Si no está creada
if ( index == -1)
{
		sepForm.insertForm( 3 ,  "axosProductividad.app/TAR_ACT_ENT_GES_INS", theApp.constant( "axosBase.dat/ACT" )); //Mostramos la pestaña en su posición
}
//**************************Pestaña de actividades**************************

//**************************Pestaña de cualificación**************************
//Comprobamos si está visible
index = sepForm.findForm( "axosProductividad.app/TIP_VAL_INS" );  
//Si no está creada
if ( index == -1)
{
		sepForm.insertForm( 4,  "axosProductividad.app/TIP_VAL_INS", theApp.constant( "axosBase.dat/CUA" )); //Mostramos la pestaña en su posición
}
//**************************Pestaña de cualificación**************************

//**************************Pestaña de documentos**************************
//Comprobamos si está visible
index = sepForm.findForm( "axosProductividad.app/ENT_GES_DOC" );  
//Si no está creada
if ( index == -1)
{
		sepForm.insertForm( 5 ,  "axosProductividad.app/ENT_GES_DOC", theApp.constant( "axosBase.dat/DOC" )); //Mostramos la pestaña en su posición
}
//**************************Pestaña de documentos**************************

Uno sencillo de como ocultar:

var sepForm = theRoot.dataView().control("SEP");

//**************************Pestaña de actividades**************************
var actividades = theRegisterIn.loadPlurals("TAR_ENT_GES_ACT");
if (actividades.size() == 0){
	index = sepForm.findForm("axosProductividad.app/TAR_ACT_ENT_GES_INS");
	sepForm.removeForm(index);
}

//**************************Pestaña de cualificaciones**************************
var cualificacion1 = theRegisterIn.loadPlurals("TIP_VAL_ENT_GES");
if(cualificacion1.size() == 0){
	var cualificacion2 = theRegisterIn.loadPlurals("OPO_ENT_GES");
	if(cualificacion2.size() == 0){
		index = sepForm.findForm("axosProductividad.app/TIP_VAL_INS"); 
		sepForm.removeForm(index);
	}
}

Saludos

1 me gusta

Muchas Gracias Mario, voy a probarlo, de todos modos comprobe lo siguiente.

No funcionan con variables locales que se inicializan en procesos on init. tal vez es por que el objeto se pinte antes de que el evento tenga lugar, pero me interesa mucho que sea dinámico, asi que voy a tratar de probar ese script, aunque de javasript no se nada voy viendo como lo adapto

Buenas tardes, tienes que modificar la variable local en el pre-init

Saludos

No sabia… muchas gracias

Hola, reabro este hilo porque despues de 3 años sigue habiendo este problema. Perdona Mario Valdés, si sigues por ahí, por favor, podrias explicarme la parte del código que pone theApp.constant( “axosBase.dat/ACT” ). Entiendo que hace referencia una constante del proyecto de datos, pero, que hay en esa contante y para que se usa?
Gracias!

1 me gusta

Hola gustavosandoval

Se refiere al texto (título) que se mostrará en la pestaña, lo puedes poner como Mario, tipo constante o poner tú el título entre comillas.

Saludos.

PD. La referencia en el manual es esta:

VFormDataView insertForm( Number index, String
szIdRefForm, String szText, [VImage imagen] )
Inserta un subformulario correspondiente al formulario con el IdRef especificado en la
posición del índice.
Parámetros:
index: Número correspondiente a la posición en la que se desea insertar el
subformulario.
szIdRefForm: Identificador de referencia, alias_proyecto/identificador_formulario, del
formulario.
szText: Texto que se mostrará en la pestaña.
JavaScript
2032
imagen: Opcional. Objeto de la clase VImage que contiene el icono a mostrar en la
pestaña.