Skip to content

Liaro/IBM-i-RPG-samples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IBM i(AS/400)システムサンプル

概要

このリポジトリは、IBM i(AS/400)システム向けに開発されたサンプルプログラム集です。主にRPG ILE(RPGLE)言語を使用して、小売業の業務システムを想定した品目マスタ管理システムのサンプルが含まれています。

システム構成

主要機能

  • 品目マスタ管理システム - 商品の情報を管理
  • 帳票出力機能 - 各種一覧表の印刷
  • 画面照会機能 - 品目マスタの照会画面

対象業務

小売業を想定した以下の業務機能:

  • 品目(商品)マスタの管理
  • 売上管理
  • 在庫管理
  • 帳票出力

ディレクトリ構造

020-FF_RPG_samples-main/
├── QDDSSRC/         # データベース定義ソース
├── QDSPSRC/         # ディスプレイファイル
├── QPRTSRC/         # プリンタファイル
├── QRPGLESRC/       # RPG ILEソースコード
├── SAVF/            # セーブファイル
└── misc/            # その他ファイル
    └── printSamples/ # 印刷サンプル(PDF)

QDDSSRC(データベース定義ソース)

  • HINMSP.PF - 品目マスタ物理ファイル
  • HINMSL01.LF - 品目マスタ論理ファイル
  • JUMEIP.PF - 受注明細物理ファイル
  • JUMIDP.PF - 受注見出し物理ファイル
  • TOKMSP.PF - 得意先マスタ物理ファイル
  • SIRMSP.PF - 仕入先マスタ物理ファイル

QDSPSRC(ディスプレイファイル)

  • IPL010D.DSPF - 品目マスタ照会画面(シンプル版)
  • IPL020D.DSPF - 品目マスタ照会画面(サブファイル版)

QPRTSRC(プリンタファイル)

  • BPL010P.PRTF - 品目マスタ一覧表
  • BPL020P.PRTF - 得意先別受注一覧表
  • BPL030P.PRTF - 地区別受注一覧表

QRPGLESRC(RPG ILEソース)

帳票プログラム(BPLシリーズ)

  • BPL010@YU1.RPGLE - 品目マスタ一覧表(基本版)
  • BPL010@YU2.RPGLE - 品目マスタ一覧表(改良版)
  • BPL010@YU3.SQLRPGLE - 品目マスタ一覧表(SQL版)
  • BPL010@YU9.RPGLE - 品目マスタ一覧表(最終版)
  • BPL020シリーズ - 品目マスタ一覧表(拡張版)
  • BPL030シリーズ - 品目マスタ一覧表(詳細版)

照会プログラム(IPLシリーズ)

その他プログラム

  • @USHIDAY10.RPGLE - RPG ILE固定形式記述サンプル
  • @USHIDAY11.RPGLE - RPG ILE記述サンプル(拡張版)
  • DCLDS1シリーズ - データ構造定義サンプル

misc/printSamples

  • BPL010P.pdf - 品目マスタ一覧表印刷サンプル
  • BPL020P.pdf - 品目マスタ一覧表印刷サンプル(拡張版)
  • BPL030P.pdf - 品目マスタ一覧表印刷サンプル(詳細版)

技術仕様

開発言語

  • RPG ILE(RPGLE) - メインプログラミング言語
  • SQL RPG ILE(SQLRPGLE) - SQL埋め込み版RPG
  • DDS(Data Description Specifications) - データベース・ファイル定義

開発環境

  • IBM i(AS/400)システム
  • 日付編集:*YMD形式
  • 小数点編集:'0.'形式

データベース設計

  • 品目マスタ(HINMSP) - 品目番号をキーとした商品情報
  • 得意先マスタ(TOKMSP) - 顧客情報管理
  • 仕入先マスタ(SIRMSP) - 仕入先情報管理
  • 受注関連ファイル - 受注見出し・明細管理

データベースER図

