日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【原创】ABAP动态编程之功能实现

發布時間:2023/12/10 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【原创】ABAP动态编程之功能实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
根據名字獲取結構 DATA: STRUCTTYPE TYPE REF TO CL_ABAP_STRUCTDESCR. STRUCTTYPE ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( 'SPFLI' ). 根據變量獲取結構 DATA: DATATYPE TYPE REF TO CL_ABAP_ELEMDESCR,W_CHAR TYPE CHAR5. DATATYPE ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( W_CHAR ). 自定義數值結構 DATA: ELEMTYPE TYPE REF TO CL_ABAP_ELEMDESCR. ELEMTYPE ?= CL_ABAP_ELEMDESCR=>GET_I( ). ELEMTYPE ?= CL_ABAP_ELEMDESCR=>GET_C( 20 ). 定義動態長度的字符串 DATA: W_C10 TYPE CHAR10 VALUE 'HB',W_C20 TYPE CHAR20,W_CNT TYPE I. W_CNT = STRLEN( W_C10 ).DATA: DREF TYPE REF TO DATA,CTYPE TYPE REF TO CL_ABAP_ELEMDESCR. FIELD-SYMBOLS:<FS>.CTYPE = CL_ABAP_ELEMDESCR=>GET_C( W_CNT ).CREATE DATA DREF TYPE HANDLE CTYPE. ASSIGN DREF->* TO <FS>. *ASSIGN DREF->* TO <FS> CASTING TYPE HANDLE CTYPE.<FS> = W_C10(W_CNT). CONCATENATE '***' <FS> '***' INTO W_C20 RESPECTING BLANKS. WRITE W_C20.動態讀取系統表數據 PARAMETERS P_NAME TYPE TABNAME.DATA: LR_STRUC TYPE REF TO CL_ABAP_STRUCTDESCR,LR_DATA TYPE REF TO CL_ABAP_DATADESCR,LR_TABLE TYPE REF TO CL_ABAP_TABLEDESCR,DYN_TABLE TYPE REF TO DATA,DYN_WA TYPE REF TO DATA.FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,<DYN_WA> TYPE ANY.LR_STRUC ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( P_NAME ).LR_TABLE ?= CL_ABAP_TABLEDESCR=>CREATE( P_LINE_TYPE = LR_STRUC ).*ASSIGN DYN_WA->* TO <DYN_WA> CASTING TYPE HANDLE LR_STRUC. *ASSIGN DYN_TABLE->* TO <DYN_TABLE> CASTING TYPE HANDLE LR_TABLE.CREATE DATA DYN_WA TYPE HANDLE LR_STRUC. CREATE DATA DYN_TABLE TYPE HANDLE LR_TABLE. ASSIGN DYN_WA->* TO <DYN_WA>. ASSIGN DYN_TABLE->* TO <DYN_TABLE>.SELECT * INTO CORRESPONDING FIELDS OF TABLE <DYN_TABLE>UP TO 100 ROWSFROM (P_NAME).*CALL METHOD LR_TABLE->GET_TABLE_LINE_TYPE * RECEIVING * P_DESCR_REF = LR_DATA * .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_STRUCTURE_NAME = P_NAMETABLEST_OUTTAB = <DYN_TABLE>EXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2. IF SY-SUBRC <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.動態定義表結構 TYPES:BEGIN OF TYP_PERSON,NAME TYPE CHAR10,SEX TYPE CHAR1,AGE TYPE I,END OF TYP_PERSON.DATA: ST_PERSON TYPE TYP_PERSON,TR_TABLE TYPE REF TO CL_ABAP_TABLEDESCR,TR_STRUCT TYPE REF TO CL_ABAP_STRUCTDESCR,TR_TYPE TYPE REF TO CL_ABAP_TYPEDESCR,FS_TABLE TYPE REF TO DATA,FS_STRUCT TYPE REF TO DATA,TD_COMP TYPE CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE,TH_COMP LIKE LINE OF TD_COMP.FIELD-SYMBOLS:<FS_TABLE> TYPE STANDARD TABLE,<FS_STRUCT> TYPE ANY.TR_STRUCT ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA( ST_PERSON ). TD_COMP = TR_STRUCT->GET_COMPONENTS( ).CALL METHOD CL_ABAP_STRUCTDESCR=>CREATEEXPORTINGP_COMPONENTS = TD_COMP * P_STRICT = TRUE RECEIVINGP_RESULT = TR_STRUCT.CALL METHOD CL_ABAP_TABLEDESCR=>CREATEEXPORTINGP_LINE_TYPE = TR_STRUCTRECEIVINGP_RESULT = TR_TABLE.CREATE DATA FS_STRUCT TYPE HANDLE TR_STRUCT. CREATE DATA FS_TABLE TYPE HANDLE TR_TABLE. ASSIGN FS_STRUCT->* TO <FS_STRUCT>. ASSIGN FS_TABLE->* TO <FS_TABLE>.動態讀取表結構 TYPES:BEGIN OF TYP_PERSON,NAME TYPE CHAR10,SEX TYPE CHAR1,AGE TYPE I,END OF TYP_PERSON.DATA: TH_PERSON TYPE TYP_PERSON,TD_PERSON TYPE TABLE OF TYP_PERSON.PERFORM FRM_SWAP_TABLE TABLES TD_PERSON. *&---------------------------------------------------------------------* *& Form FRM_SWAP_TABLE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->PTD_PERSON text *----------------------------------------------------------------------* FORM FRM_SWAP_TABLE TABLES PTD_PERSON. DATA: FS_TABLE TYPE REF TO DATA,FS_STRUCT TYPE REF TO DATA,TR_TABLE TYPE REF TO CL_ABAP_TABLEDESCR,TR_STRUCT TYPE REF TO CL_ABAP_STRUCTDESCR,TR_TYPE TYPE REF TO CL_ABAP_TYPEDESCR.FIELD-SYMBOLS:<FS_TABLE> TYPE STANDARD TABLE,<FS_STRUCT> TYPE ANY.TR_STRUCT ?=CL_ABAP_TABLEDESCR=>DESCRIBE_BY_DATA( P_DATA = PTD_PERSON ).CREATE DATA FS_STRUCT TYPE HANDLE TR_STRUCT. ASSIGN FS_STRUCT->* TO <FS_STRUCT>. CREATE DATA FS_TABLE LIKE TABLE OF <FS_STRUCT>. ASSIGN FS_TABLE->* TO <FS_TABLE>.ENDFORM. " FRM_SWAP_TABLE

轉載于:https://www.cnblogs.com/loveplxf/archive/2012/08/15/2640767.html

總結

以上是生活随笔為你收集整理的【原创】ABAP动态编程之功能实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。