動態的實現任意表的ALV顯示01
轉來的程式,動態的實現任意表的ALV顯示[@more@]*&---------------------------------------------------------------------*
*& Report Z_BARRY_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_BARRY_TEST.
TYPE-POOLS : abap.
FIELD-SYMBOLS: TYPE STANDARD TABLE,
,
.
DATA: dy_table TYPE REF TO data,
dy_line TYPE REF TO data,
xfc TYPE lvc_s_fcat,
ifc TYPE lvc_t_fcat.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_table(30) TYPE c DEFAULT 'T001'.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
PERFORM get_structure.
PERFORM create_dynamic_itab.
PERFORM get_data.
* PERFORM write_out.
PERFORM write_out2.
*---------------------------------------------------------------------*
* FORM get_structure *
*---------------------------------------------------------------------*
FORM get_structure.
DATA : idetails TYPE abap_compdescr_tab,
xdetails TYPE abap_compdescr.
DATA : ref_table_des TYPE REF TO cl_abap_structdescr.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( p_table ).
idetails[] = ref_table_des->components[].
LOOP AT idetails INTO xdetails.
CLEAR xfc.
xfc-fieldname = xdetails-name .
* xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length + xdetails-decimals.
xfc-decimals = xdetails-decimals.
APPEND xfc TO ifc.
ENDLOOP.
ENDFORM. "get_structure
*---------------------------------------------------------------------*
* FORM create_dynamic_itab *
*---------------------------------------------------------------------*
FORM create_dynamic_itab.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ifc
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO.
CREATE DATA dy_line LIKE LINE OF.
ASSIGN dy_line->* TO.
ENDFORM. "create_dynamic_itab
*---------------------------------------------------------------------*
* FORM get_data *
*---------------------------------------------------------------------*
FORM get_data.
DATA: BEGIN OF itab OCCURS 0 .
INCLUDE STRUCTURE spfli.
DATA: END OF itab.
SELECT * INTO TABLE
FROM (p_table) up to 3 rows.
ENDFORM. "get_data
*---------------------------------------------------------------------*
* FORM write_out *
*---------------------------------------------------------------------*
FORM write_out.
LOOP AT INTO .
DO.
ASSIGN COMPONENT sy-index
OF STRUCTURE TO .
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF sy-index = 1.
WRITE:/.
ELSE.
WRITE:.
ENDIF.
ENDDO.
ENDLOOP.
ENDFORM. "write_out
*&---------------------------------------------------------------------*
*& Form write_out2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM write_out2.
*呼叫alv函式來顯示資料
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = p_table
TABLES
T_OUTTAB =
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. "write_out
*& Report Z_BARRY_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_BARRY_TEST.
TYPE-POOLS : abap.
FIELD-SYMBOLS:
DATA: dy_table TYPE REF TO data,
dy_line TYPE REF TO data,
xfc TYPE lvc_s_fcat,
ifc TYPE lvc_t_fcat.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_table(30) TYPE c DEFAULT 'T001'.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
PERFORM get_structure.
PERFORM create_dynamic_itab.
PERFORM get_data.
* PERFORM write_out.
PERFORM write_out2.
*---------------------------------------------------------------------*
* FORM get_structure *
*---------------------------------------------------------------------*
FORM get_structure.
DATA : idetails TYPE abap_compdescr_tab,
xdetails TYPE abap_compdescr.
DATA : ref_table_des TYPE REF TO cl_abap_structdescr.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( p_table ).
idetails[] = ref_table_des->components[].
LOOP AT idetails INTO xdetails.
CLEAR xfc.
xfc-fieldname = xdetails-name .
* xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length + xdetails-decimals.
xfc-decimals = xdetails-decimals.
APPEND xfc TO ifc.
ENDLOOP.
ENDFORM. "get_structure
*---------------------------------------------------------------------*
* FORM create_dynamic_itab *
*---------------------------------------------------------------------*
FORM create_dynamic_itab.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ifc
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO
CREATE DATA dy_line LIKE LINE OF
ASSIGN dy_line->* TO
ENDFORM. "create_dynamic_itab
*---------------------------------------------------------------------*
* FORM get_data *
*---------------------------------------------------------------------*
FORM get_data.
DATA: BEGIN OF itab OCCURS 0 .
INCLUDE STRUCTURE spfli.
DATA: END OF itab.
SELECT * INTO TABLE
FROM (p_table) up to 3 rows.
ENDFORM. "get_data
*---------------------------------------------------------------------*
* FORM write_out *
*---------------------------------------------------------------------*
FORM write_out.
LOOP AT
DO.
ASSIGN COMPONENT sy-index
OF STRUCTURE
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF sy-index = 1.
WRITE:/
ELSE.
WRITE:
ENDIF.
ENDDO.
ENDLOOP.
ENDFORM. "write_out
*&---------------------------------------------------------------------*
*& Form write_out2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM write_out2.
*呼叫alv函式來顯示資料
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = p_table
TABLES
T_OUTTAB =
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. "write_out
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8356764/viewspace-1023158/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP ABAP 動態內表實現 ALV橫向按月份動態顯示資料
- 【轉載】ALV的Excel方式顯示缺少模板Excel
- 圖表外掛Highcharts的動態化賦值,實現圖表資料的動態化設定顯示賦值
- Element 利用Tooltip提示框實現動態顯示文字提示
- vue中:is的用法,動態顯示需要的元件Vue元件
- 如何在 SAPGUI 的同一個螢幕顯示兩個 ALV listGUI
- 數碼管動態顯示
- ExpandableListView實現二級列表的顯示View
- springboot整合quarzt實現動態定時任務Spring Boot
- 動態棧的實現
- 動態的新增ImageView到LinearLayout中並居中顯示View
- 記一個angular在路由配置中管理 Angular Material Dialog(實現動態元件的彈窗顯示)Angular路由元件
- SpringBoot中併發定時任務的實現、動態定時任務的實現(看這一篇就夠了)Spring Boot
- 靜態數碼管顯示、動態數碼管顯示、矩陣按鍵矩陣
- springboot整合Quartz實現動態配置定時任務Spring Bootquartz
- SAP ALV小數點後面如果為0不顯示
- openlayers3實現動態圖示gif其他css支援的格式S3CSS
- Geoserver + MySQL實現圖層顯示和文字顯示ServerMySql
- javaScript動態顯示當前時間JavaScript
- jqgrid動態顯示,隱藏指定列
- Spring+quartz實現動態化定時任務 (轉)Springquartz
- 詳解動態規劃01揹包問題--JavaScript實現動態規劃JavaScript
- 詳解動態規劃01揹包問題–JavaScript實現動態規劃JavaScript
- 如何在 SAP ABAP ALV 報表裡以交通燈的方式顯示某一列的值
- unity 實現滑鼠控制角色移動和角色頭部的血條顯示Unity
- Laravel 動態屬性的實現Laravel
- android關鍵字特殊顏色顯示的實現Android
- css實現文字過長顯示省略號的方法CSS
- uniapp uni.showModal的content實現換行顯示APP
- qt中實現實時的顯示當前時刻的時間QT
- 動態控制C4C UI元素的顯示和隱藏UI
- SpringBoot整合Quartz實現動態修改定時任務間隔Spring Bootquartz
- 實習任務之使用react實現登入獲取動態列表React
- 基於DataTables實現根據每個使用者動態顯示隱藏列,可排序排序
- web動態驗證碼的實現Web
- SAP Hybris裡搜尋顯示結果的實現原理
- 淺談 SAP ABAP 系統裡的 ALV 輸出方式實現
- SAP CRM頁面assignment block動態顯示與否的控制邏輯BloC
- 短視訊程式開發,動態實現密碼、核取方塊等顯示與隱藏密碼