印刷: 仕入先一覧表(PSIRINQ)[5250印刷作成]
項目数の多い仕入先マスターも一覧表で印刷することができます。
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プログラムの詳細はこちらを参照してください。