nace

20
**&--------------------------------------------------------------------- * **& Include Z_MMP_RFQ_NACE_DATA **&--------------------------------------------------------------------- * DATA : lv_doc type meein_purchase_doc_print. data : lv_druvo like t166k-druvo, lv_nast like nast, lv_from_memory, lv_toa_dara type toa_dara. form entry_neu using ent_retco ent_screen. clear ent_retco. if nast-aende eq space. lv_druvo = '1' . else . lv_druvo = '2' . endif . call function 'ME_READ_PO_FOR_PRINTING' exporting ix_nast = nast ix_screen = ent_screen importing ex_retco = ent_retco ex_nast = lv_nast doc = lv_doc changing cx_druvo = lv_druvo cx_from_memory = lv_from_memory. check ent_retco eq 0 . call function 'ME_PRINT_PO' exporting ix_nast = lv_nast ix_druvo = lv_druvo doc = lv_doc ix_screen = ent_screen ix_from_memory = lv_from_memory ix_toa_dara = lv_toa_dara ix_arc_params = arc_params

description

134

Transcript of nace

Page 1: nace

**&---------------------------------------------------------------------***&  Include           Z_MMP_RFQ_NACE_DATA**&---------------------------------------------------------------------*DATA : lv_doc type meein_purchase_doc_print. data: lv_druvo like t166k-druvo,        lv_nast  like nast,        lv_from_memory,        lv_toa_dara type toa_dara.form entry_neu using ent_retco ent_screen.

   clear ent_retco.  if nast-aende eq space.    lv_druvo = '1'.  else.    lv_druvo = '2'.  endif.

  call function 'ME_READ_PO_FOR_PRINTING'       exporting            ix_nast        = nast            ix_screen      = ent_screen       importing            ex_retco       = ent_retco            ex_nast        = lv_nast            doc            = lv_doc       changing            cx_druvo       = lv_druvo            cx_from_memory = lv_from_memory.  check ent_retco eq 0.

  call function 'ME_PRINT_PO'       exporting            ix_nast        = lv_nast            ix_druvo       = lv_druvo            doc            = lv_doc            ix_screen      = ent_screen            ix_from_memory = lv_from_memory            ix_toa_dara    = lv_toa_dara            ix_arc_params  = arc_params            ix_fonam       = tnapr-fonam          "HW 214570       importing            ex_retco       = ent_retco.endform.

START-OF-SELECTION.

perform f_get_plantdata. "/ FOR PLANT DATA SELECTION.

Page 2: nace

perform f_get_contact_data. "/ FOR CONTACT DETAILS DATA SELECTION.perform f_get_enqiry_data. "/FOR ENQUIRY DETAILS DATA SELECTION.PERFORM F_GET_VENDORDATA.

*tables eket.*parameter p_ebeln type eket-ebeln.

TYPES : BEGIN OF GTY_EKET,        EBELN TYPE EKET-EBELN,        ebelp type eket-ebelp,        ETENR TYPE EKET-ETENR,        EINDT TYPE EKET-EINDT,        MENGE TYPE EKET-MENGE,        BANFN TYPE EKET-BANFN,        END OF GTY_EKET.DATA : GT_EKET TYPE STANDARD TABLE OF GTY_EKET.DATA : GS_EKET TYPE GTY_EKET.

TYPES : BEGIN OF GTY_EKPO,        EBELN TYPE EKPO-EBELN,        EBELP TYPE EKPO-EBELP,        MATNR TYPE EKPO-MATNR,        MEINS TYPE EKPO-MEINS,        END OF GTY_EKPO.DATA : GT_EKPO TYPE STANDARD TABLE OF GTY_EKPO,        GS_EKPO TYPE GTY_EKPO.

TYPES : BEGIN OF GTY_FINAL,    EBELN TYPE EKPO-EBELN,     EBELP TYPE EKPO-EBELP,  MATNR TYPE EKPO-MATNR,  MEINS TYPE EKPO-MEINS,  ETENR TYPE EKET-ETENR,  EINDT TYPE EKET-EINDT,  MENGE TYPE EKET-MENGE,  banfn type eket-banfn,  END OF GTY_FINAL.

  DATA : GT_FINAL TYPE STANDARD TABLE OF GTY_FINAL,         GS_FINAL TYPE GTY_FINAL.

