父窗体传递子窗体
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();
}
{
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();
}
{
//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();
}
{
InventTable m_InventT;
;
m_InventTJ = element.args.record();
this.doSomeThing();
}