且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

简单的ALV显示信息

更新时间:2022-08-16 19:48:03

  在ALV开发中有两个重要的对象:LAYOUT和FIELDCAT。LAYOUT主要用于设置ALV的输出格式,如输出字段的颜色、表格中的线条等;而FIELDCAT主要用于ALV结构定义,包括具体字段的名称、类型、格式等属性,它们同属于类型池SLIS,在ALV开发中必须导入类型池SLIS。
      [For Example]

   *ALV使用到的类型池
   TYPE-POOLS:SLIS.

   DATA wa_alv_field TYPE SLIS_FIELDCAT_ALV.

   *列表字段 (綁定FIELD)无HEADLER LINE
     DATA wa_alv_fieldcat TYPE SLIS_T_FIELDCAT_ALV.

   *DATA wa_alv_fieldcat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE. "有HEADLINE LINE定义的FIELDCAT

   *定义数据內表
     DATA wa_spfli LIKE TABLE OF SPFLI WITH HEADER LINE.

   *內表賦值
     SELECT INTO TABLE wa_spfli FROM SPFLI.

   *定義四FIELDCAT信息
     wa_alv_field-COL_POS = 1. *ALV列索引
     wa_alv_field-FIELDNAME = 'CARRID'.*ALV绑定字段
     wa_alv_field-SELTEXT_M = '航班承運人'.*ALV表头显示的文字
     APPEND wa_alv_field TO wa_alv_fieldcat.*內表賦值,无HEADER LINE只能APPEND...TO...


  *有HEADER LINE 的FIELDCAT可以直接用对象赋值给对象

  *wa_alv_fieldcat-COL_POS = 1.
  *wa_alv_fieldcat-FIELDNAME = 'CARRID'.
  *wa_alv_fieldcat-SELTEXT_M = '航班承運人'.
  *APPEND wa_alv_fieldcat.


     wa_alv_field-COL_POS = 2.
     wa_alv_field-FIELDNAME = 'CONNID'.
     wa_alv_field-SELTEXT_M = '航班數量'.
     APPEND wa_alv_field TO wa_alv_fieldcat.

     wa_alv_field-COL_POS = 3.
     wa_alv_field-FIELDNAME = 'CITYFROM'.
     wa_alv_field-SELTEXT_M = '起飛城市'.
     APPEND wa_alv_field TO wa_alv_fieldcat.

     wa_alv_field-COL_POS = 4.
     wa_alv_field-FIELDNAME = 'CITYTO'.
     wa_alv_field-SELTEXT_M = '目標城市'.
     APPEND wa_alv_field TO wa_alv_fieldcat.

     wa_alv_field-COL_POS = 5.
     wa_alv_field-FIELDNAME = 'AIRPFROM'.
     wa_alv_field-SELTEXT_M = '部門機場'.
     APPEND wa_alv_field TO wa_alv_fieldcat.

     wa_alv_field-COL_POS = 6.
     wa_alv_field-FIELDNAME = 'AIRPTO'.
     wa_alv_field-SELTEXT_M = '目地機場'.
     APPEND wa_alv_field TO wa_alv_fieldcat.
    

  *調用ALV顯示表單
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "'REUSE_ALV_LIST_DISPLAY' 樣式風格有點迥異
     EXPORTING
       IT_FIELDCAT = wa_alv_fieldcat *设置ALV显示风格 对于无HEADER LINE 也可以用wa_alv_fieldcat[],然而有HEADER LINE的只能用后者,否则程序将报错,有无HEADER LINE的FIELDCAT加上[]取回的都是表身吧。
     TABLES
       T_OUTTAB = wa_spfli.

  程序运行界面如下:
      简单的ALV显示信息