How to build a dynamic form in Dynamics AX 2012 Through X++
How to build a dynamic form in Dynamics AX 2012 Through X++
#Task
DictTable dictTable;
Form form;
FormBuildDesign formBuildDesign;
FormBuildDataSource formBuildDataSource;
FormBuildActionPaneControl formBuildActionPaneControl;
FormBuildActionPaneTabControl formBuildActionPaneTabControl;
FormBuildButtonGroupControl formBuildButtonGroupControl_NewDelete;
FormBuildButtonGroupControl formBuildButtonGroupControl_Related;
FormBuildCommandButtonControl formBuildCommandButtonControl_New;
FormBuildCommandButtonControl formBuildCommandButtonControl_Del;
FormBuildMenuButtonControl formBuildMenuButtonControl_Items;
FormBuildFunctionButtonControl formBuildFunctionButtonControl_Items;
FormBuildGroupControl formBuildGroupControl_Body;
FormBuildGridControl formBuildGridControl_ItemGroup;
Args args;
FormRun formRun;
dictTable = new DictTable(tableNum(InventItemGroup));
form = new Form();
form.name('TestDynamic');
formBuildDataSource = form.addDataSource(dictTable.name());
formBuildDataSource.table(dictTable.id());
formBuildDesign = form.addDesign('Design');
formBuildDesign.caption('Test Form');
formBuildDesign.style(FormStyle::SimpleList);
formBuildDesign.titleDatasource(formBuildDataSource.id());
formBuildActionPaneControl = formBuildDesign.addControl(FormControlType::ActionPane, 'ActionPane_Main');
formBuildActionPaneControl.style(ActionPaneStyle::Strip);
formBuildActionPaneTabControl = formBuildActionPaneControl.addControl(FormControlType::ActionPaneTab, 'ActionPaneTab_General');
formBuildButtonGroupControl_NewDelete = formBuildActionPaneTabControl.addControl(FormControlType::ButtonGroup, 'ButtonGroup_NewDelete');
formBuildButtonGroupControl_Related = formBuildActionPaneTabControl.addControl(FormControlType::ButtonGroup, 'ButtonGroup_Related');
formBuildCommandButtonControl_New = formBuildButtonGroupControl_NewDelete.addControl(FormControlType::CommandButton, 'CommandButton_New');
formBuildCommandButtonControl_New.primary(NoYes::Yes);
formBuildCommandButtonControl_New.command(#taskNew);
formBuildCommandButtonControl_Del = formBuildButtonGroupControl_NewDelete.addControl(FormControlType::CommandButton, 'CommandButton_Del');
formBuildCommandButtonControl_Del.text("Delete");
formBuildCommandButtonControl_Del.saveRecord(NoYes::Yes);
formBuildCommandButtonControl_Del.primary(NoYes::Yes);
formBuildCommandButtonControl_Del.command(#taskDeleteRecord);
formBuildMenuButtonControl_Items = formBuildButtonGroupControl_Related.addControl(FormControlType::MenuButton, 'Related');
formBuildMenuButtonControl_Items.helpText('Get related Information.');
formBuildMenuButtonControl_Items.text("Related");
formBuildFunctionButtonControl_Items = formBuildMenuButtonControl_Items.addControl(FormControlType::MenuFunctionButton, 'Menu_Items');
formBuildFunctionButtonControl_Items.text('Items');
formBuildFunctionButtonControl_Items.saveRecord(NoYes::No);
formBuildFunctionButtonControl_Items.dataSource(formBuildDataSource.id());
formBuildFunctionButtonControl_Items.menuItemName(menuitemDisplayStr(ForecastInvent));
formBuildGroupControl_Body = formBuildDesign.addControl(FormControlType::Group,'Group_Body');
formBuildGroupControl_Body.heightMode(FormHeight::ColumnHeight);
formBuildGroupControl_Body.columnspace(0);
formBuildGroupControl_Body.style(GroupStyle::BorderlessGridContainer);
formBuildGridControl_ItemGroup = formBuildGroupControl_Body.addControl(FormControlType::Grid, "ItemGroup_Grid");
formBuildGridControl_ItemGroup.dataSource(formBuildDataSource.name());
formBuildGridControl_ItemGroup.showRowLabels(false);
formBuildGridControl_ItemGroup.widthMode(FormWidth::ColumnWidth);
formBuildGridControl_ItemGroup.heightMode(FormHeight::ColumnHeight);
//Fields
formBuildGridControl_ItemGroup.addDataField(formBuildDataSource.id(), fieldNum(InventItemGroup,ItemGroupId));
formBuildGridControl_ItemGroup.addDataField(formBuildDataSource.id(), fieldNum(InventItemGroup,Name));
args = new Args();
args.object(form);
formRun = classFactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.detach();
}
Comments
Post a Comment