IT関連

AS400/IBMi フリーフォームRPGの書き方備忘録

投稿日:2020年3月26日 更新日:

私の備忘録です。何も知らない初心者なので見当違いがあるかと思います。

よろしければぜひご指摘ください。順次追加していきます。

 

 

よくあるYの指定

RPGIIIやRPGIVで一番先頭の行で指定するあれ。

 

ファイルの指定

読み書きするファイルの指定

キー順に読む必要があればKEYED。キー順に読む必要がなければKEYEDは外す。

読むだけで更新が必要でない場合はUSAGE(*INPUT)とすればいい。更新の場合はUSAGE(*INPUT:*OUTPUT)とするが詳しくはググってほしい。

 

表示装置ファイルの指定

DSPFの指定です。表示装置は入出力するのでUSAGEはINPUT/OUTPUT両方指定する。

 

印刷装置ファイルの指定

PRINTERですね。入力はないのでUSAGEはOUTPUTのみ。オーバーフローが必要な場合はOFLINDで指定する。

 

サブファイルの指定

サブファイルは画面装置ファイルの中に組み込むので、画面装置ファイルの指定の直後に書くようです。1つの場合は1つ。下記は2つ。

 

プログラム開始時に走らせるサブルーチン *INZSR

下記のように書けばメインルーチンに走らせてくれるみたい。知らなかったわー。

フリーフォーム関係ないけぼ備忘録。

 

 

 

 

 

 

 

変数にアンダーバーは使える

 

カラムをDSで切る

READしたファイルに含まれるカラムの郵便番号7ケタを3桁4桁に切る。

 

カラムをDSでつなげる

2つのカラムをDSでつなげる。POSで開始位置を決めるみたい。

TIKUとSIMEはテーブルにあるカラムなので変数や型宣言は不要。

 

 

 

文字の連結

文字の連結は+でできる。

 

パラメータを受け取る P-LIST

下記のようにやる。なぜか5桁以上の文字を渡しても落ちなかった。そういう仕様なのか。

ただし下記のように定義することはできないみたい。

 

キー順に読むSETLL READE(対象ファイルのキーが1カラム)

FILEのPRIMARYKEYは5桁の文字列。#NOという変数を作ってそれでSETLL&READEする。

SETLLもREADEも下記の順番に指定する。

 

キー順に読むSETLL READE(対象のキーが2カラムに対して1つのキーで)

対象ファイルのキーは2つともパック。受注番号と項番号で仮定。1つのキーでSETLL。

 

キー順に読むSETLL READE(対象のキーが2カラムに対して2つのキーで)

対象ファイルのキーは2つともパック。受注番号と項番号で仮定。2つのキーでSETLL。

 

CHAINをする

CHAINもSETLLやREADEと同じ。見つかったかどうかは%FOUNDを使う。否定はNOT %FOUNDで。

%FOUNDのカッコにファイル名を指定すればそのファイル。指定しなければ直前に行われたCHIANとするらしい。

 

 

 

 

 

変数宣言

文字列はCHAR、数値はPACKED(少数点はコロンで区切る)

 

システムデータストラクチャー SDS

これを使えばプログラム実行時のシステム情報を取得できる。たとえばプログラムIDやワークステーションIDなど。

PGIDやWSIDという変数名は何でもいい。型や文字数やPOSの値が重要。

要するにSDSという大きな変数があってその中の何桁から何桁目にシステム値が入っているということ。

なのでDSのPOSで桁を指定する。RPGIVの場合はSDSだが、フリーフォームの場合はPSDSにする。

修飾名が無い場合は*Nとする・・らしい知らんけど。ま、これで動くから良しとする。

 

演算命令でわからないとき

「Ctrl」+「Space」で演算命令の一覧が表示される。必要な命令を選ぶとポップアップで使い方がなんとなく表示される。

argは実引数の意味。search-argは検索文字という意味。|はor(または)の意味。

上記の場合は「検索文字」または「キー」と「ファイル名」または「レコード様式名」ということ。

 

 

挿入モードをデフォルトにする

すみません現時点ではできないそうです。2016年時点ですが外人さんがIBMコミュニティで質問している記事がありました。

 

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

AS400/IBMi 無料で Web化 GUI化 オープン化 フラットなPHP編

注意 これは私の環境下における私の備忘録です。お使いの環境によっては内容が異なる場合があります。私は何も責任を負いませんのでご了承のうえご覧ください。   内容 AS400のいいところはたく …

Git SourceTreeでファイル名の大文字・小文字を検知

SourceTreeでGitを使っていて、ソースはもちろんのことファイル名を変更したときでも、変更を検知してくれるのだが、ファイル名の小文字を一部大文字にしただけでは検知されなかったので備忘録。 &n …

XAMPPのShellを開けない。0xc0000142

Windows10パソコンにXAMPPを入れて、Shellを起動したら下記のようなエラーが出た。   アプリケーションエラー。0xc0000142。 読めない英語だけど、解決法らしきものを見 …

Windows マスターブラウザの確認方法

マイネットワークを開くとアクセスできる機器やPCの一覧が表示される。   それは聞いた話、個々のPCが記憶しているのではなく、マスターブラウザが管理しているという。   マスターブ …

Amazonアソシエイトリンクを横に並べる方法

今回の記事は私の備忘録みたいなものです。   Amazonのアソシエイトリンクって縦長の小さいやつ。 あれを複数並べたときに縦並びになるので、それを横並びにしたいという話。   [ …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に