hemir_abap

学习ABAP的小小博客

My Links

Blog Stats

Cached @ 2025/4/28 15:00:11Control ASP.skins_mtclean_controls_blogstats_ascx

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/28 15:00:11Control ASP.skins_mtclean_controls_singlecolumn_ascx

Material Document Output Definition ( Output via Smartforms)(转)

Material Document Output Definition ( Output via Smartforms)

转自:http://sharrysleepinbest.spaces.live.com/blog/cns!3FDE61CC2C7B7068!137.trak

1. Create Output program copy from SAPM07DR to ZSAPM07DR. line-70 { INCLUDE: ZM07DRENT.    }
2. Copy include program from M07DRENT to ZM07DRENT M07DRAUS to ZM07DRAUS.
Line 10
Initial Code:
{
FORM entry_we01 USING ent_retco ent_screen.
  xscreen = ent_screen.
  CLEAR ent_retco.
  PERFORM lesen USING nast-objky.
  ent_retco = retco.
  PERFORM ausgabe_we01.
ENDFORM.
}
Changed Code:
{
FORM entry_we01 USING ent_retco ent_screen.
  DATA: LS_PRINT_DATA_TO_READ TYPE LEDLV_PRINT_DATA_TO_READ.
  DATA: LS_DLV_DELNOTE        TYPE LEDLV_DELNOTE.
  DATA: LF_FM_NAME            TYPE RS38L_FNAM.
  DATA: LS_CONTROL_PARAM      TYPE SSFCTRLOP.
  DATA: LS_COMPOSER_PARAM     TYPE SSFCOMPOP.
  DATA: LS_RECIPIENT          TYPE SWOTOBJID.
  DATA: LS_SENDER             TYPE SWOTOBJID.
*  DATA: LF_FORMNAME           TYPE TDSFNAME.
  DATA: LS_ADDR_KEY           LIKE ADDR_KEY.
  data: l_return like sy-SUBRC.

  xscreen = ent_screen.
  CLEAR ent_retco.
*  PERFORM lesen USING nast-objky.
  ent_retco = retco.
*  PERFORM ausgabe_we01.
  DATA: LF_FORMNAME           TYPE TDSFNAME.

*--------------------------------------------------------------

  PERFORM lesen USING nast-objky.

  if TNAPR-SFORM is INITIAL. 

    PERFORM ausgabe_we01.
  else.

    PERFORM SET_PRINT_PARAM USING    LS_ADDR_KEY
                                      ENT_SCREEN
                            CHANGING LS_CONTROL_PARAM
                                     LS_COMPOSER_PARAM
                                     LS_RECIPIENT
                                     LS_SENDER
                                     L_RETURN.

    LF_FORMNAME = TNAPR-SFORM.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
            EXPORTING  FORMNAME           = LF_FORMNAME
*                 variant            = ' '
*                 direct_call        = ' '
            IMPORTING  FM_NAME            = LF_FM_NAME
            EXCEPTIONS NO_FORM            = 1
                       NO_FUNCTION_MODULE = 2
                       OTHERS             = 3.
    IF SY-SUBRC <> 0.
*   error handling
      l_return = SY-SUBRC.
*      PERFORM PROTOCOL_UPDATE.
    ENDIF.
  ENDIF.

  IF l_return = 0.


    CALL FUNCTION LF_FM_NAME
     EXPORTING
*                  ARCHIVE_INDEX        = TOA_DARA
*                  ARCHIVE_PARAMETERS   = ARC_PARAMS
                      CONTROL_PARAMETERS   = LS_CONTROL_PARAM
*                 mail_appl_obj        =
                      MAIL_RECIPIENT       = LS_RECIPIENT
                      MAIL_SENDER          = LS_SENDER
                      OUTPUT_OPTIONS       = LS_COMPOSER_PARAM
                      USER_SETTINGS        = ' ' "ent_screen
                     GS_MKPF                    = mkpf
*                 GC_DRUVO                   =
                     GS_NAST                    = nast
                     GS_MSEG                    = mseg
                     GS_EKKO                    = ekko
                     GS_EKPO                    = ekpo
                     GS_AUFK                    = aufk
                     GS_AFPO                    = afpo
                     GS_AFKO                    = afko
*               IMPORTING
*                 DOCUMENT_OUTPUT_INFO       =
*                 JOB_OUTPUT_INFO            =
*                 JOB_OUTPUT_OPTIONS         =
*               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.


  endif.

ENDFORM.                                                    "entry_we01


*----------- Wareneingangsschein Version 2 ----------------------------*
FORM entry_we02 USING ent_retco ent_screen.
*  xscreen = ent_screen.
*  CLEAR ent_retco.
*  PERFORM lesen USING nast-objky.
*  ent_retco = retco.
*  PERFORM bestellkopf_lesen.
*  PERFORM ausgabe_we02.
  DATA: LS_PRINT_DATA_TO_READ TYPE LEDLV_PRINT_DATA_TO_READ.
  DATA: LS_DLV_DELNOTE        TYPE LEDLV_DELNOTE.
  DATA: LF_FM_NAME            TYPE RS38L_FNAM.
  DATA: LS_CONTROL_PARAM      TYPE SSFCTRLOP.
  DATA: LS_COMPOSER_PARAM     TYPE SSFCOMPOP.
  DATA: LS_RECIPIENT          TYPE SWOTOBJID.
  DATA: LS_SENDER             TYPE SWOTOBJID.
*  DATA: LF_FORMNAME           TYPE TDSFNAME.
  DATA: LS_ADDR_KEY           LIKE ADDR_KEY.
  data: l_return like sy-SUBRC.

  xscreen = ent_screen.
  CLEAR ent_retco.
*  PERFORM lesen USING nast-objky.
  ent_retco = retco.
*  PERFORM ausgabe_we01.
  DATA: LF_FORMNAME           TYPE TDSFNAME.

*--------------------------------------------------------------

  PERFORM lesen USING nast-objky.

  if TNAPR-SFORM is INITIAL. 

    PERFORM ausgabe_we01.
  else.

    PERFORM SET_PRINT_PARAM USING    LS_ADDR_KEY
                                      ENT_SCREEN
                            CHANGING LS_CONTROL_PARAM
                                     LS_COMPOSER_PARAM
                                     LS_RECIPIENT
                                     LS_SENDER
                                     L_RETURN.

    LF_FORMNAME = TNAPR-SFORM.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
            EXPORTING  FORMNAME           = LF_FORMNAME
*                 variant            = ' '
*                 direct_call        = ' '
            IMPORTING  FM_NAME            = LF_FM_NAME
            EXCEPTIONS NO_FORM            = 1
                       NO_FUNCTION_MODULE = 2
                       OTHERS             = 3.
    IF SY-SUBRC <> 0.
*   error handling
      l_return = SY-SUBRC.
*      PERFORM PROTOCOL_UPDATE.
    ENDIF.
  ENDIF.

  IF l_return = 0.


    CALL FUNCTION LF_FM_NAME
     EXPORTING
*                  ARCHIVE_INDEX        = TOA_DARA
*                  ARCHIVE_PARAMETERS   = ARC_PARAMS
                      CONTROL_PARAMETERS   = LS_CONTROL_PARAM
*                 mail_appl_obj        =
                      MAIL_RECIPIENT       = LS_RECIPIENT
                      MAIL_SENDER          = LS_SENDER
                      OUTPUT_OPTIONS       = LS_COMPOSER_PARAM
                      USER_SETTINGS        = ' ' "ent_screen
                     GS_MKPF                    = mkpf
*                 GC_DRUVO                   =
                     GS_NAST                    = nast
                     GS_MSEG                    = mseg
                     GS_EKKO                    = ekko
                     GS_EKPO                    = ekpo
                     GS_AUFK                    = aufk
                     GS_AFPO                    = afpo
                     GS_AFKO                    = afko
*               IMPORTING
*                 DOCUMENT_OUTPUT_INFO       =
*                 JOB_OUTPUT_INFO            =
*                 JOB_OUTPUT_OPTIONS         =
*               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.


  endif.
ENDFORM.                                                    "entry_we02
*----------- Wareneingangsschein Version 3 ----------------------------*
FORM entry_we03 USING ent_retco ent_screen.
*  xscreen = ent_screen.
*  CLEAR ent_retco.
*  CLEAR lgortsplit.
*  PERFORM lesen_wes USING nast-objky lgortsplit.
*  ent_retco = retco.
    DATA: LS_PRINT_DATA_TO_READ TYPE LEDLV_PRINT_DATA_TO_READ.
  DATA: LS_DLV_DELNOTE        TYPE LEDLV_DELNOTE.
  DATA: LF_FM_NAME            TYPE RS38L_FNAM.
  DATA: LS_CONTROL_PARAM      TYPE SSFCTRLOP.
  DATA: LS_COMPOSER_PARAM     TYPE SSFCOMPOP.
  DATA: LS_RECIPIENT          TYPE SWOTOBJID.
  DATA: LS_SENDER             TYPE SWOTOBJID.
*  DATA: LF_FORMNAME           TYPE TDSFNAME.
  DATA: LS_ADDR_KEY           LIKE ADDR_KEY.
  data: l_return like sy-SUBRC.

  xscreen = ent_screen.
  CLEAR ent_retco.
*  PERFORM lesen USING nast-objky.
  ent_retco = retco.
*  PERFORM ausgabe_we01.
  DATA: LF_FORMNAME           TYPE TDSFNAME.

*--------------------------------------------------------------

PERFORM lesen USING nast-objky .

  if TNAPR-SFORM is INITIAL.

  xscreen = ent_screen.
  CLEAR ent_retco.
  CLEAR lgortsplit.
  PERFORM lesen_wes USING nast-objky lgortsplit.
  ent_retco = retco.
  else.

    PERFORM SET_PRINT_PARAM USING    LS_ADDR_KEY
                                      ENT_SCREEN
                            CHANGING LS_CONTROL_PARAM
                                     LS_COMPOSER_PARAM
                                     LS_RECIPIENT
                                     LS_SENDER
                                     L_RETURN.

    LF_FORMNAME = TNAPR-SFORM.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
            EXPORTING  FORMNAME           = LF_FORMNAME
*                 variant            = ' '
*                 direct_call        = ' '
            IMPORTING  FM_NAME            = LF_FM_NAME
            EXCEPTIONS NO_FORM            = 1
                       NO_FUNCTION_MODULE = 2
                       OTHERS             = 3.
    IF SY-SUBRC <> 0.
*   error handling
      l_return = SY-SUBRC.
*      PERFORM PROTOCOL_UPDATE.
    ENDIF.
  ENDIF.

  IF l_return = 0.


    CALL FUNCTION LF_FM_NAME
     EXPORTING
*                  ARCHIVE_INDEX        = TOA_DARA
*                  ARCHIVE_PARAMETERS   = ARC_PARAMS
                      CONTROL_PARAMETERS   = LS_CONTROL_PARAM
*                 mail_appl_obj        =
                      MAIL_RECIPIENT       = LS_RECIPIENT
                      MAIL_SENDER          = LS_SENDER
                      OUTPUT_OPTIONS       = LS_COMPOSER_PARAM
                      USER_SETTINGS        = ' ' "ent_screen
                     GS_MKPF                    = mkpf
*                 GC_DRUVO                   =
                     GS_NAST                    = nast
                     GS_MSEG                    = mseg
                     GS_EKKO                    = ekko
                     GS_EKPO                    = ekpo
                     GS_AUFK                    = aufk
                     GS_AFPO                    = afpo
                     GS_AFKO                    = afko
*               IMPORTING
*                 DOCUMENT_OUTPUT_INFO       =
*                 JOB_OUTPUT_INFO            =
*                 JOB_OUTPUT_OPTIONS         =
*               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.


  endif.
ENDFORM.                                                    "entry_we03
}

