abap 定义变量 like、type、for的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abap 定义变量 like、type、for的区别相关的知识,希望对你有一定的参考价值。
TYPE是确定数据对象所属的数据类型,参考数据字典类型和内置数据类型,比如:
DATA:LF_TXT(15) TYPE C VALUE ‘Hello world’.
注解:数据对象LF_TXT的数据类型就是C,长度是15,初始值是Hello world
LIKE也是确定数据对象的所属类型,参考数据对象,比如:
DATA:LF_TXB LIKE LF_TXT VALUE 'How are you?'.
注解:数据对象LF_TXB的类型是参考数据对象LF_TXT声明的,所以,LF_TXB的数据类型是
C,长度是15,初始值是How are you?.
FOR有两种用法(选择屏幕中定义复杂选择标准、声明RANGE内表),比如:
SELECT-OPTIONS seltab FOR MARA-MATNR.
RANGES: lr_matnr FOR MARA-MATNR.
以上两个声明的前提,必须在之前增加一句话 TABLES:MARA.
RANGE表在ABAP中的使用非常广泛。
参考技术A type 直接声明数据类型,如 DATA L_NO1 TYPE C.like 是通过数据元素或对象间接引用,如 DATA L_NO2 LIKE MARA-MATNR.
FOR ? 定义变量中没有FOR这个关键字吧。
你还是说的 SELECT-OPTIONS S_MTART FOR MARC-MTART. 参考技术B 知道怎么用就行了。
测试ABAP 分配WBS元素结算规则
ABAP 分配WBS元素结算规则
DATA : LT_COBRB LIKE TABLE OF COBRB WITH HEADER LINE.
DATA : LV_OBJNR LIKE PRPS-OBJNR.
DATA : LV_TYPE TYPE CHAR01,
LV_MSG TYPE CHAR255.
PARAMETERS : P_PSPNR TYPE PS_POSNR OBLIGATORY.
PARAMETERS : P_ANLN1 TYPE ANLN1 OBLIGATORY.
START-OF-SELECTION.
*** 获取对象号
SELECT SINGLE OBJNR
FROM PRPS
INTO LV_OBJNR
WHERE PSPNR = P_PSPNR.
*** 检查结算规则是否存在
SELECT *
FROM COBRB
INTO CORRESPONDING FIELDS OF TABLE LT_COBRB
WHERE OBJNR = LV_OBJNR.
IF LT_COBRB[] IS NOT INITIAL.
CALL FUNCTION 'K_SRULE_SAVE_UTASK'
TABLES
* T_COBRA_INSERT =
* T_COBRA_UPDATE =
* T_COBRA_DELETE =
* T_COBRB_INSERT =
* T_COBRB_UPDATE =
T_COBRB_DELETE = LT_COBRB[]
EXCEPTIONS
SRULE_UTASK_ERROR = 1.
IF SY-SUBRC = 0 .
COMMIT WORK.WAIT UP TO 1 SECONDS.
ELSE.
LV_TYPE = 'E'.
LV_MSG = '结算规则存在且删除失败'.
EXIT.
ENDIF.
ENDIF.
CLEAR:LT_COBRB[].
*** 结算类型:FUL 完全结算
CALL FUNCTION 'CONVERSION_EXIT_PERBZ_INPUT'
EXPORTING
INPUT = 'FUL'
IMPORTING
OUTPUT = LT_COBRB-PERBZ.
*** 科目分配种类:FXA 固定资产
CALL FUNCTION 'CONVERSION_EXIT_OBART_INPUT'
EXPORTING
INPUT = 'FXA '
IMPORTING
OUTPUT = LT_COBRB-KONTY
EXCEPTIONS
NOT_FOUND = 1.
LT_COBRB-ANLN1 = P_ANLN1.
LT_COBRB-ANLN2 = '0000'.
LT_COBRB-OBJNR = LV_OBJNR.
LT_COBRB-LFDNR = '001'.
LT_COBRB-KOKRS = 'CN30'.
LT_COBRB-PROZS = '100.00'.
LT_COBRB-BUKRS = 'CN30'.
APPEND LT_COBRB.
CALL FUNCTION 'K_SRULE_SAVE_UTASK'
TABLES
* T_COBRA_INSERT =
* T_COBRA_UPDATE =
* T_COBRA_DELETE =
T_COBRB_INSERT = LT_COBRB[]
* T_COBRB_UPDATE =
* T_COBRB_DELETE =
EXCEPTIONS
SRULE_UTASK_ERROR = 1.
IF SY-SUBRC = 0 .
LV_TYPE = 'E'.
LV_MSG = '结算规则维护成功'.
COMMIT WORK.
ELSE.
LV_TYPE = 'E'.
LV_MSG = '结算规则维护失败'.
EXIT.
ENDIF.
END-OF-SELECTION.
WRITE : LV_TYPE,LV_MSG.
以上是关于abap 定义变量 like、type、for的区别的主要内容,如果未能解决你的问题,请参考以下文章