Search code examples
axaptadynamics-ax-2012x++dynamics-ax-2012-r2dynamics-ax-2012-r3

How to refresh Factbox


I have a form, when i click on my button.It adds to my table A (what my factbox shows)is it possible to refresh the factbox with X++ code? I can't figure out how to refresh my infopart or query which factbox uses.


Solution

  • For an infopart you can call an update of the data source of the infopart's form run:

    void clicked()
    {
        PartList       partList;
        int            i;
        FormRun        infoPartFormRun;
        FormDataSource infoPartDataSource;
    
        super();
    
        partList = new PartList(element);
        for (i = 1; i <= partList.partCount(); i++)
        {
            infoPartFormRun = partList.getPartById(i);
            if (infoPartFormRun.name() == identifierStr(MyInfoPart))
            {
                infoPartDataSource = infoPartFormRun.dataSource();
                if (infoPartDataSource)
                {
                    infoPartDataSource.research();   
                }
            }
        }
    }
    

    I added the check for the infoPartDataSource because I first tested this with a cue group fact box, which does not have a data source (or at least I could not figure out how to get the data source of one of the cues in the cue group and since you asked for an infopart fact box, I did not investigate further).

    Update: The issue seems to be popular at the moment, Martin Dráb also wrote in his blog about it: Refreshing form parts