axapta - 获取SSRS参数形式的对话框结果

标签 axapta dynamics-ax-2012 x++

从报告 Controller 对象中,我试图弄清楚如何确定用户是否已取消 SSRS 报告对话框屏幕或者他们是否单击了“确定”。

在 AX 中,我试图编写一个 Controller ,它将执行同一报表对象的两种不同设计,两者都将使用相同的约定(参数)。到目前为止我有这段代码:

cusController controller;
cusContract   contract;

//Run Format 1
controller = new cusController();
controller.initController(_args);
controller.parmReportName(ssrsReportStr(cusReport, Format1));
controller.parmShowDialog(true);
controller.startOperation();

//Run Format 2
contract = controller.parmReportContract().parmRdpContract() as cusContract;
contract.parmFormat(cusReportFormat::Format2);
controller = new cusController();

controller.initController(_args);
controller.parmReportName(ssrsReportStr(cusReport, Format2));
controller.parmShowDialog(false);
controller.parmReportContract().parmRdpContract(contract);
controller.startOperation();

当用户输入参数并单击“确定”时,上述效果完美。但是,当用户点击“取消”时,第一个报告会取消,但由于第二个报告具有 parmShowDialog(false),因此它不知道第一个报告已被取消。关于如何从第一份报告中捕获取消有什么想法吗?

最佳答案

根据您的 Controller 类扩展的内容,我认为您会执行类似的操作。我见过很多不同的方式:

    SysOperationStartResult         result;

    // Method 1
    result = controller.startOperation();
    if (result == SysOperationStartResult::Started ||
        result == SysOperationStartResult::AddedToBatchQueue)
    {
        info("They clicked ok");
    }

    // Method 2
    if (controller.prompt())
    {
        controller.run();
        info("They clicked ok");
    }

关于axapta - 获取SSRS参数形式的对话框结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35276515/

相关文章:

axapta - AX 2012R2 : Lookup query takes too long, 查找永远不会打开

axapta - 将文件名附加到 AX 2012 中的记录?

axapta - 在 AX 2012 中刷新整个表单?

axapta - Commerce Runtime 使用什么数据库?

axapta - 规避 AOT 查询中的有效时间状态

axapta - 如何强制查询范围?

axapta - 如何在AX 2012中设置单个尺寸值?

axapta - 如何打开包含所选记录的表单?

axapta - 如何在 Axe 2012 中重命名对话框按钮或创建新按钮?

axapta - 如何控制 ax 2009 中临时表上的重复行?