从一个form(Report)传递多个参数到另外一个form(report)

方法一,把所有的参数放到一个字符串里,用特殊符号分开,用args().parm() ,传到另一个form,然后再按照规则读出参数。
方法二,把参数保存到一个class,用方法 args.parmObject(_objectname); 传递class到另外一个form,
然后用 方法 _objectname = element.args().parmObject();得到class;
方法三,使用临时表,用方法 args().record(YourTmpTable); 传递临时表;
 

方法四,

作者:MAXFara,原贴:http://www.qiuhao.com/boke.asp?maxfara.showtopic.8.html

注:导入附件不会改变Axapta原有的代码,增加了一个Form,Job,Class。
例子里面演示了如何使用自己创建的Form作为Dialog的UI界面,以及如何在调用者与对话框Form之间交互数据。
解决的方法有很多种,本例采用了使用一个中间类来传递数据的策略。
主要代码有:
Job:
static void testDialogJob(Args _args)
{
    testDialogClass testDialogClass  ;
    ;
    testDialogClass = new testDialogClass() ;
    info(testDialogClass.mystr()) ;
}
Class:
class testDialogClass
{
    str mystr ;
}
void new()
{
    Args args = new Args();
    FormRun formRun;
    ;
    args = new Args(FormStr(''testdialogform''));
    args.parmObject(this);
    formRun = classFactory.formRunClass(args);
    formRun.init();
    formRun.run() ;
    formRun.wait();
}
//访问变量的方法
public str mystr(str _str = mystr)
{
    ;
    mystr = _str ;
    return mystr ;
}
Form:
public class FormRun extends ObjectRun
{
    testdialogclass testdialogclass ;
}
public void init()
{

    super();
    testdialogclass = this.args().parmObject();
}
public boolean modified()
{
    boolean ret;

    ret = super();
    testdialogclass.mystr(StringEdit.text());
    return ret;
}

posted @ 2009-04-26 11:57  Fandy Xie  Views(254)  Comments(0Edit  收藏  举报