2. Agregando el Tab de dimensiones en un formulario

En estos primeros post hablaremos un poco de la defaultDimension.

Lo primero que vamos aprender es a crear el Tab de dimensiones financieras en cualquier formulario y lo haremos desde 0.

He creado una tabla (CustDimension) a la que he añadido los campos CustAccount y DimensionDefault arrastrándolos directamente desde el nodo de los extendeds.


PD: Si queréis podéis modificar el nombre del campo DimensionDefault por DefaultDimension para que se llame igual que en todas las tablas del estandard.

Esta tabla no tendrá nada más.

Posteriormente crearemos un formulario al que le agregaremos como datasource nuestra tabla.
Así mismo crearemos la estructura de Tabs que veis en la imagen.

En la propiedad Style del Tab le indicaremos FastTabs.


Del tab dimensiones lo único destacable es que tenga la propiedad autodeclaration a "yes".


Declararemos una variable de la clase DimensionDefaultingController.

public class FormRun extends ObjectRun
{
    DimensionDefaultingController dimensionDefaultingController;
}

En el método init la inicializaremos pasándolo el datasource y el campo dimensión de nuestra tabla.
Existen distintos constructs de la clase DimensionDefaultingController para que la vista del tab sea distinta.


public void init()
{
    super();
 

    dimensionDefaultingController = DimensionDefaultingController::constructInTabWithValues(true, true, true, 0, this, tabFinancialDimensions, "@SYS138487");      
    dimensionDefaultingController.parmAttributeValueSetDataSource(custDimension_ds, fieldStr(CustDimension, DefaultDimension));    dimensionDefaultingController.pageActivated();
}

Anularemos y modificaremos los siguientes métodos de nuestro datasource.

public int active()
{
    int ret;

    ret = super();
    if (ret)
    {
          dimensionDefaultingController.activated(true);
    }

    return ret;
}


public void write()
{
    dimensionDefaultingController.writing();
   
    super();
}


public void delete()
{
    super();
   
    dimensionDefaultingController.deleted();
}


Quedando tal y como se ve en la imagen.




Nuestro formulario tendrá un aspecto como el de la imagen, y automáticamente AX nos agregará los campos de dimensiones en el tab así como controlará las acciones que hagamos sobre el registro.

Si miramos en nuestra tabla podremos ver el valor(Int64) equivalente que tiene esa combinación de dimensiones.




 

Comentarios