我怎么能传递Axapta的形式之间的一个参数? 我想在表单中运行从按下按钮事件表格B,并通过...例如客户ID? 我怎样才能读取它的目的地的形式,也许在init方法? 谢谢
Answer 1:
方法1
最简单的方法是通过当前的记录。 只要改变按钮控件的DataSource值为例来的CustTable如果是的CustTable当前表单的数据源。 然后,在目的地形式init方法:
public void init()
{
CustTable cTable;
;
super();
// Check for passed arguments
if( element.args() )
{
// get record parameter
if( element.args().record() && element.args().record().TableId == TableNum( CustTable ) )
{
cTable = element.args().record();
}
}
}
2方法
如果您还需要经过一个值.parm()(或更复杂的对象.parmObject()),您可以通过overiding源代码形式的按钮控件中单击方法做到这一点:
void clicked()
{
// Args class is usually used in Axapta for passing parameters between forms
Args args;
FormRun formRun;
;
args = new args();
// Our values which we want to pass to FormB
// If we want pass just simple string we can use 'parm' method of 'Args' class
args.parm( "anyStringValue" );
// Run FormB
args.name( formstr( FormB ) );
formRun = classFactory.formRunClass( Args );
formRun.init();
formrun.run();
formrun.wait();
super();
}
然后在目的地的形式INIT:
public void init()
{
str anyStringValueFromCaller;
;
super();
// Check for passed arguments
if( element.args() )
{
// get string parameter
anyStringValueFromCaller = element.args().parm();
}
}
我肯定会只使用第一种方法,只有在特殊情况下会去与#2法覆盖按钮点击的方法,因为这是一个形式之间传递值默认模式之一。 更复杂的例子是可在AxaptaPedia.com形式之间传递值
文章来源: How to pass a parameter between two forms in Axapta?