|
今天下午到网上找了个,仿照着自己写了个。但是当表建好,并倒入数据后,我去不知道怎么去访问里面的数据了。请知道的给个方法:
*&---------------------------------------------------------------------*
*& Report YTEST_GL_DINAMICTABLE *
*& *
*&---------------------------------------------------------------------*
REPORT YTEST_GL_DINAMICTABLE
NO STANDARD PAGE HEADING
LINE-SIZE 170
LINE-COUNT 40.
TYPE-POOLS: ABAP.
FIELD-SYMBOLS: <IT_TABLE> TYPE STANDARD TABLE,
<WA_LINE> .
DATA: DY_TABLE TYPE REF TO DATA,
DY_LINE TYPE REF TO DATA,
XFC TYPE LVC_S_FCAT,
IFC TYPE LVC_T_FCAT.
*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM GET_DYN_DATA.
PERFORM WRITE_OUT.
*---------------------------------------------------------------------*
* FORM GET_DYN_DATA *
*---------------------------------------------------------------------*
FORM GET_DYN_DATA.
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( 'YDATATYPE' ).
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.
XFC-DECIMALS = XDETAILS-DECIMALS.
APPEND XFC TO IFC.
ENDLOOP.
* 生成内表
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IFC
IMPORTING
EP_TABLE = DY_TABLE.
* 将生成的内表绑定到SYMBOL
ASSIGN DY_TABLE->* TO <IT_TABLE>.
* 创建工作区域并将其绑定SYMBOL
CREATE DATA DY_LINE LIKE LINE OF <IT_TABLE>.
ASSIGN DY_LINE->* TO <WA_LINE>.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE <IT_TABLE>
FROM YDATATYPE.
ENDFORM.
*---------------------------------------------------------------------*
* WRITE DATA.
*---------------------------------------------------------------------*
FORM WRITE_OUT.
LOOP AT <IT_TABLE> INTO <WA_LINE>.
WRITE : / “这里我怎么来访问里面的字段呢?难道每个字段去帮定SYMBOLS
* 请知道的人指教!
ENDLOOP.
ENDFORM. |
|