HIman написал(а):
А малюсенький примерчик, можно?
Пожалуйста
FUNCTION Z_MONTH_2_QUART.
*"--------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(I_AREA) TYPE UPC_Y_AREA
*" VALUE(I_VARIABLE) TYPE UPC_Y_VARIABLE
*" VALUE(I_CHANM) TYPE UPC_Y_CHANM
*" VALUE(ITO_CHANM) TYPE UPC_YTO_CHA
*" EXPORTING
*" REFERENCE(ETO_CHARSEL) TYPE UPC_YTO_CHARSEL
*"--------------------------------------------------------------------
CONSTANTS:
L_SOURCE_VAR TYPE UPC_Y_VARIABLE VALUE 'YMONTH',
L_SOURCE_AREA TYPE UPC_Y_AREA VALUE 'YUBM',
L_USE_RESTRICTED_VALUES TYPE BOOLE-BOOLE VALUE 'X',
L_BUFFER_CALL TYPE BOOLE-BOOLE VALUE ' '.
DATA:
Q TYPE C LENGTH 5,
M TYPE C LENGTH 6,
M1 TYPE N LENGTH 2,
L_SUBRC LIKE SY-SUBRC,
LS_RETURN LIKE BAPIRET2,
L_TYPE LIKE UPC_VAR-VARTYPE,
LTO_VARSEL_ALL TYPE UPC_YTO_CHARSEL,
LTO_VARSEL TYPE UPC_YTO_CHARSEL,
LTO_VAR TYPE UPC_YTO_CHARSEL,
LS_VARSEL TYPE UPC_YS_CHARSEL,
LS_LINE LIKE LINE OF LTO_VARSEL,
LTO_CHANM TYPE UPC_YTO_CHA.
*Читает значение переменной
CALL FUNCTION 'Z_VARIABLE_GET_DETAIL'
EXPORTING
I_AREA = L_SOURCE_AREA
I_VARIABLE = L_SOURCE_VAR
I_BUFFER = L_BUFFER_CALL
IMPORTING
E_SUBRC = L_SUBRC
ES_RETURN = LS_RETURN
E_TYPE = L_TYPE
ETO_VARSEL_ALL = LTO_VARSEL_ALL
ETO_VARSEL = LTO_VARSEL
ETO_CHANM = LTO_CHANM.
REFRESH ETO_CHARSEL.
LOOP AT LTO_VARSEL INTO LS_LINE.
LS_VARSEL-CHANM = '0CALQUARTER'.
LS_VARSEL-SIGN = LS_LINE-SIGN.
LS_VARSEL-SEQNO = LS_LINE-SEQNO.
M = LS_LINE-LOW.
Q+0(4) = M+0(4).
M1 = M+4(2).
IF ( M1 >= 1 ) AND ( M1 <= 3 ).
Q+4(1) = '1'.
ELSEIF ( M1 >= 4 ) AND ( M1 <= 6 ).
Q+4(1) = '2'.
ELSEIF ( M1 >= 7 ) AND ( M1 <= 9 ).
Q+4(1) = '3'.
ELSEIF ( M1 >= 10 ) AND ( M1 <= 12 ).
Q+4(1) = '4'.
ELSE.
Q = ''.
ENDIF.
LS_VARSEL-LOW = Q.
M = LS_LINE-HIGH.
Q+0(4) = M+0(4).
M1 = M+4(2).
IF ( M1 >= 1 ) AND ( M1 <= 3 ).
Q+4(1) = '1'.
ELSEIF ( M1 >= 4 ) AND ( M1 <= 6 ).
Q+4(1) = '2'.
ELSEIF ( M1 >= 7 ) AND ( M1 <= 9 ).
Q+4(1) = '3'.
ELSEIF ( M1 >= 10 ) AND ( M1 <= 12 ).
Q+4(1) = '4'.
ELSE.
Q = ''.
ENDIF.
LS_VARSEL-HIGH = Q.
LS_VARSEL-OPT = LS_LINE-OPT.
APPEND LS_VARSEL TO ETO_CHARSEL.
ENDLOOP.
ENDFUNCTION.