REPORT z_dyn_test .
TYPE-POOLS : abap.
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa>,
<dyn_field>.
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.
*---------------------------------------------------------------------*
* 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 <dyn_table>.
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
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 CORRESPONDING FIELDS OF TABLE <dyn_table>
FROM (p_table).
ENDFORM. "get_data
*---------------------------------------------------------------------*
* FORM write_out *
*---------------------------------------------------------------------*
FORM write_out.
LOOP AT <dyn_table> INTO <dyn_wa>.
DO.
ASSIGN COMPONENT sy-index
OF STRUCTURE <dyn_wa> TO <dyn_field>.
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF sy-index = 1.
WRITE:/ <dyn_field>.
ELSE.
WRITE: <dyn_field>.
ENDIF.
ENDDO.
ENDLOOP.
ENDFORM. "write_out
More discussion about this please refer to the thread: https://www.sdn.sap.com/irj/scn/message?messageID=5851487
分享到:
相关推荐
ITABIS(集成化自动化测试基础架构)是一个用于软件测试自动化和持续集成的框架,尤其在企业级应用中被广泛采用。本实例是为初学者准备的,旨在帮助理解ITABIS的基本用法和核心概念。已调试成功的状态表明这个实例...
"itab chrome谷歌浏览器crx插件"是专为大学生、工作党和追求简洁桌面体验的用户设计的一款工具。这款插件旨在优化用户的浏览体验,提供更加高效、个性化的功能。 CRX是Chrome扩展的文件格式,全称为Chrome ...
iTab,一个标签页美化插件,安装之后,可以取代浏览器默认的标签页,效果如下。 iTab 最大的特色在于,加入了 iOS 上的小组件的设计,让它在众多标签页美化插件中显得与众不同,而且拖动小组件可以重新调整小组件的...
itab_chrome.crx
### ABAP SQL 使用技巧详解 在 SAP 系统开发中,ABAP 语言与 SQL 查询紧密结合,通过优化 SQL 查询方式可以显著提升程序性能。本文将详细介绍 ABAP 中 SQL 查询的各种技巧,帮助开发者更好地掌握这些技能。 #### 1...
itab_firefox.xpi
在SAP系统中,SQL(Structured Query Language)用于管理和处理数据库。以下是一些关于SAP SQL语句样例的详细解释: 1. 这个示例是一个简单的选择查询,从VBAK表中选取所有与VBAP表中的VBELN相等的记录。这通常用于...
itab插件,适用于chrome浏览器
《基于Struts和iTaBiS的图书管理系统详解》 图书管理系统是信息技术在图书领域广泛应用的产物,它通过数字化手段,极大地提高了图书管理的效率和便捷性。本系统以Struts框架为基础,结合iTaBiS(可能为一个特定的...
iTab是一款基于Html5的Chrome浏览器扩展应用。它提供了网站快速拨号、扩展应用快捷访问等功能来增强 Chrome 原生新标签页(New Tab)。 ============================== 版本:1.2.3 更新日期: 2017-04-14 1. 每日...
itab_chrome@1.3.26.2.crx
iTab是一款基于Html5的Chrome浏览器扩展应用。它提供了网站快速拨号、扩展应用快捷访问等功能来增强 Chrome 原生新标签页(New Tab)。==============================版本:1.2.3 更新日期: 2017-04-141. 每日更新...
fills an internal table with data from a database table using Open SQL statements. 例如: ```abap DATA: BEGIN OF ITAB OCCURS 10, COL1 TYPE C, COL2 TYPE I, END OF ITAB. DO 3 TIMES. APPEND INITIAL...
添加chrome标签页插件,拖进使用
语言:English 浏览器的强大功能扩展。...iTab是一款用于浏览器的简单免费的标签管理器,可在标签和窗口之间快速切换。 快捷键Alt + Space在选项卡中打开搜索栏。 搜索结果显示URL和标题与搜索词匹配的所有选项卡。
ERP系统信息化资料:SAP专业培训教材Intro to ABAP - Chapter 07(itab).ppt
Open SQL 是一种通用的数据库语言,支持多种数据库管理系统,而 Native SQL 则是特定数据库自身的 SQL 语法。 2. 使用 Open SQL 的原则 使用 Open SQL 时,需要遵守以下原则: * 尽可能减少满足条件的数据条数。 ...
然后,我们使用LOOP语句遍历内表ITAB,并从EKPO表中查询数据,并将其存储到内表ITAB中。相关代码如下: ```abap LOOP AT ITAB. SELECT SUM( MENGE ) INTO ITAB-MENGE FROM EKPO WHERE EBELN EQ ITAB-EBELN. ...
AND bukrs = itab-bukrs. ``` 对于每条记录,再次查询`BSEG`表以获取更多信息,并更新`itab`数据结构。 ```abap WRITE:/'|',(8)itab-bukrs centered, '|',(10)itab-budat, '|',(8)itab-belnr centered, '|',(8)...
DATA: BEGIN OF ITAB OCCURS 0, EBELN LIKE EKKO-EBELN, MENGE LIKE EKPO-MENGE, WEMNG LIKE EKET-WEMNG, END OF ITAB. ``` 现在我们已经定义完了内表 ITAB。接着我们该定义数据了。数据就像 C 语言里的常量。其...