设置窗口计算
设置动态窗口分为两个阶段:
- 创建能够根据“对象设计器”中的属性返回“窗口函数”的计算。
- 使用“窗口管理器”设计窗口以运行计算。
下面的两个程序演示了如何在已经填写紧急度字段的情况下将“事件”窗口上的影响字段设为必填。您可以对其他“窗口函数”使用类似的方法。稍后将给出其他示例计算。
要创建计算:
- 启动对象设计器,打开窗口的对象。
在我们的示例中,这是事件管理/事件。 - 新建最大长度设置为 -1 的字符串属性来存储计算。
我们建议计算属性的名称以 DynamicWindow 开头,以便更轻松地在设计器中进行查找。
- 将新属性的计算类型设置为窗口计算。
出现“编辑公式”对话框。 - 清除自动检测依赖性复选框。
我们将自行设置依赖性。 - 创建将值设置为 ":SetMandatory(attribute, True)" 的计算。
在我们的示例中,要使影响属性成为必填,可键入以下计算:
import System
static def GetAttributeValue(Incident):
Value = ":SetMandatory(_Impact, True);"
return Value
该示例计算并非您将在实际系统中使用的计算。尽管如果紧急度字段已经填写将使影响字段成为必填,但如果稍后再次更改紧急度字段,却不会重置该字段。此示例将仅作为其中的一部分,来展示设置动态窗口的程序。稍后将介绍更完整的计算。
上面示例中以 Value 和 return 开头的这些行使用单格缩进。如果您从此处复制示例,请确保将它们粘贴到计算编辑器中时保持正确的缩进。
:SetMandatory 仅使用属性的名称。请勿包含对象名称(例如,不要使用 Incident._Impact)。请记住,如果属性不是系统属性,将以下划线开头(例如 _Impact)。
您可以使用分号分隔多个目标属性从而对它们进行更新。例如:
Value = “:SetMandatory(attribute1,True);:SetMandatory(attribute2,False);”
- 拖动触发待运行计算的属性,将其从属性树移动到依赖性窗格。
对于我们的示例,请拖动事件紧急度。请注意属性的内部数据库名称 – _IncidentUrgency – 将显示在“依赖性”窗格中。 - 单击确定。
关闭“编辑公式”对话框。 - 单击 。
随即保存对对象所做的更改。
现在您已经创建了将字段设置为必填的计算,然后可以设置窗口以使用该计算。
要设置窗口:
- 在窗口管理器中,打开所需窗口。
在我们的示例中,这是“事件”窗口。 - 将您在上面所创建的计算属性添加到窗口。
此属性必须添加到窗口,但可以通过将 ShowOnWindow 属性设置为假来隐藏它。我们建议您在设计和测试计算时,将 ShowOnWindow 设置为真。
- 选择要用于触发计算的控件。
这是在计算中被添加到依赖性窗格的属性。在我们的示例中,这是紧急度。 - 在控件的属性网格中,将变更时计算设置为真。
- 保存对窗口所做的更改。
当用户在“事件”窗口上选择紧急度时,将触发计算,并且所计算属性的值将设置为 :SetMandatory(_Impact, True);。这随后可以使影响字段成为必填字段。