簡體   English   中英

如何讀取和打印通用內部表?

[英]How do I read and print a generic internal table?

我對此很陌生。 我目前正在為我的工作學習 abap,但我有一個似乎無法解決的問題。 我將如何創建一個接受任何類型的內部表並將其寫入屏幕的功能模塊? 我正在尋找一個非常通用的解決方案,可以將任何類型的內部表作為輸入。

這就是 SAP 開發 ALV(ABAP 列表查看器)的確切原因。 顯示任何(非嵌套)表的最短方法之一如下。

  DATA: go_alv  TYPE REF TO cl_salv_table.

  CALL METHOD cl_salv_table=>factory
    IMPORTING
      r_salv_table = go_alv
    CHANGING
      t_table      = itab.

  go_alv->display( ).

對於線型僅為平面數據對象的表格,這將是最簡單的方法,取自本 SAP 開發指南的第 33 頁。

FIELD-SYMBOLS: <row> TYPE ANY,
               <comp> TYPE ANY.

LOOP AT itab INTO <row>.
  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE <row> TO <wa_comp>.
    IF sy-subrc <> 0.
      SKIP.
      EXIT.
    ENDIF.
    WRITE <wa_comp>.
  ENDDO.
ENDLOOP.

更健壯的方法是使用包含運行時類型服務的內省,這是一組讓您內省數據對象細節的類。 這將為您提供 vwegert 提到的詳細信息。 更好的選擇是將它放在 ALV 網格中。

這是可能的,但你必須考慮很多事情:

  • 列寬,動態調整列大小
  • 貨幣字段/帶單位的字段
  • 多語言環境中的日期格式
  • 表可能包含任意數據,包括嵌套表

考慮到所有因素,這不是一項微不足道的任務。 這最好留給現有的組件

暫無
暫無

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

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