马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
【确定数据对象属性类型长度小数位....】
[2005-06-29 12:0]
确定数据对 象的属性 如果要查明 数据对象的 数据类型, 或者要在程 序的运行期 间使用其属 性,请使用 DESCRIBE 语句。语法 如下: 语法 DESCRIBE FIELD <f> [LENGTH <l>] [TYPE <t> [COMPONENTS <n>]]
[OUTPUT-LENGTH <o>] [DECIMALS <d>]
[EDIT MASK <m>].
将由语句的 参数指定的 数据对象 <f> 的属性写入 参数后的变 量。 DESCRIBE FIELDS 语句具有下 列参数: 参数 用途 LENGTH 确定字段长度 TYPE 确定数据类型 OUTPUT-LENGTH 确定输出长度 DECIMALS 确定小数位 EDIT MASK 确定转换例程 确定字段长 度 要确定数据 对象的长度 ,请利用 DESCRIBE FIELD 语句使用 LENGTH 参数,如下 所示: 语法 DESCRIBE FIELD <f> LENGTH <l>. 系统读取字 段 <f> 的长度,并 将值写入字 段 <l>。 DATA: TEXT(8), LEN TYPE I. DESCRIBE FIELD TEXT LENGTH LEN. 该示例中, 字段 LEN 包含的值为 8。 确定数据类 型 要确定字段 的数据类型 ,请利用 DESCRIBE FIELD 语句使用 TYPE 参数,如下 所示: 语法 DESCRIBE FIELD <f> TYPE <t> [COMPONENTS <n>]. 系统读取字 段 <f> 的数据类型 ,然后将值 写入字段 <t>。 除返回预定 义数据类型 C、D、F、 I、N、P、 T 和 X 外(参见 基本数据类型 - 预定义的 中的表), 该语句还返 回
s
对于带前导 符号的两字 节整型
b
对于无前导 符号的一字 节整型
h
对于内表
C
对于组件中 没有嵌套结 构的结构
C
对于组件中 至少有一个 嵌套结构的 结构
类型 s 和 b 可以来自于 对 ABAP/4 词典对象的 引用(参见 TABLES 语句),而后三 种类型则源 于用户定义 的类型。 通过选项 COMPONENTS <n>,语 句返回
u
对于组件中 没有内表的 结构
v
对于组件或 子组件中至 少有一个内 表的结构
并将结构的 直接组件的 个数写入 <n>。 TABLES SPFLI. DATA: NUMTEXT(8) TYPE N, TYP. DESCRIBE FIELD NUMTEXT TYPE TYP. WRITE TYP. DESCRIBE FIELD SPFLI-FLTIME TYPE TYP. WRITE TYP. 这产生下列 输出: N T 示例中,字 段 TYP 包含第一个 值“N”, 然后是值“ T”。 TYPES: SURNAME(20)
TYPE C,
STREET(30)
TYPE C,
ZIP_CODE(10) TYPE N,
CITY(30)
TYPE C,
PHONE(20)
TYPE N,
DATE
LIKE SY-DATUM.
TYPES: BEGIN OF ADDRESS,
NAME TYPE SURNAME,
CODE TYPE ZIP_CODE,
TOWN TYPE CITY,
STR
TYPE STREET,
END OF ADDRESS.
TYPES: BEGIN OF PHONE_LIST,
ADR TYPE ADDRESS,
TEL TYPE PHONE,
END OF PHONE_LIST.
DATA PL TYPE PHONE-LIST. DATA: TYP, N TYPE I. DESCRIBE FIELD PL TYPE TYP COMPONENTS N. WRITE: TYP, N. 该示例与 TYPES 语句 中的最后一 个示例相似 。输出如下 : u
2 此处,由于 PL 是具有 2 个直接组件 (ADR 和 TEL)而 没有内表的 结构,所以 字段 TYP 包含值‘u’ ,而 N 包含值 2。 确定输出长 度 要确定字段 的输出长度 ,请利用 DESCRIBE FIELD 语句使用 OUTPUT-LENGTH 参数,如下 所示: 语法 DESCRIBE FIELD <f> OUTPUT-LENGTH <o>. 系统读取字 段 <f> 的输出长度 ,并将值写 入字段 <o>。 DATA: FLOAT TYPE F, OUT TYPE I, LEN TYPE I. DESCRIBE FIELD FLOAT LENGTH LEN OUTPUT-LENGTH OUT. 该示例的结 果是字段 LEN 包含值 8,而字段 OUT 包含值 22。 关于输出长 度的详细信 息,参见 WRITE 语句 。 确定小数位 若要确定类 型 P 字段的小数 位的个数, 请利用 DESCRIBE FIELD 语句使用 DECIMALS 参数,如下 所示: 语法 DESCRIBE FIELD <f> DECIMALS <d>. 系统读取字 段 <f> 的小数个数 ,并将值写 入字段 <d>。 DATA: PACK TYPE P DECIMALS 2, DEC. DESCRIBE FIELD PACK DECIMALS DEC. 该示例的结 果是字段 DEC 包含值 2。 确定转换例 程 要确定 ABAP/4 词典中某字 段的转换例 程是否存在 ,如果存在 ,名称是什 么,请利用 DESCRIBE FIELD 语句使用 EDIT MASK 参数,如下 所示: 语法 DESCRIBE FIELD <f> EDIT MASK <m>. 如果 ABAP/4 词典中字段 <f> 的转换例程 存在,则系 统将其写入 字段 <m>,然 后将系统字 段 SY-SUBRC 中的返回代 码设为 0。 可以象下面 所显示的那 样,在 WRITE 语句中将字 段 <m> 直接用作格 式模板: WRITE <f> USING EDIT MASK <m>. 关于 WRITE 语句的详细
信息,参见 WRITE 语句
。如果字段 <f> 没有转换例
程,则系统
将返回代码
设为 4。 |