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で指定する。

 

 

プログラム開始時に走らせるサブルーチン *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 RDi 入力や削除ができないおかしい

LPEXエディタを使っていてRPGIVやフリーフォームを使っている中で、いつからか入力がおかしくなったことについて直し方。   その症状は入力ができなかったり削除ができなかったり。 しかも1 …

gitでプッシュしたのに効かない件

ブログなので皆さまのお役にたてば幸いですが、あくまで自分の忘備録なので、昔話も含めて書いております。ご了承ください。 環境は、 開発環境は自席PC(ローカル) Windows10PC XAMPP7.2 …

AS400/IBMi 便利に思ったこと備忘録

収拾つかなくなりそうな匂いがプンプンしますが、自分のために便利だとおもったことを随時更新していきます。   論理ファイルでフィールドをつなげる CONCAT 物理ファイルで例えば支店コード2 …

AS400/IBMi 長いカラムを途中で折り返しで表示する

長いカラムを画面表示で端で折り返すのは自動的にAS400がやってくれる。同じ長さのカラムをDDS に用意すればいい。 ただ、このやり方では一番右端まで表示してから折り返すことになる。これを途中で折り返 …

AS400/IBMi 画面背景色と文字色の変更とプログラミングフォントの採用

もう平成も終わろうとしているのに、いまだにグリーン画面とはおつかれさまだな。   Web開発ではAtomを使っているが、Atomならデフォルトで背景色は闇夜のように暗い黒ではなく、いい感じの …

Adsense広告


文字で検索

人気記事

なぜだか人気記事

読んでほしい順に