Page 3: nace

 select EBELN ebelp matnr meins from ekpo   into table gt_ekpo   where EBELN eq P_EBELN.   "and bstyp eq 'A'.

   IF GT_EKPO IS NOT INITIAL.

     SORT GT_EKPO BY EBELP. DELETE ADJACENT DUPLICATES FROM GT_EKET.

select EBELN ebelp etenr eindt menge BANFN from        eket into table gt_eket  FOR ALL ENTRIES IN GT_EKPO   WHERE EBELN EQ P_EBELN AND EBELP = GT_EKPO-EBELP.

  SORT GT_EKET BY EBELN EBELP ETENR EINDT .    DELETE ADJACENT DUPLICATES FROM GT_EKET.

ENDIF.

  LOOP AT GT_EKPO INTO GS_EKPO.

    READ TABLE GT_EKET INTO GS_EKET WITH KEY EBELP = GS_EKPO-EBELP.    IF SY-SUBRC = 0.      GS_FINAL-EBELN = GS_EKPO-EBELN.      GS_FINAL-EBELP = GS_EKPO-EBELP.      GS_FINAL-ETENR  = GS_EKET-ETENR.      GS_FINAL-EINDT = GS_EKET-EINDT.      GS_FINAL-MENGE = GS_EKET-MENGE.      GS_FINAL-BANFN = GS_EKET-BANFN.      GS_FINAL-MATNR = GS_EKPO-MATNR.      GS_FINAL-MEINS = GS_EKPO-MEINS.      APPEND GS_FINAL TO GT_FINAL.      CLEAR GS_FINAL.

   ENDIF.   ENDLOOP.***   LOOP AT GT_FINAL INTO GS_FINAL.**    AT FIRST.*    WRITE:/ 'PO Details'.*    WRITE:/  'PO NUMBER' COLOR 5, 20 'ITEM NO' COLOR 5,*         30 'Material' COLOR 5, 50 'UOM' COLOR 5,*         60 'NO OF DEL' COLOR 5, 75 'Del Date' color 5,*         87 'QTY', 100 'Shduled Qty'.

Page 4: nace

*      endat.*     WRITE : /  GS_FINAL-EBELN,*             20 GS_FINAL-EBELP,*             30 GS_FINAL-MATNR,*             50 GS_FINAL-MEINS,*             60 GS_FINAL-ETENR,*             75 GS_FINAL-EINDT,*             87 GS_FINAL-MENGE,*             100 GS_FINAL-BANFN.**     ENDLOOP.*****REPORT z_mmp_po_print.**

*****&---------------------------------------------------------------------***& Report  ZMULTI_FORMS**&**&---------------------------------------------------------------------***&**&**&---------------------------------------------------------------------***REPORT  ZMULTI_FORMS.**Tables : vbrk , vbrp.**data:*control_parameters  type ssfctrlop,*w_cnt type I,*w_cnt2 type I,*fname type  rs38l_fnam.***selection-screen begin of block b1 with FRAME.**select-options so_vbeln for vbrk-vbeln.*select-options so_fkdat for vbrk-fkdat.*select-options so_kunag for vbrk-kunag.

Page 5: nace

*select-options so_werks for vbrp-werks OBLIGATORY.**selection-screen end of block b1.***data : gv_kunnr type kna1-kunnr.*TYPES : BEGIN OF GTY_cus_ADS,*        kunnr type kna1-kunnr,*        NAME1 TYPE ADRC-NAME1,*        CITY1 TYPE ADRC-CITY1,*        CITY_CODE TYPE ADRC-CITY_CODE,*        END OF GTY_CUS_ADS.** DATA : GS_CUS_ADS TYPE ZSTADD.** TYPES : BEGIN OF GTY_PLANT_ADS,*        NAME1 TYPE ADRC-NAME1,*        CITY1 TYPE ADRC-CITY1,*        CITY_CODE TYPE ADRC-CITY_CODE,*        END OF GTY_PLANT_ADS.** DATA : GS_PLANT_ADS TYPE ZSTADD.**types : begin of gty_vbrp,*        vbeln type vbeln_vf,*        werks type werks_d,*        end of gty_vbrp.**types:begin of gty_vbrk,*      vbeln type VBRK-vbelN,*      fkdat type fkdat,*      kunag type kunag,**      werks type werks_d,*      end of gty_vbrk.* types : begin of gty_final,*         check(1) type c,*         vbeln type vbeln_vf,*        werks type werks_d,*        fkdat type fkdat,*        kunag type kunag,*        end of gty_final.***data : gt_vbrp type STANDARD TABLE OF gty_vbrp,*       gs_vbrp type gty_vbrp.*data : gt_vbrk type  TABLE OF gty_vbrk,*       gs_vbrk type gty_vbrk.*data : gt_final type STANDARD TABLE OF ZINV_DET,*        gs_final type ZINV_DET.

