zoukankan      html  css  js  c++  java
  • 使用ABAP代码创建透明表

    Created by Jerry Wang on Feb 20, 2014

    Report source code could be found below:

    REPORT ztable.
    
    PARAMETERS: tabname TYPE char32 OBLIGATORY.
    DATA: lt_new_object         TYPE comt_gox_def_header,
          lt_old_object         LIKE lt_new_object,
          lv_dbtab1_name        TYPE char32,
          ls_new_object         LIKE LINE OF lt_new_object,
          ls_new_object_details TYPE LINE OF comt_gox_table_entry_fields,
          lt_returntab          TYPE bapirettab,
          ls_return             LIKE LINE OF lt_returntab.
    
    ls_new_object-object_type = 'TABLE'.
    ls_new_object-object_name = tabname.
    
    TRY.
        DATA(lv_guid) = cl_system_uuid=>if_system_uuid_static~create_uuid_c32( ).
      CATCH cx_uuid_error .
    ENDTRY.
    
    ls_new_object-key_guid = lv_guid.
    DATA(lv_parent_guid) = ls_new_object-key_guid.
    ls_new_object_details-fieldname = 'TABCLASS'.
    ls_new_object_details-fieldvalue = 'TRANSP'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'TABKAT'.
    ls_new_object_details-fieldvalue = '0'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'TABART'.
    ls_new_object_details-fieldvalue = 'APPL2'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'PUFFERUNG'.
    ls_new_object_details-fieldvalue = 'X'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'CONTFLAG'.
    ls_new_object_details-fieldvalue = 'S'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'MAINFLAG'.
    ls_new_object_details-fieldvalue = 'X'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'BUFFALLOW'.
    ls_new_object_details-fieldvalue = 'X'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'SCHFELDANZ'.
    ls_new_object_details-fieldvalue = '0'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    APPEND ls_new_object TO lt_new_object.
    CLEAR ls_new_object.
    
    ls_new_object-object_type = 'TABLE_FIELD'.
    TRY.
        lv_guid = cl_system_uuid=>if_system_uuid_static~create_uuid_c32(
               ).
      CATCH cx_uuid_error .
    ENDTRY.
    ls_new_object-key_guid = lv_guid.
    ls_new_object-parent_key = lv_parent_guid.
    lv_parent_guid = lv_guid.
    ls_new_object-object_name = 'CODE_VALUE'.
    ls_new_object_details-fieldname = 'POSITION'.
    ls_new_object_details-fieldvalue = '1'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'KEYFLAG'.
    ls_new_object_details-fieldvalue = 'X'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'NOTNULL'.
    ls_new_object_details-fieldvalue = 'X'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    ls_new_object_details-fieldname = 'ROLLNAME'.
    ls_new_object_details-fieldvalue = 'COMT_PRODUCT_ID'.
    APPEND ls_new_object_details TO ls_new_object-details.
    CLEAR ls_new_object_details.
    APPEND ls_new_object TO lt_new_object.
    CLEAR ls_new_object.
    REFRESH lt_returntab.
    CLEAR lv_parent_guid.
    
    lv_dbtab1_name = tabname.
    CALL FUNCTION 'GOX_GEN_TABLE_STD'
      EXPORTING
        iv_object_name = lv_dbtab1_name
        it_object_new  = lt_new_object
        it_object_old  = lt_old_object
        iv_devclass    = '$TMP'
    
      IMPORTING
        et_bapireturn  = lt_returntab.
    
    CHECK lt_returntab IS NOT INITIAL.
    
    DATA: lv_ddobjname TYPE ddobjname,
          ls_dd02v     TYPE dd02v.
    
    lv_ddobjname = lv_dbtab1_name.
    CALL FUNCTION 'DDIF_TABL_GET'
      EXPORTING
        name          = lv_ddobjname
        state         = 'A'
        langu         = sy-langu
      IMPORTING
        dd02v_wa      = ls_dd02v
      EXCEPTIONS
        illegal_input = 1
        OTHERS        = 2.
    IF sy-subrc <> 0.
       RETURN.
    ENDIF.
    
    ls_dd02v-mainflag = 'X'.
    CALL FUNCTION 'DDIF_TABL_PUT'
      EXPORTING
        name              = lv_ddobjname
        dd02v_wa          = ls_dd02v
      EXCEPTIONS
        tabl_not_found    = 1
        name_inconsistent = 2
        tabl_inconsistent = 3
        put_failure       = 4
        put_refused       = 5
        OTHERS            = 6.
    IF sy-subrc <> 0.
       RETURN.
    ENDIF.
    
    CALL FUNCTION 'DDIF_TABL_ACTIVATE'
      EXPORTING
        name     = lv_ddobjname
        auth_chk = ' '.
    
    CHECK sy-subrc = 0.
    
    WRITE:/ 'Table: ', lv_ddobjname, ' generated successfully'.
    

    specify the table name:

    run the report and the table is generated successfully and could be found in SE11:

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    bootstrap在线引用 bootstrap百度调用
    CentOS7下安装MySQL5.7安装与配置(YUM)
    screen命令的常见用法
    Nginx主要用来干什么
    linux-Centos7安装python3并与python2共存
    爬虫小问题之以为是编码问题,却是headers中参数问题
    LabWindows/CVI基础
    STM32 命名方法
    Ubuntu14.04虚拟机下基本操作(typical安装)
    网关,路由器,交换机,猫小结
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13620046.html
Copyright © 2011-2022 走看看