erDiagram
    HINMSP {
        string HNBANG PK "品目番号"
        string HNNAKN "品名(カナ)"
        string HNNAKJ "品名(漢字)"
        string HNVEND FK "仕入先番号"
        numeric HNTEIK "定価"
        numeric HNGENK "原価"
        numeric HNGSUR "当月売上数量"
        numeric HNNSUR "当年売上数量"
        numeric HNGKIN "当月売上金額"
        numeric HNNKIN "当年売上金額"
    }
    
    TOKMSP {
        string TKBANG PK "得意先番号"
        string TKNAKN "得意先名(カナ)"
        string TKNAKJ "得意先名(漢字)"
        string TKADR1 "住所1"
        string TKADR2 "住所2"
        string TKTIKU "地区コード"
        string TKPOST "郵便番号"
        string TKTELE "電話番号"
        numeric TKGURI "当月売上高"
        numeric TKNURI "当年売上高"
        numeric TKZURI "前年売上高"
        numeric TKUZAN "売掛金残高"
        numeric TKGEND "信用限度額"
        numeric TKNYUK "最終入金日"
        string TKSIME "締め日コード"
    }
    
    SIRMSP {
        string SRBANG PK "仕入先番号"
        string SRNAKN "仕入先名(カナ)"
        string SRNAKJ "仕入先名(漢字)"
        numeric SRKZAN "買掛残高"
        numeric SRGKIN "仕入金額(当月)"
        numeric SRNKIN "仕入金額(当年)"
    }
    
    JUMIDP {
        string JHTOKB FK "得意先番号"
        numeric JHCHUB PK "受注番号"
        numeric JHDATE "受注日付"
        string JHTCHU "得意先注文番号"
        numeric JHKING "受注金額"
        numeric JHGYOS "明細行数"
        string JHOKUB "送り状番号"
        string JHYUSO "輸送コード"
        string JHSHUK "出荷先"
        string JHTEKI "摘要"
        string JHTIKU "地区コード"
    }
    
    JUMEIP {
        string JDTOKB FK "得意先番号"
        numeric JDCHUB PK,FK "受注番号"
        numeric JDGYOB PK "行番号"
        string JDHINB FK "品目番号"
        numeric JDSURY "受注数量"
        numeric JDUTAN "売単価"
        numeric JDKING "明細金額"
    }

    %% リレーションシップ
    SIRMSP ||--o{ HINMSP : "仕入先"
    TOKMSP ||--o{ JUMIDP : "得意先"
    JUMIDP ||--o{ JUMEIP : "受注"
    HINMSP ||--o{ JUMEIP : "品目"
Loading

ER図説明

エンティティ関係

  • 品目マスタ(HINMSP)仕入先マスタ(SIRMSP)

    • 1つの仕入先から複数の品目を仕入れ
    • HINMSP.HNVEND → SIRMSP.SRBANG
  • 得意先マスタ(TOKMSP)受注見出し(JUMIDP)

    • 1つの得意先から複数の受注
    • JUMIDP.JHTOKB → TOKMSP.TKBANG
  • 受注見出し(JUMIDP)受注明細(JUMEIP)

    • 1つの受注に複数の明細行
    • JUMEIP.JDCHUB → JUMIDP.JHCHUB
  • 品目マスタ(HINMSP)受注明細(JUMEIP)

    • 1つの品目が複数の受注明細で使用
    • JUMEIP.JDHINB → HINMSP.HNBANG

業務フロー

  1. 仕入先マスタで仕入先情報を管理
  2. 品目マスタで商品情報と仕入先を関連付け
  3. 得意先マスタで顧客情報を管理
  4. 受注見出しで受注の基本情報を得意先と関連付け
  5. 受注明細で受注の詳細を品目と関連付け

データの整合性

  • 外部キー制約により参照整合性を保証
  • 複合主キー(受注番号+行番号)による明細管理
  • マスタデータの一元管理による整合性確保

データベース詳細構造

物理ファイル(テーブル)定義

1. 品目マスタ(HINMSP)

商品の基本情報と売上実績を管理するマスタファイル

フィールド名 データ型 長さ 小数 説明
HNBANG 文字 5 - 品目番号(キー)
HNNAKN 文字 20 - 品名(カナ)
HNNAKJ 文字 20 - 品名(漢字)
HNVEND 文字 5 - 仕入先番号
HNTEIK 数値 5 0 定価
HNGENK 数値 5 0 原価
HNGSUR 数値 5 0 当月売上数量
HNNSUR 数値 5 0 当年売上数量
HNGKIN 数値 7 0 当月売上金額
HNNKIN 数値 7 0 当年売上金額

主キー: HNBANG(品目番号)

2. 得意先マスタ(TOKMSP)

顧客の基本情報と取引実績を管理するマスタファイル

フィールド名 データ型 長さ 小数 説明
TKBANG 文字 5 - 得意先番号(キー)
TKNAKN 文字 20 - 得意先名(カナ)
TKNAKJ 文字 20 - 得意先名(漢字)
TKADR1 文字 20 - 住所1
TKADR2 文字 20 - 住所2
TKTIKU 文字 2 - 地区コード
TKPOST 文字 6 - 郵便番号
TKTELE 文字 13 - 電話番号
TKGURI 数値 9 0 当月売上高
TKNURI 数値 9 0 当年売上高
TKZURI 数値 9 0 前年売上高
TKUZAN 数値 9 0 売掛金残高
TKGEND 数値 9 0 信用限度額
TKNYUK 数値 6 0 最終入金日
TKSIME 文字 1 - 締め日コード

主キー: TKBANG(得意先番号)

3. 仕入先マスタ(SIRMSP)

仕入先の基本情報と取引実績を管理するマスタファイル

フィールド名 データ型 長さ 小数 説明
SRBANG 文字 5 - 仕入先番号(キー)
SRNAKN 文字 20 - 仕入先名(カナ)
SRNAKJ 文字 20 - 仕入先名(漢字)
SRKZAN 数値 9 0 買掛残高
SRGKIN 数値 9 0 仕入金額(当月)
SRNKIN 数値 9 0 仕入金額(当年)

主キー: SRBANG(仕入先番号) 注意: QEOLFFでは未使用のファイル

4. 受注見出し(JUMIDP)

受注の基本情報を管理するトランザクションファイル

フィールド名 データ型 長さ 小数 説明
JHTOKB 文字 5 - 得意先番号
JHCHUB 数値 5 0 受注番号(キー)
JHDATE 数値 6 0 受注日付
JHTCHU 文字 5 - 得意先注文番号
JHKING 数値 7 0 受注金額
JHGYOS 数値 3 0 明細行数
JHOKUB 文字 5 - 送り状番号
JHYUSO 文字 2 - 輸送コード
JHSHUK 文字 20 - 出荷先
JHTEKI 文字 20 - 摘要
JHTIKU 文字 2 - 地区コード

主キー: JHCHUB(受注番号)

5. 受注明細(JUMEIP)

受注の明細情報を管理するトランザクションファイル

フィールド名 データ型 長さ 小数 説明
JDTOKB 文字 5 - 得意先番号
JDCHUB 数値 5 0 受注番号(キー1)
JDGYOB 数値 3 0 行番号(キー2)
JDHINB 文字 5 - 品目番号
JDSURY 数値 5 0 受注数量
JDUTAN 数値 5 0 売単価
JDKING 数値 7 0 明細金額

主キー: JDCHUB(受注番号)+ JDGYOB(行番号) 注意: QEOLFFでは未使用のファイル

論理ファイル(ビュー)定義

1. 品目マスタ関連

  • HINMSL01.LF - 品目マスタ(品名カナ順)
    • ソート順: HNNAKN(品名カナ)

2. 得意先マスタ関連

  • TOKMSL01.LF - 得意先マスタ(郵便番号順)※未使用
    • ソート順: TKPOST(郵便番号)
  • TOKMSL02.LF - 得意先マスタ(得意先名カナ順)※未使用
    • ソート順: TKNAKN(得意先名カナ)
  • TOKMSL03.LF - 得意先マスタ(地区・得意先番号順)※未使用
    • ソート順: TKTIKU(地区コード)+ TKBANG(得意先番号)

3. 受注関連

  • JUMIDL01.LF - 受注見出し(得意先・受注番号順)
    • ソート順: JHTOKB(得意先番号)+ JHCHUB(受注番号)
  • JUMIDL02.LF - 受注見出し(地区・得意先・受注番号順)
    • ソート順: JHTIKU(地区コード)+ JHTOKB(得意先番号)+ JHCHUB(受注番号)
  • JUCHUL01.LF - 受注合計ビュー(見出し・明細結合)※未使用
    • 受注見出しと受注明細を結合したマルチフォーマット論理ファイル

ディスプレイファイル詳細

IPL010D.DSPF - 品目マスタ照会画面(シンプル版)

単一レコード照会を行うシンプルな画面設計

画面構成

  • PANEL01: メイン照会パネル
    • 画面タイトル: 「品目マスター照会」
    • 入力フィールド: 品目番号(5文字)
    • システム日付・時刻の自動表示
    • エラーメッセージ表示機能

主要機能

  • F3キー: 終了機能(CF03)
  • PAGEUP/PAGEDOWN: ページ制御
  • 入力検証: 該当品番存在チェック
  • 属性制御: 強調表示(DSPATR)

フィールド詳細

フィールド名 属性 位置 説明
IX1BANG 5A B 5行27列 品目番号入力フィールド
DATE システム 1行70列 システム日付(Y編集)
TIME システム 2行70列 システム時刻

IPL020D.DSPF - 品目マスタ照会画面(サブファイル版)

複数レコード表示可能なサブファイル形式の画面設計

画面構成

  • PANEL01: 見出しパネル

    • 画面タイトル: 「品目マスター照会」
    • 検索条件: 品目名(カナ)による部分一致検索
  • SFL01: サブファイルレコード(明細行)

    • 1画面に最大6件表示(SFLPAG(6))
    • サブファイルサイズ: 24件(SFLSIZ(24))
  • CTL01: サブファイル制御レコード

    • 表示制御とヘッダー情報

サブファイル表示項目

項目 データ型 位置 説明
DNO 2,0 9行2列 行番号
DHNBANG 5A 9行6列 品目番号
DHNNAKJ 20A 9行14列 品目名(漢字)
DHNTEIK 5,0 9行37列 定価
DHNGENK 5,0 9行46列 原価
DHNGSUR 5,0 9行58列 当月売上数量
DHNNSUR 5,0 9行70列 当年売上数量
DHNNAKN 20A 10行7列 品目名(カナ)※青色表示
DHNGKIN 7,0 10行55列 当月売上金額
DHNNKIN 7,0 10行67列 当年売上金額

主要機能

  • 部分一致検索: 品目名カナによる絞り込み
  • MORE機能: 24件を超える場合の続き表示
  • スクロール: PageUp/PageDownによる画面送り
  • カラー表示: 青色での項目強調

プリンタファイル詳細

BPL010P.PRTF - 品目マスタ一覧表

品目マスタの全件を一覧表示する基本的な帳票

レコード構成

  • PHEAD1: ページヘッダー

    • プログラム名: BPL010
    • タイトル: 「品目マスター一覧表」
    • システム日付、ページ番号
    • カラムヘッダー
  • PITEM1: 明細行

    • 品目情報の詳細表示

印刷項目

フィールド名 データ型 位置 説明
PI1HNBANG 5A 4列 品目番号
PI1HNNAKJ 20O 17列 品目名(漢字)
PI1HNNAKN 20A 42列 品目名(カナ)
PI1HNTEIK 5,0 65列 定価(編集コード1)
PI1HNGENK 5,0 76列 原価(編集コード1)
PI1HNGSUR 5,0 91列 当月売上数量(編集コード1)
PI1HNGKIN 7,0 102列 当月売上金額(編集コードJ)

BPL020P.PRTF - 得意先別受注一覧表

得意先ごとの受注状況を一覧表示する帳票

レコード構成

  • PHEAD1: ページヘッダー

    • プログラム名: BPL020
    • タイトル: 「得意先別受注一覧表」
    • カラムヘッダー
  • PITEM1: 明細行(得意先別受注情報)

  • PTOTAL1: 最終計行

    • レコード件数、受注金額合計、平均金額

印刷項目

フィールド名 データ型 位置 説明
PI1JHTOKB 5A 7列 得意先番号
PI1TKNAKJ 20O 19列 得意先名(漢字)
PI1JHCHUB 5,0 48列 受注番号
PI1JHGYOS 3,0 64列 明細行数(編集コードZ)
PI1JHKING 7,0 72列 受注金額(編集コードJ)

集計項目

フィールド名 データ型 位置 説明
PT1KENSU 3,0 50列 レコード件数
PT1GOKEI 9,0 70列 受注金額合計
PT1HEIKIN 7,0 102列 平均金額

BPL030P.PRTF - 地区別受注一覧表

地区コード別に受注状況を集計表示する帳票

レコード構成

  • PHEAD1: ページヘッダー

    • プログラム名: BPL030
    • タイトル: 「地区別受注一覧表」
    • 地区コード・地区名表示
  • PTOTAL1: 得意先別小計行

  • PTOTAL2: 地区別合計行

ヘッダー項目

フィールド名 データ型 位置 説明
PH1JHTIKU 2A 18列 地区コード
PH1TIKNAM 8O 31列 地区名

得意先別集計項目

フィールド名 データ型 位置 説明
PT1JHTOKB 5A 5列 得意先番号
PT1TKNAKJ 20O 19列 得意先名(漢字)
PT1_REC 4,0 46列 レコード数
PT1_KING 9,0 57列 受注金額
PT1_AVR 7,0 77列 平均金額

地区別合計項目

フィールド名 データ型 位置 説明
PT2_REC 5,0 45列 レコード件数
PT2_KING 10,0 55列 受注金額合計
PT2_AVR 7,0 77列 平均金額

ファイル設計の特徴

編集コード

  • 編集コード1: 数値のゼロサプレス(先頭ゼロ除去)
  • 編集コードJ: 日本円形式(3桁区切りカンマ)
  • 編集コードZ: ゼロ値の場合は空白表示
  • 編集コードY: 日付のYY/MM/DD形式

レイアウト設計

  • 固定幅フォント: 等幅フォントでの正確な桁揃え
  • 段組み表示: 複数行にわたる項目の効果的配置
  • 視認性向上: スペーシング(SPACEA)による読みやすさ確保

RPGプログラム詳細解説

教育・サンプルプログラム

@USHIDAY10.RPGLE - RPG固定形式記述サンプル

目的: RPG ILEで廃止予定の固定形式記述方法の学習用サンプル

特徴:

  • 固定形式記述: 伝統的なRPG固定形式の記述例
  • 基本演算: 加算、減算、乗算、除算の基本演算
  • 文字列操作: CAT、CHECK、SCAN、SUBSTなどの文字列処理
  • ファイル操作: LOOKUP、MOVEA、XFOOTなどの配列操作
  • 標識操作: SETON、SETOFF、比較演算
  • 日付処理: TIME、ADDDURによる日付時刻操作

学習要素:

  • 固定形式のC仕様書記述方法
  • 古いRPGからの移行時の参考コード
  • 非推奨機能の理解

@USHIDAY11.RPGLE - RPG自由形式変換サンプル

目的: 固定形式から自由形式への変換例を示すサンプル

特徴:

  • FREE形式: **FREEによる完全自由形式記述
  • 新旧対比: 固定形式コードをコメントで併記
  • 関数活用: %CHECK、%DIV、%LOOKUPなどの組み込み関数
  • プロシージャ: CALLP、DCL-PRによるプロシージャ呼び出し
  • モダン制御: FOR-ENDFOR、IF-ENDIF構造

学習要素:

  • 固定形式から自由形式への移行方法
  • モダンなRPG記述技法
  • 組み込み関数の活用方法

DCLDS1@YU1.RPGLE - データ構造サンプル(固定形式)

目的: RPGにおける各種データ構造定義の学習サンプル

特徴:

  • SDS(Program Status Data Structure): プログラム状況データ構造
  • UDS(User Data Area): ローカルデータ域
  • 複合データ構造: OVERLAY、分割フィールド定義
  • システム情報: プログラム名、ジョブ名、ユーザー名の取得

学習要素:

  • システム情報の取得方法
  • データ域の活用
  • フィールド分割技法

DCLDS1@YU2.RPGLE - データ構造サンプル(自由形式)

目的: 自由形式でのデータ構造定義の学習サンプル

特徴:

  • DCL-DS: 自由形式データ構造宣言
  • PSDS: プログラム状況データ構造(自由形式)
  • DTAARA: データ域定義(自由形式)
  • OVERLAY: フィールド重複定義

学習要素:

  • 自由形式でのデータ構造記述
  • モダンなシステム情報取得
  • メンテナンスしやすいコード構造

帳票出力プログラム(BPLシリーズ)

BPL010@YU1.RPGLE - 品目マスタ一覧表(固定形式版)

目的: 品目マスタの全件一覧を印刷する基本的な帳票プログラム

技術仕様:

  • 記述形式: 固定形式RPG
  • ファイル処理: DISK入力、PRINTER出力
  • 処理方式: 順次読み取り(READ)
  • キー処理: KLIST、SETLL、KFLD

機能:

  • 品目マスタ全件読み取り
  • ページヘッダー出力(日付、ページ番号)
  • 明細行出力(品目情報)
  • ゼロ件時の見出し出力

BPL010@YU2.RPGLE - 品目マスタ一覧表(自由形式版)

目的: BPL010@YU1の自由形式移植版

技術仕様:

  • 記述形式: 完全自由形式(**FREE)
  • 改良点: CTL-OPT、DCL-F、DCL-DS活用
  • 標識改善: *IN80をW#FG_OF変数に置換
  • 処理改善: %KDS、%EOF関数活用

特徴:

  • 読みやすいコード構造
  • 標準関数の積極活用
  • メンテナンス性の向上

BPL010@YU3.SQLRPGLE - 品目マスタ一覧表(SQL版)

目的: SQL埋め込み処理の学習サンプル

技術仕様:

  • 記述形式: 自由形式 + 埋め込みSQL
  • データアクセス: カーソル処理
  • 活性化グループ: DFTACTGRP(*NO)使用
  • プロシージャ: カーソル操作の関数化

SQL機能:

  • DECLARE CURSOR: カーソル宣言
  • OPEN/FETCH/CLOSE: カーソル操作
  • ORDER BY: ソート指定
  • FOR READ ONLY: 読み取り専用指定

プロシージャ:

  • @OPEN_CURSOR(): カーソルオープン
  • @FETCH_CURSOR(): レコード読み取り
  • @CLOSE_CURSOR(): カーソルクローズ

BPL010@YU9.RPGLE - 品目マスタ一覧表(最終完成版)

目的: 宣言順序を正しく整理した完成版

技術改良:

  • 宣言順序: CTL-OPT→変数定義→ファイル定義→DS定義
  • コメント強化: 各セクションの説明追加
  • 構造改善: 論理的な記述順序の徹底

BPL020@YU1.RPGLE - 得意先別受注一覧表(固定形式版)

目的: 得意先ごとの受注状況を集計する帳票

技術仕様:

  • 結合処理: 受注見出し + 得意先マスタ
  • 論理ファイル: JUMIDL01使用
  • CHAIN処理: 得意先マスタ参照
  • 集計処理: 件数、金額、平均の計算

業務機能:

  • 得意先別受注一覧
  • レコード件数集計
  • 受注金額合計・平均計算
  • 見つからない得意先の*表示

BPL020@YU2.RPGLE - 得意先別受注一覧表(自由形式版)

目的: BPL020@YU1の自由形式移植版

技術改良:

  • 自由形式記述の活用
  • %KDS、%FOUND関数の使用
  • EVAL(H)による除算処理
  • 可読性向上

BPL030@YU1.RPGLE - 地区別受注一覧表(固定形式版)

目的: 地区→得意先の2段階集計帳票

技術仕様:

  • キーブレイク処理: 地区・得意先の階層制御
  • テーブル処理: CTDATA、DIM、ALT活用
  • 複数集計: 得意先別・地区別の2段階集計
  • LOOKUP処理: 地区名称の参照

集計機能:

  • 得意先別小計(PT1)
  • 地区別合計(PT2)
  • 階層的なブレイク処理

BPL030@YU3.SQLRPGLE - 地区別受注一覧表(SQL版)

目的: 複雑な集計処理のSQL実装例

技術仕様:

  • 結合SQL: 受注見出し + 得意先マスタ
  • NULL処理: NULL標識配列の活用
  • QUALIFIED DS: 構造化データ定義
  • %LOOKUP: 配列検索の活用

SQL機能:

  • 複数テーブル結合
  • NULL値の適切な処理
  • ORDER BY複数キー指定

画面処理プログラム(IPLシリーズ)

IPL010@YU2.RPGLE - 品目マスタ照会(単一画面版)

目的: 品目番号による単一レコード照会

技術仕様:

  • 画面制御: EXFMT、WRITE使用
  • INDDS: 標識データ構造活用
  • キー処理: SETLL、CHAIN、READ、READP
  • 状態管理: W#CTL変数による画面制御

画面機能:

  • 品目番号入力
  • 詳細情報表示
  • 前レコード/次レコード移動
  • F3終了、PageUp/PageDown対応
  • エラーメッセージ表示

IPL020@YU2.RPGLE - 品目マスタ照会(サブファイル版)

目的: 部分一致検索によるリスト表示

技術仕様:

  • サブファイル: SFL、SFLCTL使用
  • 部分一致: 品目名カナによる検索
  • 相対レコード: #RRN01による行管理
  • 論理ファイル: HINMSL01(カナ順)使用

サブファイル機能:

  • 品目名カナ検索
  • 最大24件、1画面6件表示
  • スクロール機能
  • MORE表示制御
  • 詳細項目の2行表示

プログラム設計パターン

共通設計思想

  1. 段階的学習: 固定形式→自由形式→SQL版の段階的発展
  2. 実用性: 実際の業務で使用可能な機能実装
  3. 保守性: 読みやすく変更しやすいコード構造
  4. 教育効果: 各技術要素の学習に最適化

命名規則

  • @: サブルーチン名プレフィックス
  • W#: ワーク変数プレフィックス
  • PI1: プリンタ項目プレフィックス
  • IX1: 画面入力項目プレフィックス

エラーハンドリング

  • 標識活用: *IN60、*IN61等でエラー制御
  • %FOUND: ファイル存在チェック
  • %EOF: ファイル終端チェック
  • SQL状態: SQLSTT'00000'等で状態確認

プログラム特徴

教育目的

このサンプル集は「RPG教育」を目的として作成されており、以下の学習要素が含まれています:

  1. 基本的なRPG ILE記述方法
  2. ファイル操作(読み取り、書き込み)
  3. 画面表示・入力処理
  4. 帳票出力処理
  5. SQL埋め込み処理
  6. エラーハンドリング

プログラム命名規則

  • BPL - Batch Print List(帳票出力)
  • IPL - Interactive Program List(画面処理)
  • @YU - 作成者識別子
  • 数字 - バージョン番号

著作権・管理情報

  • 開発会社: 株式会社中部システム
  • 作成者: Y.USHIDA
  • 作成日: 2023年5月-6月
  • 管理番号: CSC-202305-001

注意事項

  • このサンプルコードは教育目的で作成されています
  • 実際の運用環境で使用する場合は、適切なテストとカスタマイズが必要です
  • IBM i特有の機能を使用しているため、他のプラットフォームでは動作しません

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages