一覧表形式: 商品マスター照会(@SHOINQ)[作成]

最終更新: 2025-11-24

 
 

                        5250 PYTHON の作成  (CRT5250APP)                  
                                                                          
  選択項目を入力して,実行キーを押してください。                          
                                                                          
 PYTHON プログラム  . . . . . . .   @SHOINQ        拡張子 .py             
    ディレクトリー  . . . . . . .     *PYTHON                   
                                       ...                                
  ファイル  . . . . . . . . . . .   SHOHIN         名前                   
    ライブラリー  . . . . . . . .     QTRFIL       名前 , *LIBL, *CURLIB  
 DSPF ファイル  . . . . . . . . .   *PYTHON        名前 , *PYTHON         
    ライブラリー  . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB  
  生成オプション  . . . . . . . .   *NONE         *NONE, *ADD, *REPLACE   
                                                                          

[解説]

 
 
SFLレコードのような一覧表形式でデータを照会する摘要業務を作成します。
単票形式を作ったのとほぼ同じ操作だけで院欄表形式の摘要業務を作成することが
できます。

[パラメータの説明]

PYTHON プログラム. . . . . . . . . . . . . .作成するPythonプログラムの名前とそのソースを
ディレクトリー              保管するディレクトリー名を指定します。
*PYTHON = /PYTHON/PROJECT/(PYTHON名)
としてPYTHON名のディレクトリーも自動生成されます。
十分精通するまではこの指定のままで生成してください。

ファイル. . . . . . . . . . . . . . . . . . このPythonが扱う主たるデタ・ベースの名前と
 ライブラリー ライブラリー名を指定してください。

DSPF ファイル . . . . . . . . . . . . . . . このPythonが使用する表示装置ファイル(DSPF)の名前と
ライブラリー               ライブラリー名を指定してください。

生成オプション. . . . . . . . . . . . . . . *NONE以外の:ADD(=初期作成)または *REPLACE(=置換え)を
指定してください。*SADDを指定したときは既存の同じ名前の
Pythonが存在しているか検査され存在していれば
エラーとなります。
初めてこのPythonの名前で作成するときは*ADDを
                      指定してください。

[基本情報の定義]

                        基本情報の定義                                     
                                                                           
                                                                           
                                                                           
 ジョブ・タイトル                        商品マスター照会                  
 画面様式                               3          1= 単票型式  2= 最大表示
                                                   3= 一覧表    4= 伝票型式
                                                                           
 監査報告書                             Y          Y=YES,  N=NO            
 数値の編集                             Y          Y=YES,  N=NO            
                                                                           
 画面サイズ                                                                
   桁                                   132        80, 132                 
   行                                   27         24, 27                  
                                                                           

[解説]

ジョブ・タイトル. . . . . . . . : この適用業務のタイトルを入力してください。
                 このタイトルは適用業務画面の見出しとして使われます。

画面様式. . . . . . . . . . . . : 摘要業務のタイプを指定します。
1=単票形式 : 1レコード1画面1フィールド/行のDFUのような
基本型式の画面入力の適用業務を作成します。

2=最大表示 : 単票形式ですが1画面にフィールドをできるだけ
多く表示する画面型式の適用業務を作成します。

3=一覧表形式: SFLレコードによる一覧表形式の適用業務画面を
作成します。

4=伝票型式: 日本独自の伝票入力型の適用業務を作成します。

監査報告書 . . . . . . . . . . : 監査報告書とはDFUのように入出力の結果のモニター・リストで
更新の結果をQUERYによって印刷出力します。

数値の編集. . . . . . . . . . . :数値を編集するかどうかを指定します。

画面サイズ. . . . . . . . . . . :作成する表示装置ファイル(DSPF)のサイズを指定します。
現在、使用中の画面サイズが初期値として表示されます。

                         レコード様式の処理                               
                                                                          
ファイル      SHOHIN                           ライブラリー        QTRFIL 
                                                                          
オプションを入力して、実行キーを押してください                            
  1= 指定                                                                 
                                                                          
                                                                          
OPT   様式        定義   記述                                           
1   DSPHEAD        N      初期画面レコード                                
1   DSPDTA         N      明細画面レコード                                
1   ENDOPT         N      終了画面                                        
                                                                          

解説

