动态调用系统表到动态内表
来源:互联网 发布:蹭饭地图制作软件 编辑:程序博客网 时间:2024/05/17 20:30
记得画屏幕哦!
TYPES : BEGIN OF t_fname, "To hold the field names
fld LIKE dd03l-fieldname,
END OF t_fname.
TYPES: BEGIN OF t_dd03l,
tabname LIKE dd03l-tabname, "Table Name
fieldname LIKE dd03l-fieldname,"Field
keyflag LIKE dd03l-keyflag, "Key
rollname LIKE dd03l-rollname, "Roll
position LIKE dd03l-position, "
ddtext(30), "Description
END OF t_dd03l,
BEGIN OF t_fields.
INCLUDE STRUCTURE dd03l.
TYPES: END OF t_fields.
DATA: d_ref TYPE REF TO data ,
it_fields TYPE TABLE OF t_fields,
wa_fields LIKE LINE OF it_fields,
it_cat TYPE TABLE OF lvc_s_fcat,
wa_cat LIKE LINE OF it_cat ,
* it_cat TYPE TABLE OF lvc_s_fcat,
it_fname TYPE TABLE OF t_fname,
wa_fname LIKE LINE OF it_fname.
DATA : gt_grid TYPE REF TO cl_gui_alv_grid,
gt_cust TYPE REF TO cl_gui_custom_container,
cust TYPE scrfname VALUE 'CC_OUTPUT'..
DATA: lv_where TYPE string,
lv_cnt TYPE i.
DATA:OK_CODE LIKE SY-UCOMM.
PARAMETERS : p_tab LIKE dd03l-tabname OBLIGATORY.
FIELD-SYMBOLS : <f_fs> TYPE table. "FieldSymbol for holding fields
START-OF-SELECTION.
SELECT * FROM dd03l
INTO TABLE it_fields
WHERE tabname = p_tab.
SORT it_fields BY position.
**--Delete the fields starting with .INCLU
DELETE it_fields WHERE fieldname CP '.INCLU*'.
LOOP AT it_fields INTO wa_fields TO 150.
lv_cnt = lv_cnt + 1.
wa_cat-tabname = p_tab.
wa_cat-fieldname = wa_fields-fieldname.
wa_cat-col_pos = lv_cnt.
wa_cat-inttype = wa_fields-inttype.
wa_cat-datatype = wa_fields-datatype.
wa_cat-intlen = wa_fields-intlen.
wa_cat-seltext = wa_fields-fieldname.
wa_cat-decimals = wa_fields-decimals.
wa_cat-ref_field = wa_fields-fieldname.
wa_cat-ref_table = p_tab.
APPEND wa_cat TO it_cat.
CLEAR wa_cat.
wa_fname-fld = wa_fields-fieldname.
APPEND wa_fname TO it_fname.
CLEAR wa_fname.
ENDLOOP.
**--Create a dynamic internal table with the 150 fields
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_cat
IMPORTING
ep_table = d_ref.
ASSIGN d_ref->* TO <f_fs>.
SELECT (it_fname)
FROM (p_tab)
INTO CORRESPONDING FIELDS OF TABLE <f_fs> .
call screen 100.
**--Display the data in the grid control
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DISPLAY_DATA OUTPUT.
IF gt_cust IS INITIAL.
CREATE OBJECT gt_cust
EXPORTING
container_name = cust.
CREATE OBJECT gt_grid
EXPORTING
i_parent = gt_cust.
CALL METHOD gt_grid->set_table_for_first_display
EXPORTING
i_buffer_active = 'X'
i_bypassing_buffer = ' '
CHANGING
it_outtab = <f_fs>
it_fieldcatalog = it_cat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDMODULE. " DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
- 动态调用系统表到动态内表
- 动态内表
- 动态内表
- 动态内表实例
- 动态内表
- ABAP动态内表
- 动态内表
- ABAP动态内表
- 动态******************内表
- 动态内表
- ABAP-动态内表
- 动态ABAP内表
- 创建动态内表
- 动态内表 动态ALV显示
- 转帖 动态内表 动态ALV显示
- 动态内表及动态ALV显示
- 动态内表及动态ALV显示
- 动态内表及动态ALV显示
- c/c++(疑2) const extern
- Oracle中的约束
- uboot
- Bootstrap栅格系统研究
- js中apply()方法与call()方法详解
- 动态调用系统表到动态内表
- 当安卓开发遇到adb.exe无法启动
- 汇编指令
- Subsets (Java)
- Hashtable和HashMap
- 8种经典排序算法总结
- Java四种线程池的使用
- Central Workload Monitor
- 鼠标滑轮滚动事件