【问题标题】:Dialog passing a value to another dialog on button click对话框在按钮单击时将值传递给另一个对话框
【发布时间】:2012-04-12 14:23:33
【问题描述】:

我想知道这是否可能,并相信它与对话框有关。

我在运行报表的表单上有一个菜单项按钮,当单击此按钮时,会向用户显示一个对话框表单,该表单会复制表单中所选值的唯一 ID。

在底部有一个运行另一个报告的按钮,这只是不时运行并且必须运行该按钮,这部分工作正常。

我需要做的是,当单击运行第二个报告的按钮时,当前选定的值将传递给该报告。现在这不能以正常方式完成,因为值已经传递给第一个报告,所以我假设必须将值从第一个对话框复制到第二个?

如果可以,有人可以帮忙解决这个问题吗?

【问题讨论】:

    标签: reporting x++ axapta


    【解决方案1】:

    我假设该报告是 MorphX 报告(不是 SSRS),并且对话框位于扩展 RunBaseReport 的类中。

    为第一个和第二个报告中的每个对话框字段创建一个 parm 方法。

    然后在第二个报告的主报告中输入第一个报告的值,如下所示:

    static void main(Args args)
    {
        SecondReport report = new SecondReport();
        report.getLast(); // to fetch saved values
        // args.caller() must be set in FirstReport
        report.parmItemId(args.caller().parmItemId()); // ItemId to be passed around
        if (report.prompt())
            report.run();
    }
    

    【讨论】:

    • Jan,我的 Parm 部分正在工作,但是我似乎无法让主代码的第一行工作?我似乎无法在 classDeclaration 或 Main 方法中声明报告?
    • 你需要一个 RunBaseReport 类和一个公共的 new 方法来声明它。报表本身不能用作类型。
    • 您好 Jan,再次感谢您提供的所有帮助。我现在有一个班级运行第一个报告,这在表格之外运行,第二个班级在表格之外运行第二个报告,这工作正常。运行时的第一个类显示对话框,在该对话框上我有一个按钮来运行第二个报告,但是当它运行时,第二个对话框没有值。但是,如果我在第一个对话框上单击“确定”,我可以让第二个报告使用这些值运行,这真的很奇怪。这可以完成这项工作,但是我真的希望它在第一个对话框上运行 menuitembutton 吗?
    • 尚未设置第一类中的 runbase 变量。你应该在调用super()之前从按钮的clicked方法调用getFromDialog
    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多