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 *

関連記事

WordPressで作ったブログにアイコンをつける

私のブログのアイコンはこの方法でつけました。 アイコンを付けたい箇所は3ヶ所。 ブラウザのタイトル左の小さいアイコン YouTubeのチャンネルページに貼るリンク左のアイコン iPhoneお気に入りの …

Windows 右クリックからの送るに起動したいプログラムを登録する

やり方 ファイル名を指定して実行を開き(Winキー+R)、 shell:sendto と入力してエンターキーを押す。フォルダが開くのでその中にプログラムのショートカットを入れる。   使い道 …

PHP 自分の備忘録

知識 文字コード PHPはUTF-8N(ボムなし)で保存する。BOMはByte Order Markの略称。 改行コードはLinuxに入れる場合はLFで。 LF(UNIX.Linux.MacOS) L …

AS400/IBMi アクティブジョブを取得するSQL WRKACTJOB

現在開いているJOBをSQLで取得しようと思った。 要するにWRKACTJOBで表示するのと同じ内容がほしい。   理由はWeb画面にユーザーのジョブを一覧で表示して、気に入らない奴を気分次 …

AS400/IBMi RDi 入力や削除ができないおかしい

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

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に