axapta - 如何在 Axapta 中的两个表单之间传递参数?

标签 axapta dynamics-ax-2009

如何在 axapta 的表单之间传递单个参数?我想从表单 A 中的单击按钮事件运行表单 B 并传递...例如客户 ID? 我如何以目标形式(也许在 init 方法中)读取它? 谢谢

最佳答案

1 方法

最简单的方法是传递当前记录。如果 CustTable 在当前表单数据源中,只需将示例的按钮控件的 DataSource 值更改为 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() ),您可以通过覆盖源表单的按钮控件单击方法来完成此操作:

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

然后以目标形式初始化:

public void init()
{
    str             anyStringValueFromCaller;
    ;
    super();

    // Check for passed arguments
    if( element.args() )
    {
        // get string parameter
        anyStringValueFromCaller = element.args().parm();

    }
}

我绝对应该只使用第一种方法,并且只有在特殊情况下才会使用#2 方法和覆盖按钮单击方法,因为这是在表单之间传递值的默认模式之一。 更复杂的示例可在 AxaptaPedia.com Passing values between forms 获取。

关于axapta - 如何在 Axapta 中的两个表单之间传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258375/

相关文章:

x++ - AlwaysOnTop 属性运行不正常

axapta - Dynamics AX - 在 AX 2009 中以编程方式将表添加到数据库日志

axapta - View 上的表单数据源编辑方法 - AX 2009

axapta - gotFocus 并在 Form 字段上输入方法未被调用

axapta - 枚举继承

axapta - 动态 AX : how to filter a report?

axapta - 如何自定义 Axapta 报告 "SysReportAuto"?

c# - 从 Ax 2012 Listpage (EP) 多选到 downloadDocument.aspx

axapta - 如何使对话框元素可折叠?

axapta - 查找 Material /仓库的总可用量和可用实物