印刷: 仕入先一覧表(PSIRINQ)[5250印刷作成]

最終更新: 2025-11-24

項目数の多い仕入先マスターも一覧表で印刷することができます。

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

[解説]

項目数の多いデータ・ベースも「一覧表形式」で印刷することができます。
サンプル・ライブラリー(QTRFIL)の仕入先マスター(SIREMT)を使って
一覧表形式の印刷適用業務を作ることができます。

[パラメータの説明]

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            
                                                                           
 印刷サイズ                                                     
  桁                                   132        80, 132 198  
  行                                   66         66, 88                        
                                                                           

[解説]

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

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

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

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

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

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

印刷サイズ. . . . . . . . . . . :作成する印刷装置ファイル(PRTF)のサイズを指定します。

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

解説

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

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

[解説]

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

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

[解説]

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

                         フィールドの選択および順序付け             
                                                                    
ファイル      SIREMT                    ライブラリー         QTRFIL 
レコード様式  SIREMTR        テキスト   明細画面レコード            
                                                                    
フィールドとその順序を選択するか,すべてを選択する F21 キーを押して 
実行キーを押してください。                                          
                                                                    
順序    フィールド    属性      長さ      タイプ      記述          
    0   SRCODE        キー       4        文字        コード                
    0   SRNMK                    32       文字        カナ名                
    0   SRNMJ                    32       漢字 OPEN   仕入先名 1            
    0   SRNMJ2                   32       漢字 OPEN   仕入先名 2            
    0   SRNM                     12       漢字 OPEN   略名                  
    0   SRSHOT                   5        文字        略号                  
    0   SRTEL                    15       文字        TEL                
    0   SRFAX                    15       文字        FAX                
    0   SFAX                     2        文字        FAX短縮            
    0   SRFORD                   1        文字        FAX注文            
                                                                     続く ..
                                              
F3= 終了   F15= 他のデータ・ベースの結合      F12= 取消し                    
F21= すべての選択                                                                                                                                

[解説]

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

                          フィールドの選択および順序付け               
                                                                       
 ファイル      SIREMT                    ライブラリー         QTRFIL   
 レコード様式  SIREMTR        テキスト   明細画面レコード              
                                                                       
 フィールドとその順序を選択するか,すべてを選択する F21 キーを押して   
 実行キーを押してください。                                            
                                                                       
 順序    フィールド    属性      長さ      タイプ      記述            
   10   SRCODE        キー       4        文字        コード                
   20   SRNMK                    32       文字        カナ名                
   30   SRNMJ                    32       漢字 OPEN   仕入先名 1            
   40   SRNMJ2                   32       漢字 OPEN   仕入先名 2            
   50   SRNM                     12       漢字 OPEN   略名                  
   60   SRSHOT                   5        文字        略号                  
   70   SRTEL                    15       文字        TEL                
   80   SRFAX                    15       文字        FAX                
   90   SFAX                     2        文字        FAX短縮            
  100   SRFORD                   1        文字        FAX注文            
                                                                     続く ..
                                                                      
F3= 終了   F15= 他のデータ・ベースの結合      F12= 取消し                    
F21= すべての選択                                                            

[解説]

仕入先マスターには結合ファイルは必要ありませんので
このままで実行キーを押します。

                         終了画面                                
                                                                 
選択項目を入力して、実行キーを押してください                     
                                                                 
終了画面を作成しますか ?               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 プログラム               PSIRINQ.PY       名前 *.PY               
      ディレクトリー                 /PYTHON.400/PROJECT/PSIRINQ/PSIRINQ.PY
                                                                             
    権限                           *LIBCRTAUT                                
  テキスト                          仕入先一覧表                         
                                                                             
  DDS ソースの保管 Y=YES の場合                      名前, *LIBCRTAUT       
    ソース・ファイル               QPRTSRC         名前                      
    ライブラリー                     QTRSRC        名前, *CURLIB            
    ソース・メンバー               PSIREMT         名前                      

[解説]

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

