Building dynamic form using x++ in MS Dynamics AX 2009


static void main(Args _args)
{
DictTable dictTable;
Form form;
FormBuildDesign design;
FormBuildDataSource ds;
FormBuildTabControl tab;
FormBuildTabPageControl tp1;
FormBuildTabPageControl tp2;

FormBuildGridControl grid;
FormBuildGroupControl grp1;
FormBuildGroupControl grp2;
FormBuildGroupControl grp3;
Args args;
FormRun formRun;
;
dictTable = new DictTable(tablenum(BankTransType));
form = new Form();
form.name("BankTransTypeDynamic");
ds = form.addDataSource(dictTable.name());
ds.table(dictTable.id());
design = form.addDesign('design');
design.caption("Bank transaction type");
tab = design.addControl(FormControlType::Tab, "Tab");
tab.widthMode(FormWidth::ColumnWidth);
tab.heightMode(FormHeight::ColumnHeight);
tp1 = tab.addControl(FormControlType::TabPage, "Tp1");
tp1.caption("Overview");
tp2 = tab.addControl(FormControlType::TabPage, "Tp2");
tp2.caption("General");
grid = tp1.addControl(FormControlType::Grid, "Grid");
grid.dataSource(ds.name());
grid.widthMode(FormWidth::ColumnWidth);
grid.heightMode(FormHeight::ColumnHeight);
grid.addDataField(
ds.id(),
fieldnum(BankTransType, BankTransType));
grid.addDataField(
ds.id(),
fieldnum(BankTransType, Name));
grid.addDataField(
ds.id(),
fieldnum(BankTransType, LedgerAccountNum));
grp1 = tp2.addControl(FormControlType::Group, "Grp1");
grp1.dataSource(ds.id());
grp1.autoDataGroup(true);
grp1.dataGroup(
tablefieldgroupstr(BankTransType, Identification));

grp2 = tp2.addControl(FormControlType::Group, "Grp2");
grp2.dataSource(ds.id());
grp2.autoDataGroup(true);
grp2.dataGroup(tablefieldgroupstr(BankTransType, Name));
grp3 = tp2.addControl(FormControlType::Group, "Grp3");
grp3.dataSource(ds.id());
grp3.autoDataGroup(true);
grp3.dataGroup(tablefieldgroupstr(BankTransType, Ledger));
args = new Args();
args.object(form);
formRun = classfactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.detach();
}


Comments

Popular Posts