日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个简单的动态内表alv案例

發布時間:2025/3/20 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个简单的动态内表alv案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

動態內表的問題一直沒搞明白,每次都要復制粘貼。

動態內表的創建和使用主要有以下幾點:
1.動態內表的創建,首先要定義動態結構,然后再根據定義的動態結構利用系統一個標準的method:”cl_ALV_table_create=>create_dynamic_table“生成動態內表。
2.動態內表的賦值,遍歷動態結構,獲取指定的字段,然后給指定的字段賦值。
3.動態內表的讀取顯示,與賦值相似,遍歷動態結構,獲取指定的字段,然后讀取對應字段的值。

程序代碼:
  • *Type pools declaration for ALV
  • TYPE-POOLS: slis.? ?? ?? ?? ?? ?? ???" ALV Global Types
  • *data declaration for dynamic internal table and alv
  • DATA:? ???l_structure? ?TYPE REF TO data,
  • ? ?? ?? ? l_table? ? TYPE REF TO data,
  • ? ?? ?? ? struc_desc? ?TYPE REF TO cl_ABAP_structdescr,
  • ? ?? ?? ? lt_layout? ?TYPE slis_layout_alv,
  • ? ?? ?? ? ls_lvc_fieldcatalogue??TYPE lvc_s_fcat,
  • ? ?? ?? ? lt_lvc_fieldcatalogue??TYPE lvc_t_fcat,
  • ? ?? ?? ? ls_fieldcatalogue TYPE slis_fieldcat_alv,
  • ? ?? ?? ? lt_fieldcatalogue TYPE slis_t_fieldcat_alv.
  • *field symbols declaration
  • FIELD-SYMBOLS :
  • ??<it_table>? ? TYPE STANDARD TABLE,
  • ??<dyn_str>? ?? ?? ?TYPE ANY,
  • ??<str_comp> TYPE abap_compdescr.
  • *declarations for grid title
  • DATA : t1(30),
  • ? ?? ? t2(10),
  • ? ?? ? t3(50).
  • *selection screen declaration for table input
  • PARAMETERS : p_table LIKE dd02l-tabname.
  • *initialization event
  • INITIALIZATION.
  • *start of selection event
  • START-OF-SELECTION.
  • *texts for grid title
  • ??t1 = 'Dynamic ALV display for table'.
  • ??t2 = p_table.
  • ??CONCATENATE t1 t2 INTO t3 SEPARATED BY space.
  • * Dynamic creation of a structure
  • ??CREATE DATA l_structure TYPE (p_table).
  • ??ASSIGN l_structure->* TO <dyn_str>.
  • * Fields Structure
  • ??struc_desc ?= cl_abap_typedescr=>describe_by_data( <dyn_str> ).
  • ??LOOP AT struc_desc->components ASSIGNING <str_comp>.
  • *? ?Build Fieldcatalog
  • ? ? ls_lvc_fieldcatalogue-fieldname = <str_comp>-name.
  • ? ? ls_lvc_fieldcatalogue-ref_table = p_table.
  • ? ? APPEND ls_lvc_fieldcatalogue TO lt_lvc_fieldcatalogue.
  • *? ?Build Fieldcatalog
  • ? ? ls_fieldcatalogue-fieldname = <str_comp>-name.
  • ? ? ls_fieldcatalogue-ref_tabname = p_table.
  • ? ? APPEND ls_fieldcatalogue TO lt_fieldcatalogue.
  • ??ENDLOOP.

  • * Create internal table dynamic
  • ??CALL METHOD cl_alv_table_create=>create_dynamic_table
  • ? ? EXPORTING
  • ? ?? ?it_fieldcatalog = lt_lvc_fieldcatalogue
  • ? ? IMPORTING
  • ? ?? ?ep_table? ?? ???= l_table.
  • ??ASSIGN l_table->* TO <it_table>.
  • * Read data from the table selected.
  • ??SELECT * FROM (p_table)
  • ? ? INTO CORRESPONDING FIELDS OF TABLE <it_table>.
  • * ALV Layout
  • ??lt_layout-zebra = 'X'.
  • ??lt_layout-colwidth_optimize = 'X'.
  • ??lt_layout-window_titlebar = t3.
  • *ALV??output
  • ??CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  • ? ? EXPORTING
  • ? ?? ?is_layout? ???= lt_layout
  • ? ?? ?it_fieldcat? ?= lt_fieldcatalogue
  • ? ? TABLES
  • ? ?? ?t_outtab? ?? ?= <it_table>
  • ? ? EXCEPTIONS
  • ? ?? ?program_error = 1
  • ? ?? ?OTHERS? ?? ???= 2.
  • ??IF sy-subrc <> 0.
  • * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  • *? ?? ?? ?WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  • ??ENDIF.
  • 復制代碼

    ps:選擇屏幕輸入一個表名,動態內表的數據不是一次都讀到內表在alv顯示的,而是隨著alv滾動條向下滑動,數據從數據庫抽取然后加載到屏幕上

    總結

    以上是生活随笔為你收集整理的一个简单的动态内表alv案例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。