Page 6: nace

*data : gt_sel type STANDARD TABLE OF gty_final,*        gs_sel type gty_final.***DATA : GV_ADRNR TYPE ADRC-ADDRNUMBER.*AT SELECTION-SCREEN.*****TOP-OF-PAGE.****WRITE 'INVOICE LIST'.**START-OF-SELECTION.***select vbeln fkdat kunag from*       vbrk into table gt_vbrk*       where vbeln in so_vbeln*       and fkdat in so_fkdat*       and kunag in so_kunag.**IF GT_VBRK IS NOT INITIAL.**select vbeln werks from vbrp*  into table gt_vbrp*  for ALL ENTRIES IN GT_VBRK*  where VBELN EQ GT_VBRK-VBELN*   AND WERKS IN SO_WERKS.****loop at gT_vbrK into gs_vbrK.**Read table gt_vbRP into gs_vbrP with  KEY vbeln  = gs_vbrK-vbeln .*  IF SY-SUBRC = 0.**gs_final-vbeln  = gs_vbrK-vbeln.* gs_final-WERKS = gs_vbrP-WERKS.*  gs_final-FKDAT = gs_vbrK-FKDAT.*  GS_FINAL-KUNAG = GS_VBRK-KUNAG.*   append gs_final to gt_final.*  ENDIF.*** clear gs_final.**  endloop.** ENDIF.

Page 7: nace

** delete ADJACENT DUPLICATES FROM gt_final.*sort gt_final by  vbeln FKDAT.*describe table GT_FINAL lines w_cnt.*****"PERFORM DISPLAY.**PERFORM SM_FUN_NAME.*** LOOP AT GT_FINAL INTO GS_FINAL.* PERFORM PLANT_ADD.* PERFORM CUST_DATA.* "PERFORM ITEM_DATA.*PERFORM CALL_SMARTFORM.**** ENDLOOP.*****&---------------------------------------------------------------------***&      Form  PLANT_ADD**&---------------------------------------------------------------------***       text**----------------------------------------------------------------------***  -->  p1        text**  <--  p2        text**----------------------------------------------------------------------**FORM PLANT_ADD .*****SELECT SINGLE ADRNR FROM T001W INTO GV_ADRNR*  WHERE WERKS EQ GS_FINAL-WERKS.*  IF SY-SUBRC = 0.**    SELECT  SINGLE NAME1 CITY1 CITY_CODE*      FROM ADRC INTO GS_PLANT_ADS*      WHERE ADDRNUMBER EQ GV_ADRNR.

Page 8: nace

**    ENDIF.**clear gv_adrnr.***ENDFORM.                    " PLANT_ADD**&---------------------------------------------------------------------***&      Form  CUST_DATA**&---------------------------------------------------------------------***       text**----------------------------------------------------------------------***  -->  p1        text**  <--  p2        text**----------------------------------------------------------------------**FORM CUST_DATA .***select SINGLE kunnr from vbpa into gv_kunnr where*        vbeln eq gs_final-vbeln and parvw = 'AG'.*if sy-subrc = 0.*select single adrnr from kna1*  into gv_adrnr where kunnr eq gv_kunnr.*  IF SY-SUBRC = 0.**   SELECT  SINGLE NAME1 CITY1 CITY_CODE*      FROM ADRC INTO GS_CUS_ADS*      WHERE ADDRNUMBER EQ GV_ADRNR.**    ENDIF.**endif.*ENDFORM.                    " CUST_DATA**&---------------------------------------------------------------------***&      Form  DISPLAY**&---------------------------------------------------------------------***       text**----------------------------------------------------------------------***  -->  p1        text**  <--  p2        text**----------------------------------------------------------------------*

Page 9: nace

