歡迎您光臨本站 註冊首頁

附加的CICS命令和編程方法 .

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

附加的CICS命令和編程方法 .

附加的CICS命令和編程方法 .


1. IC游標指針

間接游標指針view plaincopy to clipboardprint?
01.ATTRIB=(NORM,UNPROT,IC)  
ATTRIB=(NORM,UNPROT,IC)如果有多個域含有IC,則最後一個域獲得游標

直接游標指針 / 基於長度後綴

view plaincopy to clipboardprint?
01.EXEC CICS  
02.    SEND MAP(<映射名>)  
03.         MAPSET(<包含這個映射的映射集名>)  
04.         FROM(<映射的主變數,輸出(O)型>)  
05.         CURSOR[(<位置>)]  
06.END-EXEC.  
EXEC CICS
    SEND MAP(<映射名>)
         MAPSET(<包含這個映射的映射集名>)
         FROM(<映射的主變數,輸出(O)型>)
         CURSOR[(<位置>)]
END-EXEC.位置是一個從屏幕左上角開始的數字,轉換方式:(行數-1)x80+(列數-1) = 位置值;

如果CURSOR後面不指定位置,則對長度域(L後綴)為-1設置游標,如果有多個,則取第一個。

2. SEND MAP造成的屏幕屬性變化表


  MAP ONLY DATA ONLY NONE
設置為任意非Low-value值 設置到物理映射(Physical)設置 設置到新的符號映射設置 設置到新的符號映射設置
設置為Low-value值 設置到物理映射設置 保持不變 (最經濟方案) 設置到物理映射設置
不變 設置到物理映射設置 保持不變 設置到物理映射設置


Attribute Byte和Flag Byte位置一樣,所以當用戶清除一個域的時候並因此發生了0x80被設置到Flag Byte上,需要重新將Attribute Byte設置為Low-value。

3. 接收數據的優化

保存所有屏幕輸入內容於通信區;在SEND MAP設置FRSET以關閉Modified Data Tags,這樣當用戶改了數據后MDT又會打開以說明修改位置; 收到后和通信區數據合併

4. 輸入欄


IBM規定輸入欄必須表示成下劃線;當extended highlighting開啟,可以使用真正的下劃線;否則只能用下劃線符,這是一種字元,所以程序需要對其進行特殊處理。

用法:
view plaincopy to clipboardprint?
01....  DFHMDF POS=(??,??)  
02.            LENGTH=??  
03.            ATTRIB=(NORM, UNPROT, ..)  
04.            COLOR=??  
05.            HILIGHT=UNDERLINE  
...  DFHMDF POS=(??,??)
            LENGTH=??
            ATTRIB=(NORM, UNPROT, ..)
            COLOR=??
            HILIGHT=UNDERLINE如果使用下劃線符underscore,即使用

view plaincopy to clipboardprint?
01....  
02.     INITIAL='____'  
...INITIAL='____'這樣需要在發出和收入做字元替換,即空格和下劃線之間的轉換,以下是下劃線被空格替換的例子:view plaincopy to clipboardprint?
01.INSPECT <變數名> REPLACE ALL '_' BY SPACE  
INSPECT <變數名> REPLACE ALL '_' BY SPACE5. 常用域變數的檢查(Editing)


條件 檢查方法
沒有輸入 <名稱>L = ZERO
都是空格 <名稱>I = SPACE
非數字 相應的判斷子過程
非正 <名稱>I NOT > ZERO
為零 <名稱>I = ZERO


CICS-COBOL編程,通常從下往上檢查,這樣被顯示的總是第一個錯誤

一般的檢查代碼的模式view plaincopy to clipboardprint?
01.MOVE ATTR-NO-HIGHLIGHT TO <域變數名>H ...   // 清零高亮  
02.IF <檢查錯誤條件>  
03.    MOVE ATTR-REVERSE TO <域變數名>H    // 加反色  
04.    MOVE -1 TO <域變數名>L              // 設游標  
05.    MOVE <消息> TO <消息域>O  
06.    MOVE 'N' TO <有效數據指示變數>  
07....  
MOVE ATTR-NO-HIGHLIGHT TO <域變數名>H ...   // 清零高亮
IF <檢查錯誤條件>
    MOVE ATTR-REVERSE TO <域變數名>H    // 加反色
    MOVE -1 TO <域變數名>L              // 設游標
    MOVE <消息> TO <消息域>O
    MOVE 'N' TO <有效數據指示變數>...

6. SEND TEXT

發送字元數據,從左上角開始,用於調試或不需要指定映射集的簡單顯示。格式:view plaincopy to clipboardprint?
01.EXEC CICS  
02.    SEND TEXT FROM(data-name)  // 送指定變數中的內容  
03.                 // 在送字元之前屏幕要清除  
04.                // 如果指定在發送后解鍵盤鎖,否則用戶需要打RESET鍵解開鍵盤鎖  
05.END-EXEC  
EXEC CICS
    SEND TEXT FROM(data-name)  // 送指定變數中的內容
                 // 在送字元之前屏幕要清除
                // 如果指定在發送后解鍵盤鎖,否則用戶需要打RESET鍵解開鍵盤鎖
END-EXEC 7. 時間日期view plaincopy to clipboardprint?
01.EXEC CICS  
02.    FORMATTIME ABSTIME(data-name)            // 15位 packed decimal  
03.                            // 8位元組日期  
04.                        // 10位元組年份展開到4數字  
05.                 
06.                 
07.                 
08.                 
09.                 
10.                // 如果忽略,沒有分割;如果不指定值,為'/'  
11.                        // 6位元組,CICS安裝的指定格式  
12.  
13.                       // 從1900年1月1日  
14.                 
15.                 
16.                 
17.                 
18.  
19.               ]] // 時間,8位元組域承載hhmmss,24小時;分割不指定值則用':'  
20.END-EXEC  

[火星人 ] 附加的CICS命令和編程方法 .已經有426次圍觀

http://coctec.com/docs/service/show-post-1658.html