OpenUI 语句

OpenUI 语句用于处理因为用户操作而发生的所有事件。OpenUI 打开并对控制台显示语句的目标。

OpenUI 语句的语法如下所示:


OpenUI 语句
OpenAttributes
OpenAttributes 定义 OpenUI 语句的属性。您可以定义多个属性并且必须用逗号来隔开它们。属性被定义为
property = value
,就像以下示例中所示:
isConstruct = yes

表 1 定义 OpenUI 初始属性。

表 1. OpenUI 属性
特性 类型/缺省值 数据类型 描述
allowAppend boolean; yes ArrayDictionary 如果为 yes,则表示允许用户通过将游标移至数组之后的第一行以在数组结尾输入数据。
allowDelete boolean; yes ArrayDictionary 如果为 yes,则表示允许用户使用 KEY_DELETE 键从 arrayDictionary 删除数据。
allowInsert boolean; yes ArrayDictionary 如果为 yes,则表示允许用户使用 KEY_INSERT 键将数据插入到 arrayDictionary 中。
bindingByName boolean; no

表单

Dictionary

ConsoleField

指定如何将表单字段元素与绑定子句中列示的项相匹配。
  • 如果为 yes,则表示这些值是按名称绑定的。
  • 如果为 no,则表示这些值是按位置绑定的。
color colorKind; defaultColor   要应用的颜色值。
currentArrayCount integer ArrayDictionary arrayDictionary 中的条目数是固定的,不能更改。此设置向下一个 OpenUI 语句指示要显示在屏幕数组(arrayDictionary)中的 DATA 数组中有多少行。
displayOnly boolean; yes

表单

Dictionary

ArrayDictionary

ConsoleField

如果为 yes,则表示所有数据仅供显示;最终用户不能修改该信息。
helpMsgKey string; null   从资源文件中查找帮助文本的键。如果属性 helphelpMsgKey 都存在,则 help 优先。
help string; null   KEY_HELP 键时要显示给用户的文本。如果属性 helphelpMsgKey 都存在,则 help 优先。
highlight highLightKind[]; defaultHighlight   要应用的突出显示值。
intensity intensityKind; defaultIntensity   要应用的色饱和度值。
isConstruct boolean; no

表单

Dictionary

ConsoleField

如果为 yes,则表示运行时验证规则将遵循 ConstructQuery() 所需的语法。
maxArrayCount integer ArrayDictionary arrayDictionary 中的条目数是固定的,不能更改。此设置向下一个 OpenUI 语句指示对于下一个 OpenUI 语句该数据数组可包含的记录数目。一旦达到最大限制,用户就不能再插入任何行。
setInitial boolean; no

表单

Dictionary

ArrayDictionary

ConsoleField

如果为 yes,则表示将显示字段最初定义的值,直到最终用户修改字段值为止。
OpenableElements
下列元素可使用 OpenUI 打开:
  • WindowInstance
  • FormElements (ConsoleForm object, ConsoleFields)
  • MenuInstance
  • PromptInstance
注: 除了上面列示的元素之外,OpenUI 还可以接受一个或多个用逗号隔开的字段。

OpenUI 一次只能接受一个窗口、ConsoleForm、菜单或提示。

BindClause
此子句指示元素(如 FormElements)是否绑定了数据(如姓、名和地址)。如果元素已绑定数据,则在打开 activeForm 时,将根据数据属性访问并定义数据的格式。可使用 consoleFieldbind 属性预定义数据绑定,或者可使用 BindClause 子句动态设置数据绑定。BindClause 子句优先于任何预定义数据设置。此外,仅当打开表单元素或提示对象时,bind 子句才有效,在 isConstruct=yes 时不需要也不使用该子句。在将 bind 与表单元素配合使用时,表单字段和程序变量的数目必须匹配。
OnEventBlock
您可以选择为元素定义一个或多个事件处理程序,如 after_insertbefore_deleteon_key

以下示例打开当前活动表单以读取局部变量并将其赋给每个 ConsoleField。“city”控制台字段的 after_field 事件将填充州和邮政编码值。
		openUI {bindingByName=yes}
			activeForm
			bind firstName, lastName, address, city, state, zipCode
			OnEvent(AFTER_FIELD:"city")
				if (city == "Lenexa")
					state = "KS";
					zipCode = 66062;
				end
		end
表 2. 按 OpenUI 语句上的数据类型发生的事件
数据类型 事件种类
除窗口之外的所有 OpenUI

AFTER_OPENUI

BEFORE_OPENUI

ON_KEY

ArrayDictionary

( displayOnly = no 时)

AFTER_DELETE

AFTER_INSERT

AFTER_ROW

BEFORE_DELETE

BEFORE_INSERT

BEFORE_ROW

ConsoleField

AFTER_FIELD

BEFORE_FIELD

菜单

MENU_ACTION

窗口

关闭 OpenUI 语句

在终止 OpenUI 语句时,下列陈述适用:
此外,对于 OpenUI 语句,必须遵循下列规则:

相关概念
控制台用户界面

相关参考
控制台库
ConsoleUI 记录类型
UNIX 的 ConsoleUI 屏幕选项
ConsoleUI 的枚举
包 egl.ui.console
EGL 源格式的文本用户界面程序

相关任务
创建控制台用户界面

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.