DFHMDI

DFHMDI 宏在先前 DFHMSD 宏定义的映射集中定义映射。

DFHMDI 最小 BMS

读取语法图跳过可视语法图映射(map)DFHMDI ,SIZE=(线路 (line),)TERM=类型CTRL=(,PRINT长度FREEKBALARMFRSET)EXTATT=NOMAPONLYYESCOLOR=DEFAULT颜色CURSLOC=NOYESHILIGHT=OFFBLINKREVERSEUNDERLINE ,PS=BASE普西德VALIDN=,MUSTFILLMUSTENTERTRIGGERUSEREXITCOLUMN=数目LINE=数目FIELDS=NO,MAPATTS=(attr),DSATTS=(attr)OUTLINE=BOX(,LEFTRIGHTOVERUNDER)SOSI=NOYESTRANSP=YESNOJUSTIFY=BOTTOM

DFHMDI 标准 BMS

读取语法图跳过可视语法图,PARTN=(名称),ACTIVATEOBFMT=YESNODATA=FIELDBLOCKTIOAPFX=NOYESFLDSEP=字符型X'十六进制字符'

DFHMDI 完整 BMS

读取语法图跳过可视语法图,COLUMN=SAME数目NEXTLINE=NEXT数目SAMEJUSTIFY=(LEFTRIGHT,FIRSTLAST)HEADER=YESTRAILER=YES

映射包含零个或多个字段。

"map" 是映射的名称 (1-7 个字符)。

操作数

COLOR
指示单个颜色或映射集的缺省颜色 (如果适用)。 这将被 DFHMDF 宏的 COLOR 操作数覆盖。

有效颜色为蓝,红,粉,绿,绿,黄,中性。

除非终端支持颜色 (如 RDO TYPETERM 定义选项 COLOR (YES) 所指示) ,否则将忽略 COLOR 操作数。

指定要放置地图的行中的列,即,它建立左或右地图页边距。 DFHMDI 宏的对齐操作数控制映射和页边距选择以及列计数是从页面左侧还是右侧。 指定的地图页边距和页面页边距之间的列不可用于在页面上对地图中包含的任何行进行后续使用。
NUMBER
是左页边距或右页边距中要建立左图边距或右图边距的列。
下一步
指示左侧或右侧地图页边距将放置在当前行的左侧或右侧的下一个可用列中。
SAME
指示将在与上次使用的指定了 COLUMN=number 的非头映射或非尾映射相同的列中建立左映射或右映射页边距。

对于输入操作,映射位于最左侧或最右侧,具体取决于是否指定了 JUSTIFY=LEFT 或 JUSTIFY=RIGHT。

Ctrl
定义 IBM® 3270 终端的特征。 在 SEND MAP 命令中使用任何控制选项都会覆盖 DFHMDI 宏中的所有控制选项,而这又会覆盖 DFHMSD 宏中的所有控制选项。
如果 CTRL 与累积 BMS 页面调度 (即,在 BMS SEND MAP 命令上使用 ACCUM 选项) 配合使用,那么必须在页的最后一个 (或唯一) 映射上指定该选项,除非它被 ALARM , FREEKB 等 SEND MAP 或累计 SEND CONTROL 命令上的选项覆盖。
PRINT
如果要启动打印机,那么必须指定; 如果省略,那么会将数据发送至打印机缓冲区,但不打印数据。 如果映射集与没有 "打印机适配器" 功能的 3270 显示一起使用,那么将忽略此操作数。
LENGTH
指示打印机上的行长度; 长度可以指定为 L40, L64, L80或 HONEOM。 L40, L64和 L80 在 40 , 64 或 80 个字符后强制换行。 HONEOM 导致使用缺省打印机行长度。 如果省略此选项,那么 BMS 将从 TCT 页面大小设置行长度。
免费 KB
使键盘在写入映射后解锁。 如果未指定 FREEKB ,那么键盘将保持锁定状态; 将禁止来自键盘的数据输入,直到更改此状态为止。
ALARM
激活 3270 可听警报。 对于 non-3270 VTAM ® 终端,它在 FMH 中设置警报标志。 (此功能不受交互式和批处理逻辑单元支持。)
FRSET
指定在将映射数据写入缓冲区之前,将当前在 3270 缓冲区中的所有字段的已修改数据标记 (MDT) 重置为未修改的条件 (即,字段重置)。 这允许带有 ATTRB 操作数的 DFHMDF 宏控制为响应 BMS 命令而写入或重写的任何字段的最终状态。
注: 不能在同一个映射集中的 DFHMDI 和 DFHMSD 宏中指定 CTRL。
库尔斯洛克
指示对于在 3270 终端上使用此映射的所有 RECEIVE MAP 操作, BMS 在应用程序数据结构元素中为光标所在的字段设置标志。