画面芳樹を生成するための画面レコード様式の候補がすべて
表示されますのでそれぞれの画面様式に対するフィールドの定義を
行う必要があります。
選択欄(OPT)には初期値として1が既に表示されていますので
このままで実行キーを押すと最初のレコード:DSPHEADが選択されます。
このままで実行キーを押してください。

                          フィールドの選択および順序付け              
                                                                      
 ファイル      SHOHIN                    ライブラリー         QTRFIL  
 レコード様式  SHOHINR        テキスト   初期画面レコード             
                                                                      
 フィールドとその順序を選択するか,すべてを選択する F21 キーを押して  
 実行キーを押してください。                                           
                                                                      
 順序    フィールド    属性      長さ      タイプ      記述           
    10   SHCODE        キー       10       文字        商品コード     
                                                                      

[解説]

選択したDSPHEADレコードに表示するフィールドの選択が要求されます。
この初期画面DSPHEADでは指定したデータ・ベース:QTRFIL/SHOHINの
アクセス・パスすなわちキー・フィールドが表示されて
順序選択の欄には初期値として10が既に表示されています。
このままで実行キーを押してください。

                          レコード様式の処理                              
                                                                          
 ファイル      SHOHIN                           ライブラリー        QTRFIL
                                                                          
 オプションを入力して、実行キーを押してください                           
   1= 指定                                                                
                                                                          
                                                                          
OPT   様式        定義   記述                                          
     DSPHEAD        Y      初期画面レコード                               
 1   DSPDTA         N      明細画面レコード                               
 1   ENDOPT         N      終了画面                                       
                                                                          

[解説]

表示は元のレコード選択の画面に戻りますが
今、処理したDSPHEADレコードの選択OPT=1は消えて
次の明細画面: DSPDTA に OPT=1 が残っていますので
続けてこのままで実行キーを押すと 明細画面: DSPDTAが
選択されます。

                         フィールドの選択および順序付け             
                                                                    
ファイル      SHOHIN                    ライブラリー         QTRFIL 
レコード様式  SHOHINR        テキスト   明細画面レコード            
                                                                    
フィールドとその順序を選択するか,すべてを選択する F21 キーを押して 
実行キーを押してください。                                          
                                                                    
順序    フィールド    属性      長さ      タイプ      記述          
    0   SHCODE        キー       10       文字        商品コード    
    0   SHNAME                   24       漢字 OPEN   商品名        
    0   SHTANK                   7,0      ゾーン      単価          
    0   SHSCOD                   4        文字        品種コード    
                                                                             
                                                                       終わり
                                                                             
F3= 終了   F15= 他のデータ・ベースの結合      F12= 取消し                    
F21= すべての選択                                                                                                                                

[解説]

明細画面DSPDTAの選択候補としてデータ・ベース: QTRFIL/SHOHINのすべての
フィールドが表示されます。
「F21= すべての選択」キーを押してすべてのフィールドを詮索してください。

                          フィールドの選択および順序付け               
                                                                       
 ファイル      SHOHIN                    ライブラリー         QTRFIL   
 レコード様式  SHOHINR        テキスト   明細画面レコード              
                                                                       
 フィールドとその順序を選択するか,すべてを選択する F21 キーを押して   
 実行キーを押してください。                                            
                                                                       
 順序    フィールド    属性      長さ      タイプ      記述            
    10   SHCODE        キー       10       文字        商品コード      
    20   SHNAME                   24       漢字 OPEN   商品名          
    30   SHTANK                   7,0      ゾーン      単価            
    40   SHSCOD                   4        文字        品種コード      
                                                                       終わり
                                                                             
F3= 終了   F15= 他のデータ・ベースの結合      F12= 取消し                    
F21= すべての選択                                                            

[解説]

F21キーを押すとすべての順序に番号が入力されます。
次に品種マスターと結合して品種名を表示するために
「F15= 他のデータ・ベースの結合」を押してください。

                          他のデータ・ベースの結合                    
                                                                      
 選択項目を入力して、実行キーを押してください                         
                                                                      
   ファイル                     HINSHU         名前、リストは F4 キー 
     ライブラリー                 *LIBL        名前、 *CURLIB         
                                                                      

[解説]

このように結合ファイルに品種マスター(HINSHU)を指定します。
ライブラリー・リスト上に品種マスター(HINSHU)が存在していれば
ライブラリーは *LIBLのままで検索されます。

                          ファイル結合方法の指定                             
                                                                             
 ファイル                HINSHU          ライブラリー             *LIBL      
 テキスト                                                                    
 ファイルの選択項目の比較方法を入力して、実行キーを押してください            
   テスト : EQ                                                               
 フィールド         テスト       フィールド         テキスト                 
