
本文详细介绍了在maximo中,如何通过巧妙配置自定义表格控件的“关系”属性,实现在数据保存后自动清空表格显示内容。与“start empty”属性仅在初始加载时生效不同,此方法通过将关系查询条件设置为永假,确保每次数据保存并刷新后,表格都能恢复到无记录的初始状态,同时不影响新数据的录入与保存。
理解Maximo自定义表格控件的显示行为
在Maximo应用程序中,自定义表格控件是用于显示和管理相关业务数据的重要组件。在某些业务场景下,用户可能希望在完成数据录入并保存后,表格控件能够自动清空,以便继续添加新的记录,而无需再次看到已保存的数据。
Maximo表格控件提供了一个名为“Start Empty”的属性,当此属性设置为true时,表格在应用程序首次加载时确实会显示为空。然而,这个属性仅在初始加载时生效。一旦用户向表格中添加了数据并执行保存操作,Maximo通常会根据表格控件所关联的关系(Relationship)重新加载数据。此时,“Start Empty”属性不再发挥作用,已保存的数据会再次显示在表格中,这与我们期望的“保存后清空”行为相悖。
通过修改关系属性实现保存后清空
要实现在Maximo自定义表格控件中,数据保存后自动清空显示内容的需求,核心策略在于利用其“关系”(Relationship)属性中的where clause(查询条件)。通过将此where clause设置为一个逻辑上永远为假的条件,我们可以有效地阻止Maximo在任何数据刷新时通过该关系找到并显示任何数据。
实现步骤:
定位自定义表格控件: 首先,通过Maximo的应用程序设计器(Application Designer),打开包含目标自定义表格控件的应用程序。在设计器界面中,选中需要配置的自定义表格控件。
访问关系属性: 在控件属性窗口中,切换到“高级”(Advanced)选项卡。在此选项卡下,您将找到该表格控件的“关系”(Relationship)属性。这个属性定义了表格控件从哪个Maximo业务对象(MBO)以及通过何种条件获取数据。
-
修改Where Clause: 在“关系”属性的配置界面中,找到其where clause字段。将该字段的值修改为一个在逻辑上永远不会成立的条件。一个简单且常用的例子是:
3 = 4
这个条件3 = 4显然是假的。无论底层数据库中存在任何数据,当Maximo尝试使用这个where clause进行查询时,都将返回一个空的结果集。
-
保存并测试: 完成where clause的修改后,保存您在应用程序设计器中的更改。随后,重新启动Maximo应用程序以使更改生效。
- 当应用程序加载时,您的自定义表格控件将显示为空,因为where clause阻止了任何现有数据的加载。
- 您可以像往常一样向表格中添加新的行和数据。
- 执行保存操作后,Maximo会将新数据写入数据库。
- 保存完成后,Maximo会根据表格控件的关系重新刷新数据。由于where clause仍然是3 = 4,它将再次无法找到任何数据,因此表格将恢复到空的状态。
工作原理分析
此方法能够有效实现“保存后清空”的原理基于Maximo数据加载和刷新的核心机制:
- 数据关联与过滤: Maximo表格控件的数据显示严格依赖于其配置的“关系”属性。该关系不仅指定了数据源MBO,更重要的是,其where clause作为SQL查询的WHERE子句,负责精确过滤要显示的数据。
- 永假条件的效用: 当where clause被设置为3 = 4这样的永假条件时,任何尝试通过此关系获取数据的查询都将返回空结果。这意味着,无论数据库中实际存储了什么数据,表格控件都将“看不到”它们。
- 保存后的刷新行为: Maximo在数据保存后通常会触发UI的数据刷新机制,以确保界面显示的数据与数据库中的最新状态保持同步。在这个刷新过程中,表格控件会再次使用其预定义的关系和where clause来尝试获取并显示数据。由于where clause始终为假,即使新数据已成功保存到数据库,表格控件也无法在刷新后重新加载并显示这些数据,从而实现了“保存后清空”的视觉效果。
注意事项
- 数据可见性限制: 采用此方法后,通过该自定义表格控件将无法直接查看已保存的历史数据。用户如果需要访问这些数据,必须通过其他途径,例如通过主记录的查找功能、相关的报告或另一个专门用于查看历史数据的表格控件。
- 不影响数据存储: 此方法仅影响表格控件的数据显示行为,不会阻止新数据被成功保存到数据库中。用户仍然可以正常添加新行并录入数据。
- 确保关系正确性: 在修改where clause时,务必确认您正在操作的是目标自定义表格控件的正确关系,并确保此修改不会意外影响到应用程序中依赖该关系的其它功能或业务逻辑。
- 替代方案考虑: 如果您的需求是既能显示历史数据,又能在保存后清空部分输入字段,那么可能需要考虑其他更复杂的实现方案,例如使用自动化脚本(Automation Script)在保存后清空特定的字段值,或者通过更精细的UI逻辑来控制字段的显示与清空。然而,对于“保存后完全清空表格显示”这一特定需求,本文介绍的方法是最直接且有效的。
总结
通过将Maximo自定义表格控件的关系属性中的where clause设置为一个永假条件(例如3 = 4),可以巧妙地实现数据保存后自动清空表格显示内容的需求。这种方法充分利用了Maximo数据加载机制的特性,在不影响数据实际存储的前提下,提供了一个简洁而强大的UI行为控制方案。在实施过程中,理解其对数据可见性的影响至关重要,并确保其与您的业务流程和用户体验设计保持一致。










