Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

サンプルプログラムを作る

画面フォーマット生成を使うにはまず「画面フォーマット定義パラメータ」で画面イメージを作る必要があります。
そのほかに画面フォーマット生成で作ったCUとリンクするCOBOLのプログラムも必要です。

画面フォーマット

画面フォーマット生成で使用する「画面フォーマット」というものを作ります。
「画面フォーマット定義パラメータ」というもので作ります。
ここで「画面フォーマット画面パラメータ」の命令の1つ1つを説明すると厖大になるので、省略します。「互換操作法ガイドブック<パラメータ編>」の「6.5 画面フォーマット生成」−「6.5.2 機能」を見てください。

#TEDITで「画面フォーマット」を作るときは、TEXT TYPEは「7.SCREEN」を選びます。


下のような画面を出すように作ります。
上半分は「互換操作法ガイドブック」のサンプルを参考に作りました。下半分はいろいろな表示パターンを試すためのものです。


SCREEN URIDEN                                                              
MOD K25                                                                    
ARE(1,20)_                                                                 
*********************************************                              
*    伝票入力っぽい画面を表示               *                              
*********************************************                              
*                                                                          
* ヘッダ部                                                                 
*                                                                          
BOX(1,22)(,55)_                                                            
CON(1,28) NC"売 上 伝 票 入 力"_                                      
CON(3,5) NC"伝票区分"_CON(3,17) NC":"_                                    
CON(4,5) NC"得意先コード"_CON(4,17) NC":"_                                
CON(5,5) NC"得意先名"_CON(5,17) NC":"_                                    
CON(4,32) NC"伝票番号"_CON(4,40) NC":"_                                   
CON(4,54)NC"作成日:"_CON(4,66) NC"年"_CON(4,70) NC"月"_CON(4,74)NC"日"_   
*                                                                          
*    明細、合計部                                                          
*                                                                          
BOX(7,2)(13,79)_UND(07,02)(12,79)_                                         
VER(7,8)(13)_VER(7,20)(13)_VER(7,45)(12)_                                  
VER(7,52)(12)_VER(7,65)(14)_                                               
VER(13,32)_VER(13,38)_VER(13,50)_                                          
VER(14,60)_VER(14,79)_                                                     
UND(14,60)(14,79)_                                                         
CON(7,3)NK"NO"_                                                            
CON(7,9)NC"商品"_CON(7,13)NK"コード"_                                        
CON(7,27)NC"商 品 名"_                                                   
CON(7,47) NC"数量"_                                                        
CON(7,56)NC"単 価"_                                                       
CON(7,69)NC"金 額"_                                                       
CON(8,3)NC"01"_                                                          
CON(9,3)NK"02"_                                                            
CON(10,3)NX"23302333"_                                                     
CON(11,3)NC"04"_                                                         
CON(12,3)NC"05"_                                                         
CON(13,3)NC"99"_                                                         
CON(13,11)NC"梱包費"_                                                      
CON(13,33)NC"運賃"_                                                        
CON(13,54)NC"附帯費計"_                                                    
CON(14,61)NC"合計"_                                                        
*********************************************                              
*    いろいろな出力                         *                              
*********************************************                              
! 罫線関係                                                                 
BOX(16,1)(18,3)_                             * 囲線                        
VER(16,5)(19,5)_                             * 縦線                        
OVE(16,5)(16,10)_                            * 上横線                      
UND(19,5)(19,10)_                            * 下横線                      
VER(16,10)(19,10)_                                                         
! 表示文字に属性を付ける                                                   
CON (16,20)NC"赤 緑 黄 青 紫 水 白"_                                 
RED(16,20)(,21)_                             * 赤色を付ける                
GRE(16,24)(,25)_                             * 緑色を付ける                
YEL(16,28)(,29)_                             * 黄色を付ける                
BLU(16,32)(,33)_                             * 青色を付ける                
MAG(16,36)(,37)_                             * 紫色を付ける                
CYA(16,40)(,41)_                             * 水色を付ける                
WHI(16,44)(,45)_                             * 白色を付ける                
CON(17,20)NC"点滅"_                                                        
BLI(17,20)(,23)_                             * 文字を点滅                  
CON(17,30)NC"反転"_                                                        
REV(17,30)(,33)_                             * 文字を反転                  
CON(17,40)NC"非表示"_                                                      
SEC(17,41)(,44)_                             * 文字を非表示                
! 複数の属性を付けるのもOK                                               
CON(19,20)NC"赤+点滅 黄+反転 青+点滅+反転"_                          
RED(19,20)(,27)_BLI(19,20)(,27)_                  ! 赤+点滅               
YEL(19,30)(,37)_REV(19,30)(,37)_                  ! 黄+反転               
BLU(19,40)(,53)_BLI(19,40)(,53)_REV(19,40)(,53)_  ! 青+点滅+反転         
RED(19,5)(19,7)_                           * 色は罫線には付かない          
CON(19,6)NC"あ"_                           * 後から文字書いても属性は付く  
! その他                                                                   
CON(20,40)"ABC"_                                                           
CON(21,5)NC"表示した?"_              * AREAからはみ出す位置はどうなる?   
END_                                                                       

出来たらSULに仕舞います。
COBOLで作ったプログラムと同じSULに入れてもいいですし、別のSULに分けて入れてもいいです。

画面フォーマットを呼び出すCOBOLプログラム

画面フォーマットは単に画面イメージを作るだけなので、それを呼び出すCOBOLプログラムが必要となります。
下のプログラムの20行目のCALL文で画面を表示しています。

000010**************************************************                
000020*    SAMPLE PROGRAM (NAME:GIFU)                  *                
000030*        SFGEN 画面表示                          *                
000040**************************************************                
000050 IDENTIFICATION DIVISION.                                         
000060 PROGRAM-ID.   GIFU.                                              
000070*                                                                 
000080 ENVIRONMENT DIVISION.                                            
000090*                                                                 
000100 DATA DIVISION.                                                   
000110 WORKING-STORAGE SECTION.                                         
000120 01  KEY-IN  PIC X(01).                                           
000130 SCREEN SECTION.                                                  
000140 SD  GAMEN END STATUS IS  ENDSTS.                                 
000150 01  ACPT-IN.                                                     
000160     05 LINE 24 COLUMN 40 PIC X(01) USING KEY-IN.                 
000170 PROCEDURE DIVISION.                                              
000180 MPRG.                                                            
000190*画面表示                                                         
000200     CALL "URIDEN".                                               
000210     ACCEPT ACPT-IN.                                              
000220 MPRG-E.                                                          
000230     EXIT.                                                        

COBOLで作ったプログラムは、コンパイルしてCU化しておきます。
例えば下のような感じ。

/RUN CBL85;
SUD=MSD_SUF=TESTAPSUL_LBD=MSD_LBF=SYS@SUL_
CUD=MSD_CUF=TESTAPCUL_
WKD=TEMPORARY_WSZ=1000_
PRD=PRN999_
PRG=GIFU_MOD=REPLACE_
COD=SOURCE_LIST=YES_HAT=NO_DBG=SOURCE_
OPT=NO_
NXT=NO_
/> ;