Showing posts with label How to generate dynamic column's in AX report. Show all posts
Showing posts with label How to generate dynamic column's in AX report. Show all posts

Jan 22, 2012

How to create dynamic column in a report



    container                                    projectId , projectIdLabel , projCon;
    MyTable                                    externalTable ;
    ProjTable                                   ProjTable ;
    ReportTextControl                      reportText , custName ;
    ReportPromptControl                 headerPrompt1 , headerPrompt2 , headerPrompt3 ;
    ReportSection                            bodySection , bodyHeaderSec ;
    int                                               i;
   CustTable                                   custTable ;


public void executeSection()
{

    int    i;
    ;
    super();

    bodyHeaderSec = element.report().design().addProgrammableSection(2);
    bodyHeaderSec.leftMargin(2,Units::char);
    bodyHeaderSec.bottomMargin(1.5,units::char);



    bodySection = element.report().design().addProgrammableSection(1);
    bodySection.leftMargin(2,Units::char);
    custName = bodySection.addControl(tableNum(CustTable),fieldNum(CustTable,AccountNum));
    custName.name('CustNameLabel');

    headerPrompt1 = bodyHeaderSec.addPromptControl(tablenum(CustTable));
    headerPrompt1.label('Customer name');
    headerPrompt1.modelFieldName(custName.name());

    i = 0;

    while select count(ProjId) from externalTable group by  externalTable.CategoryId
                                              join ProjTable
                                              where  externalTable. ProjId == ProjTable.ProjId
                                              &&  ProjTable.CustAccount == custTable.AccountNum

        {
            if( externalTable .CategoryId)
            {
            i++;
            projectId  =  conins(projectId,i, externalTable . ProjId) ;
            reportText =  bodySection.addTextControl(conpeek(projectId,i));
            reportText.width(6,units::char);
            projCon = conins(projCon, i ,'ProjIdCountLabel' + int2str(i));
            reportText.name('ProjIdCountLabel'+int2str(i));

            projectIdLabel = conins(projectIdLabel,i,'FAM'+ int2str(i));
            headerPrompt2 = bodyHeaderSec.addPromptControl(tablenum( externalTable ));

            headerPrompt2.label(conpeek(projectIdLabel,i));
            headerPrompt2.modelFieldName('ProjIdCountLabel'+int2str(i));

            }

        }

    bodyHeaderSec.executeSection();
    bodySection.executeSection();

}