Add Code:
{
FORM SET_PRINT_PARAM USING    IS_ADDR_KEY LIKE ADDR_KEY
                        ent_screen
                     CHANGING CS_CONTROL_PARAM TYPE SSFCTRLOP
                              CS_COMPOSER_PARAM TYPE SSFCOMPOP
                              CS_RECIPIENT TYPE  SWOTOBJID
                              CS_SENDER TYPE  SWOTOBJID
                              CF_RETCODE TYPE SY-SUBRC.

  DATA: LS_ITCPO     TYPE ITCPO.
  DATA: LF_REPID     TYPE SY-REPID.
  DATA: LF_DEVICE    TYPE TDDEVICE.
  DATA: LS_RECIPIENT TYPE SWOTOBJID.
  DATA: LS_SENDER    TYPE SWOTOBJID.

  LF_REPID = SY-REPID.

  CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
    EXPORTING
      PI_NAST       = NAST
      PI_ADDR_KEY   = IS_ADDR_KEY
      PI_REPID      = LF_REPID
    IMPORTING
      PE_RETURNCODE = CF_RETCODE
      PE_ITCPO      = LS_ITCPO
      PE_DEVICE     = LF_DEVICE
      PE_RECIPIENT  = CS_RECIPIENT
      PE_SENDER     = CS_SENDER.

  IF CF_RETCODE = 0.
    MOVE-CORRESPONDING LS_ITCPO TO CS_COMPOSER_PARAM.
*   CS_CONTROL_PARAM-NO_OPEN
*   CS_CONTROL_PARAM-NO_CLOSE
    CS_CONTROL_PARAM-DEVICE      = LF_DEVICE.
    CS_CONTROL_PARAM-NO_DIALOG   = 'X'.
    CS_CONTROL_PARAM-PREVIEW     = ent_screen.
    CS_CONTROL_PARAM-GETOTF      = LS_ITCPO-TDGETOTF.
    CS_CONTROL_PARAM-LANGU       = NAST-SPRAS.
*   CS_CONTROL_PARAM-REPLANGU1
*   CS_CONTROL_PARAM-REPLANGU2
*   CS_CONTROL_PARAM-REPLANGU3
*   CS_CONTROL_PARAM-STARTPAGE
  ENDIF.
ENDFORM.                               " SET_PRINT_PARAM
}

