Personalización de formularios


([N2] overBCN) #1

Hola a todos,

Estoy buscando la ayuda que te permite poder personalizar formularios o las pestañas de un formulario para un cliente, pero no encuentro la información. Alguien sabe donde se encuentra?

Gracias


([N1] Pepeto) #2

Depende de lo que necesites personalizar.

Si lo que quieres es personalizar una aplicación estandar para un cliente en concreto, la opción es generar una solución por encima y heredar la aplicación, y a partir de ahi, personalizar todo lo que necesites.

Si no te refieres a esto, que imagino ya lo sabias, deberías especificar un poco más.

un saludo

José Luis


([N2] overBCN) #3

Hola Jose Luis,

Si, la idea es crear un proyecto que esté por encima, heredar y poderle personalizar algunos formularios e informes. Vi que había una forma sencilla de hacerlo, y era copiando el mismo formulario o informe (mismo nombre) y hacer las modificaciones. Al ejecutar la solución te cogía automáticamente los cambios sin tener que hacer nada mas.

Estoy en lo cierto o me he perdido alguna cosa. Por que lo he probado y no hace nada.

Hay un artículo que habla de la superpersonalización, pero me debo dejar algo en el camino.

Saludos y gracias.


([N1] Pepeto) #4

Creo que ya se a lo que te refieres:

Se comento en algún momento, que podías copiar un formulario en una solución que esta por encima, y si su nombre coincide con el de un formulario de la solución heredada, este podia ser sustituido, mostrando en ejecución el formulario de la solución “superior (la que hereda)”

Si es esto a lo que te refieres, me temo que no hay un manual propiamente dicho de como hacerlo, lo que si te puedo asegurar, es que para poder hacerlo, necesitarás vJavaScript.

En cuanto a las pestañas, aqui tienes una forma de personalizar, tambien con vJavaScript:

http://filipegomes.eu/ejemplos-javascript-en-v7-combobox-y-separador-de-formularios/

Aunque no olvides que tienes la forma sencilla de hacerlo, usando Puntos de inserción en los separadores de los formularios.

un saludo

José Luis


([N2] overBCN) #5

Ok, entendido, creía que la opción de copiar los objetos a un nivel superior con el mismo nombre sustituía automáticamente a los existentes. Era demasiado fácil para ser cierto.

Gracias


([N2] overBCN) #6

De todos modos, había un video de Jesús Arboleya que hacía mención a esta fácil implementación

Si alguien lo recuerda o sabe donde se encuentra, que pase info. Gracias


([N1] desarrollo) #7

Recuerdo el vídeo, pero pienso que es aplicable sólo a los informes.

Saludos,

César


([N1] aztecmexico) #8

Hola Luis, creo que es esto a lo que te refieres:

 

http://velneo.es/listado-de-novedades-velneo-v7-7-11/#1api

 

Está casi al final del video, creas nuevos formularios en la solución nueva y los insertas con un javascript en la heredada, tú defines los nombres directamente o los prefijos, o algo asi, lo que no pone Jesús Arboleya es la función completa, hay que pedírsela =).

Saludos.

Martin Ibarra.


([N2] overBCN) #9

Gracias Martín, me lo miro y si lo veo factible expongo resultados.

Saludos


([N4] jarboleya) #10

Buenos días.

Sobre el tema de la personalización que aparece en el vídeo os paso la siguiente:

  1. Las funciones que se usan en el vídeo las tenéis disponibles en vBase 2.4 que podéis descargar aquí.

  2. Las funciones están en el directorio de scripts en el fichero /js/interface/velneoTab.js y se llaman

velneoTab.sustituirSubformulario = function ( separador, szFormularioId, szTitulo, szIconoIdRef, szAliasProyecto )

velneoTab.addSubformulariosPersonalizados = function ( separador, szPrefijo, szIconoIdRef, szAliasProyectoNoCargar )

Si editas el script podrás ver documentados los diferentes parámetros de cada función.

  1. El código de ejemplo de la aplicación de pedidos que se ve en el vídeo y que hace la llamada las funciones es el sliguiente:
#include "21fb5lom.vcd/js/interface/velneoTab.js"

// Se prepara el control separador
var controlTab = theRoot.dataView().control( “SEP” );

if ( controlTab )
{
////////////////////////////////////////////////////////////////////////////////
// Añadir el subformuluario personalizado y en su defecto el original
//
var szIdForm = “CLIENTE_PEDIDOS_INF”;
var szTitulo = “Informe Pedidos”;
var szIconoIdRef = “2nnwmkgs.vca/PRT_ICO”;
var szAliasProyecto = “vpedidos_app”;

velneoTab.sustituirSubformulario( controlTab, szIdForm, szTitulo, szIconoIdRef, szAliasProyecto );

////////////////////////////////////////////////////////////////////////////////
// Añadir todos los subformularios personalizados
//
var szPrefijo = "PERSONALIZADO_CLIENTE_";
var szIconoNuevasTabIdRef = "2nnwmkgs.vca/OBS_ICO";

velneoTab.addSubformulariosPersonalizados( controlTab, szPrefijo, szIconoNuevasTabIdRef, szAliasProyecto );

}

Estas funciones, están diseñadas para buscar los objetos de sustitución o personalización en el proyecto main (el del AUTOEXEC de arranque) que en principio es donde pondríamos la personalización. Sin embargo, se puede mejorar o cambiar haciendo que busquen la personalización en un proyecto que pasemos como parámetro o que recorra el árbol de proyectos heredados buscando un objeto con ese identificador y tipo.

Aclarar que la personalización en este caso se está haciendo a nivel de subformulario, pero el API nos permite hacer personalización a diferentes niveles: subformulario, procesos, informes, etc. Es cuestión de hacer la programación adecuada para que la ejecución de los objetos non se realice directamente sino a través de un proceso o manejador JavaScript encargado de cargar el adecuado.

Espero que esta información os sea útil.

Saludos.


([N1] aztecmexico) #11

Gracias Jesús,

Con ese ejemplo basta para que sea el punto de partida para lo que cada quien desea hacer, a partir de esto ya cada desarrollador puede analizar el código y ajustarlo a sus necesidades.

Un saludo.

Martin Ibarra.