ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ALV(1)

ALV(1)

原创 Linux操作系统 作者:kity534 时间:2010-03-26 19:46:26 0 删除 编辑

最近三个月内的销售订单信息(包含当月),双击行项目,可进入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/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: ALV(2)
请登录后发表评论 登录
全部评论

注册时间:2009-06-03

  • 博文量
    9
  • 访问量
    8448