*FORM DISPLAY .**  loop at gt_final into gs_final.***    write :/ "gs_final-check as checkbox,*             gs_final-vbeln ,*        gs_final-werks,*        gs_final-fkdat,*        gs_final-kunag.**    endloop.***ENDFORM.                    " DISPLAY**&---------------------------------------------------------------------***&      Form  SM_FUN_NAME**&---------------------------------------------------------------------***       text**----------------------------------------------------------------------***  -->  p1        text**  <--  p2        text**----------------------------------------------------------------------**FORM SM_FUN_NAME .*CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'*  EXPORTING*    FORMNAME                 = 'ZSD_TEST'**   VARIANT                  = ' '**   DIRECT_CALL              = ' '*  IMPORTING*      FM_NAME              = FNAME** EXCEPTIONS**   NO_FORM                  = 1**   NO_FUNCTION_MODULE       = 2**   OTHERS                   = 3*          .*IF SY-SUBRC <> 0.*MESSAGE 'Your Form Name is not existing' type 'E'.*ENDIF.****ENDFORM.                    " SM_FUN_NAME**&---------------------------------------------------------------------*

Page 10: nace

**&      Form  CALL_SMARTFORM**&---------------------------------------------------------------------***       text**----------------------------------------------------------------------***  -->  p1        text**  <--  p2        text**----------------------------------------------------------------------**FORM CALL_SMARTFORM .**w_cnt2 = sy-tabix .*case w_cnt2.*when 1.*control_parameters-no_open   = space .*control_parameters-no_close  = 'X' .*when w_cnt .*control_parameters-no_open   = 'X' .*control_parameters-no_close  = space .*when others.*control_parameters-no_open   = 'X' .*control_parameters-no_close  = 'X' .*endcase.***call function fname**exporting*  control_parameters  = control_parameters*GS_PLANTADS        = GS_PLANT_ADS*GS_CUS_ADS         = GS_CUS_ADS*GS_INV_DATA        = GS_FINAL*exceptions*formatting_error           = 1*internal_error             = 2*send_error                 = 3*user_canceled              = 4*others                     = 5*.*if sy-subrc <> 0.*message  'ERROR RELATED TO SMARTFORM OR PAGE FORMAT OR PRINTER' type*'E'.*endif.*****

Page 11: nace

***ENDFORM.                    " CALL_SMARTFORM

Page 12: nace

PERFORM set_print_param USING     ls_addr_key                          CHANGING  ls_control_param                                    ls_composer_param                                    ls_recipient                                    ls_sender                                    ent_retco.*Get the Smart Form name.  IF NOT tnapr-sform IS INITIAL.    lf_formname = tnapr-sform.  ELSE.    MESSAGE e001(/smb40/ssfcomposer).  ENDIF.

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'    EXPORTING      formname           = lf_formname    IMPORTING      fm_name            = lf_fm_name    EXCEPTIONS      no_form            = 1      no_function_module = 2      OTHERS             = 3.  IF sy-subrc <> 0.*  error handling    ent_retco = sy-subrc.    IF sy-subrc = 1.      MESSAGE e001(/smb40/ssfcomposer).    ENDIF.    IF sy-subrc = 2.      MESSAGE e002(/smb40/ssfcomposer).    ENDIF.    PERFORM protocol_update_i.  ENDIF.

  IF  ( nast-kappl EQ 'EF' AND nast-kschl EQ 'ZNEU' AND nast-spras EQ 'E') OR      ( nast-kappl EQ 'EF' AND nast-kschl EQ 'ZSEZ' AND nast-spras EQ 'E') OR      ( nast-kappl EQ 'EF' AND nast-kschl EQ 'ZSUB' AND nast-spras EQ 'E').* Determine smartform function module for PO*    CALL FUNCTION lf_fm_name*      EXPORTING*        archive_index      = toa_dara*        archive_parameters = arc_params*        control_parameters = ls_control_param**       mail_recipient     = ls_recipient**       mail_sender        = ls_sender*        output_options     = ls_composer_param*        l_xekko            = lv_doc-xekko*        l_xpekko           = lv_doc-xpekko*        j_1imovend         = GS_j_1imovend

Page 13: nace

