AX 2012: Using Temporary Table as Form’s Datasource

First add a method on the form to populate records in the temporary table:

public LabelsTable populateRecords()
{
    SysDictTable    dictTable = new SysDictTable(tableNum(PurchLine));
    SysDictField    dictField;
    TreeNode        treeNode;
    LabelsTable     labelsTableLocal;                 // Temporary table (InMemory)
    FieldId         fieldId = dictTable.fieldNext(0);

    while (fieldId)
    {
        dictField = dictTable.fieldObject(fieldId);

        if (dictField.isSql() && !dictField.isSystem() && dictField.name() != "Modified")
        {
            treeNode = dictField.treeNode();
            labelsTableLocal.Field = dictField.name();
            labelsTableLocal.Label = treeNode.AOTgetProperty("Label");
            labelsTableLocal.insert();
        }

        fieldId = dictTable.fieldNext(fieldId);
    }
    
    return labelsTableLocal;
}

 

Then override form’s init() method and add the following code to display the temporary table data on the form:

public void init()
{
    super();
    
    LabelsTable.setTmpData(element.populateRecords());
}
Advertisements