{
FORM ausgabe_we01.
*  PERFORM open_form.
*  IF not t159p-xmehr is initial.
*    IF mseg-weanz gt 0.
*      anzahl = mseg-weanz.
*    ELSE.
*      anzahl = 1.
*    ENDIF.
*  ELSE.
*    anzahl = 1.
*  ENDIF.
*  DO anzahl TIMES.
*    PERFORM we01_druck.
*  ENDDO.
*  PERFORM close_form.

data: l_return.

  CLEAR l_return.
  l_return = 0.
*  XSCREEN = US_SCREEN.
** Kennung, da?Einstieg 黚er Lieferbeleg erfolgt (also aus Grob-WE bzw.
** Lieferavis)
*  QUELLE = XLIEF.
** Beschaffung der Daten 黚er SD-Lieferung
*  PERFORM GET_DATA_LIEF.
*  IF RETCODE NE 0.
*    RETURN_CODE = 1.
*    EXIT.
*  ENDIF.
** Formular 鰂fnen
*  PERFORM FORM_OPEN USING US_SCREEN WEZLK-LAND1_EM.
*  IF RETCODE NE 0.
*    RETURN_CODE = 1.
*    EXIT.
*  ENDIF.
** Wiederholungsdruck ?
*  PERFORM CHECK_REPEAT.
** Textelemente f黵 Kontrolliste
*  PERFORM PRINT_CHECKL.
*  IF RETCODE NE 0.
*    RETURN_CODE = 1.
*    EXIT.
*  ENDIF.
** Formular schlie遝n
*  PERFORM FORM_CLOSE.
*  IF RETCODE NE 0.
*    RETURN_CODE = 1.
*  ENDIF.
    DATA: LF_FORMNAME           TYPE TDSFNAME.
   DATA: LF_FM_NAME            TYPE RS38L_FNAM.
  LF_FORMNAME = TNAPR-SFORM.
 CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
         EXPORTING  FORMNAME           = LF_FORMNAME
*                 variant            = ' '
*                 direct_call        = ' '
         IMPORTING  FM_NAME            = LF_FM_NAME
         EXCEPTIONS NO_FORM            = 1
                    NO_FUNCTION_MODULE = 2
                    OTHERS             = 3.
*    IF SY-SUBRC <> 0.
**   error handling
*      CF_RETCODE = SY-SUBRC.
*      PERFORM PROTOCOL_UPDATE.
*    ENDIF.
*  ENDIF.

  IF l_return = 0.
*   call smartform delivery note
    CALL FUNCTION LF_FM_NAME
         EXPORTING
*                  ARCHIVE_INDEX        = TOA_DARA
*                  ARCHIVE_PARAMETERS   = ARC_PARAMS
*                  CONTROL_PARAMETERS   = LS_CONTROL_PARAM
*                 mail_appl_obj        =
*                  MAIL_RECIPIENT       = LS_RECIPIENT
*                  MAIL_SENDER          = LS_SENDER
*                  OUTPUT_OPTIONS       = LS_COMPOSER_PARAM
                  USER_SETTINGS        = ' '
*                  IS_DLV_DELNOTE       = LS_DLV_DELNOTE
                  IS_NAST              = NAST
*      importing  document_output_info =
*                 job_output_info      =
*                 job_output_options   =
       EXCEPTIONS FORMATTING_ERROR     = 1
                  INTERNAL_ERROR       = 2
                  SEND_ERROR           = 3
                  USER_CANCELED        = 4
                  OTHERS               = 5.
endif.

ENDFORM.
}
3. NACE: Define print report as ZSAPM07DR, define output reference the smartforms is OK

图片地址(所修改的内容):http://byfiles.storage.live.com/y1p63VBG6eJSyHskQ12u17iqO4-J0dTrF7QYBbu8u7cdxr_dsIZLRrdTSTaaaYE3CZsQfDMYOyJQTU

posted on 2009-04-22 15:55 hemir 阅读(848) 评论(0)  编辑 收藏

Feedback

标题
姓名
主页
内容 
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]