web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / Axapta todo es posible / Desafío #3: agregar control...

Desafío #3: agregar control de forma dinámica en formulario

Ismael Utitiaj Profile Picture Ismael Utitiaj 426

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.

    Screen-Shot-2018_2D00_09_2D00_17-at-8.50.29-AM.png

    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:

    Screen-Shot-2018_2D00_09_2D00_17-at-9.01.48-AM.png

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. 

Comments

*This post is locked for comments