簡體   English   中英

僅顯示 ALV 中的某些字段

[英]Display only certain fields in ALV

我的表有大約 300 列,我只想顯示其中的 10 列並指定哪些列。 我正在使用CL_SALV_TABLE

誰能幫我解決這個問題或給我提示? 非常感謝您!

您需要使用方法SET_VISIBLE列對象(類CL_SALV_COLUMN )。 更多信息請參見“列(常規)”頁面的“設置列的可見性”一章

這個最小的可重復的例子只顯示了列SPRASLAISO從表T002 ,所有其他的都隱藏:

  DATA: t002_lines  TYPE TABLE OF t002,
        salv        TYPE REF TO cl_salv_table,
        columns     TYPE salv_t_column_ref.
  FIELD-SYMBOLS <column> TYPE salv_s_column_ref.

  SELECT * FROM t002 INTO TABLE t002_lines.
  CALL METHOD cl_salv_table=>factory
    IMPORTING
      r_salv_table = salv
    CHANGING
      t_table      = t002_lines.

  LOOP AT salv->get_columns( )->get( ) ASSIGNING <column>.
    CASE <column>-columnname.
      WHEN 'SPRAS' OR 'LAISO'.
        <column>-r_column->set_visible( if_salv_c_bool_sap=>true ).
      WHEN OTHERS.
        <column>-r_column->set_visible( if_salv_c_bool_sap=>false ).
    ENDCASE.
  ENDLOOP.

  salv->display( ).

此代碼用於隱藏表中除指定列之外的所有列。

  1. 該表作為“t002”類型的行表傳遞,然后通過調用其“工廠”方法創建“CL_SALV_TABLE”class 的實例。
  2. 然后,通過“get_columns”方法遍歷表的所有列,並為每一列分配一個字段符號。
  3. 對於每一列,檢查其名稱,如果是“SPRAS”或“LAISO”,則使用“Column”object 的“set_visible”方法並將“true”作為參數傳遞使其可見。
  4. 如果該列不是“SPRAS”或“LAISO”,則通過將“false”作為參數傳遞來隱藏它。
  5. 最后,調用“salv”object 的“display”方法來顯示帶有隱藏列的表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM