【问题标题】:Maximo dialog box : values won't reset on cancel / dialogcancelMaximo 对话框:取消/对话框取消时不会重置值
【发布时间】:2020-06-04 10:30:45
【问题描述】:

我在 Maximo 应用程序中创建了一个自定义操作,该操作会打开一个对话框,用户可以在其中勾选复选框以选择是否在应用程序视图中显示选项卡。

如果在对话框中选中了一个复选框,则属性的值设置为 1 并显示选项卡。取消选择时,该值重置为 0,并且选项卡被隐藏。

取消按钮会在我的自定义对话框中触发“dialogcancel”mxevent,但是当我选择一个复选框然后单击取消按钮时,该值不会重置为 0,并且会显示应该隐藏的选项卡。

这是我的 xml 示例:

<dialog datasrc="MAINRECORD" id="showrbean" label="Display tabs" savemode="ONLOADUNLOAD">
   <checkbox dataattribute="SHOWTAB_1" id="id_checkbox_SHOWTAB_1" label="Tab 1"/>
   <checkbox dataattribute="SHOWTAB_2" id="id_checkbox_SHOWTAB_2" label="Tab 2"/>
   <buttongroup id="showtabs_bookmarks_2">
      <pushbutton default="true" id="showtabs_1" label="Update" mxevent="updateTabs"/>
      <pushbutton default="true" id="showtabs_2" label="Cancel" mxevent="dialogcancel"/>
   </buttongroup>
</dialog>

dialogcancel 事件似乎不起作用,如何在取消时重置我的值?

谢谢

【问题讨论】:

    标签: dialog maximo cancel-button


    【解决方案1】:

    在另一个完美运行的论坛上收到了这个答案:

    啊好的,你所做的实际上是添加了显示属性 与应用正在查看的记录相同。

    因此,即使它在对话框中,您也正在编辑与您相同的记录 有在屏幕上,所以就像取消选中一个框而不加载一个 对话框,这样你就可以从记录中走出来,它会要求你 保存更改,您可以单击否,它会重置。

    如果您希望对话框具有取消选项,您可以 有两个选择。 #1 可能是最好的。

    1 - 创建一个新对象来存储 appname、tabname、display 和 让您的对话使用基于 应用名称。如果你这样做,那么它不会保存它,除非你点击 dialogok,因此您的更改不会在 dialogcancel 上持续存在。你也可以 然后在很多应用程序上使用它,你只需要添加 查看新对象的选项卡上的关系和条件。

    2 - 调用您自己的自动化脚本,而不是调用 dialogcancel 从将值设置为其先前值的该操作中,您 如果您使用自动脚本,可以使用内置的 _previous 后缀来执行此操作 变量 showtab1 = showtab1_previous 或者如果您不想使用 您可以使用 mbo.setValue("SHOWTAB_1", mbo.getDatabaseValue("SHOWTAB_1"))。一旦你设置了值,你可以 调用 service.closeDialog() 虽然这取决于你的 maximo 版本,我想7.6.0.8及以上可能

    我在我的 AppBean 类中尝试了选项 2:

    public int customDialogCancel() throws RemoteException, MXException {
    
            MboRemote currMbo = this.getMbo();
    
            currMbo.setValue("SHOWTAB_1", currMbo.getDatabaseValue("SHOWTAB_1").toString());
            currMbo.setValue("SHOWTAB_2", currMbo.getDatabaseValue("SHOWTAB_2").toString());
    
            this.clientSession.queueEvent(new WebClientEvent("dialogclose", this.app.getCurrentPageId(), null, this.clientSession));
            return EVENT_HANDLED;
        }
    

    【讨论】:

    • 这很好地描述了这种情况。我认为相关对象解决方案有一个警告,因为我认为它仍会将数据保存在该相关集上,除非您重置集或使用非持久集(这通常是首选解决方案)。此外,我认为通过自动化脚本与 UI 交互以关闭对话框需要 Maximo 7.6.*1*.x。如果您在 bean 类中,那么这不是问题。
    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多