Agregar fomulario a Separador de Formularios dinamicamente


([N1] leonardo daniel velazquez fuentes) #1

Hola pues eso tengo que capturar una seccion llamada “hoja de servicio” donde van 12 campos, y es detalle de otra tabla… entonces esas hojas de servicio pueden ser 1,2 hasta 5 , este sistema ya lo habia hecho hace 1 año en Flex, y ahi puedo crear Tabs dinamicamente y le asignaba un ID a cada hoja de servicio (tab) por lo que al darle al boton guardar, pues tomaba ese ID y listo, ya tenia mi tabla de detalle y muy facil de navegar, ya que son pocos registros, pero demasiados para visualizarlos comodamente en una rejilla…

ojala se pueda, si no estoy frito, se vera super mal que se vean algunas columnas y tengan que dar doble click para ver los datos completos

saludos


([N3] blavan) #2

Hola, tranquilo que si se puede
Hace dos años me inicie un poco en JS y uno de los primeros ejercicios era ese, quitar y añadir pestañas
Después no seguí por el camino JS excepto copiar y pegar algunas rutinas útiles y comunes como exportar, importar etc…seguro que expertos del foro en JS te echan pronto una mano.
No te envío la rutina porque ahora mismo no tengo base para explicarla y aunque funcionaba bien, todo había sido a base de pruebas …y posiblemente se consiga lo mismo con código más depurado


([N4] Infortic) #3

Hola.

El separador de formularios tiene los métodos:

VFormDataView insertForm( Number index, String szIdRefForm )
void removeForm( Number index )

Para hacerlo por js.

Otra posibilidad es crear las 5 fichas fijas, y usar la instrucción:

Habilitar el subcontrol del contenedor de formularios

Al arrancar el formulario la usas para deshabilitar todas las fichas y luego las vas habilitando según sea necesario.


([N3] NexusFireMan) #4

Para añadir una pestaña desde vJavaScript tienes que poner el siguiente código:

importClass("VImage");
var sepForm = theRoot.dataView().control('SEPARADOR_FORMULARIO');
var img = new VImage();
img.loadResource('PROYECTO/IMAGEN');
sepForm.addForm('PROYECTO/FORMULARIO','Nombre Pestaña',img)

Ademas también le añades el icono.

Por si quieres ademas quitar otra pestaña:

var sepForm = theRoot.dataView().control('SEPARADOR_FORMULARIO');
var cur = sepForm.findForm('PROYECTO/FORMULARIO');
sepForm.removeForm(cur);

Con este par de códigos puedes hacer dinámico cualquier separador de formularios que tengas.

Espero haberte ayudado.


([N1] leonardo daniel velazquez fuentes) #5

Hola muchas gracias… en este momento me pongo manos a la obra.!


([N1] Anacreonte) #6

Buenas tardes,

Tengo que iniciar un formulario que contiene un separador de formularios con varias pestañas de las cuales tienen que estar deshabilitadas y que se habiliten dependiendo de un tipo de clasificación que contiene el artículo, pero hasta ahora soy incapaz de hacerle funcionar, ya que no termino de comprender como funciona la instrucción Habilitar el subcontrol del contenedor de formularios, me podéis ayudar.

Mil gracias de antemano.


([N4] Infortic) #7

Esa instrucción es muy sencilla, sólo tienes que especificarle la condición que se tiene que cumplir para habilitar el suformulario.

Interfaz: Habilitar el subcontrol del contenedor de formularios (SEP,PESTAÑA2,#ART.CLASIFICACION=7)

Activaría la pestaña 2 sólo si el artículo tiene clasificación = 7

Puedes hacer un manejador de evento que ejecute esa instrucción, y una conexión de evento para dispararlo cuando el artículo pierda el foco por ejemplo.


([N1] Anacreonte) #8

Ok, muchas gracias lo pruebo y comento. No me estaba aclarando del todo con dicha instrucción.