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();
}

 

 

你可能感兴趣的:(参数)