*      TABLES*        l_xekpo            = lv_doc-xekpo[]*        l_xekpa            = lv_doc-xekpa[]*        l_xpekpo           = lv_doc-xpekpo[]*        l_xeket            = lv_doc-xeket[]*        l_xtkomv           = lv_doc-xtkomv[]*        l_xekkn            = lv_doc-xekkn[]*        l_xekek            = lv_doc-xekek[]*        l_xkomk            = l_xkomk*        l_j_1imovend       = GT_j_1imovend*        L_ADR6             = GT_ADR6*        L_EKKO             = GT_EKKO*        L_ADRC             = GT_ADRC**      EXCEPTIONS*        formatting_error   = 1*        internal_error     = 2*        send_error         = 3*        user_canceled      = 4*        OTHERS             = 5.*    IF sy-subrc <> 0.*      ent_retco = sy-subrc.*      PERFORM protocol_update_i.*** get SmartForm protocoll and store it in the NAST protocoll*      PERFORM add_smfrm_prot.*    ENDIF.

**************DATA: L_XEKPO LIKE  EKPO OCCURS 0 WITH HEADER LINE,L_XEKPA LIKE  MSGPA OCCURS 0 WITH HEADER LINE,L_XPEKPO  LIKE  PEKPO OCCURS 0 WITH HEADER LINE ,L_XEKET LIKE  EKET OCCURS 0 WITH HEADER LINE,L_XTKOMV  LIKE  KOMV OCCURS 0 WITH HEADER LINE,L_XEKKN LIKE  EKKN OCCURS 0 WITH HEADER LINE,L_XEKEK LIKE  EKEK OCCURS 0 WITH HEADER LINE  ,LV_LFA1 LIKE  LFA1 OCCURS 0 WITH HEADER LINE,GT_ADR6 LIKE  ADR6 OCCURS 0 WITH HEADER LINE,GT_KNA1 LIKE  KNA1 OCCURS 0 WITH HEADER LINE,GT_ADRC LIKE  ADRC OCCURS 0 WITH HEADER LINE,GT_EKKO LIKE  EKKO OCCURS 0 WITH HEADER LINE,GT_L_J_1IMOVEND LIKE  J_1IMOVEND OCCURS 0 WITH HEADER LINE.

  SELECT SINGLE * FROM lfa1 INTO lv_lfa1  WHERE lifnr = nast-parnr.

CALL FUNCTION lf_fm_name* EXPORTING*   ARCHIVE_INDEX              =

Page 14: nace

*   ARCHIVE_INDEX_TAB          =*   ARCHIVE_PARAMETERS         =*   CONTROL_PARAMETERS         =*   MAIL_APPL_OBJ              =*   MAIL_RECIPIENT             =*   MAIL_SENDER                =*   OUTPUT_OPTIONS             =*   USER_SETTINGS              = 'X'* IMPORTING*   DOCUMENT_OUTPUT_INFO       =*   JOB_OUTPUT_INFO            =*   JOB_OUTPUT_OPTIONS         =  TABLES    L_XEKPO                    = L_XEKPO    L_XEKPA                    = L_XEKPA    L_XPEKPO                   = L_XPEKPO    L_XEKET                    = L_XEKET    L_XTKOMV                   = L_XTKOMV    L_XEKKN                    = L_XEKKN    L_XEKEK                    = L_XEKEK    LV_LFA1                    = LV_LFA1    GT_ADR6                    = GT_ADR6    GT_KNA1                    = GT_KNA1    GT_ADRC                    = GT_ADRC    GT_EKKO                    = GT_EKKO    GT_L_J_1IMOVEND            = GT_L_J_1IMOVEND* EXCEPTIONS*   FORMATTING_ERROR           = 1*   INTERNAL_ERROR             = 2*   SEND_ERROR                 = 3*   USER_CANCELED              = 4*   OTHERS                     = 5          .IF SY-SUBRC <> 0.* Implement suitable error handling hereENDIF.*ENDIF.

****************  ENDIF.ENDFORM.                    "entry_neu

*&---------------------------------------------------------------------**&      Form  protocol_update_I*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text

Page 15: nace

