AutoWeb

40. リンク

リンクを利用することによっていかにもWEBという雰囲気を出すことが
できるのでご紹介します。


商品の品名がリンクになっていてクリックすると
商品マスターの保守画面がプロンプト表示されます。
また商品の写真をクリックすると写真が大きくプロンプト表示されます。
この写真はIBM iのIFSではなく別の社内にあるWindows PCに保管されている
写真を表示しています。
別のPCサーバーの写真を表示できますか?のような質問が多いので
意図的に別のPCの写真を表示するように構成しています。

さらに画面は横方向にはかなり長く情報が表示されていて132桁をはるかに超えています。
これも5250ハンドラーを使って作成された適用業務です。
写真をクリックすると写真が次のように拡大されて表示されます。

品名のリンクをクリックすると次のようなプロンプトが表示されて
この商品マスターを保守することができます。

[品名マスター照会DSPF}

ソースはこちらから

0001.00      A***************************************************************   
0002.00      A*    HTY002FM     :   品名マスター照会                            
0003.00      A*    HOTEI/QDSPSRC(HTY002FM)                                      
0004.00      A*     使用目的    :   照会 (*INQUIRY)                             
0005.00      A*     作成日      :  2017/07/11         14:45:07                  
0006.00      A*     作成者      :  QTR                                          
0007.00      A*      CRTEXDSPF HOTEI/HTY002FM SRCFILE(HOTEI/QDSPSRC)            
0008.00      A*      AUT(*ALL)                                                  
0009.00      A***************************************************************   
0010.00      A                                      DSPSIZ(*FREE)               
0011.00      A                                      MSGLOC(24)                  
0012.00      A                                      PRINT                       
0013.00       *    ---------------------------                                  
0014.00      A          R DSPHEAD                                               
0015.00       *    ---------------------------                                  
0016.00      A                                      TEXT(' 初期画面 ')          
0017.00      A                                      CF03(03 ' 終了 ')           
0018.00      A                                      ROLLUP(07)                  
0019.00      A                                      ROLLDOWN(08)                
0020.00      A                                      BLINK                       
0021.00      A                                  1  2'HTY002'                    
0022.00      A                                  1 27' 品名マスター照会 '        
0023.00      A                                      DSPATR(HI)                  
0024.00      A                                  2 64' 日付 '                             
0025.00      A                                  2 71DATE(*JOB *YY)                       
0026.00      A                                      EDTCDE(W)                            
0027.00      A                                  3 64' 時刻 '                             
0028.00      A                                  3 71TIME                                 
0029.00      A                                      EDTWRD('  :  :  ')                   
0030.00      A                                  2  2' 品名コード '                       
0031.00      A            HI01S          4A  B  2 23TEXT(' 品名コード ')                 
0032.00      A                                 11 15' 必要な項目を打鍵して実行キーを押 + 
0033.00      A                                       して下さい。 '                      
0034.00      A                                      DSPATR(HI)                           
0035.00      A                                 23  2'F3= 終了 '                          
0036.00      A                                      COLOR(BLU)                           
0037.00       *    ---------------------------                                           
0038.00      A          R SFREC01                   SFL                                  
0039.00       *    ---------------------------                                           
0040.00      A                                      TEXT(' SFL明細行 ')               
0041.00      A            HI01           4A  O  6  2TEXT(' 品名コード ')                 
0042.00      A            HI19          34A  O  6  8TEXT(' 正式名漢字  *CF04')           
0043.00      A            IMGTAG       150A  O  6 43TEXT('*HTML')                        
0044.00      A            HI20          22A  O  6 50                                     
0045.00      A            HI05           4Y 0O  6 74EDTCDE(Z)                            
0046.00      A            HI04           7A  O  6 80                                     
0047.00      A            HI06          20A  O  6 94                                     
0048.00      A            HI03          10A  O  6114               
0049.00      A            HI07           1A  O  6126               
0050.00      A            HI10           8Y 2O  6131EDTCDE(1)      
0051.00      A            HI12           5Y 1O  6141EDTCDE(1)      
0052.00      A            HI13           5Y 1O  6148EDTCDE(1)      
0053.00      A            HI15           3Y 0O  6159EDTCDE(1)      
0054.00      A            HI18           1A  O  6170               
0055.00      A            HI1899         1A  O  6177               
0056.00      A            HI22          13A  O  6183               
0057.00      A            HI23           5Y 0O  6198EDTCDE(1)      
0058.00      A            HI27           7Y 0O  6204EDTCDE(1)      
0059.00      A            HI31           4Y 0O  6214EDTCDE(1)      
0060.00      A            HI32           4Y 0O  6223EDTCDE(1)      
0061.00      A            HI36           2Y 0O  6234EDTCDE(Z)      
0062.00      A            HI37           6Y 0O  6239EDTCDE(Z)      
0063.00      A            HI38           1Y 0O  6252EDTCDE(Z)      
0064.00      A            HI39           1Y 0O  6263EDTCDE(Z)      
0065.00      A            HI41           3Y 0O  6266EDTCDE(Z)      
0066.00      A            HI42           3Y 0O  6271EDTCDE(Z)      
0067.00      A            HI43           3Y 0O  6276EDTCDE(Z)      
0068.00      A            HI44          10A  O  6283               
0069.00      A            HI45          34A  O  6295               
0070.00      A            HI46          28A  O  6330               
0071.00      A            HI58           1Y 0O  6360EDTCDE(Z)      
0072.00      A            HI59           1Y 0O  6369EDTCDE(Z)                        
0073.00      A            HI60           1Y 0O  6374EDTCDE(Z)                        
0074.00      A            HI61           1Y 0O  6380EDTCDE(Z)                        
0075.00      A            HI62           1Y 0O  6386EDTCDE(Z)                        
0076.00      A*                                                                      
0077.00       *    ---------------------------                                       
0078.00      A          R SFCTL01                   SFLCTL(SFREC01)                  
0079.00       *    ---------------------------                                       
0080.00      A                                      SFLSIZ(0022)                     
0081.00      A                                      SFLPAG(0015)                     
0082.00      A                                      TEXT(' SFL制御見出 ')         
0083.00      A                                      OVERLAY                          
0084.00      A  41                                  SFLDSPCTL                        
0085.00      A  42                                  SFLDSP                           
0086.00      A  43                                  SFLINZ                           
0087.00      A                                      SFLRNA                           
0088.00      A  44                                  SFLCLR                           
0089.00      A  45                                  SFLEND(*MORE)                    
0090.00      A  46                                  SFLDLT                           
0091.00      A  61                                  SFLMSGID(EDT0411 QPDA/QEDTMSG 61)
0092.00      A  62                                  SFLMSGID(EDT0410 QPDA/QEDTMSG 62)
0093.00      A                                      ROLLUP(14 ' 次頁 ')              
0094.00      A                                      CF03(03 ' 終了 ')                
0095.00      A                                      CF04(04 ' プロンプト ')          
0096.00      A                                      CF10(10 ' 更新 ')               
0097.00      A                                      CF12(12 ' 前画面 ')             
0098.00      A                                      CF23(23 ' 削除 ')               
0099.00      A                                      SETOF(99)                       
0100.00      A                                      BLINK                           
0101.00      A            DSPREC         4S 0H      SFLRCDNBR(CURSOR)               
0102.00      A                                  1  2'HTY002'                        
0103.00      A                                  1 27' 品名マスター照会 '            
0104.00      A                                      DSPATR(HI)                      
0105.00      A                                  2 64' 日付 '                        
0106.00 ADD  A  *FREE                           2143                                
0107.00      A                                  2 71DATE(*JOB *YY)                  
0108.00      A                                      EDTCDE(W)                       
0109.00 ADD  A  *FREE                           2152                                
0110.00      A                                  3 64' 時刻 '                        
0111.00 ADD  A  *FREE                           3143                                
0112.00      A                                  3 71TIME                            
0113.00      A                                      EDTWRD('  :  :  ')              
0114.00 ADD  A  *FREE                           3154                                
0115.00      A*( DSPF ソース・ボタン )                                              
0116.00      A                                  3  2HTML('')          
0122.00      A*( DDS  ソース・ボタン )                                                
0123.00      A                                  3 18HTML('')           
0129.00      A*( RPG ソース・ボタン )                                                 
0130.00      A                                  3 34HTML('')           
0136.00      A*( 明細行の桁見出し )                                                   
0137.00      A*                                 5  2' № '                            
0138.00      A*                                     DSPATR(HI)                        
0139.00      A                                  5  2' 品名 '                          
0140.00      A                                      DSPATR(HI)                        
0141.00      A                                  5  9' 正式名 '                        
0142.00      A                                      DSPATR(HI)                        
0143.00      A  08                              5 41' 写真 '                          
0144.00      A                                      DSPATR(HI)    
0145.00      A                                  5 50' 缶型 '      
0146.00      A                                      DSPATR(HI)    
0147.00      A                                  5 74' 入数 '      
0148.00      A                                      DSPATR(HI)    
0149.00      A                                  5 80' 備考 '      
0150.00      A                                      DSPATR(HI)    
0151.00      A                                  5 94' カナ名 '    
0152.00      A                                      DSPATR(HI)    
0153.00      A                                  5114' 缶カナ '    
0154.00      A                                      DSPATR(HI)    
0155.00      A                                  5124' 業務 '      
0156.00      A                                      DSPATR(HI)    
0157.00      A                                  4133' 財務部 '    
0158.00      A                                      DSPATR(HI)    
0159.00      A                                  5133' 単価 '      
0160.00      A                                      DSPATR(HI)    
0161.00      A                                  4142' 計算用 '    
0162.00      A                                      DSPATR(HI)    
0163.00      A                                  5142' 重量 '      
0164.00      A                                      DSPATR(HI)    
0165.00      A                                  4150' 運賃用 '    
0166.00      A                                      DSPATR(HI)    
0167.00      A                                  5150' 重量 '      
0168.00      A                                      DSPATR(HI)     
0169.00      A                                  4158' パレット '   
0170.00      A                                      DSPATR(HI)     
0171.00      A                                  5158' 積数 '       
0172.00      A                                      DSPATR(HI)     
0173.00      A                                  4168' 品薄 '       
0174.00      A                                      DSPATR(HI)     
0175.00      A                                  5168' 区分 '       
0176.00      A                                      DSPATR(HI)     
0177.00      A                                  4175' 使用 '       
0178.00      A                                      DSPATR(HI)     
0179.00      A                                  5175' 不可 '       
0180.00      A                                      DSPATR(HI)     
0181.00      A                                  4182' JAN '     
0182.00      A                                      DSPATR(HI)     
0183.00      A                                  5182' コード '     
0184.00      A                                      DSPATR(HI)     
0185.00      A                                  3199' 財務 '       
0186.00      A                                      DSPATR(HI)     
0187.00      A                                  4199' 出力 '       
0188.00      A                                      DSPATR(HI)     
0189.00      A                                  5199' 区分 '       
0190.00      A                                      DSPATR(HI)     
0191.00      A                                  4207' 最低 '       
0192.00      A                                      DSPATR(HI)         
0193.00      A                                  5207' 在庫 '           
0194.00      A                                      DSPATR(HI)         
0195.00      A                                  5214' 内容量 '         
0196.00      A                                      DSPATR(HI)         
0197.00      A                                  5222' 固形量 '         
0198.00      A                                      DSPATR(HI)         
0199.00      A                                  4231' 頭1桁 '         
0200.00      A                                      DSPATR(HI)         
0201.00      A                                  5231' 出力順 '         
0202.00      A                                      DSPATR(HI)         
0203.00      A                                  4240' 後3桁 '         
0204.00      A                                      DSPATR(HI)         
0205.00      A                                  5240' 出力順 '         
0206.00      A                                      DSPATR(HI)         
0207.00      A                                  4249' フルトップ '     
0208.00      A                                      DSPATR(HI)         
0209.00      A                                  5249' 区分 '           
0210.00      A                                      DSPATR(HI)         
0211.00      A                                  3262' 輸 '             
0212.00      A                                      DSPATR(HI)         
0213.00      A                                  4262' 入 '             
0214.00      A                                      DSPATR(HI)         
0215.00      A                                  5262' 品 '             
0216.00      A                                      DSPATR(HI)             
0217.00      A                                  4267'-- カートン --'       
0218.00      A                                      DSPATR(HI)             
0219.00      A                                  5267' 縦 '                 
0220.00      A                                      DSPATR(HI)             
0221.00      A                                  5272' 縦 '                 
0222.00      A                                      DSPATR(HI)             
0223.00      A                                  5277' 高 '                 
0224.00      A                                      DSPATR(HI)             
0225.00      A                                  5282' 他社コード '         
0226.00      A                                      DSPATR(HI)             
0227.00      A                                  5295' 他社CD (34 桁 )'   
0228.00      A                                      DSPATR(HI)             
0229.00      A                                  5329' 他社CD (28 桁 )'   
0230.00      A                                      DSPATR(HI)             
0231.00      A                                  4358' 財務部分類 '         
0232.00      A                                      DSPATR(HI)             
0233.00      A                                  5358'( 1 )'               
0234.00      A                                      DSPATR(HI)             
0235.00      A                                  5366'( 2 )'               
0236.00      A                                      DSPATR(HI)             
0237.00      A                                  3373' 新 '                 
0238.00      A                                      DSPATR(HI)             
0239.00      A                                  4373' 製 '                 
0240.00      A                                      DSPATR(HI)                
0241.00      A                                  5373' 品 '                    
0242.00      A                                      DSPATR(HI)                
0243.00      A                                  3378' 販 '                    
0244.00      A                                      DSPATR(HI)                
0245.00      A                                  4378' 売 '                    
0246.00      A                                      DSPATR(HI)                
0247.00      A                                  5378' 先 '                    
0248.00      A                                      DSPATR(HI)                
0249.00      A                                  2384' ブ '                    
0250.00      A                                      DSPATR(HI)                
0251.00      A                                  3384' ラ '                    
0252.00      A                                      DSPATR(HI)                
0253.00      A                                  4384' ン '                    
0254.00      A                                      DSPATR(HI)                
0255.00      A                                  5384' ド '                    
0256.00      A                                      DSPATR(HI)                
0257.00       *    ---------------------------                                
0258.00      A          R DSPEND01                                            
0259.00       *    ---------------------------                                
0260.00      A                                      TEXT(' 機能キーの表示 ')  
0261.00      A                                      OVERLAY                   
0262.00      A                                      CF03(03 ' 終了 ')         
0263.00      A                                 23  2'F3= 終了 '               
0264.00      A                                      COLOR(BLU)        
0265.00      A*                                23 19'F4= プロンプト ' 
0266.00      A                                 23 19'F4=プロンプト'      
0267.00      A                                      COLOR(BLU)        
0268.00      A                                 23 44'F10= 更新 '      
0269.00      A                                      COLOR(BLU)        
0270.00      A                                 23 68'F12= 前画面 '    
0271.00      A                                      COLOR(BLU)   


     

