WEB印刷一覧表 : 商品一覧表(RSHOINQ)[WEB印刷作成]

最終更新: 2025-11-24

 
 
SpoolライターVer5.0が導入されている場合は
WEB適用業務でも印刷を出力する業務を作成できます。
ただしWEB印刷では出力はPDFとなります。

                        WEB PYTHON の印刷定義  (CRTWEBPRT                  
                                                                          
  選択項目を入力して,実行キーを押してください。                          
                                                                          
 PYTHON プログラム  . . . . . . .   RSHOINQ        拡張子 .py             
    ディレクトリー  . . . . . . .     *PYTHON                   
                                       ...                                
  ファイル  . . . . . . . . . . .   SHOHIN         名前                   
    ライブラリー  . . . . . . . .     QTRFIL       名前 , *LIBL, *CURLIB  
 PRTF ファイル  . . . . . . . . .   *PYTHON        名前 , *PYTHON         
    ライブラリー  . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB  
 HTML ディレクトリー  . . . . . .   '/PYTHON.400/PROJECT' 
                                                         
  生成オプション  . . . . . . . .   *NONE         *NONE, *ADD, *REPLACE   
                                                                          

[解説]

 
 
印刷で最も一般的な一覧表形式の適用業務を作成します。
サンプル・ライブラリー(QTRFIL)の商品マスター(SHOHIN)の一覧表を印刷するための
PYTHON プログラムを生成します。
ここではまずWizardの使い方に慣れることから始めます。
説明の指示に従って操作を開始してください。

[パラメータの説明]

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

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

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

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

[基本情報の定義]

                        基本情報の定義                                     
                                                                           
                                                                           
                                                                           
 ジョブ・タイトル                        商品一覧表                 
 画面様式                               1          1= 単票印刷  2= 最大表示
                                                   3= 一覧表    4= 伝票型式
                                                                           
 数値の編集                             Y          Y=YES,  N=NO            
                                                                           
 印刷サイズ                                                     
  桁                                   132        80, 132 198  
  行                                   66         66, 88       
                       

[解説]

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

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

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

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

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

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

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

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

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

解説

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

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

[解説]

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

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

[解説]

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

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

[解説]

リスト項目定義 LISTDEF の選択候補としてデータ・ベース: 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を指定して実行キーを
押します。

                        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 プログラム               RSHOINQ.PY       名前 *.PY               
      ディレクトリー                 /PYTHON.400/PROJECT/RSHOINQ/QSHOINQ.PY
                                                                             
    権限                           *LIBCRTAUT                                
  テキスト                          商品一覧表                        
                                                                             
  DDS ソースの保管 Y=YES の場合                      名前, *LIBCRTAUT       
    ソース・ファイル               QPRTSRC           名前                      
    ライブラリー                     QTRSRC          名前, *CURLIB            
    ソース・メンバー               PSHOINQ           名前                      

[解説]

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

プログラムの保管. . . . . . . . . . . .: 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テンプレートも保管される
場合があります。

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

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

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

「RSHOINQ.PY を保管しました 」

のような完了メッセージが表示されればWizard生成は成功です。
実行は「13. PYTHON データの印刷(PRTPTN)」
によって実行することができます。

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

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

EDTPTN (PYTHON名)

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

PYTHONを実行する印刷装置ファイル(PRTF)のDDSソースは

STRSEU QTRSRC/QPRTSRC.(PYTHON名)

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

PRTPTN RSHOINQ

で実行してみると

のように印刷プロンプト画面 が表示されるので
このままで実行キーを押すとすべての商品を印刷する
商品一覧表が印刷出力されます。
WEB適用業務ですので実行結果はSpoolライターVer5.0によって
PDF化されます。

[解説]

品種コードに対して品種マスター:と結合されて品種名が印刷されています。

次に EDISRC PSHOINQ で Pythonソースを次のように表示することが
できます。

import sys                                                                    
from as400 import *                                                           
                                                                              
CallType(sys.argv[1])                                                         
Open("QTROBJ/RSHOINQ", "PRINTER")               #  印刷装置ファイルをオープン 
Open("QTRFIL/SHOHIN", "FILE")                     #  商品マスターファイル     
Open("QTRFIL/HINSHU", "FILE")                     #  品種マスターファイル     
                                                                              
#*********************************************************                    
#            # メイン・ルーチンの定義                                         
#*********************************************************                    
PRTHEAD.SYSNAM = "Sxxxxxxx"                                                   
PRTHEAD.LINEA = "-" * 132                                                     
PRTHEAD.LINEB = "-" * 132                                                     
                                                                              
PRTHEAD.Write();                                                              
while SHOHINR.Read() != EOF:                                                  
     SHOHINR.SHSCOD.Chain(HINSHU)                                             
     DETAIL.SHCODE = SHOHINR.SHCODE  
     DETAIL.SHNAME = SHOHINR.SHNAME  
     DETAIL.SHTANK = SHOHINR.SHTANK  
     DETAIL.SHSCOD = SHOHINR.SHSCOD  
     DETAIL.HNSNAM = HINSHUR.HNSNAM  
     DETAIL.Write()                                                           

[解説]

最初に

import sys                                                               
from as400 import *

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

ファイルのオープンは

Open("QTROBJ/PSHOHIN", "PRTF")              #  印刷装置ファイルをオープン
Open("QTRFIL/SHOHIN", "FILE")                     #  商品マスターファイル
Open("QTRFIL/HINSHU", "FILE")                     #  品種マスターファイル

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

while SHOHINR.Read() != EOFで以下の処理の繰り返しを定義して

DETAIL.Write() で印刷出力を行っています。

ここではすべてのレコードを読み取っているように見えますが
それは実行CLプログラムの中で OPNQRYF コマンドによって
動的に処理レコードを絞っているからです。
非常に洗練されたレコード選択の方法を示しています。

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