转 ALV基础知识

ALV基础知识  

一、ALV基础
ALV :Application List viewer。
样式:1.REUSE_ALV_GRID_DISPLAY ; 

     2.REUSE_ALV_LIST_DISPLAY。

 

二、定义ALV输出
*&---------------------------------------------------------------------*
*&     Form  frm_alv_display
*&---------------------------------------------------------------------*
*      text
*----------------------------------------------------------------------*
FORM frm_alv_display.
  TYPE-POOLS:slis.                        "调用类型组

 

  DATA: gw_layout TYPEslis_layout_alv.     "ALV格式
  DATA: myrepid LIKEsy-repid.             "程序为当前程序
  DATA: allfields TYPE slis_t_fieldcat_alv."用来存储将要在ALV区域显示出来的表列名及数据
  DATA: wa_allfields TYPE LINE OFslis_t_fieldcat_alv.  "用来存储每一列的字段名和描述
*  DATA: e_status TYPE slis_forname VALUE'STANDARD_ER01'.   "ALV自定义非标准按钮

 

  gw_layout-box_fieldname ='TBKEY'.        "定义选择行标识
  gw_layout-colwidth_optimize ='X'.        "自动调整列宽
  gw_layout-zebra  ='X'.                    "变换行颜色

 

  myrepid = sy-repid.

 

  DATA: pos TYPE i.
  DEFINEalv_append_field.               "定义调用列变量
   wa_allfields-col_pos  =pos.           "列标志
   wa_allfields-fieldname  =&1.          "字段名
   wa_allfields-seltext_l =&2.           "字段描述
*   wa_allfields-icon =&3.                "以图标来显示
*   wa_allfields-no_zero =&3.            "去0
    appendwa_allfields toallfields.      "写进所标志的当前列取得的字段名和描述
    clearwa_allfields.
    pos = pos +1.                       "进入下一列
  END-OF-DEFINITION.

 

  REFRESH allfields.
  pos = 1.
  CLEAR wa_allfields.
  alv_append_field '字段名' '字段描述' .


  CALL FUNCTION'REUSE_ALV_GRID_DISPLAY'  "statt LIST
      EXPORTING
           i_callback_program      = myrepid
*           i_callback_pf_status_set = e_status
           is_layout               = gw_layout
*           i_callback_user_command = 'USER_COMMAND'
           it_fieldcat             = allfields
           i_save                  = 'A'
      TABLES
           t_outtab                = itab_out
      EXCEPTIONS
           program_error           = 1
           OTHERS                  = 2.
ENDFORM.                   "frm_alv_display

 

四、ALV使用注意事项
   1.在ALV中,需要注意所有添加的需要显示的列,都必须在相应的内表中有对应的字段,否则,只要使用合计或者分类汇总都会导致程序的崩溃。

    2.在SAPABAP程序中,字符串的大小写很重要,在单引号包围的字符串中,一般来说都应该用大写,特别是在调用一些系统的方法时传入字符串参数时,否则就会出现Perform_not_found的系统错误。

   3.另外,传入到ALV中的列对应的字段名称也必须使用大写字母,否则数据不会显示出来

posted @ 2014-02-24 21:35  qdxjmei  阅读(195)  评论(0编辑  收藏  举报