*&---------------------------------------------------------------------*
*& Report ZMMBD00005_V
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMMBD00005_V.
INCLUDE: ZSD_AUTHORIT.
TABLES:ZMMBD00005.
DATA: IT_SELLIST LIKE VIMSELLIST OCCURS 0 WITH HEADER LINE.
DATA: IT_VIMSELLIST LIKE VIMSELLIST OCCURS 1 WITH HEADER LINE.
DATA: IT_VIMDESC LIKE VIMDESC OCCURS 1 WITH HEADER LINE.
DATA: IT_VIMNAMTAB LIKE VIMNAMTAB OCCURS 1 WITH HEADER LINE.
DATA: IT_VIMEXCLFUN LIKE VIMEXCLFUN OCCURS 1 WITH HEADER LINE.
DATA: G_TABLE LIKE DD02V-TABNAME VALUE 'ZMMBD00005'.
DATA: G_ACTION(1).
DATA: L_ZMMBD00005 LIKE ZMMBD00005 OCCURS 0 WITH HEADER LINE.
RANGES: R_CUSPF FOR ZMMBD00005-CUSPF,
R_FG_STY FOR ZMMBD00005-FG_STYLE,
R_MVGR1 FOR ZMMBD00005-MVGR1.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_CUSPF LIKE ZMMBD00005-CUSPF OBLIGATORY MEMORY ID CUSPF,
P_FG_STY LIKE ZMMBD00005-FG_STYLE,
P_MVGR1 LIKE ZMMBD00005-MVGR1.
SELECTION-SCREEN:END OF BLOCK B1.
AT SELECTION-SCREEN.
PERFORM CHECK_AUTH.
START-OF-SELECTION.
G_ACTION = 'U'.
CALL FUNCTION 'ENQUEUE_EZPACK'
EXPORTING
MODE_ZMMBD00005 = 'E'
MANDT = SY-MANDT
CUSPF = P_CUSPF
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
G_ACTION = 'S'.
ENDIF.
CALL FUNCTION 'VIEW_GET_DDIC_INFO'
EXPORTING
VIEWNAME = G_TABLE
TABLES
SELLIST = IT_VIMSELLIST
X_HEADER = IT_VIMDESC
X_NAMTAB = IT_VIMNAMTAB
EXCEPTIONS
NO_TVDIR_ENTRY = 1
TABLE_NOT_FOUND = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
ENDIF.
REFRESH: R_CUSPF, R_FG_STY, R_MVGR1.
IF P_CUSPF IS NOT INITIAL.
R_CUSPF-SIGN = 'I'. R_CUSPF-OPTION = 'EQ'.
R_CUSPF-LOW = P_CUSPF. APPEND R_CUSPF.
ENDIF.
IF P_FG_STY IS NOT INITIAL.
R_FG_STY-SIGN = 'I'.
R_FG_STY-OPTION = 'EQ'.
R_FG_STY-LOW = R_FG_STY.
APPEND R_FG_STY.
ENDIF.
IF P_MVGR1 IS NOT INITIAL.
R_MVGR1-SIGN = 'I'. R_MVGR1-OPTION = 'EQ'.
R_MVGR1-LOW = P_CUSPF. APPEND R_MVGR1.
ENDIF.
SELECT * INTO TABLE L_ZMMBD00005
FROM ZMMBD00005
WHERE CUSPF IN R_CUSPF
AND FG_STYLE IN R_FG_STY
AND MVGR1 IN R_MVGR1.
SORT L_ZMMBD00005.
EXPORT L_ZMMBD00005 TO MEMORY ID 'M1' .
CALL FUNCTION 'VIEW_MAINTENANCE'
EXPORTING
VIEW_ACTION = G_ACTION
VIEW_NAME = G_TABLE
TABLES
X_HEADER = IT_VIMDESC
X_NAMTAB = IT_VIMNAMTAB
DBA_SELLIST = IT_VIMSELLIST
EXCL_CUA_FUNCT = IT_VIMEXCLFUN
EXCEPTIONS
FOREIGN_LOCK = 2
SYSTEM_FAILURE = 11
OTHERS = 15.
IF SY-SUBRC <> 0.
ENDIF.
*&---------------------------------------------------------------------*
*& Form CHECK_AUTH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHECK_AUTH .
DATA: L_VKGRP LIKE ZSDBD00001-VKGRP,
L_ERROR(1),
L_ACTVT TYPE LINE VALUE '03'.
CLEAR: L_VKGRP, L_ERROR .
SELECT SINGLE VKGRP INTO L_VKGRP
FROM ZSDBD00001
WHERE CUSPF = P_CUSPF.
IF SY-SUBRC = 0.
PERFORM F_SD_CHECK_SALES_GROUP_VSN2
USING '' L_VKGRP L_ACTVT
CHANGING L_ERROR.
IF L_ERROR = 'Y'.
MESSAGE ID 'ZSD' TYPE 'E' NUMBER '004' WITH '' L_VKGRP .
ENDIF.
ENDIF.
ENDFORM. " CHECK_AUTH
对应maintain view中event:AA对应FORM代码
FORM INITIAL_DATA.
DATA: L_ZMMBD00005 LIKE ZMMBD00005 OCCURS 0 WITH HEADER LINE.
IMPORT L_ZMMBD00005 FROM MEMORY ID 'M1'.
total[] = L_ZMMBD00005[].
extract[] = L_ZMMBD00005[].
ENDFORM. "INITIAL_DATA