ALV報表入門

來源:互聯網
上載者:User

  

一 .什麼是ALV

      SAP提供一套ALV(Application List viewer.)的功能模組,可以對輸出報表的樣式作修飾,提高報表輸出的可讀性和功能性,對於動態報表程式是一個很有效率的工具。一般的ALV報表有一個表頭,再加上表內容,並附加一些如排序,分類匯總,合計或下載為本地檔案等預設功能。ALV報表顯示方式基本上有2種,一種是Grid方式,一種是List方式,分別調用不同的Function來實現。

二.ALV式樣

1. REUSE_ALV_GRID_DISPLAY

 

2. REUSE_ALV_LIST_DISPLAY

 

3.ALV工具列

 

三.ALV函數的調用

      當完成從資料庫抽取資料或上傳資料,並將資料存放到內部表(IT_ABC)後,開始調用下面的ALV函數模組。

1.指定資料類型組

TYPE-POOLS: SLIS.

DATA:

IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,    "ALV輸出項目編輯用

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,     "ALV輸出項目編輯用

WA_LAYOUT   TYPE SLIS_LAYOUT_ALV.         "ALV樣式設定用

2.調出函數模組

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

   EXPORTING

       IS_LAYOUT     = WA_LAYOUT

       IT_FIELDCAT   = IT_FIELDCAT

   TABLES

       T_OUTTAB      = IT_TAB.

   ......

 3. 函數的各項說明

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

   EXPORTING

       I_STRUCTURE_NAME                       =   已經存在SAP系統中的結構

       IS_LAYOUT                                     =   布局             

       IT_FIELDCAT                                  =   自訂

       IT_SORT                                        =   對項目的一個排序

       IT_EVENTS                                    =   標題部分

   ......

四.使用ALV的注意事項

1.在ALV中,需要注意所有添加的需要顯示的列,都必須在相應的內表中有對應的欄位,否則,只要使用合計或者分類匯總都會導致程式的崩潰。

2.在SAP ABAP程式中,字串的大小寫很重要,在單引號包圍的字串中,一般來說都應該用大寫,特別是在調用一些系統的方法時傳入字串參數時,例如在ALV中,

Call Function ‘REUSE_ALV_GRID_DISPLAY’時,

傳入的下面的兩個參數:

i_callback_pf_status_set = ‘SET_PF_STATUS’

i_callback_user_command  = ‘USER_COMMAND’

就必須使用大寫字串,否則就會出現Perform_not_found的系統錯誤。

3.另外,傳入到ALV中的列對應的欄位名稱也必須使用大寫字母,否則資料不會顯示出來。

五.相關參數說明

1.構造SLIS_FIELDCAT_ALV常用參數說明

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME        = ‘MTART‘.      “指定從內表中的輸出的資料項目

WA_FIELDCAT-SELTEXT_L         = ‘品目タイプ‘.    “上面指定項目顯示時的名稱(長文本)

WA_FIELDCAT-SELTEXT_M        = ‘品目タイプ‘.    “上面指定項目顯示時的名稱(中文本)

WA_FIELDCAT-SELTEXT_S        = ‘品目タイプ‘.    “上面指定項目顯示時的名稱(短文本)

WA_FIELDCAT-REPTEXT_DDIC  = ‘品目タイプ‘.    “上面指定項目顯示時的名稱(定義文本)

WA_FIELDCAT-OUTPUTLEN        = 15.               “列的顯示寬度

WA_FIELDCAT-HOTSPOT           = ‘X’.              “設定熱點狀態

   ......

  APPEND WA_FIELDCAT TO IT_FIELDCAT.

注意:有多少個項目列要顯示就要這樣向內部表IT_FIELDCAT中追加記錄多少次。

2.構造SLIS_LAYOUT_ALV常用參數說明

 LAYOUT-ZEBRA                       = ‘X’.                        “斑馬線樣式

 LAYOUT-COLWIDTH_OPTIMIZE = 'X'.                        “列寬度自動根據內容最佳化

 LAYOUT-NO_COLHEAD             = ‘X’.                        “列名稱不顯示

 LAYOUT-NO_VLINE                  = ‘X’.                        “不表示區分用的垂直線

 LAYOUT-EDIT                          = ‘X’.                        “列值可編輯,只用於GRID

 LAYOUT-WINDOW_TITLEBAR    = ‘ALV表單的標題’.     “一行

   ......

六.通常調用所使用參數

  CALL FUNCTION'REUSE_ALV_LIST_DISPLAY'

    EXPORTING

      IT_FIELDCAT           = IT_FIELDCAT            "輸出項目列文本資訊(表頭)

      IS_LAYOUT              = L_LAYOUT                "輸出資料行表樣式資訊

    TABLES

      T_OUTTAB               = IT_ALVOUT               "輸出的資料資訊(明細)

    EXCEPTIONS

      PROGRAM_ERROR    = 1                   

      OTHERS                  = 2.    

另一種簡便的方法:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

     EXPORTING

       I_STRUCTURE_NAME         = 'TY_OUT_FILE'         "輸出項目列文本資訊(表頭)

       IS_LAYOUT                       = L_LAYOUT                "輸出資料行表樣式資訊

      TABLES

       T_OUTTAB                         = TAB_OUT_FILE        "輸出的資料資訊(明細)

     EXCEPTIONS

       PROGRAM_ERROR              = 1

       OTHERS                            = 2.

註:TY_OUT_FILE構造必須是資料字典中已經存在的對象。

輸出項目繁多時,建議先在資料字典系統中建立構造,然後使用後一種調用方法,這樣可免去對輸出資料行表頭資訊的繁瑣編輯處理,使程式碼也縮短。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.