Cuando se realiza personalizaciones sobre la interfaz de usuario, existe casos donde es necesario agregar controles de forma dinámica.
En esta ocasión, les indicaré como realizar esta tarea:
- Primero, vamos a crear un clase para controlar el gestor de evento para el método init del formulario CustTable.
Esta acción no crea automáticamente la clase, pero si nos permite crear el método para gestionar el evento.
/// <summary>
///
/// </summary>
/// <param name="args"></param>
[PreHandlerFor(formStr(CustTable), formMethodStr(CustTable, init))]
public static void CustTable_Pre_init(XppPrePostArgs args)
{
}
- Crear una clase para gestionar los eventos y agregamos el método pre-event creado anteriormente.
class iwiaCustTable { [PreHandlerFor(formStr(CustTable), formMethodStr(CustTable, init))] public static void CustTable_Pre_init(XppPrePostArgs args) { FormRun formRunCaller; FormName nameForm; FormBuildTabPageControl buildTabGeneralControl; FormBuildControl newBuildControl; FormStringControl newFormStringControl; FormControl formControlLocal; ; formRunCaller = args.getThis(); buildTabGeneralControl = formRunCaller.form().design().control("TabGeneral"); if( buildTabGeneralControl != null) { nameForm = formRunCaller.name() ; newBuildControl = buildTabGeneralControl.addControl(FormControlType::String, "iwiaNewForm"); newFormStringControl = new FormStringControl(newBuildControl , formRunCaller); } Info(strFmt("Test con control dinamico %1", nameForm)); } } - Y el resultado es el siguiente:
Esta forma de agregar controles dinámicos puede ser de utilidad cuando se requiere agregar algún conjunto de campos iguales en varios formularios, en la cual, se podría crear una clase y utilizarla desde diferentes formularios.

Like
Report
*This post is locked for comments