INFDS 装置固有のフィードバックの例

装置固有のフィードバック・セクションのフィールドが入る INFDS を指定するた めには、次の記入を行うことができます。
  • ファイル仕様書でファイル情報データ構造の名前と一緒に INFDS キ ーワードを指定します。
  • 定義仕様書で使用したいファイル情報データ構造およびサブフィールドを指定 します。
  • 変更の始まりInformation Center の情報を使用して、INFDS に入れたいフィールドを決めます。INFDS の入出力フィードバック・セクションのサブフィールドの開始位置と 長さを計算するには、Information Centerに 示されているオフセット、データ・タイプ、および長さを使用し、次の計算を行います。

       開始位置 = 367 + オフセット
       文字の長さ = 長さ (バイト数)

    変更の始まり例えば、データベース・ファイルの 相対レコード番号の場合は、Information Centerには次のように示されています。

       オフセット = 30
       データ・タイプは 2 進数
       長さ = 4

    変更の終わり
    したがって、

       開始位置 = 367 + 30 = 397
       RPG データ・タイプは整数
       長さ = 10 桁

    変更の始まり以下の例の DBFBK データ構造のサブフィールド DB_RRN を参照してください。変更の終わり

    変更の終わり
変更の始まり
図 1. 印刷装置固有のフィードバック情報を持つ INFDS のコーディング例
   DCL-F MYFILE PRINTER(132) INFDS(PRTFBK);

   DCL-DS PRTFBK;
     CUR_LINE      INT(5)     POS(367);    // Current line num
     CUR_PAGE      INT(10)    POS(369);    // Current page cnt
     // If the first bit of PRT_FLAGS is on, the spooled file has been
     // deleted.  Use TESTB X'80' or TESTB '0' to test this bit.
     PRT_FLAGS     CHAR(1)    POS(373);    // Print Flags
     PRT_MAJOR     CHAR(2)    POS(401);    // Major ret code
     PRT_MINOR     CHAR(2)    POS(403);    // Minor ret code
   END-DS;
変更の終わり 変更の始まり
図 2. データベース固有のフィードバック情報を持つ INFDS のコーディング例
   DCL-F MYFILE DISK(*EXT) INFDS(DBFBK);

   DCL-DS DBFBK;
     FDBK_SIZE     INT(10)    POS(367);    // Current line num
     JOIN_BITS     INT(10)    POS(371);    // JFILE bits
     LOCK_RCDS     INT(5)     POS(377);    // Nbr locked rcds
     POS_BITS      CHAR(1)    POS(385);    // File pos bits
     DLT_BITS      CHAR(1)    POS(384);    // Rcd deleted bits
     NUM_KEYS      INT(5)     POS(387);    // Num keys (bin)
     KEY_LEN       INT(5)     POS(393);    // Key length
     MBR_NUM       INT(5)     POS(395);    // Member number
     DB_RRN        INT(10)    POS(397);    // Relative-rcd-num
     KEY           CHAR(2000) POS(401);    // Key value (max size 2000)
   END-DS;
変更の終わり 変更の始まり
図 3. ICF 固有のフィードバック情報を持つ INFDS のコーディング例
   DCL-F MYFILE WORKSTN(*EXT) INFDS(ICFFBK);

   DCL-DS ICFFBK;
     ICF_AID       CHAR(1)    POS(369);    // AID byte
     ICF_LEN       INT(10)    POS(372);    // Actual data len
     ICF_MAJOR     CHAR(2)    POS(401);    // Major ret code
     ICF_MINOR     CHAR(2)    POS(403);    // Minor ret code
     SNA_SENSE     CHAR(8)    POS(405);    // SNA sense rc
     SAFE_IND      CHAR(1)    POS(413);    // Safe indicator
     RQSWRT        CHAR(1)    POS(415);    // Request write
     RMT_FMT       CHAR(10)   POS(416);    // Remote rcd fmt
     ICF_MODE      CHAR(8)    POS(430);    // Mode name
   END-DS;
変更の終わり 変更の始まり
図 4. 表示装置固有のフィードバック情報を持つ INFDS のコーディング例
   DCL-F MYFILE WORKSTN(*EXT) INFDS(DSPFBK);

   DCL-DS DSPFBK;
     DSP_FLAG1     CHAR(2)    POS(367);    // Display flags
     DSP_AID       CHAR(1)    POS(369);    // AID byte
     CURSOR        CHAR(2)    POS(370);    // Cursor location
     DATA_LEN      INT(10)    POS(372);    // Actual data len
     SF_RRN        INT(5)     POS(376);    // Subfile rrn
     MIN_RRN       INT(5)     POS(378);    // Subfile min rrn
     NUM_RCDS      INT(5)     POS(380);    // Subfile num rcds
     ACT_CURS      CHAR(2)    POS(382);    // Active window cursor location
     DSP_MAJOR     CHAR(2)    POS(401);    // Major ret code
     DSP_MINOR     CHAR(2)    POS(403);    // Minor ret code
   END-DS;
変更の終わり