在Axapta中,使用X++代码动态创建Form

来源:互联网 发布:淘宝详情页套模板 编辑:程序博客网 时间:2024/05/10 11:23
一般来说,在Axapta当中,我们都会使用AOT来创建Form。但是在某些情况下,譬如说要在运行的时候临时生成一个Form的话,那就必须通过X++代码来添加。以下是示范代码

static void JobUsingCodeCreateForm(Args _args)

{

    Form                            form;

    FormRun                      formRun;

    Args                            args;

    FormBuildDesign          formBuildDesign;

    FormBuildControl          formBuildControl;

    FormBuildTabControl     formBuildTabControl;

    FormBuildTabPageControl formBuildTabPageControl;

    FormBuildGridControl    formBuildGridControl;

    FormBuildDatasource    formBuildDatasource;

    FormBuildStringControl  formString;

    ;

 

    form = new Form();

    formBuildDatasource = form.addDataSource(tableStr(PurchTable));

    formBuildDesign = form.addDesign('design');

    formBuildTabControl = formBuildDesign.addControl(FormControlType::Tab, 'Tab');

    formBuildTabPageControl = formBuildTabControl.addControl(FormControlType::TabPage, 'TabPage');

    formBuildGridControl = formBuildTabPageControl.addControl(FormControlType::Grid, 'Grid');

    formString = formBuildGridControl.addDataField(formBuildDatasource.id(), fieldNum(PurchTable, PurchId));

    formString.label("PurchId");

 

    args    = new Args();

    args.object(form);

    formRun = classFactory.formRunClass(args);

    formRun.init();

    formRun.run();

    formRun.wait();

}