AX 2009 父窗体参数记录传递

父窗体传递子窗体

1、在Menu Item中的属性——Properties中设置要传的值,如:1。
2、在被传值页面中的方法中element.args().parm() 就能得到被传的值。

 

假如FormA和FormB,它们的记录(record)具有相同的EDT,就可以直接用menuitem button来调用,Axapta会自动帮你传递值,并且在FormB中自动过滤掉相应的值。

在MenuItem的属性Parameters里设置一个参数;
然后在Form的Init里如下进行判断:

 

if(element.args().parm() == "参数")
{
   ......
}

 

第一个窗口的Button按钮CLICKED事件

 

void clicked()
{
    Args args;
    FormRun fr;
    str  zz;
    ;

    super();
    zz 
= "Kurodo";

    args 
= new Args("Test2011");
    args.caller(element);
    args.parm(zz);

    fr 
= ClassFactory.formRunClass(args);
    fr.init();
    fr.run();
    fr.wait();
}

 

被调用窗体Test2011的init函数

 

public void init()
{
    
//FormRun fr; 
    super();

    
//fr =element.args().caller();
    print  element.args().parm();
    print fr.name();
    
}

 

再一种写法,设置数据源,然后在写代码,切忌。别代码写的呱呱响,然后编译无错,结果无法运行就傻眼了~

 

 

void init()
{
    InventTable       m_InventT;
    ;

    m_InventTJ 
= element.args.record();

    
this.doSomeThing();
}

 

 

posted @ 2011-07-21 16:29  Kurodo  阅读(499)  评论(0编辑  收藏  举报