【问题标题】:Passing parameters from Form to AOT Query AX 2012将参数从表单传递到 AOT Query AX 2012
【发布时间】:2013-11-19 19:48:24
【问题描述】:

我目前使用的是 AX 2012 R2。我目前在 AOT 中有一个自定义查询对象,用于向自定义 SSRS 报告提供数据。

在 SalesTable 表单中,我在 SalesTable 表单上有一个自定义按钮,我在其中重写了 clicked 方法以调用自定义输出菜单项,以提供 SalesTable.CustAccount 和 SalesTable.SalesId 的参数。

但是,当我在 SalesTable 表单上选择另一条记录并单击自定义按钮时,查询对话框正常显示(用于选择精确值的对话框),但我的参数的最后选择值仍然完好无损。我假设是由于使用数据。

通过使用查询创建 SSRS 报告,有没有办法将表单中当前选定的记录值作为参数提供给对话框,而不是使用数据中保存的内容?

请提前告知和感谢

void clicked()
{
    MenuFunction            jobCardReport;
    Args                    args = new Args();
    Query                   query = new Query();
    QueryRun                queryRun;
    QueryBuildDataSource    qbds;
    QueryBuildRange         queryBuildRange;
    SalesTable              salesTableRecord;
    ;

    salesTableRecord = element.args().record();
    qbds = query.addDataSource(tableNum(SalesTable));
    queryBuildRange = qbds.addRange(fieldNum(SalesTable, CustAccount));
    queryBuildRange.value(salesTableRecord.CustAccount);

    queryBuildRange = qbds.addRange(fieldNum(SalesTable, SalesId));
    queryBuildRange.value(salesTableRecord.SalesId);
    queryRun = new QueryRun(query);

    jobCardReport = new MenuFunction(menuitemOutputStr(TestCard), MenuItemType::Output);
    args.parm(strFmt("TestCard_DynamicParameter=%1, %2", salesTableRecord.CustAccount, salesTableRecord.SalesId));
    jobCardReport.run(args);        

    super();
}

最后 3 行代码允许我使用“选择”按钮从查询对话框传递手动选择。但在随后的运行中,无论哪个记录显示在 SalesTable 表单中,手动选择仍然存在。

【问题讨论】:

    标签: reporting-services axapta microsoft-dynamics dynamics-ax-2012 dynamics-ax-2012-r2


    【解决方案1】:

    我认为适合您情况的最佳方法是使用 SrsReportRunController 类。在类内部,有一个方法,名称:prePromptModifyContract。此方法可以包含来自 SalesTable 表单的参数,将其传递给 Report Contract 类并在 Data Provider 类中处理查询。

    这里有一些参考:

    我希望这个解释和参考可以给你不同的观点。

    【讨论】:

    • 感谢您的参考,我也能够使用 SrsReportRun 类完成我需要的工作。我会记住这一点。
    【解决方案2】:

    能否提供代码示例?

    我假设现在您使用 query(),但为了获得运行时过滤器值,您应该使用 queryRun()。两者都可以从数据源获得。

    【讨论】:

    • 感谢您的回复,我使用自定义按钮的单击方法中使用的内容编辑了最初的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 2020-07-28
    相关资源
    最近更新 更多