プログラムの保管. . . . . . . . . . . .: 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と同じ名前のソース・メンバーが作成されます。

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

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

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

[印刷指定コマンドの追加]

印刷適用業務の作成では実行時の印刷範囲の
指定するコマンドとCLプログラムも自動生成されます。
これによって印刷の範囲を実行時に動的に
指定することができるようになります。

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

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

EDTPTN (PYTHON名)

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

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

STRSEU QTRSRC/QPRTSRC.(PYTHON名)

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

PRTPTN PSIRINQ

で実行してみると

                            仕入先一覧表  (PSIRINQ)                      
                                                                       
選択項目を入力して,実行キーを押してください。                         
                                                                       
コード  . . . . . . . . . . . .                  から                  
  . . . . . . . . . . . . . . .   9999           まで                  
出力  . . . . . . . . . . . . .   *PRINT        *PRINT, *PDF, *, *BOTH 
                                                                       
                                          

のようにプロンプト画面 が表示されるので
このままで実行すると次のように
印刷スプールが出力されます。

PSIRINQ           仕入先一覧表                                                                                             S066 
                                                                                                                   25/11/04  7: 
                                                                                                                           PAGE 
------------------------------------------------------------------------------------------------------------------------------- 
 コード   カナ名                           仕入先名 1                       仕入先名 2                       略名         略号  
EL                                                                                                                            
  FAX          FAX短縮   FAX注文   用紙サイズ  90 度回転   宛名ラベル   郵便番号   住所1                              
  住所2                                     担当者名         源泉区分   振込区分   年賀状   会員区分   下請適用   休日案内    *
区分                                                                                                                            
  業種区分   発注限度額   営業所 コード  地区 CD  取引状態   支払先 CD  手形区分   支払方法   支払手形サイト   税区分   代表者名  
  支払条件             振込銀行   振込支店   預金種目   口座番号   預金者名                       最新仕入日   未決済形残高    *
認日                                                                                                                            
  着手督促日   完成予定確認日   資本金万円   年商百万円   創立年月   社員数   決算月   扱い MAKER                               
  扱い品                                             当社取引品                                         備考1                  
  備考2                                                         更新者 CD  更新日                                              
------------------------------------------------------------------------------------------------------------------------------- 
0001     トウヨウショウジ                         東洋商事株式会社                                                  東洋商事    TOYO   
 0669938746                                                                                                                     
                      0                                                                                                         
   :

[解説]

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

import sys                                                                     
from as400 import *                                                            
                                                                               
CallType(sys.argv[1])                                                          
Open("QTROBJ/PSIRINQ", "PRINTER")               #  印刷装置ファイルをオープン  
Open("QTRFIL/SIREMT", "FILE")                     #  仕入先マスターファイル    
                                                                               
#*********************************************************                     
#            # メイン・ルーチンの定義                                          
#*********************************************************                     
PRTHEAD.SYSNAM = "S0667E36"                                                    
PRTHEAD.LINEA = "-" * 132                                                      
PRTHEAD.LINEB = "-" * 132                                                      
                                                                               
PRTHEAD.Write();                                                               
while SIREMTR.Read() != EOF:                                                   
     DETAIL.SRCODE = SIREMTR.SRCODE                                            
     DETAIL.SRNMK = SIREMTR.SRNMK                                              
      :
     DETAIL.SBIKO1 = SIREMTR.SBIKO1
     DETAIL.SBIKO2 = SIREMTR.SBIKO2
     DETAIL.STORCD = SIREMTR.STORCD
     DETAIL.STOROK = SIREMTR.STOROK
     DETAIL.Write()                         

[解説]

最初に

import sys                                                               
from as400 import *

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

ファイルのオープンは

Open("QTROBJ/PSIREMT", "PRTF")              #  印刷装置ファイルをオープン
Open("QTRFIL/SIREMT", "FILE")                     #  仕入先マスターファイル

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

while SIREMTR.Read() != EOF で以下の処理の繰り返しを定義していますが

DETAIL.Write() で印刷レコード: DETAIL の印刷出力を行っています。

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