HNSCOD              EQ           SHSCOD             品種コード               
                                                                            
                                                                       終わり
                                                                             
 フィールド         テキスト                 長さ       タイプ         小数  
SHCODE              商品コード              10          文字                 
SHNAME              商品名                  24          漢字 OPEN            
SHTANK              単価                    7,0         ゾーン               
SHSCOD              品種コード              4           文字                 

[解説]

左端のフィールドには品種マスター(HINHU)のキー・フィールドが
表示されますのでそれに対応するキー・フィールドを下部に表示されている
フィールドの中から選択して入力してください。
ここでは商品マスターのSHSCODを選択して入力します。

                          他のデータ・ベースの結合                     
                                                                       
 選択項目を入力して、実行キーを押してください                          
                                                                       
   ファイル                     HINSHU         名前、リストは F4       
     ライブラリー                 *LIBL        名前、 *CURLIB          
                                                                       
   テキスト               明細画面レコード                             
                                                                       
 オプションを入力して、実行キーを押してください                        
  1= このフィールドを取り込みとして選択する                            
                                                                       
                                                                       
  OPT  フィールド     属性         長さ     タイプ       記述          
       HNSCOD                     4         文字       品種コード      
   1   HNSNAM                     14        漢字 OPEN  品種名          

[解説]

下部には結合した品種マスター(HINSHU)のフィールドがすべて表示されます。
表示項目として追加したいフィールドを OPT=1で選択します。
ここでは品種名: HNSNAM にOPT=1を入力して実行キーを押してください。

                          フィールドの選択および順序付け                
                                                                        
 ファイル      SHOHIN                    ライブラリー         QTRFIL    
 レコード様式  SHOHINR        テキスト   明細画面レコード               
                                                                        
 フィールドとその順序を選択するか,すべてを選択する F21 キーを押して    
 実行キーを押してください。                                             
                                                                        
 順序    フィールド    属性      長さ      タイプ      記述             
    10   SHCODE        キー       10       文字        商品コード       
    20   SHNAME                   24       漢字 OPEN   商品名           
    30   SHTANK                   7,0      ゾーン      単価             
    40   SHSCOD                   4        文字        品種コード       
    50   HNSNAM       HINSHU      14       漢字 OPEN   品種名      
                                                                        

[解説]

追加した品種名(HNSNAME)はフィールド一覧の一番最後に追加されますので
挿入したい位置の順序番号を指定します。
ここでは品種コードの次に表示したいので40の次の50を指定して実行キーを
押します。

                         レコード様式の処理                              
                                                                         
ファイル      SHOHIN                           ライブラリー        QTRFIL
                                                                         
オプションを入力して、実行キーを押してください                           
  1= 指定                                                                
                                                                         
                                                                         
OPT   様式        定義   記述                                          
    DSPHEAD        Y      初期画面レコード                               
    DSPDTA         Y      明細画面レコード                               
1   ENDOPT         N      終了画面                                       

[解説]

表示はレコード様式の選択に戻り終了画面(ENDOPT)の選択だけが
残っていますのでこのままで実行キーを押してください。

                         終了画面                                
                                                                 
選択項目を入力して、実行キーを押してください                     
                                                                 
終了画面を作成しますか ?               Y            Y=YES,  N=NO 
                                                                 

[解説]

終了画面は必要なのでこのままで実行キーを押します。

                        PYTHON プログラム定義の終了                          
                                                                             
選択項目を入力して、実行キーを押してください                                 
                                                                             
  プログラムの保管                 Y                Y=YES,  N=NO             
  プログラムの実行                 N                Y=YES,  N=NO             
    選択項目 Y=YES の場合                                                    
      実行のタイプ                 1               1= 変更 ,  2= 表示        
 DDS ソースの保管                  Y                Y=YES,  N=NO             
 PYTHON ソースの保管               Y                Y=YES,  N=NO             
  プログラムの保管 Y=YES の場合                                              
   PYTHON プログラム               @SHOINQ.PY       名前 *.PY               
      ディレクトリー                 /PYTHON.400/PROJECT/@SHOINQ/@SHOINQ.PY
                                                                             
    権限                           *LIBCRTAUT                                
  テキスト                          商品マスター照会                         
                                                                             
  DDS ソースの保管 Y=YES の場合                      名前, *LIBCRTAUT       
    ソース・ファイル               QDSPSRC         名前                      
    ライブラリー                     QTRSRC        名前, *CURLIB            
    ソース・メンバー               @SHOINQ        名前                      

[解説]