该标志可能由 DFHBMCUR 测试 (请参阅 BMS 相关常量中的副本 DFHBMSCA)。

要测试标志 (COBOL 示例):
(DFHBMSCA)
...
02  DFHBMEOF   PIC X VALUE X'80'.
02  DFHBMCUR   PIC X VALUE X'02'.
02  DFHBMEC    PIC X VALUE X'82'.
02  DFHBMFLG   PIC X.
  88  DFHERASE       VALUES ARE X'80', X'82'.
  88  DFHCURSR       VALUES ARE X'02', X'82'.
MOVE FLD1F TO DFHBMFLG.
IF DFHERASE THEN ...
            ELSE ...
IF DFHCURSR THEN ...
            ELSE ...
注:
  1. 如果为 MAP 定义指定 CURSLOC=YES ,并且应用程序数据结构的任何字段都没有数据,但光标位于应用程序数据结构已知的字段内,那么 BMS 会为相应字段设置光标标志,但应用程序数据结构中所有字段的数据都为空,并且不会出现 MAPFAIL 条件。 除非是 RECEIVE DATA DATA FROM 请求,否则未映射的数据流对应用程序不可用。
  2. DFHMDI 中的有效 CURSLOC 定义会覆盖 DFHMSD 中的定义。

数据
指定数据的格式。
字段
指定将数据作为连续字段传递,每个字段具有以下格式:

"LL" 是两个字节,指定数据长度作为来自终端的输入 (在输出处理中忽略)。 "A" 是一个字节,程序员可以将用于处理此数据的映射中指定的属性放置到该字节中 (请参阅 BMS 相关常量中的副本 DFHBMSCA)。

BLOCK
指定将数据作为以下格式的连续流传递:

此流将作为用于处理数据的映射中指定的长度的线段进行处理。 数据采用在终端上显示的格式; 即,它包含数据字段和与输出上的字段之间要出现的任何空格对应的穿插空格。 如果指定 DATA=BLOCK ,那么不能使用 DSATTS=YES。

块数据 中进一步讨论了块数据。

DSATTS
指定要包含在符号描述映射中的属性类型。 这些类型可以是下列其中一种或多种 :COLOR , HILIGHT ,廓形, PS , SOSI , TRANSP 和 VALIDN。 DSATTS 中包含的任何类型也应包含在 MAPATTS 中。
出口
支持此操作数以与先前发行版兼容。 可以单独定义每个扩展属性。 对于新映射,必须改为使用操作数 DSATTS 和 MAPATTS。
等同于不指定 DSATTS 操作数或 MAPATTS 操作数。
YES
等同于:
MAPATTS=(COLOR,HILIGHT,PS,VALIDN)
DSATTS=(COLOR,HILIGHT,PS,VALIDN)
MAPONLY
等同于:
MAPATTS=(COLOR,HILIGHT,PS,VALIDN)
FIELDS
指定映射是否包含字段。 如果指定 FIELDS=NO ,那么将创建一个空映射,用于在 BMS 的屏幕视图中定义 "孔"。 BMS 在通过发送空映射创建该洞后,无法更改该洞的内容。
FLDSEP
指定来自 non-3270 设备的输入的字段分隔符序列 (1-4 个字符)。 可以将来自 non-3270 设备的输入作为具有字段分隔符序列定界字段的单个数据字符串输入。 字段分隔符之间的数据将按顺序移至映射中的输入字段。
HEADER
允许在不终止 OVERFLOW 条件的情况下在页面构建期间使用映射。 可以为映射集中的多个映射指定此操作数。
HILIGHT
指定映射集中所有映射中所有字段的缺省突出显示属性。 这将被 DFHMDF 的 HILIGHT 操作数覆盖。
OFF
是缺省值,指示不使用突出显示。
闪烁
指定字段必须闪烁。
向后
指定在反向视频中显示字符或字段,例如,在 3278 上,在绿色背景上显示黑色字符。
下划线
指定字段带有下划线。

