動態內表
DATA: l_table TYPE REF TO data. data: lv_tab TYPE DDOBJNAME. DATA: l_wa TYPE REF TO data. data: lt_STRUCTURE TYPE STANDARD TABLE OF DFIES, LS_VALUE TYPE TY_VALUE, LT_VALUE TYPE STANDARD TABLE OF TY_VALUE, LT_VALUE_GET TYPE STANDARD TABLE OF ZTYHRS_XML2T WITH HEADER LINE, LV_STATUS TYPE STRING, ls_STRUCTURE TYPE DFIES. FIELD-SYMBOLS: <l_table> TYPE table, <L_VALUE> TYPE ANY, <l_wa> TYPE any, <l_pernr> TYPE any, <l_begda> TYPE any. data: lv_tabname TYPE char20, LV_NUM TYPE NUMC3, lv_hs TYPE numc5, LV_STRING TYPE STRING, LV_FIELDVALUE TYPE CHAR50. CONCATENATE 'P' IV_INFTY INTO lv_tabname. CONCATENATE 'PA' IV_INFTY INTO lv_tab. CREATE DATA l_table TYPE TABLE OF (lv_tabname). * 創建動態內表 ASSIGN l_table->* TO <l_table>. * 創建動態工作區結構 CREATE DATA l_wa LIKE LINE OF <l_table>. * 創建動態工作區 ASSIGN l_wa->* TO <l_wa>. IF IV_INFTY = '0022'. SELECT * INTO TABLE IT_Q3529 FROM PA3529 WHERE PERNR = iv_pernr. ENDIF. *--信息類型0016中的 3211需要單獨取出 IF IV_INFTY = '0016'. SELECT * INTO TABLE IT_p3211 FROM PA3211 WHERE PERNR = iv_pernr. ENDIF. SELECT * INTO CORRESPONDING FIELDS OF TABLE <l_table> FROM (lv_tab) WHERE pernr = iv_pernr. CHECK <l_table> IS NOT INITIAL. CALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING TABNAME = lv_tab TABLES DFIES_TAB = lt_STRUCTURE EXCEPTIONS NOT_FOUND = 1 INTERNAL_ERROR = 2 OTHERS = 3. DELETE lt_STRUCTURE INDEX 1. LOOP AT <l_table> ASSIGNING <l_wa>. lv_hs = lv_hs + 1. LOOP AT lt_STRUCTURE INTO ls_STRUCTURE. LV_NUM = LV_NUM + 1. CONCATENATE '<l_WA>-' ls_STRUCTURE-FIELDNAME INTO LV_FIELDVALUE. ASSIGN (LV_FIELDVALUE) TO <L_VALUE>. IF <L_VALUE> IS ASSIGNED. LS_VALUE-HS = lv_hs. LS_VALUE-VALUE = <L_VALUE>. LS_VALUE-FIELDNUM = LV_NUM. CONDENSE LS_VALUE-VALUE NO-GAPS. APPEND LS_VALUE TO LT_VALUE. CLEAR LS_VALUE. UNASSIGN <l_value>. ENDIF. ENDLOOP. CLEAR LV_NUM. ENDLOOP.
社會很單純,復雜的是人

浙公網安備 33010602011771號