最後にソースを生成する画面が表示されます。

プログラムの保管. . . . . . . . . . . .: Y=Pythonプログラムの保管を指示します。

プログラムの実行. . . . . . . . . . . .: 保管直後に実行するかどうかを指示します。
                     まだ慣れないうちは N としてください。

DDS ソースの保管 . . . . . . . . . . . : 表示装置ファイル(DSPF)のDDSソースの保管を指示します。
Yを指示してください。

PYTHON ソースの保管. . . . . . . . . . : PYTHONプログラム・ソースの保管を Yで応答してください。

 PYTHON プログラム. . . . . . . . . . : 保管するPYTHONプログラムの名前を指示します。
拡張子.PYが必要です。

ディレクトリー. . . . . . . . . . . .: PYTHONを保管するIFSディリクトリーの名前を指示します。
/PYTHON.400/PROJECT/(PYTHOPN名)/(PYTHON名.PY)
の形式名にしてください。
PYTHONのプロジェクト(/PYTHON.400/PROJECT)の配下に
PYTHON名と同じ名前のプロジェトクが作成されて
その配下にPYTHONプログラム(PYTHON名.PY)が
                     保管されます。
                     プロジェクトの配下にはHTMテンプレートも保管される
場合があります。

ソース・ファイル. . . . . . . . . . . .: 表示画面装置ファイル(DSPF)のDDSソース・ファイル名です。
QDSPSRCという名前のDDSソース・ファイルに保管されます。
ない場合はあらかじめ作成しておいてください。
ライブラリー . . . . . . . . . . . . . : ソース・ファイルのライブラリー名です。
QDSPSRCがライブラリー・リストで検索されて見つかった
ライブラリーが表示されます。

ソース・メンバー. . . . . . . . . . . .: PYTHONと同じ名前のソース・メンバーが作成されます。

実行キーを押すと表示装置ファイル(DSPF)のDDSソースの作成に続いて
表示装置ファイル(DSPF)も作成され(CRTDSPF)PYTHONプログラムも指定した場所に
保管されます。
PYTHONはコンパイルは必要ありません。

「@SHOHIN6.PY を保管しました 」

のような完了メッセージが表示されればWizard生成は成功です。
実行は「11. PYTHON データの表示(DSPPTN)」や
「12. PYTHON データの変更(CHGPTN)」によって実行することができます。

[F13=印刷待ち行列の追加]

※ SpoolライターVer5.0がこのシステムに
導入されている場合はDSPFのDDSソースに
「F13=出力待ち行列」が追加されて
WRKSPLコマンドが実行されて
このユーザーが出力したスプールがすべて
表示されて任意のスプールを表示、印刷さらに
PDF変換やExcelにも変換することができます。

[生成されたPYTHONソースは?]

どのようなPYTHONソースが生成されたのか気になるところですが
ライブラリー: PYTHON.400 がライブラリー・リストに存在していれば
コマンド入力画面で

EDTPTN (PYTHON名)

だけでPYTHONソースの内容を見ることができます。

PYTHONを実行する表示装置ファイル(DSPF)のDDSソースは

STRSEU QTRSRC/QDSPSRC.(PYTHON名)

でオープンすることができます。

DSPPTN @SHOINQ

で実行してみると

  商品照会                                       モード  . . :    表示   
  様式  . . . . :   DSPHEAD                      ファイル  . :   @SHOINQ 
                                                                         
  商品コード                                                             
                                                                       
                                                                         
              必要な項目を入力して,実行キーを押してください。           
                                                                       
                                                                         
                                                                         
                                                                         
 F3= 終了          F13= 出力待ち行列                                     

のように初期画面: DSPHEAD が表示されるので
そのまま実行すると次のように
明細画面が表示されます。

 商品照会                                       モード  . . :                                                                     
 様式  . . . . :                                ファイル  . :                                                                     
                                                                                                                                  
 商品コード    商品名                    単価       品種コード   品種名                                                           
