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.

 

转载于:https://www.cnblogs.com/sapSB/p/6422383.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值