壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 738|回复: 0

sap部分开发笔记12

[复制链接]
发表于 2010/1/8 14:26:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服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>

除返回预定 义数据类型 CDF INP 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 01:42 , Processed in 0.016622 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表