[解説]

■リンク

リンクを実現するのは見逃してしまうくらい簡単です。

0037.00       *    ---------------------------                                           
0038.00      A          R SFREC01                   SFL                                  
0039.00       *    ---------------------------                                           
0040.00      A                                      TEXT(' SFL明細行 ')
  :
0042.00      A            HI19          34A  O  6  8TEXT(' 正式名漢字  *CF04') 

この HII9 というフィールドのテキストには *CF04 という文字列がありますが
これがリンクです。
どういうことかと言うと *CFxx という文字列がフィールドのテキストに見つかれば
AutoWebはこれをリンクと見なしてこのリンクがクリックされると
プログラムに CFxx という機能キーAIDコードを送ります。
つまりリンクをクリックするとこの場合の *CF04 であれば CF04キーが押されたのと
同じことになります。
したがってRPGプログラムでは CF04キーが押された記述を書けばよいことに
なります。
これはこれまでのプログラム手法と変わりません。
今まで機能キーとして処理していたプログラムのDSPFのDDSソースに *CFxx
追加するだけでリンクせを実現することができます。
もちろん今までの機能キーによる操作も利用することができます。

■写真

0043.00      A            IMGTAG       150A  O  6 43TEXT('*HTML')

のテキストにある *HTML という文字列に注目してください。
IBM iのDDS仕様ではHTMLキー・ワードはSFLレコード上には定義することはできません。
従って写真イメージIMGTAGをそのまま出力してもHTMLの写真として表現することはできませんが
テキストに文字列 *HTMLを入れておけば AutoWebがHTMLとして処理してくれます。