NV-BS30S       目次ビデオ                 165,000  0002          ビデオデッキ                                                     
NV-BS50S       ビデオ画王                 200,000  0002          ビデオデッキ                                                     
NV-CF1         Cカセット編集ビデオ        58,000  0002          ビデオデッキ                                                     
NV-CF2         薄型テレビ                  98,000  0003          コンボ                                                           
NV-CF81        更新テスト                  58,000  0004          エレクトーン                                                     
NV-CF9         漢字テスト                  19,000  0002          ビデオデッキ                                                     
NV-F850        音声録画ビデオ             140,000  0002          ビデオデッキ                                                     
NV-HK1         歌えるビデオ                90,000  0002          ビデオデッキ                                                     
NV-H1T-S       みんなのビデオ              69,800  0002          ビデオデッキ                                                     
NV-SX10        ビデオ画王                 115,000  0002          ビデオデッキ                                                     
NV-W1          世界放送方式ビデオ         350,000  0002          ビデオデッキ                                                     
RX-AZ1         液晶テレビ 80 インチ       300,000  0001          カラーTV                                                       
RX-BZ1         液晶テレビ 55 インチ       100,000  0002          ビデオデッキ                                                     
RX-DT75        CDラジオカセット          53,800  0003          コンボ                                                           
SC-CH150       超ミニ・コンポ              70,000  0003          コンボ                                                           
SC-CH505       パーソナル・ミニコンポ     100,000  0003          コンボ                                                           
                                                                                      続く ...                                    
                                                                                                                                  
F3= 終了                F12= 前画面                               F23= 削除          F13= 出力待ち行列                             

[解説]

ROLL UPキー(PageDown)を押せば続きのレコードが表示されます。
次に EDISRC @SHOHIN で Pythonソースを次のように表示することが
できます。

import sys                                                                  
from as400 import *                                                         
                                                                            
CallType(sys.argv[1])                                                       
Open("QTROBJ/@SHOINQ", "DSPF")             #  表示装置ファイルをオープン    
Open("QTRFIL/SHOHIN", "FILE")                     #  商品マスターファイル   
Open("QTRFIL/HINSHU", "FILE")                     #  品種マスターファイル   
                                                                            
while True:                                                                 
    DSPHEAD.Exfmt()                     #  初期画面を表示                   
    DSPHEAD.SHCODE.SetLL(SHOHIN)                                            
    DSPDTA = 'SFCTL01'                                                      
    DSPEND = 'DSPEND01'                                                     
    while True:                                                             
       ENDRRN = TOPRRN + SFLPAG -1                                          
       for RRN1 in range(TOPRRN, ENDRRN +1):                                
            if SHOHIN.Read() == EOF:                                        
                 break                                                    
            SHOHINR.SHSCOD.Chain(HINSHU)       #  品種マスターファイル   
            SFREC01.SHCODE = SHOHINR.SHCODE                              
            SFREC01.SHNAME = SHOHINR.SHNAME                              
            SFREC01.SHTANK = SHOHINR.SHTANK                              
            SFREC01.SHSCOD = SHOHINR.SHSCOD                              
            SFREC01.HNSNAM = HINSHUR.HNSNAM                              
            SFREC01.SFLWrite(RRN1)                                       
       DSPEND01.Write()                                                  
       SFCTL01.Exfmt()             # SFL  コントロール/レコードを表示                                                  

[解説]

最初に

import sys                                                               
from as400 import *

によって
Python.400フレーム・ワークが提供する「AS400エンジン」を
インクルードします。
これによってILE-RPG言語が使っているレコード・レベルの入出力命令を
PYTHONでも使うことができるようになります。
レコード・レベルの入出力命令は一般的なSQL命令に比べて
圧倒的にパフォーノンスにおいて優れています。

ファイルのオープンは

Open("QTROBJ/@SHOHIN", "DSPF")              #  表示装置ファイルをオープン
Open("QTRFIL/SHOHIN", "FILE")                     #  商品マスターファイル
Open("QTRFIL/HINSHU", "FILE")                     #  品種マスターファイル

で宣言されており DSPFまたは FILEのタイプを示すだけの
簡単な宣言で済みます。
これが最初に使うAS400エンジンのメソッドです。

while True: で以下の処理の繰り返しを定義していますが

DSPHEAD.Exfmt() で初期画面: DSPHEAD の入出力を行っています。

F3=終了の記述がありませんがこれはAS400エンジンの代行処理と
言われるものでILE-RPGやCOBOL言語では必要な処理も
AS400エンジンがPYTHONに代わって多くの処理を代行して行います。
SFCTL01.Exfmt()もSFLレコードを表示している部分ですが
ROLL UPやDOWNの記述はどこにもありません。
これもAS400エンジンの代行処理によって内部では
ROLL UP/DOWNま処理は行われています。
これによってAS400エンジンを使うPYTHONプログラムは
RPGやCOBOLに比べて最小限の記述で済み同時に初心者でも高い品質の
プログラムを開発することができます。

その他のこのPYTHONプログラムの詳細はこちらを参照してください。