除非终端支持突出显示 (如 RDO TYPETERM 定义上的 HILIGHT (YES) 所指示) ,否则将忽略 HILIGHT 操作数。

justify
指定映射在页面上的位置。
LEFT
指定映射将从指定行上的左页边距开始定位到指定列。
RIGHT
指定要从指定行的右页边距开始将映射定位到指定列。
第一个
指定将地图定位为新页面上的第一个地图。 来自先前 BMS 命令的任何部分格式化的页面都被认为是完整的。 只能为每页一个映射指定此操作数。
最后一个
指示地图将位于当前页面的底部。 可以为要放在一页上的多个映射指定此操作数。 但是,除了为其指定的第一个映射以外的映射必须能够水平定位,而不需要使用更多的线。
底部
for a SEND MAP ACCUM command has the same effect as LAST. 对于 SEND MAP 命令 (不含 ACCUM) 和 RECEIVE MAP 命令,如果在 SIZE 操作数中指定了映射中的行数,那么 JUSTIFY=BOTTOM 将映射放在屏幕底部。 未考虑映射集中的尾部映射。 JUSTIFY=BOTTOM 等同于指定
LINE=(screendepth-mapdepth+1)

在地图定义上,但它允许将同一地图用于不同的屏幕大小。 如果未同时指定行数,那么将忽略 JUSTIFY=BOTTOM。 如果同时指定了 JUSTIFY=BOTTOM 和 LINE ,那么将忽略 LINE 中指定的值。

LEFT 和 RIGHT 是互斥的, FIRST 和 LAST 也是互斥的。 如果未指定 FIRST 或 LAST ,那么将在映射定义和当前映射操作的其他参数所确定的下一个可用位置映射数据。 除非在 SEND MAP 命令上指定 ACCUM ,否则将忽略 FIRST 或 LAST; 否则在每个页面上仅放置一个映射。

注: 如果某个字段由输出映射初始化或包含来自任何其他源的数据,那么键入为输入的数据将仅覆盖现有数据的等效长度; 剩余的现有数据将保留在该字段中,并且可能导致对新数据的意外解释。
线路
指定要在其中格式化映射数据的页面上的起始行。
NUMBER
是 1-240 范围内的值,指定起始行号。 在行和列上映射已进行格式化以响应先前 BMS 命令的数据的请求会导致将当前页面视为完成。 新数据将在新页面上的请求行和列处进行格式化。
下一步
指定要在下一个可用的空行上开始对数据进行格式化。 如果在 DFHMDI 宏中指定了 LINE=NEXT ,那么对于输入操作将忽略该 LINE=NEXT ,并假定为 LINE=1 。
SAME
指定数据格式化将在与用于先前 BMS 命令的行相同的行上开始。 如果指定了 COLUMN=NEXT ,那么将对输入操作忽略该值,并假定为 COLUMN=1 。 如果数据不适合同一行,那么会将其放在下一个可用的空行上。
MAPATTS
指定要包含在物理映射中的属性类型。 这些类型可以是下列其中一种或多种 :COLOR , HILIGHT ,廓形, PS , SOSI , TRANSP 和 VALIDN。 此列表必须包含要为映射 (DFHMDF 宏) 中的各个字段指定的所有属性类型。

在可能的情况下,将从 DFHMDI 和 DFHMSD 宏中已指定的操作数推断这些值。 例如,如果指定了 COLOR=BLUE ,那么将采用 MAPATTS=COLOR。

OBFMT
指定是否使用舷外格式化。 此操作数仅可用于 3650 个逻辑单元,或用于运行 DPS 发行版 2 并定义为 CICS® 的 8100 系列处理器 (作为 LUTYPE2 逻辑单元)。 有关更多信息,请参阅 外部格式化
OBFMT 操作数覆盖 DFHMSD 宏上的 OBFMT 操作数。
YES
指定此映射定义可以在外部格式中使用。
指定不能在舷外格式化中使用此映射定义。
OUTLINE
允许将行包括在字段的上方,下方,左侧或右侧。 您可以在任何组合中使用这些行来构造围绕字段或字段组的框。
PARTN
指定要与此映射集中的映射关联的缺省分区。 如果指定了 ACTIVATE 选项,那么在将此映射集中的映射输出到支持分区的终端时,也会激活指定的分区。

