精通COBOL--16.6.3 MAP的应用
来源:互联网 发布:软件项目风险有哪些 编辑:程序博客网 时间:2024/05/19 13:14
在COBOL中对MAP的应用,主要可分为发送MAP和接受MAP两种情况。其中发送MAP就是将MAP在CICS屏幕中显示出来。发送MAP时可选择只发送物理MAP还是只发送符号MAP。其中只发送物理MAP的代码如下:
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
MAPONLY /*此处指定只发送物理MAP*/
END-EXEC.
只发送符号MAP的代码如下:
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
DATAONLY /*此处指定只发送符号MAP*/
END-EXEC.
如果不指定“MAPONLY”和“DATAONLY”选项,CICS将把物理MAP和符号MAP合并发送。同时,在实际发送MAP中,通常还会指定一些其他选项,如清屏、释放存储空间、指定光标位置等。以下为通常对整个MAP进行发送的代码:
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
CURSOR(720)
ERASE
FREEKB
END-EXEC
对于MAP的接受,主要是用于接受用户在MAP中输入的数据。这些数据实际上存放在符号MAP的变量中。以下为接受MAP的代码,其中涉及到对接受时的异常捕获:
EXEC CICS RECEIVE MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
RESP(RCVERR)
END-EXEC
下面程序综合应用了MAP的发送和接受。当用户在MAP中输入完成数据时,该数据将高亮显示,同时输出相应提示信息。需要注意的是,此处使用了伪会话,但作为一个单独的程序,并没利用到参数传递的功能。假设该程序对应的交易为“TRMP”,则程序代码如下:
IDENTIFICATION DIVISION.
PROGRAM-ID. MAPPGM.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 RCVERR PIC S9(8) COMP.
01 COM-FLDS.
05 T-CODE PIC X(10).
05 T-NAME PIC X(20).
COPY DFHAID.
COPY DFHBMSCA.
COPY MAPSETA.
LINKAGE SECTION.
01 DFHCOMMAREA.
05 C-CODE PIC X(10).
05 C-NAME PIC X(20).
*
PROCEDURE DIVISION.
IF EIBCALEN = 0
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
MAPONLY
ERASE
FREEKB
END-EXEC
EXEC CICS RETURN TRANSID(‘TRMP’)
COMMAREA(COM-FLDS)
LENGTH(30)
END-EXEC.
*
IF EIBAID = DFHCLEAR
MOVE LOW-VALUES TO TESTMAO
MOVE ‘CLEAR KEY PRESSED: SESSION ENDED’ TO MSGO
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
DATAONLY
FREEKB
END-EXEC
EXEC CICS RETURN END-EXEC.
*
IF EIBAID = DFHENTER
EXEC CICS RECEIVE MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
RESP(RCVERR)
END-EXEC
IF RCVERR = DFHRESP(MAPFAIL)
PERFORM 100-ERROR-ROUTINE.
MOVE CODEI TO CODEO
MOVE NAMEI TO NAMEO
MOVE DFHBMBRY TO CODEA
MOVE DFHBMBRY TO NAMEA
MOVE ‘SESSION COMPLETED!’ TO MSGO
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
DATAONLY
FREEKB
END-EXEC
EXEC CICS RETURN END-EXEC.
GOBACK.
*
100-ERROR-ROUTINE.
MOVE ‘PLS ENTER DATA’ TO MSGO
EXEC CICS SEND MAP(‘TESTMA’)
MAPSET(‘MAPSETA’)
DATAONLY
FREEKB
END-EXEC
EXEC CICS RETURN TRANSID(‘TRMP’)
COMMAREA(COM-FLDS)
LENGTH(30)
END-EXEC.
- 精通COBOL--16.6.3 MAP的应用
- 精通COBOL--16.6.1 MAP的基本概念
- 精通COBOL--16.6.2 MAP的创建
- 精通COBOL--16.6 CICS中的MAP
- 精通cobol--9.4.3 PERFORM VARYING语句的一些灵活应用
- 精通cobol--9.1.3 表的基本用途
- 精通cobol--9.2.3 下标的格式要求
- 精通cobol--9.11.3 索引的特点
- 精通COBOL--11.2.3 子程序的终止方式
- 精通COBOL--16.1.3 CICS的基本操作
- 精通cobol--9.15.4 变长表应用举例
- 精通cobol--9.14.2 SEARCH ALL语句的实际应用
- 精通COBOL--16.3 CICS在COBOL中的基本应用
- 精通cobol--9.1 表的简介
- 精通cobol--9.1.2 表的基本概念
- 精通cobol--9.2.2 下标的作用
- 精通cobol--9.3.1 OCCURS语句的使用方法
- 精通cobol--9.5 表的初始化
- 精通COBOL--16.6.1 MAP的基本概念
- 内存分配相关,new , GlobalAlloc, VirtualAlloc, HeapAlloc
- 感悟世间缘为何物
- 精通COBOL--16.6.2 MAP的创建
- ASP的工作原理和运行环境
- 精通COBOL--16.6.3 MAP的应用
- How To Query Cross-Site Lists In DataFormWebPart
- 数据库命名规范
- 精通COBOL--16.7 CICS对于文件的操作
- Windows XP Service Pack 3 (Windows XP SP3)简体中文版本正式发布(附下载地址)
- 对JAVA反射机制的认识
- 巧用三条命令 使你的电脑网络更安全
- C语言笔试题续
- 配制 eclipse 中的 javadoc