zoukankan      html  css  js  c++  java
  • CRM UI 打印PDF

    这是项目上看到的绝技^_^

    1.画SF。这步就不说了

    2.确定参数,写SF打印PDF函数

    FUNCTION zsrv_print_to_pdf .
    *"----------------------------------------------------------------------
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(IV_SAMRTFORM) TYPE  TDSFNAME
    *"     REFERENCE(IV_GUID) TYPE  CRMT_OBJECT_GUID OPTIONAL
    *"     REFERENCE(IV_OBJECT_ID) TYPE  CRMT_OBJECT_ID OPTIONAL
    *"     REFERENCE(IV_ZSERIALNO) TYPE  ZSERIALNO OPTIONAL
    *"  EXPORTING
    *"     REFERENCE(FILE) TYPE  XSTRING
    *"----------------------------------------------------------------------
      DATA: lv_fmodule       TYPE rs38l_fnam,
            lv_formfm        TYPE rs38l_fnam,
            lt_data_exchange TYPE TABLE OF zreq_chg,
            lt_data_refund   TYPE TABLE OF zreq_chg,
            lt_data_dispatch TYPE TABLE OF zcrm_csr_order,
            lt_data_service  TYPE TABLE OF zsv_ord,
            lt_text          TYPE comt_text_lines_t,
            lv_tablename     TYPE string,
            lv_exit_check    TYPE flag,
            lv_reason        TYPE string.
      DATA:
        lv_langu       TYPE sy-langu,
        w_cparam       TYPE ssfctrlop,
        w_outoptions   TYPE ssfcompop,
        w_bin_filesize TYPE i, " Binary File Size
        w_bin_file     TYPE xstring.
      DATA:GV_ZNUMBER TYPE ZNUMBER.
      DATA:GW_ZHSI_REFURBISH TYPE ZHSI_REFURBISH.
      DATA: t_otf         TYPE TABLE OF itcoo,
    * Internal table to hold OTF data recd from the SMARTFORM
            t_otf_from_fm TYPE ssfcrescl,
    * Internal table to hold the data from the FM CONVERT_OTF
            t_pdf_tab     TYPE TABLE OF tline..
    
      FIELD-SYMBOLS <fs_data> TYPE table.
    
      IF iv_samrtform IS INITIAL.
        RETURN.
      ENDIF.
    
      CASE iv_samrtform.
        WHEN 'ZEXCH'.
          lv_fmodule = 'ZGET_EXCHANGE_REQUEST_DATA'.
        WHEN 'ZREFUND'.
          lv_fmodule = 'ZGET_REFUND_REQUEST_DATA'.
        WHEN 'Z_DISPATCH'.
          lv_fmodule = 'ZGET_CSR_DISPATCH_ORDER_DATA'.
        WHEN 'ZSERVICE_ORD' OR 'ZSERVICE_ORD_AU' OR 'ZSERVICE_ORD_ZA'.
          lv_fmodule = 'ZGET_SERVICE_ORDER_DATA'.
        WHEN 'ZSRV_ORD' OR 'ZSRV_ORD_N' OR 'ZSRV_ORD_ZA'.
          lv_fmodule = 'ZGET_SERVICE_ORDER_DATA'.
        WHEN 'ZREPAIR_REP01'.
          lv_exit_check = 'X'.
        WHEN 'ZCRM_SERVICE_01'.
          lv_exit_check = 'X'.
        WHEN 'ZCRM_SERVICE_02'.
          lv_exit_check = 'X'.
      ENDCASE.
    
      IF lv_exit_check IS INITIAL.
        CALL FUNCTION 'FUNCTION_EXISTS'
          EXPORTING
            funcname           = lv_fmodule
          EXCEPTIONS
            function_not_exist = 1
            OTHERS             = 2.
        IF sy-subrc <> 0.
          RETURN.
        ENDIF.
      ENDIF.
    
      CASE iv_samrtform.
        WHEN 'ZEXCH'.
          CALL FUNCTION lv_fmodule
            EXPORTING
              iv_guid      = iv_guid
              iv_object_id = iv_object_id
            IMPORTING
              reasons      = lv_reason
            TABLES
              data         = lt_data_exchange.
    
        WHEN 'ZREFUND'.
          CALL FUNCTION lv_fmodule
            EXPORTING
              iv_guid      = iv_guid
              iv_object_id = iv_object_id
            IMPORTING
              reasons      = lv_reason
            TABLES
              data         = lt_data_refund.
    
        WHEN 'Z_DISPATCH'.
          CALL FUNCTION lv_fmodule
            EXPORTING
              iv_guid      = iv_guid
              iv_object_id = iv_object_id
            TABLES
              data         = lt_data_dispatch.
    
        WHEN 'ZSERVICE_ORD' OR 'ZSERVICE_ORD_AU' OR 'ZSERVICE_ORD_ZA'.
          CALL FUNCTION lv_fmodule
            EXPORTING
              iv_guid      = iv_guid
              iv_object_id = iv_object_id
            TABLES
              data         = lt_data_service.
    
        WHEN 'ZSRV_ORD' OR 'ZSRV_ORD_N' OR 'ZSRV_ORD_ZA'.
          CALL FUNCTION lv_fmodule
            EXPORTING
              iv_guid      = iv_guid
              iv_object_id = iv_object_id
            TABLES
              data         = lt_data_service.
    
      ENDCASE.
    
    
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = iv_samrtform
        IMPORTING
          fm_name            = lv_formfm
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    
    
    * Calling the SMARTFORM using the function module retrieved above
    * GET_OTF parameter in the CONTROL_PARAMETERS is set to get the OTF
    * format of the output
      w_cparam-no_dialog = 'X'.
      w_cparam-preview = space. " Suppressing the dialog box
    
      w_cparam-getotf = 'X'.                                      " for print preview
    
    ****---add by alex_zhang on 20160901
    *  w_cparam-no_open     = 'X'.
    *  w_cparam-no_close    = 'X'.
    
    * Printer name to be used is provided in the export parameter
    * OUTPUT_OPTIONS
      w_outoptions-tddest = 'LP01'.
    
    **********************************************************************20161117-Begin
    *开发顾问:陈国光
    *业务顾问:龚慧文
    *打印中文乱码该方案仅针对UI按钮打印 未能从根本解决问题 故先取消
    *  IF zcl_crm_attributes=>gv_zcrm_print = abap_true.
    *    w_cparam-langu = '1'.
    *    zcl_crm_attributes=>gv_zcrm_print = abap_false.
    *  ENDIF.
    **********************************************************************20161117-End
      CASE iv_samrtform.
        WHEN 'ZEXCH'.
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
              reasons            = lv_reason
            IMPORTING
              job_output_info    = t_otf_from_fm
            TABLES
              datasets           = lt_data_exchange
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
        WHEN 'ZREFUND'.
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
              reasons            = lv_reason
            IMPORTING
              job_output_info    = t_otf_from_fm
            TABLES
              datasets           = lt_data_refund
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
        WHEN 'Z_DISPATCH'.
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
            IMPORTING
              job_output_info    = t_otf_from_fm
            TABLES
              zorder             = lt_data_dispatch
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
        WHEN 'ZSERVICE_ORD' OR 'ZSERVICE_ORD_AU' OR 'ZSERVICE_ORD_ZA'.
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
            IMPORTING
              job_output_info    = t_otf_from_fm
            TABLES
              datasets           = lt_data_service
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
        WHEN 'ZSRV_ORD' OR 'ZSRV_ORD_N' OR 'ZSRV_ORD_ZA'.
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
            IMPORTING
              job_output_info    = t_otf_from_fm
            TABLES
              datasets           = lt_data_service
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
        WHEN 'ZREPAIR_REP01'.
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
              object_id          = iv_object_id
            IMPORTING
              job_output_info    = t_otf_from_fm
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
        WHEN 'ZCRM_SERVICE_01'."ADD BY LY 20170217 FOR 维修跟踪单打印
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
              object_id          = iv_object_id
            IMPORTING
              job_output_info    = t_otf_from_fm
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
    
          WHEN 'ZCRM_SERVICE_02'."ADD BY LY 20170217 FOR 周转机检查单打印
            "生成不良品再生单单号
            PERFORM prm_generate_obj CHANGING GV_ZNUMBER.
    
          CALL FUNCTION lv_formfm
            EXPORTING
              control_parameters = w_cparam
              output_options     = w_outoptions
              ZSERIALNO          = iv_ZSERIALNO
              ZNUMBER            = GV_ZNUMBER
            IMPORTING
              job_output_info    = t_otf_from_fm
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    
          SELECT SINGLE ZSERIALNO
                        ZPRODUCT_ID
                        ZCMODENO
                        ZSTORE_LOC
            INTO (GW_ZHSI_REFURBISH-ZCSERIALNO,GW_ZHSI_REFURBISH-ZMODENO,
                  GW_ZHSI_REFURBISH-ZCMODENO,GW_ZHSI_REFURBISH-ZLGORT)
            FROM ZSRVT_JA_001 WHERE ZSERIALNO = iv_ZSERIALNO.
            GW_ZHSI_REFURBISH-ZNUMBER = GV_ZNUMBER.
            GW_ZHSI_REFURBISH-ZBATCHNO = 'H'.
            GW_ZHSI_REFURBISH-ZRFSTATUS = '10'.
            GW_ZHSI_REFURBISH-ZCOUNTRY = 'JP'.
            GW_ZHSI_REFURBISH-ZSALES_ORG = 'O 50000231'.
            GW_ZHSI_REFURBISH-ZWERKS = '8410'.
            GW_ZHSI_REFURBISH-CREATED_BY = SY-UNAME.
            CONVERT DATE SY-DATUM TIME SY-UZEIT INTO TIME STAMP
            GW_ZHSI_REFURBISH-CREATED_AT TIME ZONE SY-ZONLO.
    
            MODIFY ZHSI_REFURBISH FROM GW_ZHSI_REFURBISH.
    
    
      ENDCASE.
    
      t_otf[] = t_otf_from_fm-otfdata[].
    
      CALL FUNCTION 'CONVERT_OTF'
        EXPORTING
          format                = 'PDF'
          max_linewidth         = 132
        IMPORTING
          bin_filesize          = w_bin_filesize
          bin_file              = w_bin_file
        TABLES
          otf                   = t_otf
          lines                 = t_pdf_tab
        EXCEPTIONS
          err_max_linewidth     = 1
          err_format            = 2
          err_conv_not_possible = 3
          err_bad_otf           = 4
          OTHERS                = 5.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      MOVE w_bin_file TO file.
    ENDFUNCTION.

    3.将输出的PDF文件流用PDF展示:

    创建ZCRM_PRINT WDA程序

    Window中MODIFY window

    METHOD wddomodifyview .
    * variable declarations
      DATA:
        w_form_name    TYPE tdsfname,
        w_fmodule      TYPE rs38l_fnam,
        w_cparam       TYPE ssfctrlop,
        w_outoptions   TYPE ssfcompop,
        w_bin_filesize TYPE i, " Binary File Size
        w_bin_file     TYPE xstring,
        w_filename     TYPE string,
        w_file_path    TYPE string,
        w_full_path    TYPE string.
    
      DATA lo_nd_order TYPE REF TO if_wd_context_node.
      DATA lo_el_order TYPE REF TO if_wd_context_element.
      DATA ls_order TYPE wd_this->element_order.
      DATA lo_nd_pdf TYPE REF TO if_wd_context_node.
      DATA lo_el_pdf TYPE REF TO if_wd_context_element.
      DATA ls_pdf TYPE wd_this->element_pdf.
      DATA lv_source TYPE wd_this->element_pdf-source.
    
      lo_nd_order = wd_context->get_child_node( name = wd_this->wdctx_order ).
      lo_el_order = lo_nd_order->get_element( ).
      lo_el_order->get_static_attributes( IMPORTING static_attributes = ls_order ).
    
      zcl_crm_attributes=>gv_zcrm_print = abap_true.
    
      CALL FUNCTION 'ZSRV_PRINT_TO_PDF'
        EXPORTING
          iv_samrtform = ls_order-smartform_name "'ZREFUND'
          iv_object_id = ls_order-object_id "'0074000104'
          IV_ZSERIALNO = ls_order-ZSERIALNO "'0074000104'
        IMPORTING
          file         = w_bin_file.
    
      CHECK w_bin_file IS NOT INITIAL.
    
      lo_nd_pdf = wd_context->get_child_node( name = wd_this->wdctx_pdf ).
      lo_el_pdf = lo_nd_pdf->get_element( ).
      lv_source = w_bin_file.
      lo_el_pdf->set_attribute( name =  `SOURCE` value = lv_source ).
    ENDMETHOD.

     4.window传入参数:

    METHOD handledefault .
      DATA lo_nd_order TYPE REF TO if_wd_context_node.
    
      DATA lo_el_order TYPE REF TO if_wd_context_element.
      DATA ls_order TYPE wd_this->element_order.
    
      lo_nd_order = wd_context->get_child_node( name = wd_this->wdctx_order ).
      lo_el_order = lo_nd_order->get_element( ).
      lo_el_order->get_static_attributes( IMPORTING static_attributes = ls_order ).
    
      ls_order-object_id = object_id.
      ls_order-smartform_name = smartform_name.
      ls_order-ZSERIALNO = ZSERIALNO."ADD BY LY 20170220
    
      lo_el_order->set_static_attributes( static_attributes = ls_order ).
    ENDMETHOD.

    5.最后将WINDOW做成接口视图

    6.UI调用

    GET_BUTTONS/DO_PREPARE_OUTPUT

    METHOD IF_BSP_WD_TOOLBAR_CALLBACK~GET_BUTTONS.
      DATA: LS_BUTTON         TYPE CRMT_THTMLB_BUTTON_EXT.
      DATA: LV_URL            TYPE STRING,
            LV_URL2           TYPE STRING,
            LV_OBJECT_ID      TYPE CRMT_OBJECT_ID,
            LV_SRV_TYPE       TYPE ZDTEL00003Y,
            LV_SMARTFORM_NAME TYPE TDSFNAME.
    
      DATA: LR_ENTITY       TYPE REF TO CL_CRM_BOL_ENTITY,
            LR_COLL         TYPE REF TO IF_BOL_ENTITY_COL,
            LR_CURRENT      TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
            LR_ENTITY_ORG   TYPE REF TO CL_CRM_BOL_ENTITY,
            LV_PROCESS_TYPE TYPE STRING,
            LS_ORGSET_BTIL  TYPE CRMST_ORGSET_BTIL.
    
      FIELD-SYMBOLS: <FS_OBJECT_ID> TYPE CRMT_OBJECT_ID.
    
    
    
      CALL METHOD SUPER->IF_BSP_WD_TOOLBAR_CALLBACK~GET_BUTTONS
        RECEIVING
          RT_BUTTONS = RT_BUTTONS.
    
      DELETE RT_BUTTONS WHERE ON_CLICK = 'OUTPUT'.
      DELETE RT_BUTTONS WHERE ON_CLICK = 'PRINT_PREVIEW'.
    
      LR_ENTITY ?= ME->ZTYPED_CONTEXT->BTADMINH->COLLECTION_WRAPPER->GET_CURRENT( ).
      IF LR_ENTITY IS BOUND.
        TRY.
            LV_PROCESS_TYPE = LR_ENTITY->GET_PROPERTY_AS_STRING( IV_ATTR_NAME = 'PROCESS_TYPE').
            CALL METHOD LR_ENTITY->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_VALUE
              EXPORTING
                IV_ATTR_NAME = 'OBJECT_ID'
              IMPORTING
                EV_RESULT    = LV_OBJECT_ID.
            LR_COLL = LR_ENTITY->GET_RELATED_ENTITIES( IV_RELATION_NAME = 'BTHeaderOrgmanSet' ). "
            LR_CURRENT = LR_COLL->GET_CURRENT( ).
            IF LR_CURRENT IS BOUND.
              LR_ENTITY_ORG ?= LR_CURRENT.
              LR_ENTITY_ORG->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_ORGSET_BTIL ).
            ENDIF.
          CATCH CX_CRM_CIC_PARAMETER_ERROR.
        ENDTRY.
      ENDIF.
    
      CHECK LV_OBJECT_ID IS NOT INITIAL.
    
      CHECK LV_PROCESS_TYPE = 'ZSR2' OR LV_PROCESS_TYPE = 'ZSR3' OR LV_PROCESS_TYPE = 'ZSV1' OR LV_PROCESS_TYPE = 'ZSV2' OR LV_PROCESS_TYPE = 'ZSV3' OR LV_PROCESS_TYPE = 'ZWO4'.
    
      CASE LV_PROCESS_TYPE.
        WHEN 'ZSR2'.
          LV_SMARTFORM_NAME = 'ZEXCH'.
          CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
    
        WHEN 'ZSR3'.
          LV_SMARTFORM_NAME = 'ZREFUND'.
          CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
    
        WHEN 'ZSV1'.
          IF LS_ORGSET_BTIL-SALES_ORG = 'O 50000178'.
            LV_SMARTFORM_NAME = 'ZSRV_ORD'.
          ELSEIF LS_ORGSET_BTIL-SALES_ORG = 'O 50000192' OR LS_ORGSET_BTIL-SALES_ORG = 'O 50000194'.
            LV_SMARTFORM_NAME = 'ZSRV_ORD_ZA'.
          ELSE.
            LV_SMARTFORM_NAME = 'ZSRV_ORD_N'.
          ENDIF.
          CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
    
        WHEN 'ZSV2'.
          IF LS_ORGSET_BTIL-SALES_ORG = 'O 50000192' OR LS_ORGSET_BTIL-SALES_ORG = 'O 50000194'.
            LV_SMARTFORM_NAME = 'ZSERVICE_ORD_ZA'.
          ELSE.
            LV_SMARTFORM_NAME = 'ZSERVICE_ORD'.
          ENDIF.
          CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
    
        WHEN 'ZSV3'.
          IF LS_ORGSET_BTIL-SALES_ORG = 'O 50000131'.
            LV_SMARTFORM_NAME = 'ZSERVICE_ORD_AU'.
          ELSEIF LS_ORGSET_BTIL-SALES_ORG = 'O 50000192' OR LS_ORGSET_BTIL-SALES_ORG = 'O 50000194'.
            LV_SMARTFORM_NAME = 'ZSERVICE_ORD_ZA'.
          ELSE.
            LV_SMARTFORM_NAME = 'ZSERVICE_ORD'.
          ENDIF.
          CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
    
        WHEN 'ZWO4'.
          LV_SMARTFORM_NAME = 'ZSERVICE_ORD'.
          CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
    
        WHEN OTHERS.
      ENDCASE.
      CLEAR LS_BUTTON.
      LS_BUTTON-TEXT     = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'ZCRM/PDFPRINT' ). "#EC NOTEXT
      LS_BUTTON-ON_CLIENT_CLICK = LV_URL.
      LS_BUTTON-ENABLED  = ABAP_TRUE.                           "#EC NOTEXT
      INSERT LS_BUTTON INTO RT_BUTTONS INDEX 10.
    
    
      CALL METHOD LR_ENTITY->IF_BOL_BO_PROPERTY_ACCESS~GET_PROPERTY_AS_VALUE
        EXPORTING
          IV_ATTR_NAME = 'ZZFLD00000N'
        IMPORTING
          EV_RESULT    = LV_SRV_TYPE.
    
      CLEAR:LV_URL,LS_BUTTON.
      LV_SMARTFORM_NAME = 'ZREPAIR_REP01'.
      CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
      LS_BUTTON-TEXT     = 'Repair Rep Print'.                  "#EC NOTEXT
      LS_BUTTON-ON_CLIENT_CLICK = LV_URL.
      LS_BUTTON-ENABLED  = ABAP_TRUE.                           "#EC NOTEXT
      INSERT LS_BUTTON INTO RT_BUTTONS INDEX 11.
    
      IF LV_PROCESS_TYPE = 'ZSV1'.
        CLEAR:LV_URL,LS_BUTTON.
        LV_SMARTFORM_NAME = 'ZCRM_SERVICE_01'.
        CONCATENATE 'javascript:window.open( "/sap/bc/webdynpro/sap/ZCRM_PRINT' '?object_id=' LV_OBJECT_ID '&smartform_name=' LV_SMARTFORM_NAME '");' INTO LV_URL.
        LS_BUTTON-TEXT     = 'Repair Follow Print'.                "#EC NOTEXT
        LS_BUTTON-ON_CLIENT_CLICK = LV_URL.
        LS_BUTTON-ENABLED  = ABAP_TRUE.                         "#EC NOTEXT
        INSERT LS_BUTTON INTO RT_BUTTONS INDEX 12.
      ENDIF.
    
    
    
    ENDMETHOD.
  • 相关阅读:
    对比git rm和rm的使用区别
    Gerrit日常维护记录
    [原创]Gerrit中文乱码问题解决方案分享
    MySQL 高可用架构
    MySQL 高可用架构
    Android L开发指南
    如何使用GOOGLE高级搜索技巧
    Linux定时关机
    Android源码批量下载及导入到Eclipse
    怎样将Android SDK源码 导入到Eclipse中?
  • 原文地址:https://www.cnblogs.com/sapSB/p/6422383.html
Copyright © 2011-2022 走看看