[品名マスター照会RPG]

ソースはこちらから

0001.00 H DFTNAME(HTY002R) DATEDIT(*YMD/) BNDDIR('QC2LE')                        
0002.00 F********** 品名マスター照会 ******************************************  
0003.00 FHTY002FM  CF   E             WORKSTN                                    
0004.00 F                                     EXTFILE('HOTEI/HTY002FM')          
0005.00 F                                     HANDLER(HANDLER:HPARM)             
0006.00 F                                     SFILE(SFREC01:RRN1)                
0007.00 F                                     INFDS(INFDS)                       
0008.00 FHIMSK     IF   E           K DISK                                       
0009.00 FHIMZK     IF   E           K DISK                                       
0010.00 F**********************************************************************  
0011.00  *( 2017/07/11 14:26:40 ) 5250 ハンドラーを組み込みました。              
0012.00 D HANDLER         S             20A   INZ('ASNET.COM/P5250HLR')          
0013.00                                                                          
0014.00  * ハンドラーに渡すパラメータの定義 *                                    
0015.00 D HPARM           DS                  QUALIFIED                          
0016.00 D   HSIZE                        4S 0 INZ(%SIZE(HPARM))                  
0017.00 D   STATUS                       1A                                      
0018.00 D   HTMTYPE                     10A   INZ('TONAKAI   ')                  
0019.00 D   HTM_DIR                    128A   INZ('/AS400-NET.USR/PROJECT/-      
0020.00 D                                     HTY002R')                          
0021.00 D   INFDSF_PTR                    *   INZ(%ADDR(INFDS))                  
0022.00 D   INFDSP_PTR                    *   INZ(%ADDR(INFDSP))                 
0023.00 D   INGID_PTR                     *   INZ(%ADDR(*IN))                    
0024.00 D   CFKEY_PTR                     *   INZ(%ADDR(CFKEYS))           
0025.00  * 現在の SFL コントロール・レコード名                             
0026.00 D   SFLCTL                      10A                                
0027.00  *[ 注意 ] - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
0028.00  * SFL の表示行数を拡張するには DSPF の SFLSIZ を拡張して          
0029.00  * この行数 (HPARM.GYOSU) の分だけ SFL レコードを出力してください。
0030.00 D   GYOSU                       10I 0                              
0031.00 D   EOF                          1N                                
0032.00  * 現在の DSPF の SFLPAG, SFLSIZ を取出します。                    
0033.00 D   SFLPAG                       4S 0                              
0034.00 D   SFLSIZ                       4S 0                              
0035.00  /COPY ASNET.USR/QRPGLESRC,CFKEYS                                  
0036.00                                                                    
0037.00 D*( プログラム状況データ構造 )                                     
0038.00 D INFDSP         SDS                                               
0039.00 D  PROC_NAM         *PROC                                          
0040.00 D  ROUTINE          *ROUTINE                                       
0041.00 D  PGM                    1     10                                 
0042.00 D                              512A                                
0043.00 D  PGMINFO                1    512                                 
0044.00 D  LINE_NUM              21     28                                 
0045.00 D  ERRMSGID              46     51                                 
0046.00 D  JOB                  244    253                                 
0047.00 D  USER                 254    263                                 
0048.00 D  NBR                  264    269                             
0049.00                                                                
0050.00  *  コマンドの実行:  constant Type                            
0051.00 D QCMDEXC         PR                  EXTPGM('QCMDEXC')        
0052.00 D   CMDSTR                    1024    CONST                    
0053.00 D   CMDLEN                      15  5 CONST                    
0054.00                                                                
0055.00  *    HOTEI/QRPGLESRC(HTY001)                                  
0056.00  *     使用目的    :   更新 (*UPDATE)                          
0057.00  *     作成日      :  2017/07/07         14:56:34              
0058.00  *     作成者      :  QTR                                      
0059.00                                                                
0060.00 D AR              S              1    DIM(80)                  
0061.00 D SAVDTA          S              1    DIM(1024)                
0062.00 D STRGYO          S              2S 0 INZ(6)                   
0063.00 D GYOSU           S              3S 0                          
0064.00 D ENDRRN          S              3S 0                          
0065.00 D SFLPAG          S              2S 0                          
0066.00 D SFLSIZ          S              3S 0                          
0067.00 D CMD             S           1024                             
0068.00 D CMDLEN          S             15P 5                          
0069.00                                                                
0070.00 D INFDS           DS                                           
0071.00 D  NUM_ROWS             152    153B 0                          
0072.00 D  NUM_COLS             154    155B 0                                  
0073.00 D  NUM_RCDS             156    159I 0                                  
0074.00 D* カーソルの桁と行の取込み                                            
0075.00 D  LINE                 370    371B 0                                  
0076.00 D*  TOPRRN: 今表示している SFL の先頭の RRN                            
0077.00 D  TOPRRN               378    379B 0                                  
0078.00 D* BRRN : SFL レコード№                                               
0079.00 D  BRRN                 376    377B 0                                  
0080.00                                                                        
0081.00 D*( WORK 日付 YYMMDD データ 構造  )                                      
0082.00 D DATEDS          DS                                                   
0083.00 D  SRY                    1      2  0                                  
0084.00 D  SRYMD                  1      8  0                                  
0085.00 D  YYMMDD                 3      8  0                                  
0086.00 D  YYMM                   3      6  0                                  
0087.00 D  MMDD                   5      8  0                                  
0088.00 D  YY                     3      4  0                                  
0089.00 D  MM                     5      6  0                                  
0090.00 D  DD                     7      8  0                                  
0091.00                                                                        
0092.00 D BEG_IMG         C                   CONST('')                            
0098.00 D VALUE           S            512A                                    
0099.00 D HTY003          C                   CONST('HOTEI/HTY003')            
0100.00                                                                        
0101.00 C*[ 注意 ]                                                             
0102.00 C* このプログラムはパラメータつきで呼び出すことができます。            
0103.00 C* パラメータなしで呼び出された場合は単独で動作します。                
0104.00 C*----------------------------------------------------+                
0105.00 C     *ENTRY        PLIST                                              
0106.00 C                   PARM                    SEL001                     
0107.00 C*----------------------------------------------------+                
0108.00 C     *LIKE         DEFINE    HI01          SEL001                     
0109.00 C                   IF        %PARMS > 0                               
0110.00 C                   MOVE      SEL001        HI01                       
0111.00 C                   GOTO      GET_RECORD                               
0112.00 C                   ENDIF                                              
0113.00 C*( 初期画面 )                                                         
0114.00 C                   GOTO      GET_RECORD                               
0115.00 C*----------------------------------------------------+                
0116.00 C     START         TAG                                                
0117.00 C                   EXFMT     DSPHEAD                                  
0118.00 C*----------------------------------------------------+                
0119.00 C                   SETOFF                                       99    
0120.00 C*( CF03 )- 終了                                                       
0121.00 C     *IN03         IFEQ      *ON                                      
0122.00 C                   SETON                                        LR    
0123.00 C   LR              EXSR      LRRTN                                    
0124.00 C   LR              RETURN                                             
0125.00 C                   GOTO      START                                    
0126.00 C                   END                                                
0127.00 C*----------------------------------------------------+                
0128.00 C     SETKEY        KLIST                                              
0129.00 C                   KFLD                    HI01S                      
0130.00 C*----------------------------------------------------+                
0131.00 C     GET_RECORD    TAG                                                
0132.00 C                   EXSR      SFLCLR                                   
0133.00 C     SETKEY        SETLL     HIMSK                                    
0134.00 C                   MOVE      ' 照会 '      DSPMOD            6        
0135.00 C                   Z-ADD     1             TOPRRN                     
0136.00 C                   EXSR      READ                                     
0137.00 C                   Z-ADD     1             DSPREC                     
0138.00 C*( サブ・ファイルの表示 )                                             
0139.00 C*----------------------------------------------------+                
0140.00 C     DSPLY         TAG                                                
0141.00 C                   WRITE     DSPEND01                                 
0142.00 C                   SETON                                        4142  
0143.00 C                   EXFMT     SFCTL01                                  
0144.00 C                   SETOFF                                       4142   
0145.00 C*----------------------------------------------------+                 
0146.00 C                   SETOFF                                       99     
0147.00 C*( CF03 )- 終了                                                        
0148.00 C     *IN03         IFEQ      *ON                                       
0149.00 C                   SETON                                        LR     
0150.00 C   LR              EXSR      LRRTN                                     
0151.00 C   LR              RETURN                                              
0152.00 C                   GOTO      DSPLY                                     
0153.00 C                   END                                                 
0154.00 C*( CF04 )- プロンプト                                                  
0155.00 C     *IN04         IFEQ      *ON                                       
0156.00 C                   EXSR      CURSOR                                    
0157.00  /FREE                                                                  
0158.00    RRN1 = LIN - STRGYO + TOPRRN;                                        
0159.00  /END-FREE                                                              
0160.00 C                   SETOFF                                       04     
0161.00 C     RRN1          CHAIN     SFREC01                            99     
0162.00 C*----------------------------------------------------+                 
0163.00 C                   CALL      HTY003                               99   
0164.00 C                   PARM                    HI01                        
0165.00 C*----------------------------------------------------+                 
0166.00 C                   GOTO      DSPLY                                     
0167.00 C                   ENDIF                                               
0168.00 C*( CF12 )- 前画面                                                      
0169.00 C     *IN12         IFEQ      *ON                                       
0170.00 C                   SETOFF                                       12     
0171.00 C     *NOKEY        CLEAR                   HIMSKREC                    
0172.00 C                   GOTO      START                                     
0173.00 C                   ENDIF                                               
0174.00 C*( ROLL UP )- 次ページ                                                 
0175.00 C     *IN14         IFEQ      *ON                                       
0176.00 C                   EXSR      ROLLUP                                    
0177.00 C                   GOTO      DSPLY                                     
0178.00 C                   END                                                 
0179.00 C*( 実行キー )                                                          
0180.00 C     1             DO        *HIVAL        RRN1                        
0181.00 C                   SETOFF                                       50     
0182.00 C                   READC     SFREC01                                50 
0183.00 C   50              LEAVE                                               
0184.00 C*----------------------------------------------------+                 
0185.00 C*                  UPDATE    SFREC01                                   
0186.00 C*----------------------------------------------------+                 
0187.00 C                   Z-ADD     BRRN          DSPREC                      
0188.00 C   99              GOTO      DSPLY                                     
0189.00 C                   ENDDO                                               
0190.00 C                   GOTO      DSPLY                                     
0191.00 C******************************************************                 
0192.00 C     *INZSR        BEGSR                                                
0193.00 C******************************************************                  
0194.00 C*  初期サイクルのみの実行                                               
0195.00 C                   CLEAR                   DATEDS                       
0196.00 C*( 引用符 )                                                             
0197.00 C                   BITOFF    '06'          QUOT              1          
0198.00 C                   BITON     '123457'      QUOT                         
0199.00 C*( U8 = HTML インターフェースで実行中 )                                 
0200.00 C   U8              SETON                                            08  
0201.00 C  N08              MOVE      SFLPAG        GYOSU                        
0202.00 C   08              MOVE      SFLSIZ        GYOSU                        
0203.00 C*( DS の数字フィールドのクリヤー )                                      
0204.00 C                   CLEAR                   SFREC01                      
0205.00 C     INZEND        ENDSR                                                
0206.00 C******************************************************                  
0207.00 C     READ          BEGSR                                                
0208.00 C******************************************************                  
0209.00 C*( データ・ベースの検索 )                                               
0210.00 C*----------------------------------------------------+                  
0211.00 C     EQLKEY        KLIST                                                
0212.00 C                   KFLD                    HI01                         
0213.00 C*----------------------------------------------------+                  
0214.00  /FREE                                                                   
0215.00       ENDRRN = TOPRRN + HPARM.GYOSU - 1;                                 
0216.00       DSPREC = 0;                                                      
0217.00  /END-FREE                                                             
0218.00 C     TOPRRN        DO        ENDRRN        RRN1              4 0      
0219.00 C                   SETOFF                                       45    
0220.00 C                   READ      HIMSK                                  45
0221.00 C   45              LEAVE                                              
0222.00 C*   画像イメージの追加                                                
0223.00 C                   EXSR      ADD_IMAGE                                
0224.00 C*( SFL レコードを追加 )                                               
0225.00 C*----------------------------------------------------+                
0226.00 C                   WRITE     SFREC01                                  
0227.00 C*----------------------------------------------------+                
0228.00 C                   IF        DSPREC = 0                               
0229.00 C                   EVAL      DSPREC = RRN1                            
0230.00 C                   ENDIF                                              
0231.00 C                   END                                                
0232.00 C     REDEND        TAG                                                
0233.00 C                   ENDSR                                              
0234.00 C*****************************************************                 
0235.00 C     ADD_IMAGE     BEGSR                                              
0236.00 C*****************************************************                 
0237.00 C                   SETOFF                                       99    
0238.00 C     HI01          CHAIN     HIMZK                              99    
0239.00 C     *IN99         IFEQ      *ON                                      
0240.00 C                   MOVE      *BLANKS       IMGTAG                   
0241.00 C                   ELSE                                             
0242.00  /FREE                                                               
0243.00    VALUE = BEG_IMG + %TRIMR(HZ02) + END_IMG + X'00';                 
0244.00    IMGTAG = VALUE;                                                   
0245.00  /END-FREE                                                           
0246.00 C                   END                                              
0247.00 C                   ENDSR                                            
0248.00 C******************************************************              
0249.00 C     CHECK         BEGSR                                            
0250.00 C******************************************************              
0251.00 C*( 明細チエック )                                                   
0252.00 C                   ENDSR                                            
0253.00 C******************************************************              
0254.00 C     SFLCLR        BEGSR                                            
0255.00 C******************************************************              
0256.00 C*( SFL のクリヤー )                                                 
0257.00 C*----------------------------------------------------+              
0258.00 C                   SETON                                        44  
0259.00 C                   WRITE     SFCTL01                                
0260.00 C                   SETOFF                                       44  
0261.00 C*----------------------------------------------------+              
0262.00 C                   ENDSR                                            
0263.00 C******************************************************              
0264.00 C     ROLLUP        BEGSR                                            
0265.00 C******************************************************              
0266.00 C     *IN45         IFEQ      *ON                                    
0267.00 C                   SETON                                        6199
0268.00 C                   ELSE                                             
0269.00 C     ENDRRN        ADD       1             TOPRRN                   
0270.00 C                   EXSR      READ                                   
0271.00 C                   ENDIF                                            
0272.00 C     UPEND         ENDSR                                            
0273.00 C*****************************************************               
0274.00 C     LRRTN         BEGSR                                            
0275.00 C*****************************************************               
0276.00 C*                                                                   
0277.00 C     LREND         ENDSR                                            
0278.00 C*****************************************************               
0279.00 C     CURSOR        BEGSR                                            
0280.00 C*****************************************************               
0281.00 C     LINE          DIV       256           LIN               3 0    
0282.00 C                   MVR                     POS               3 0    
0283.00 C                   ENDSR  


                                          

[解説]

リンクの処理は

0154.00 C*( CF04 )- プロンプト                                                  
0155.00 C     *IN04         IFEQ      *ON                                       
0156.00 C                   EXSR      CURSOR                                    
0157.00  /FREE                                                                  
0158.00    RRN1 = LIN - STRGYO + TOPRRN;                                        
0159.00  /END-FREE                                                              
0160.00 C                   SETOFF                                       04     
0161.00 C     RRN1          CHAIN     SFREC01                            99     
0162.00 C*----------------------------------------------------+                 
0163.00 C                   CALL      HTY003                               99   
0164.00 C                   PARM                    HI01                        
0165.00 C*----------------------------------------------------+                 
0166.00 C                   GOTO      DSPLY                                     
0167.00 C                   ENDIF  

 

として機能キー: CF04が押されたものととして処理されています。