*----------------------------------------------------------------------*FORM protocol_update_i.  CHECK gv_xscreen = space.  CALL FUNCTION 'NAST_PROTOCOL_UPDATE'    EXPORTING      msg_arbgb = syst-msgid      msg_nr    = syst-msgno      msg_ty    = syst-msgty      msg_v1    = syst-msgv1      msg_v2    = syst-msgv2      msg_v3    = syst-msgv3      msg_v4    = syst-msgv4    EXCEPTIONS      OTHERS    = 1.ENDFORM.                               " protocol_update_I*&---------------------------------------------------------------------**&      Form  add_smfrm_prot*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM add_smfrm_prot.  DATA: lt_errortab           TYPE tsferror.  DATA: lf_msgnr              TYPE sy-msgno.  DATA: ls_s_log              TYPE bal_s_log,        p_loghandle           TYPE balloghndl,        ls_s_msg              TYPE bal_s_msg.  FIELD-SYMBOLS: <fs_errortab>  TYPE LINE OF tsferror.* get smart form protocoll  CALL FUNCTION 'SSF_READ_ERRORS'    IMPORTING      errortab = lt_errortab.  SORT lt_errortab.* delete adjacent duplicates from lt_errortab comparing errnumber.* add smartform protocoll to nast protocoll  LOOP AT lt_errortab ASSIGNING <fs_errortab>.    CLEAR lf_msgnr.    lf_msgnr = <fs_errortab>-errnumber.    CALL FUNCTION 'NAST_PROTOCOL_UPDATE'      EXPORTING        msg_arbgb = <fs_errortab>-msgid        msg_nr    = lf_msgnr        msg_ty    = <fs_errortab>-msgty        msg_v1    = <fs_errortab>-msgv1        msg_v2    = <fs_errortab>-msgv2        msg_v3    = <fs_errortab>-msgv3        msg_v4    = <fs_errortab>-msgv4

Page 16: nace

      EXCEPTIONS        OTHERS    = 1.  ENDLOOP.

* open the application log  ls_s_log-extnumber    = sy-uname.

  CALL FUNCTION 'BAL_LOG_CREATE'    EXPORTING      i_s_log      = ls_s_log    IMPORTING      e_log_handle = p_loghandle    EXCEPTIONS      OTHERS       = 1.  IF sy-subrc <> 0.  ENDIF.

  LOOP AT lt_errortab ASSIGNING <fs_errortab>.    MOVE-CORRESPONDING <fs_errortab> TO ls_s_msg.    CALL FUNCTION 'BAL_LOG_MSG_ADD'      EXPORTING        i_log_handle = p_loghandle        i_s_msg      = ls_s_msg      EXCEPTIONS        OTHERS       = 1.    IF sy-subrc <> 0.    ENDIF.  ENDLOOP.*  call function 'BAL_DSP_LOG_DISPLAY'.

ENDFORM.                               " add_smfrm_prot*&---------------------------------------------------------------------**&      Form  set_print_param*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->P_LS_ADDR_KEY  text*      <--P_LS_CONTROL_PARAM  text*      <--P_LS_COMPOSER_PARAM  text*      <--P_LS_RECIPIENT  text*      <--P_LS_SENDER  text*      <--P_CF_RETCODE  text*----------------------------------------------------------------------*FORM set_print_param USING    p_addr_key LIKE addr_key                     CHANGING p_control_param TYPE ssfctrlop                              p_composer_param TYPE ssfcompop                              p_recipient TYPE  swotobjid                              p_sender TYPE  swotobjid                              p_retcode TYPE sy-subrc.

Page 17: nace

  DATA: ls_itcpo     TYPE itcpo.  DATA: ls_repid     TYPE sy-repid.  DATA: ls_device    TYPE tddevice.*  DATA: ls_recipient TYPE swotobjid.*  DATA: ls_sender    TYPE swotobjid.

  ls_repid = sy-repid.

  CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'    EXPORTING      pi_nast       = nast      pi_addr_key   = p_addr_key      pi_repid      = ls_repid    IMPORTING      pe_returncode = p_retcode      pe_itcpo      = ls_itcpo      pe_device     = ls_device      pe_recipient  = p_recipient      pe_sender     = p_sender.

  IF p_retcode = 0.    MOVE-CORRESPONDING ls_itcpo TO p_composer_param.*    P_composer_param-tdnoprint = 'X'.    P_control_param-device      = ls_device.    P_control_param-no_dialog   = 'X'.    P_control_param-preview     = gv_xscreen.    P_control_param-getotf      = ls_itcpo-tdgetotf.    P_control_param-langu       = nast-spras.  ENDIF.ENDFORM.                    "set_print_param