此选项覆盖 DFHMSD 宏的 PARTN 选项,并被 SEND MAP 命令上的任何 OUTPARTN 或 ACTPARTN 选项或 RECEIVE MAP 命令上的 INPARTN 选项覆盖。

如果目标终端不支持分区,或者没有与事务关联的分区集,那么将忽略 PARTN 选项。

PS
指定将使用已编程的符号。 这将覆盖 DFHMSD 宏的 PS 操作数,并被 DFHMDF 宏的 PS 操作数覆盖。
BASE
指定要使用基本符号集。
普西德
指定单个 EBCDIC 字符或格式为 X'nn '的十六进制代码,用于标识要使用的编程符号集。

除非终端支持程序化符号 (如 RDO TYPETERM 定义上的进步符号 (YES) 所指示) ,否则将忽略 PS 操作数。

SIZE
指定映射的大小。
线路 (line)
是 1-240 范围内的值,将地图的深度指定为行数。
是 1-240 范围内的值,将映射的宽度指定为列数。
在下列情况下,此操作数是必需的:
  • 使用与 POS 操作数相关联的 DFHMDF 宏。
  • 映射将在带有 ACCUM 选项的 SEND MAP 命令中引用。
  • 在 RECEIVE MAP 命令中引用来自 3270 终端以外的输入数据时,将使用该映射。
  • 该映射将用于通过 CICS 3270 Web 网桥发送或接收数据。
SOSI
指示该字段可以同时包含 EBCDIC 和 DBCS 数据。 EBCDIC 字段中的 DBCS 子字段由 SO (移出) 和 SI (移入) 字符定界。 SO 和 SI 都占据单个屏幕位置 (通常显示为空白)。 它们可以包含在输出上的任何非 DBCS 字段中 (如果它们正确配对)。 如果终端用户已在字段中存在,那么终端用户可以将其入站传输,但仅当该字段具有 SOSI 属性时,才能将其添加到 EBCDIC 字段。
TERM
为了与先前发行版兼容而保留。
TIOAPFX
指定 BMS 是否应该在符号描述映射中包含填充符以允许未使用的 TIOA 前缀。 此操作数覆盖为 DFHMSD 宏指定或缺省的 TIOAPFX 操作数。 如果未指定,那么将使用 DFHMSD 宏上指定的值或缺省值。
YES
指定应该将填充符包括在符号描述映射中。 始终对命令级应用程序使用 TIOAPFX=YES。
指定不包含填充符。
尾部
允许在不终止 OVERFLOW 条件的情况下在页面构建期间使用映射。 可以为映射集中的多个映射指定此操作数。 如果未在溢出环境中使用拖车映射,那么在映射拖车映射时不会保留通常为溢出拖车映射保留的空间。
运输
确定字母数字字段的背景是透明还是不透明,即,是否在字符之间显示底层 (图形) 表示空间。
瓦列尼
指定:
  • 将在 8775 终端上使用验证
  • 此字段可由 BMS 全局用户出口处理
这将被 DFHMDF 宏的 VALIDN 操作数覆盖,并覆盖 DFHMSD 宏的 VALIDN 操作数。
MUSTFILL
指定必须使用数据完全填充字段。 尝试在光标被填满之前从该字段中移动光标,或从不完整的字段中传输数据,会引发处禁止 INPUT 条件。
MUSTENTER
指定必须在字段中输入数据,尽管不需要填充数据。 尝试从空字段中移动光标会引发 NOT INPUT 条件。
触发/触发器 (trigger)
指定此字段是触发器字段。 在 触发器字段支持中讨论了触发器字段。
用户 XIT
指定此字段将由 BMS 全局用户出口 XBMIN 和 XBMOUT 处理,如果在启用相应出口时在 3270 数据流中接收或传输此字段。

MUSTFILL , MUSTENTER 和 TRIGGER 规范仅对支持字段验证扩展属性的终端有效,否则将被忽略。 USEREXIT 规范适用于所有 3270 设备。

注: USEREXIT 规范与 3270 数据流体系结构中定义的字段验证扩展属性完全未连接。