如何从程式中传入内表中的数据到maintain view, 以便数据显示时按照某两个栏位排序

 

*&---------------------------------------------------------------------*
*& 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_VKGRPL_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 vieweventAA对应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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值