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