Rocket® Enterprise Developer (formerly a product of Micro Focus or formerly a product of Open Text) documentation, created before Rocket Software acquired certain products from OpenText, may include outdated references to "Micro Focus" or "OpenText", both of which are trademarks of OpenText or its affiliates. Rocket Software is not affiliated with Micro Focus or OpenText and has since rebranded these products as Rocket® products. You may also encounter outdated links in this documentation. If you do, please contact Rocket Support (support@rocketsoftware.com) for assistance.
TYPE
TYPE 属性を使用すると、構造体メンバーおよび属性を別の宣言から継承できます。次の形式で記述します。reference は変数の参照です。
TYPE(reference)
または
TYPE reference
たとえば、変数 INTEGER が固定 2 進数として宣言されている場合、固定 2 進数として宣言する必要がある別の変数を TYPE(INTEGER) として宣言できます。次に例を示します。
DECLARE INTEGER FIXED BIN(31); /* TYPE DEFINITION */ DECLARE CODE TYPE(INTEGER); /* TYPED VARIABLE */
この例では、INTEGER から CODE に属性がコピーされるため、CODE の宣言は次のようになります。
DECLARE CODE FIXED BIN(31);
前記の例では、INTEGER は型定義と呼ばれ、CODE は型付き変数と呼ばれます。型定義は通常の変数宣言です。型定義には記憶域が割り当てられないため、基底付き記憶域クラスを指定できます。
次の例では、TYPE 属性を使用して、ある宣言から別の宣言に構造体メンバーを複製しています。
DECLARE 1 TEMPLATE BASED, /* TYPE DEFINITION */ 2 NAME CHAR(45), 2 SALARY FIXED BIN(15), 2 EMP_NO FIXED BIN(15); DECLARE EMPLOYEE_INFO TYPE TEMPLATE; /* TYPED VARIABLE */
TEMPLATE のメンバーが複製されて EMPLOYEE_INFO の宣言が展開されると、EMPLOYEE_INFO の宣言は次のようになります。
DECLARE 1 EMPLOYEE_INFO 2 NAME CHAR(45), 2 SALARY FIXED BIN(15), 2 EMP_NO FIXED BIN(15);
TYPE 属性は、次のいずれかの場所で使用できます。
- 変数宣言内
- パラメーター宣言内
- ENTRY 定数または ENTRY 変数の明示的な宣言内のパラメーター記述
- PROCEDURE 文または ENTRY 文の RETURNS オプション内
- ENTRY 宣言の RETURNS 属性として
次の例は、TYPE 属性のすべての使用方法を示しています。
/*----------- TYPE DEFINITION -----------*/ /* (LINE MAY ALSO BE USED AS A VARIABLE) */ DECLARE LINE CHAR(80) VARYING; /*---------------------------------------*/
/* VARIABLE DECLARATION */ DECLARE FORMAT_LINE TYPE(LINE); /* PARAMETER DECLARATION */ DECLARE PARAM TYPE(LINE); /* PARAMETER DESCRIPTOR */ DECLARE WRITE_LINE ENTRY(TYPE(LINE)); /* RETURNS OPTION IN PROCEDURE STATEMENT */ GET_LINE: PROC RETURNS(TYPE(LINE)); /* RETURNS OPTION IN ENTRY STATEMENT */ READ_LINE: ENTRY RETURNS(TYPE(LINE)); /* RETURNS ATTRIBUTE IN DECLARE STATEMENT (USING ALTERNATE SYNTAX)*/ DECLARE GET_LINE ENTRY RETURNS(TYPE LINE);
型付き変数は、次の属性のみを型定義から継承できます (記憶域クラスは継承されません)。
- ALIGNED
- BINARY
- BIT
- CHARACTER
- DECIMAL
- ENTRY
- FILE
- FIXED
- FLOAT
- LABEL
- PICTURE
- OPTIONS
- POINTER
- RETURNS
- UNALIGNED
- UNION
- VARIABLE
- VARYING
- 文字列の長さ
- 演算精度
- 配列の次元