最近三个月内的销售订单信息(包含当月),双击行项目,可进入VA03查看。
REPORT ztest_alv001.
TABLES:vbap.
TYPE-POOLS:slis.
DATA:
t_fieldcat TYPE slis_t_fieldcat_alv,
fs_fieldcat LIKE LINE OF t_fieldcat,
w_prog TYPE sy-repid.
DATA: l_user_command TYPE slis_formname VALUE 'USER_COMMAND'.
DATA: w_fdate LIKE sy-datum.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
erdat LIKE vbap-erdat,
END OF t_vbap.
START-OF-SELECTION.
PERFORM. gettime.
PERFORM. getdata.
PERFORM. fieldcat.
IF NOT t_vbap[] IS INITIAL.
w_prog = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_prog
i_callback_user_command = l_user_command
it_fieldcat = t_fieldcat
TABLES
t_outtab = t_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
ELSE.
MESSAGE 'DATA WAS NOT FOUND' TYPE 'I' .
STOP.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GETTIME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM. gettime .
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
EXPORTING
currdate = sy-datum
backmonths = 003
IMPORTING
newdate = w_fdate.
ENDFORM. " GETTIME
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM. getdata .
SELECT vbeln posnr matnr erdat
INTO TABLE t_vbap
FROM vbap
WHERE erdat GE w_fdate.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM. fieldcat .
CLEAR fs_fieldcat .
fs_fieldcat-fieldname = 'VBELN'.
fs_fieldcat-seltext_l = 'SALES ORDER'.
fs_fieldcat-col_pos = 1.
fs_fieldcat-key = 'X'.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat .
fs_fieldcat-fieldname = 'POSNR'.
fs_fieldcat-seltext_l = 'ITEM'.
fs_fieldcat-col_pos = 2.
fs_fieldcat-key = ' '.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat .
fs_fieldcat-fieldname = 'MATNR'.
fs_fieldcat-seltext_l = 'MATERIAL NUMBER'.
fs_fieldcat-col_pos = 3.
fs_fieldcat-key = ' '.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat.
fs_fieldcat-fieldname = 'ERDAT'.
fs_fieldcat-seltext_l = 'DATE'.
fs_fieldcat-col_pos = 5.
fs_fieldcat-key = ' '.
APPEND fs_fieldcat TO t_fieldcat.
ENDFORM. " FIELDCAT
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
FORM. user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
READ TABLE t_vbap INDEX selfield-tabindex.
CHECK sy-subrc = 0.
CASE ucomm.
WHEN 'BEAN' OR '&IC1'.
SET PARAMETER ID 'AUN' FIELD t_vbap-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. "USER_COMMAND
output:
双击行项目进入VA03
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13890288/viewspace-630508/ ,如需转载,请注明出处,否则将追究法律责任。