Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92138
  • 博文数量: 39
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-30 17:39
文章分类

全部博文(39)

文章存档

2011年(1)

2009年(21)

2008年(17)

我的朋友

分类:

2009-04-02 09:33:06

1.定义ALV 相关TABLES:BESG....
2.定义需要显示的ALV字段:DATA: BEGIN 0F  ITAB OCCURS 0 ,
                            BOX(1) TYPE C, "选择标志
                              STATUS(4TYPE C, "状态
                             BUKRS LIKE  BKPF-BUKRS,
                              ....
                            END OF ITAB.
TYPE-POOLS: SILIS.
INCLUDE .
INCLUDE .
 
DATA:   
  POS TYPE I VALUE 1,
  I_FIELDCAT_ALV TYPE SLIS_T_FIELDCAT_ALV, "定义列标题(属性/信息)
  I_FIELDCAT TYPE SLIS_FIELDCAT_ALV,  
  I_LAYOUT TYPE SLIS_LAYOUT_ALV,           "alv格式     
  I_EVENTS TYPE SLIS_T_EVENT,              "alv事件
  W_EVENTS LIKE LINE OF I_EVENTS,
  I_LIST_COMMENTS TYPE SLIS_T_LISTHEADER,  "alv表单标题区域设置
  W_LIST_COMMENTS LIKE LINE OF I_LIST_COMMENTS,
  W_REPID LIKE SY-REPID.
 
   < SELECTION-SCREEN >
   START OF SELECTION.
       PERFORM GET_DATA.
   END OF SELECTION.
 
   PERFORM LAYOUT_BUILD .
  PERFORM EVENTS_BUILD .
  PERFORM FIELDS_BUILD
.
  PERFORM DISPLAY_ALV.
 
 
 
 
  FORM LAYOUT_BUILD.
   I_LAYOUT-ZEBRA = 'X'.
*  i_layout-detail_popup = 'X'.
  I_LAYOUT-NO_VLINE = ' '.
  I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
*  i_layout-detail_initial_lines = 'X'.
*  i_layout-detail_titlebar = '详细内容'.
*  i_layout-f2code = '&ETA'.
  I_LAYOUT-NO_COLHEAD = ' '.
  W_REPID = SY-REPID.
  ENDFORM.
  FORM EVENTS_BUILD .
        CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE           = 0
    IMPORTING
      ET_EVENTS             = I_EVENTS .
*  read table i_events with key name = 'TOP_OF_PAGE'
*                      into w_events.
*  if sy-subrc = 0.
*    move 'ALV_TOP_OF_PAGE' to w_events-form.
*    modify i_events from w_events index sy-tabix.
*  endif.
  READ TABLE I_EVENTS INTO W_EVENTS WITH KEY NAME = 'USER_COMMAND'.
  IF SY-SUBRC EQ 0.
    W_EVENTS-NAME = 'USER_COMMAND'.
    MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
  ENDIF.
 
  ENDFORM.
 
  FORM  FIELDS_BUILD.
         REFRESH I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.
  DATA COLNUM TYPE I.
  COLNUM = COLNUM + 1.
  I_FIELDCAT-COL_POS = COLNUM.
  I_FIELDCAT-FIELDNAME = 'MATNR'.
  I_FIELDCAT-SELTEXT_S = '物料编号'.
  I_FIELDCAT-SELTEXT_M = '物料编号'.
  I_FIELDCAT-SELTEXT_L = '物料编号'.
  I_FIELDCAT-OUTPUTLEN = 10.
  I_FIELDCAT-KEY = 'X'.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.
  COLNUM = COLNUM + 1.
  I_FIELDCAT-COL_POS = COLNUM.
  I_FIELDCAT-FIELDNAME = 'MAKTX'.
  I_FIELDCAT-SELTEXT_S = '物料描述'.
  I_FIELDCAT-SELTEXT_M = '物料描述'.
  I_FIELDCAT-SELTEXT_L = '物料描述'.
  I_FIELDCAT-OUTPUTLEN = 20.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.
  ENDFORM.
 
  FORM DISPLAY_ALV.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'                               "这两个地方是一定要加上的
     I_CALLBACK_PF_STATUS_SET          = 'PF_STATUS_SET'                                            "调用用户事件和按钮事件
     I_CALLBACK_PROGRAM                = W_REPID
     IS_LAYOUT                         = I_LAYOUT
     IT_FIELDCAT                       = I_FIELDCAT_ALV[]
     IT_EVENTS                         = I_EVENTS[]
     " i_grid_title                      = ''
     I_SAVE                            = 'A'
    TABLES
      T_OUTTAB                          = ITAB.
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF
  ENDFORM.
 
 
 
  FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.                                "调用的FORM
  SET PF-STATUS 'TEST1'.
ENDFORM.
 
 
  FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM                    "段程序表明了自定义按钮是做什么用的。可以在SE41
                        IS_SELFIELD TYPE SLIS_SELFIELD.                                   "中自定义返回值
  CASE I_UCOMM.
    WHEN '&IC1'.
      MESSAGE I888(SABAPDOCU) WITH '双击事件'.
    WHEN '&REFRE'.
      MESSAGE I888(SABAPDOCU) WITH '刷新事件'.
      IS_SELFIELD-REFRESH = 'X'.
      CLEAR ITAB[].
  ENDCASE.
ENDFORM
 
 
 
 
  
 
阅读(976) | 评论(0) | 转发(0) |
0

上一篇:XI交互的RFC

下一篇:内部定义方法

给主人留下些什么吧!~~