これまで紹介してきた組込み関数は従来できていた演算を簡単にするものばかりであったが
ここでは従来にはなかった機能の組込み関数を紹介しよう。
%FIELDS はレコードの中の指定したフィールドだけを更新する組込み関数である。
RPG でのUPDATE命令はレコード全体を更新する命令であり特定のフィールドだけを
書き換えることはできなかった。
%FIELDSを使えばUPDATE命令と組み合わせて特定の指定したフィールドだけを更新することが
できる。
UPDATEだけではどのフィールド値を更新したいためにUPDATEされたのかは
RPGの読み手に不明になるが%FIELDSを使ってどのフィールドを更新するために使用されたのかを
明確に伝えることができる。
%REPLACE の実践的な使い方を紹介しよう。
■ 効果的な組込み関数 %FIELDS の使い方の TESTFLD
ソースはこちらから
0001.00 H DFTNAME(TESTFLD) DATEDIT(*YMD/) BNDDIR('QC2LE') 0002.00 F********** 効果的な組込み関数 %FIELDS の使い方 ************************** 0003.00 FSHOHIN UF E K DISK 0004.00 F********************************************************************** 0005.00 0006.00 * CRTBNDRPG PGM(OBJLIB/TESTFLD) SRCFILE(SRCLIB/QRPGLESRC) DFTACTGRP(*NO) 0007.00 * ACTGRP(*NEW) DBGVIEW(*SOURCE) AUT(*ALL) 0008.00 0009.00 /FREE 0010.00 UPDATE SHOHINR %FIELDS(SHTANK); 0011.00 /END-FREE 0012.00 C SETON LR 0013.00 C RETURN![]()
[解説]
この例では SHOHINのレコード SHOHINR に対して SHTANK というフィールドだけを
更新するようにしている。
もちろんひとつだけのフィールドだけでなく複数個のフィールドの更新も
可能である。
組込み関数 %FIELDS は固定式記述では使用することはできず
フリー・フォーマットのときのみ使用可能である。