Smartforms and print program
Is there a way or transaction to tell the print program associated with a standard SAP smartform. The smartform is WB2_CONTRACT_VENDOR
Hi Amrutha,
Please note that the smartform WB2_CONTRACT_CUSTOMER will be using in trading contracts package "WB2B". I think you have to assign this form to O/P determination for trading contracts thru customization. then that will crate an entry in TNAPR table.
Have you implemented Global Trading ? If so then you can see the print program for this form in table TNAPR.
Hope this will help you.
Lanka
Message was edited by: Lanka Murthy
Similar Messages
-
Standard smartform and print program for sales document
HI All,
Is there a standard smartform and print program for sales document or sales order. If someone has worked with it do reply.Hi Shashank,
What exactly you would like to print for Sales Orders in Smartforms..?
regards,
Ram. -
Regarding Smartforms and Print Programs in MM
HI
ALL
I need to customise the all the standard smartforms Purchase Requisition , Purchase Order,Goods receipt,Goods issue,Goods return in MM .For this I need the standard smartforms and driven programs(Print Programs) for these . send me the smartforms and printprograms for these.
Regards
VenkatHi,
You can goto 'NACE' transaction and select the Required Application then Click on OUTPUT TYPES and select the required Output type and click on PROCESSING ROUTINES.
In this way you can get the standard Smartforms.
Hope this may be helpful,
Regards,
Sravanthi -
Standard samrtforms and print program for Bill of Lading in delivery
Is there a standard smartform and print program for Bill of Lading for delivery?
Hi
Check this:
Print Program: RLE_DELNOTE.
Smartform: LE_SHP_DELNOTE.
Regards,
Vishwa. -
How to Import customized internal table to smartform from Print Program
Hi Gurus,
I want to Import customized internal table to smartform from print program, Can anybody tell me how it is possible.
With regards,
S.SaravananThere is no problem passing an internal table to a smarforms, smartforms have the same interface as a function module ([Defining the Form Interface|http://help.sap.com/saphelp_nw70/helpdata/en/1c/f40c5bddf311d3b574006094192fe3/frameset.htm] in [Smart Forms|http://help.sap.com/saphelp_nw70/helpdata/en/a5/de6838abce021ae10000009b38f842/frameset.htm]) so could you elaborate a little more on your requirement (is it a standard a custom forms, etc.)
Regards,
Raymond -
Daily & Monthly Backlog Reports and Printing program
<b>Labeling program for Deliveries</b>: This program picks all deliveries created/updated on the current day, validates them by checking whether they have the required labeling information. If the program finds that the labeling information is missing, it populates WMS structures (header & detail) for further.
<b>Daily & Monthly Backlog Reports and Printing program</b>: This program calls 2 separate reports (Daily & Qtrly. Backlog Reports), based on user selection, and directly prints the reports as well as converts them to PDF format and emails them as attachments to the MD.
Please provide me the solution.For First program :
Use table LIKP (SD Document: Delivery Header Data) & LIPS(item Data) for fetch inf all the data for selected date use field ERZET(Entry time) & ERDAT(Date creation of record) for created deliveries & refer TABLES - CDPOS and CDHDR for modified deliveries
For Second object:
Call multiple programs by using SUBMIT <program> with selection screen params.
Print as per requirement by passing print parameters to Structure PRI_PARAMS &
call function 'GET_PRINT_PARAMETERS'
exporting destination = liprintr
mode = 'CURRENT'
no_dialog = 'X'
importing out_parameters = pri_params.
*To Convert ABAP List and SAP Script to PDF files use program - "RSTXPDFT4"
ALSO REFER this nice weblog >
/people/erwan.lebrun/blog/2007/04/16/tips-tricks-email-fax-through-the-same-output-type
Hope it will help.
Vishal
Message was edited by:
Vishal Tyagi -
How to assign smartform to print program for payment advice
Hi!
There is already a print program and a smartform for payment advice. This was working before as I was told. But when I checked table TNAPR, there is no entry in the table with the program name and neither for the smartform. How can I use them together again? This is used in tcode F110 so I could not use NACE.
Any advise? Thanks!
CholenHi Cholen,
Configuration to assign Program and Form names for F110 is done in FBZP Transaction.
Please Check under Paying company codes tab and Pmnt Methods in company Code tab where Smart form and other text modules are assigned.
Under Pmnt methods in a country Print program is assigned.
Thanks
Sri -
Attaching smartform and print prog to invoice
hi
ive developed a smartform and a print program.
da program has a selection screen dat asks user for doc number(vbeln).
it den displays data in da smartform.
now ive to attach it to va02.
wen i attach it using v/40 output type(RD000) program name : zinvoice and pdf/smartform: zinv .and try to get print preview using vf03 da preview doesnt appear.also wen i click on print it shows message "output cannot be issued".
can ny1 suggest wat da problem is and how to resolve it...
points 'll b rewarded.
rgdsfirst call the function module name using ssf_function module _name
and then inluce ur fm.
as below.
Reading the NAST and DOC structures
CALL FUNCTION 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
CHECK ent_retco EQ 0.
SmartForm from customizing table TNAPR
gv_formname = tnapr-sform.
Calling the layout set
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = gv_formname
IMPORTING
fm_name = gv_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
PERFORM protocol_update.
ENDIF.
For Print output:
IF nast-nacha = '1'. " Print output
ls_control_param-preview = 'X'.
ls_control_param-no_dialog = 'X'.
ENDIF.
For fax output.
IF nast-nacha = '2'. " Fax
Create the Recipient Object
CALL FUNCTION 'CREATE_RECIPIENT_OBJ_PPF'
EXPORTING
ip_country = gv_land1
ip_faxno = gv_telfx
ip_type_id = lv_fax_tp
IMPORTING
ep_recipient_id = ls_recipient_id
EXCEPTIONS
invalid_recipient = 1
OTHERS = 2.
IF sy-subrc NE 0.
IF write_out = 'X'.
FORMAT COLOR 6.
WRITE AT /5 text-004.
ENDIF.
RAISE other.
ENDIF.
Create The Sender Object
CALL FUNCTION 'CREATE_SENDER_OBJECT_PPF'
EXPORTING
ip_sender = sy-uname
IMPORTING
ep_sender_id = ls_sender_id
EXCEPTIONS
invalid_sender = 1
OTHERS = 2.
IF sy-subrc NE 0.
IF write_out = 'X'.
FORMAT COLOR 6.
WRITE AT /5 text-003.
ENDIF.
RAISE other.
ENDIF.
Output options
ls_output_options-tdteleland = gv_land1.
ls_output_options-tdtelenum = gv_telfx.
ls_output_options-tdfaxuser = sy-uname.
Control parameters
ls_control_param-device = lc_fax.
ls_control_param-no_dialog = 'X'.
ls_control_param-langu = nast-tdspras.
ENDIF.
IF gv_fm_name IS NOT INITIAL.
Below function module is used to show the Smart form
CALL FUNCTION gv_fm_name
EXPORTING
is_nast = l_nast
doc = l_doc
control_parameters = ls_control_param
output_options = ls_output_options
user_settings = ' '
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
Error handling
cf_retcode = sy-subrc.
PERFORM protocol_update.
ELSE.
ENDIF.
ENDIF. -
Attaching smartforms and print prog to invoice
hi
ive developed a smartform and a print program.
da program has a selection screen dat asks user for doc number(vbeln).
it den displays data in da smartform.
now ive to attach it to va02.
wen i attach it using v/40 output type(RD000) program name : zinvoice and pdf/smartform: zinv .and try to get print preview using vf03 da preview doesnt appear.also wen i click on print it shows message "output cannot be issued".
can ny1 suggest wat da problem is and how to resolve it...
points 'll b rewarded...
rgds
Message was edited by:
abapuser1.
How did u assigned the output type in NACE.
2.
did u go through the form routines of data/transfer copy controls in VOFM .
if its VA02 and VF02 then VTFA has to be used for the same in setting the output type .
if option 2 is not ur case then check with ur functional consultant as to which requirement this output is configured in the nace and in procedures.
o/p cannot be issued is not able to pick the output type for the form and the print program.
This output type has to be configured in NACE first of all.
Then to test the invoice enable this output type for that vbeln number in GOTo-_header->output -> and enable the output type.
regards,
vijay -
Reg: Smart forms and print programs
Hi
I would like to locate the print programs and the corresponding smart forms. say for invoice we have a smart form available and how to track the print program for it. pls advise.
thkx
PrabhuHi Prabhu,
You can track the Program through mainintaing table TNAPR. TNAPR is the table which is having entries for "Processing Programs for output".
Here you have fields like
pgnam - Program Name
sform - Smartform Name
fonam - Script Name
kschl - Output type
Here,You can maintain form against a program name.
Hope you are clear.
Regards,
Siddhesh Sanghvi. -
Is medruck form available in smartform including print program
Can any one tell me a standard form name & print program name in smartforms for medruck in sap scripts.
Hi
For Purchase Order
PUCHASE ORDER
Output type : NEU
ScriptForm Name : MEDRUCK
Driver Program Name : SAPMF06P
smartform name : /SMB40/MMPO_L
copy the std form or smartform and use it after attaching the same in NACE tcode
Reward points if useful
Regards
Anji -
How to find output type givenSapscript form name and print program name
Hi Experts,
Can anyone tell me how to find the output type of a sapscript form if the print program name and sapscript form name is
known.Hi,
There are two ways:
1. Use table TNAPR .. Here is table give PGNAM as your print program name and FONAM as form name.. Now the field KSCHL will be the output type assigned to your script.
2. You can also check the NACE t-code.. In that select a application(Corresponds to your area) -> click on Output types tab -> Here you get list of output type.. You need click on Processing Routine folder to get all other info.. -
Hi All ,
How to find the print program and output types used by a particular t-code.
Thanks in advance
vinayHi Vinay,
Generally all the print programs and output types can be referred in Tcode NACE.
In NACE all the Print Programs and Output types are stored according to there Application.
_Application_ _Description_
CF Error Control
CV Document Management
E1 Inbound Delivery
EA Purchasing RFQ
EF Purchase Order
EL Purch. SchAgrRelease
V1 Sales
V2 Shipping
V3 Billing
V5 Groups
V6 Handling Units
V7 Transport
For each Application u have output types.
For an example let u see for Purchase Order (EF)
In NACE Select EF..........Purchase Order. Now click on Output types Push Button on the Application tool bar.
Now u can see all the output types related to that Application.
Output type Name
AUFB Dunning Ord Confirm
ERIN Reminder
MAHN Dunning
MAIL New PO printout
NEU New PO printout
NEUS New PO printout
Now Select output type NEU.....New PO printout and Double click on Processing Routines . Here u can see the MEDIUM, FORM, PROGRAM, FORM ROUTINE.
reward if helpful
raam -
Develop a form and print program using VBAP, VBAK, MRKT.
I have 2 tables VBAK [fields: VBELN, ERDAT, ERNAM, AUDAT, VBTYP, VKORG] and VBAP [Fields: POSNR, MATNR, CHARG, WAERK] and In output(form) i need the following fields,
Output table:
-VBELN
-ERDAT
-VKORG
-POSNR
-MATNR
-MAKTX <- this field is from table MAKT. (I need the Material descriptions too for all the materials.)
Form Layout should have Header, Logo (SAP ENJOY), Main, Footer.
Problem is that i need footer only after the End of Complete data in Main Window, thats is footer should be placed only in last window. How should i do that ?
Logic which i thot to make the print program is : First declare an internal table itab1 with VBAP, VBAP using the above fields from two tables and fetch the product based on matnr.
declare one internal table itab2 and select the records from the table makt by checking the condition itab1 is not initial.
sample code.
IF ITAB1 IS NOT INITIAL.
SELECT FIELD LIST FROM MAKT INTO TABLE ITAB2 WHERE MATNR EQ ITAB1-MATNR.
ENDIF.
hope this shuld work. ?????Hi
see the sample script program and do accordingly
*& Report ZTEST12121
*& SAPScripts Example 1
REPORT ztest12121.
*DATABASE TABLES
TABLES: ekko,ekpo,lfa1.
*INTERNAL TABLES AND STRUCTURES
DATA i_ekko LIKE ekko.
DATA i_ekpo LIKE ekpo OCCURS 0 WITH HEADER LINE.
DATA i_lfa1 LIKE lfa1.
*PARAMETERS
PARAMETERS: p_ebeln LIKE ekko-ebeln.
*VARIABLES
DATA MAT TYPE STRING VALUE 'MAT NO'.
DATA iTe TYPE STRING VALUE 'ITEM NO'.
DATA QTY TYPE STRING VALUE 'QTY'.
DATA UOM TYPE STRING VALUE 'UOM'.
DATA NET TYPE STRING VALUE 'NET PRICE'.
Data var type integer value 0.
*DATABASE SELECTS
*Header data
SELECT SINGLE * FROM ekko INTO i_ekko WHERE ekko~ebeln = p_ebeln.
IF sy-subrc = 0.
*Item Data
SELECT * FROM ekpo INTO TABLE i_ekpo WHERE ekpo~ebeln = p_ebeln.
IF sy-subrc NE 0.
WRITE 'PURCHASE DOCUMENT ITEM DATA ERROR'.
ELSE.
*Vendor Details
SELECT SINGLE * FROM lfa1 INTO i_lfa1 WHERE lfa1~lifnr = i_ekko-lifnr.
IF sy-subrc NE 0.
WRITE 'VENDOR DOCUMENT ITEM DATA ERROR'.
ENDIF.
ENDIF.
ELSE.
WRITE 'THIS PURCHASE DOCUMENT NUMBER DOESNOT EXISTS'.
ENDIF.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
APPLICATION = 'TX'
ARCHIVE_INDEX =
ARCHIVE_PARAMS =
DEVICE = 'PRINTER'
DIALOG = 'X'
form = 'ZSCRIPT_1'
language = sy-langu
OPTIONS =
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJECT =
RAW_DATA_INTERFACE = '*'
SPONUMIV =
IMPORTING
LANGUAGE =
NEW_ARCHIVE_PARAMS =
RESULT =
EXCEPTIONS
CANCELED = 1
DEVICE = 2
FORM = 3
OPTIONS = 4
UNCLOSED = 5
MAIL_OPTIONS = 6
ARCHIVE_ERROR = 7
INVALID_FAX_NUMBER = 8
MORE_PARAMS_NEEDED_IN_BATCH = 9
SPOOL_ERROR = 10
CODEPAGE = 11
OTHERS = 12
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'OFFICEAD'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'OFFICEAD'
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'PODET'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'PODET'
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'TOP'
FUNCTION = 'SET'
TYPE = 'TOP'
WINDOW = 'MAIN'
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT I_EKPO.
var = i_ekpo-netpr * i_ekpo-menge.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'BODY'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT =
RDI_RESULT =
TABLES
OTFDATA =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Structure of a print program
OPEN_FORM function
CLOSE_FORM function
WRITE_FORM
START_FORM function
END_FORM function
CONTROL_FORM function
The print program is used to print forms. The program retieves the necesary data from datbase tables, defines the order of in which text elements are printed, chooses a form for printing and selects an output device and print options.
Function modules in a printprogram:
When you print a form you must used the staments OPEN_FORM and CLOSE_FORM. To combine forms into a single spool request use START_FORM and END_FORM.
To print textelements in a form use WRITE_FORM. The order in which the textelements are printed, is determined by the order of the WRITE_FORM statements. Note: for printing lines in the body, you can also use the WRITE_FORM_LINES function module.
To transfer control command to a form use CONTROL_FORM.
Structure of a print program
Read data
Tables: xxx.
SELECT *
FROM xxx.
Open form printing - Must be called before working with any of the other form function modules.
Must be ended with function module CLOSE FORM
call function 'OPEN_FORM'.....
To begin several indentical forms containing different data within a single spool request, begin each form using START_FORM, and end it using END_FORM
call funtion 'START_FORM'.....
Write text elements to a window of the form
call function 'WRITE_FORM'.....
Ends spool request started with START_FORM
call funtion 'END_FORM'.....
Closes form printing
call function 'CLOSE_FORM'...
OPEN_FORM function
Syntax:
CALL FUNCTION 'OPEN_FORM'
EXPORTING
APPLICATION = 'TX'
ARCHIVE_INDEX =
ARCHIVE_PARAMS =
DEVICE = 'PRINTER'
DIALOG = 'X'
FORM = ' '
LANGUAGE = SY-LANGU
OPTIONS =
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJECT =
RAW_DATA_INTERFACE = '*'
IMPORTING
LANGUAGE =
NEW_ARCHIVE_PARAMS =
RESULT =
EXCEPTIONS
CANCELED = 1
DEVICE = 2
FORM = 3
OPTIONS = 4
UNCLOSED = 5
MAIL_OPTIONS = 6
ARCHIVE_ERROR = 7
INVALID_FAX_NUMBER = 8
MORE_PARAMS_NEEDED_IN_BATCH = 9
SPOOL_ERROR = 10
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Some important parameters:
FORM Name of the form
DEVICE PRINTER : Print output using spool
TELEFAX: Fax output
SCREEN: Output to screen
OPTIONS Used to control attrubutes for printing or faxing (Number of copies, immediate output....
The input for the parameter is structure ITCPO.
CLOSE_FORM function
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT =
RDI_RESULT =
TABLES
OTFDATA =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 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.
Paramerters:
RESULT Returns status information and print/fax parameters after the form has been printed. RESULT is of structure ITCPP.
WRITE_FORM function
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
IMPORTING
PENDING_LINES =
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
OTHERS = 9
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Some important parameters:
ELEMENT Specifies which textelement is printed
WINDOW Specifies which window is printed
TYPE Specifies the output area of the main window. This can be:
TOP - Used for headers
BODY
BOTTOM - Used for footers
FUNCTION Specifies whether text is to be appended, replaced or added
Example of how to use the WRITE_FORM function module together with a script.
Form layout of the MAIN window
/E INTRODUCTION
Dear Customer
/E ITEM_HEADER
IH Carrier, Departure
/E ITEM_LINE
IL &SBOOK-CARRID&, &SPFLI-DEPTIME&
/E CLOSING_REMARK
The print program
Writing INTRODUCTION
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'INTRODUCTION'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
EXCEPTIONS
OTHERS = 8
Writing ITEM_HEADER
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ITEM_HEADER'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
EXCEPTIONS
OTHERS = 8
Set ITEM_HEADER into TOP area of main window for subsequent pages
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ITEM_HEADER'
FUNCTION = 'SET'
TYPE = 'TOP'
WINDOW = 'MAIN'
EXCEPTIONS
OTHERS = 8
Write ITEM_LINE
LOOP AT .....
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ITEM_LINE'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
EXCEPTIONS
OTHERS = 8.
ENDLOOP.
Delete ITEM_HEADER from TOP area of main window
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ITEM_HEADER'
FUNCTION = 'DELETE'
TYPE = 'TOP'
WINDOW = 'MAIN'
EXCEPTIONS
OTHERS = 8
Print CLOSING_REMARK
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'CLOSING_REMARK'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
EXCEPTIONS
OTHERS = 8
START_FORM function
CALL FUNCTION 'START_FORM'
EXPORTING
ARCHIVE_INDEX =
FORM = ' '
LANGUAGE = ' '
STARTPAGE = ' '
PROGRAM = ' '
MAIL_APPL_OBJECT =
IMPORTING
LANGUAGE =
EXCEPTIONS
FORM = 1
FORMAT = 2
UNENDED = 3
UNOPENED = 4
UNUSED = 5
SPOOL_ERROR = 6
OTHERS = 7
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
END_FORM function
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SPOOL_ERROR = 3
OTHERS = 4
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CONTROL_FORM function
The CONTROL_FORM function module alows you to create SapScript control statements from within an APAB program.
Syntax:
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
command =
EXCEPTIONS
UNOPENED = 1
UNSTARTED = 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.
Example:
Protecting the text element ITEM_LINE
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = 'PROTECT'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
TEXELEMENT = 'ITEM_LINE'.
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = 'ENDPROTECT'.
Regards
Anji -
Smart forms and print program needed
Can anyone provide me with the following print programs and smart forms? I can't find it in my SAP. Thanks.
Print Program:
/SMB40/M07DR
Smart Forms:
/SMB40/MMGR1_A
/SMB40/MMGR3_A
/SMB40/MMGI1_A
Please kindly email me at [email protected]Hi
I appreciate for your sincierty i cant send through mail but i'm sending directly plz copy all the programs
INCLUDE /SMB40/M07DRTOP.
PROGRAM /BPR3PF/m07dr MESSAGE-ID m7.
DATA lgortsplit LIKE am07m-xselk.
DATA ladr LIKE sadr.
DATA *ladr LIKE sadr.
CONSTANTS: a TYPE c VALUE 'A',
b TYPE c VALUE 'B',
c TYPE c VALUE 'C',
d TYPE c VALUE 'D',
e TYPE c VALUE 'E',
f TYPE c VALUE 'F',
g TYPE c VALUE 'G',
h TYPE c VALUE 'H',
i TYPE c VALUE 'I',
j TYPE c VALUE 'J',
k TYPE c VALUE 'K',
l TYPE c VALUE 'L',
m TYPE c VALUE 'M',
n TYPE c VALUE 'N',
o TYPE c VALUE 'O',
p TYPE c VALUE 'P',
q TYPE c VALUE 'Q',
r TYPE c VALUE 'R',
s TYPE c VALUE 'S',
t TYPE c VALUE 'T',
u TYPE c VALUE 'U',
v TYPE c VALUE 'V',
w TYPE c VALUE 'W',
x TYPE c VALUE 'X',
y TYPE c VALUE 'Y',
z TYPE c VALUE 'Z'.
CONSTANTS: plus TYPE c VALUE '+',
minus TYPE c VALUE '-',
punkt TYPE c VALUE '.',
null TYPE c VALUE '0',
eins TYPE c VALUE '1',
zwei TYPE c VALUE '2',
drei TYPE c VALUE '3',
vier TYPE c VALUE '4',
fuenf TYPE c VALUE '5',
sechs TYPE c VALUE '6',
sieben TYPE c VALUE '7',
acht TYPE c VALUE '8',
neun TYPE c VALUE '9',
einsi TYPE i VALUE '1',
zweii TYPE i VALUE '2',
dreii TYPE i VALUE '3',
vieri TYPE i VALUE '4',
nzwei TYPE i VALUE '02',
ndrei TYPE i VALUE '03'.
CONSTANTS: actvt01 LIKE tact-actvt VALUE '01',
actvt02 LIKE tact-actvt VALUE '02',
actvt03 LIKE tact-actvt VALUE '03',
actvt04 LIKE tact-actvt VALUE '04',
actvt06 LIKE tact-actvt VALUE '06',
actvt65 LIKE tact-actvt VALUE '65',
actvt70 LIKE tact-actvt VALUE '70'.
CONSTANTS: maximum TYPE f VALUE 9999999999999,
minimum TYPE f VALUE -9999999999999,
maximum_gld TYPE f VALUE 99999999999,
minimum_gld TYPE f VALUE -99999999999,
maxvalue LIKE am07m-maxvalue VALUE 9999999999999,
minvalue LIKE am07m-maxvalue VALUE -9999999999999,
cnull(18) TYPE c VALUE '000000000000000000',
pf02(4) TYPE c VALUE 'PF02',
pf15(4) TYPE c VALUE 'PF15',
stern TYPE c VALUE '*',
doublestar(2) TYPE c VALUE '**',
underscore TYPE c VALUE '_',
slasch TYPE c VALUE '/',
dpunkt TYPE c VALUE ':',
curtp00 LIKE smbew-curtp VALUE '00', "Transaktionswährung
curtp10 LIKE smbew-curtp VALUE '10', "ML in Hauswährung
auto_best LIKE mseg-ebeln VALUE '9999999999',
modulpool LIKE sy-repid VALUE 'SAPMM07M'.
CONSTANTS: BEGIN OF hlp,
b(4) TYPE c VALUE 'HLPB',
f(4) TYPE c VALUE 'HLPF',
g(4) TYPE c VALUE 'HLPG',
m(4) TYPE c VALUE 'HLPM',
r(4) TYPE c VALUE 'HLPR',
v(4) TYPE c VALUE 'HLPV',
END OF hlp.
"Equates für Alphabet
TABLES:
afko,
aufk,
itcpo,
mkpf,
*mkpf,
mseg,
*mseg,
ekko,
ekkn,
*ekko,
arc_params,
ekpo,
ekbe,
lfa1,
*lfa1,
thead,
toa_dara,
am07m,
*am07m,
t001,
t001w,
*t001w,
t027b,
t027c,
t027d,
t156,
t156t,
t157e,
*t157e,
t159m,
t159n,
t159o,
t159p,
t159s,
t159e,
t024,
t024d,
*t024,
t064b,
nast,
*nast,
tnapr.
TABLES: mabdr,
mtcom,
mtcor,
twlad.
* Reportinterne Daten *
*--- Strukturen ------------------------------------------------------*
DATA: x_protab TYPE c,
x_bwart TYPE c,
bwart LIKE mseg-bwart,
eintraege LIKE sy-tfill,
anzahl LIKE mseg-weanz,
anzahl1(7) TYPE n,
x_kont TYPE c, "Mehrfachkontierung
x_kont1 TYPE c, "Einfache Kontierung (WE unbewertet)
x_form TYPE c,
x_open TYPE c.
DATA: BEGIN OF jahr,
jahr(4) TYPE n,
monat(2) TYPE n,
tag(2) TYPE n,
END OF jahr.
DATA:
BEGIN OF we,
version1 VALUE '1', "Standardversion
version2 VALUE '2', "Version mit Prüftext
version3 VALUE '3', "WE-Sammelschein
END OF we,
BEGIN OF alt,
matnr LIKE mseg-matnr,
bwart LIKE mseg-bwart,
ebeln LIKE mseg-ebeln,
usnam LIKE mkpf-usnam,
END OF alt,
BEGIN OF kunde,
kdauf LIKE mseg-kdauf,
kdpos LIKE mseg-kdpos,
kdein LIKE mseg-kdein,
END OF kunde,
BEGIN OF anlage,
anln1 LIKE mseg-anln1,
anln2 LIKE mseg-anln2,
END OF anlage,
BEGIN OF belpos,
mblnr LIKE mseg-mblnr,
zeile LIKE mseg-zeile,
END OF belpos,
xskkz,
xpsty,
xkdanr VALUE 'C',
xkde VALUE 'E',
xfert VALUE 'F',
xrvkdanr VALUE 'A',
xanlage VALUE 'A',
xanln1 VALUE 'I',
xkostl VALUE 'K',
xprojn VALUE 'P',
xmunbw VALUE 'M',
xumlag VALUE 'U',
xvbelg VALUE 'V',
xnplan VALUE 'N',
xkonsi(2) VALUE 'KB',
xwabel(2) VALUE 'WA',
xwibel(2) VALUE 'WI',
xwebel(2) VALUE 'WE',
xsele, "Position selektiert
xkont, "Kontierungswechsel
xsamm, "Sammel-WE-Schein
xanha. "Mehrfachkontierung
DATA BEGIN OF theader.
INCLUDE STRUCTURE thead.
DATA END OF theader.
*--- Interne Tabellen -------------------------------------------------*
DATA:
BEGIN OF dummy OCCURS 0,
dummy,
END OF dummy.
DATA:
BEGIN OF ausgabe OCCURS 20,
mblnr LIKE mseg-mblnr,
END OF ausgabe.
DATA: BEGIN OF xekkn OCCURS 50.
INCLUDE STRUCTURE ekkn.
DATA: END OF xekkn.
DATA: BEGIN OF xmseg OCCURS 50.
INCLUDE STRUCTURE mseg.
DATA: END OF xmseg.
DATA: BEGIN OF dtext OCCURS 1.
INCLUDE STRUCTURE tline.
DATA: END OF dtext.
DATA: BEGIN OF dktext OCCURS 1.
INCLUDE STRUCTURE tline.
DATA: END OF dktext.
DATA: BEGIN OF dptext OCCURS 1.
INCLUDE STRUCTURE thead.
DATA: END OF dptext.
DATA: BEGIN OF nast_key,
mblnr LIKE mkpf-mblnr,
mjahr LIKE mkpf-mjahr,
zeile LIKE mseg-zeile,
END OF nast_key.
DATA: BEGIN OF beltab OCCURS 20.
INCLUDE STRUCTURE mseg.
DATA: vgart LIKE mkpf-vgart,
blart LIKE mkpf-blart,
blaum LIKE mkpf-blaum,
bldat LIKE mkpf-bldat,
budat LIKE mkpf-budat,
cpudt LIKE mkpf-cpudt,
cputm LIKE mkpf-cputm,
aedat LIKE mkpf-aedat,
usnam LIKE mkpf-usnam,
tcode LIKE mkpf-tcode,
xblnr LIKE mkpf-xblnr,
bktxt LIKE mkpf-bktxt,
frath LIKE mkpf-frath,
frbnr LIKE mkpf-frbnr,
wever LIKE mkpf-wever,
kzdru LIKE t156-kzdru,
END OF beltab.
DATA: BEGIN OF traptab OCCURS 50.
INCLUDE STRUCTURE mseg.
DATA: vgart LIKE mkpf-vgart,
blart LIKE mkpf-blart,
blaum LIKE mkpf-blaum,
bldat LIKE mkpf-bldat,
budat LIKE mkpf-budat,
cpudt LIKE mkpf-cpudt,
cputm LIKE mkpf-cputm,
aedat LIKE mkpf-aedat,
usnam LIKE mkpf-usnam,
tcode LIKE mkpf-tcode,
xblnr LIKE mkpf-xblnr,
bktxt LIKE mkpf-bktxt,
frath LIKE mkpf-frath,
frbnr LIKE mkpf-frbnr,
wever LIKE mkpf-wever,
END OF traptab.
DATA: BEGIN OF inthead OCCURS 50.
INCLUDE STRUCTURE thead.
DATA: END OF inthead.
DATA: BEGIN OF intline OCCURS 50.
INCLUDE STRUCTURE tline.
DATA: END OF intline.
DATA: BEGIN OF intline1 OCCURS 50.
INCLUDE STRUCTURE tline.
DATA: END OF intline1.
*-------- Hilfsfelder -------------------------------------------------*
DATA: index_z LIKE sy-tabix,
drucker LIKE rm07m-ldest,
old_tdform LIKE t159o-tdform,
r_werks LIKE t001w-werks,
r_name1 LIKE t001w-name1,
x_form3 TYPE c,
x_nopdest TYPE c,
language LIKE t001w-spras,
zaehler_m LIKE sy-tabix,
edruck TYPE c.
DATA: old_mkpf LIKE mkpf-usnam,
old_budat LIKE mkpf-budat,
old_cpudt LIKE mkpf-cpudt,
old_werks LIKE t001w-werks,
old_name1 LIKE t001w-name1,
old_mblnr LIKE mkpf-mblnr,
old_lifnr LIKE ekko-lifnr,
old_ebeln LIKE ekko-ebeln,
old_ekgrp LIKE ekko-ekgrp,
old_reswk LIKE ekko-reswk,
old_linam LIKE am07m-name1,
old_lina2 LIKE am07m-name2,
old_eknam LIKE t024-eknam,
old_ektel LIKE t024-ektel,
old_ematn LIKE mseg-ematn,
old_lfa1 LIKE lfa1,
old_lgort LIKE mseg-lgort,
old_ladr LIKE ladr,
save_mkpf LIKE mkpf-usnam,
save_budat LIKE mkpf-budat,
save_cpudt LIKE mkpf-cpudt,
save_werks LIKE t001w-werks,
save_name1 LIKE t001w-name1,
save_mblnr LIKE mkpf-mblnr,
save_lifnr LIKE ekko-lifnr,
save_reswk LIKE ekko-reswk,
save_ebeln LIKE ekko-ebeln,
save_ekgrp LIKE ekko-ekgrp,
save_linam LIKE am07m-name1,
save_lina2 LIKE am07m-name2,
save_eknam LIKE t024-eknam,
save_ektel LIKE t024-ektel,
save_ematn LIKE mseg-ematn,
save_lfa1 LIKE lfa1,
save_lgort LIKE mseg-lgort,
save_ladr LIKE ladr,
offwhile TYPE c,
& TYPE c VALUE '&',
blank TYPE c VALUE ' ',
fenster(5) TYPE c VALUE 'WIN ',
fcount(2) TYPE c,
text1(21) TYPE c VALUE 'INTLINE-TDLINE+ ( )',
text2(22) TYPE c VALUE 'INTLINE1-TDLINE+ ( )',
text5(22) TYPE c VALUE 'INTLINE1-TDLINE+ ( )',
hifeld1(21) TYPE c VALUE 'INTLINE-TDLINE+ (10)',
shift(2) TYPE n,
fpage LIKE sy-pagno,
xscreen(1) TYPE c,
retco LIKE sy-subrc,
mblnr LIKE mkpf-mblnr,
zeile LIKE mseg-zeile,
new_page,
xkopfdr, "Kopf bereits gedruckt
n_vornr LIKE resb-vornr. "Netzplanvorgang
INCLUDE /SMB40/M07DRMTA.
*------Lesen Tabelle T001----------------------------------------------*
FORM TAB001_LESEN.
IF NOT T001-BUKRS = MSEG-BUKRS.
SELECT SINGLE * FROM T001 WHERE BUKRS = MSEG-BUKRS.
ENDIF.
ENDFORM.
*-------Lesen Tabelle T001w--------------------------------------------*
FORM TAB001W_LESEN.
IF NOT T001W-WERKS = MSEG-WERKS.
SELECT SINGLE * FROM T001W WHERE WERKS = MSEG-WERKS.
ENDIF.
R_WERKS = T001W-WERKS.
R_NAME1 = T001W-NAME1.
* Sprache für Formular aus Kondition, sonst aus Werk
IF NOT NAST-SPRAS IS INITIAL.
LANGUAGE = NAST-SPRAS.
ELSE.
LANGUAGE = T001W-SPRAS.
ENDIF.
SET LANGUAGE LANGUAGE.
ENDFORM.
*-------Lesen Tabelle T001w bei Werkswechsel --------------------------*
FORM TAB001W_LESEN_2.
IF NOT MSEG-WERKS = T001W-WERKS.
SELECT SINGLE * FROM T001W WHERE WERKS = MSEG-WERKS.
ENDIF.
ENDFORM.
*--------Lesen Tabelle T156--------------------------------------------*
FORM TAB156_LESEN.
IF NOT T156-BWART = MSEG-BWART.
SELECT SINGLE * FROM T156 WHERE BWART = MSEG-BWART.
ENDIF.
ENDFORM.
*-------Lesen Tabelle T156t--------------------------------------------*
FORM TAB156T_LESEN.
SELECT SINGLE * FROM T156T WHERE SPRAS = LANGUAGE
AND BWART = MSEG-BWART
AND SOBKZ = MSEG-SOBKZ
AND KZBEW = MSEG-KZBEW
AND KZZUG = MSEG-KZZUG
AND KZVBR = MSEG-KZVBR.
ENDFORM.
*------Lesen Tabelle T024----------------------------------------------*
FORM TAB024_LESEN.
IF NOT T024-EKGRP = EKKO-EKGRP.
SELECT SINGLE * FROM T024 WHERE EKGRP = EKKO-EKGRP.
ENDIF.
ENDFORM.
*------Lesen Tabelle T024D---------------------------------------------*
FORM TAB024D_LESEN.
SELECT SINGLE * FROM T024D WHERE WERKS = MSEG-WERKS
AND DISPO = AFKO-DISPO.
ENDFORM.
*---------------------- T027B,C lesen ---------------------------------*
FORM T027_LESEN.
SELECT SINGLE * FROM T027B WHERE SPRAS = LANGUAGE
AND EVERS = MSEG-EVERS.
CHECK NOT MSEG-EVERE IS INITIAL.
SELECT SINGLE * FROM T027C WHERE EVERS = MSEG-EVERS
AND EVERE = MSEG-EVERE.
IF NOT T027C-EVDRK IS INITIAL.
SELECT SINGLE * FROM T027D WHERE SPRAS = LANGUAGE
AND EVERS = MSEG-EVERS
AND EVERE = MSEG-EVERE.
ENDIF.
ENDFORM.
*------------ Lesen der Tabelle T159P Barcode oder Mehrfachdruck ------*
*----------------------- gewünscht ? ----------------------------------*
FORM LESEN_T159P.
IF NOT T159P-TDDEST = NAST-LDEST.
SELECT SINGLE * FROM T159P WHERE TDDEST = NAST-LDEST.
ENDIF.
ENDFORM.
*& Form T064B_LESEN
* Lesen Text zur Bestandsart Qualität/Gesperrt bei WE
FORM T064B_LESEN.
DATA: BSTAR LIKE T064B-BSTAR.
CASE MSEG-INSMK.
WHEN SPACE.
CLEAR T064B.
EXIT.
WHEN F.
CLEAR T064B.
EXIT.
WHEN X.
BSTAR = ZWEI.
WHEN ZWEI.
BSTAR = ZWEI.
WHEN S.
BSTAR = VIER.
WHEN DREI.
BSTAR = VIER.
ENDCASE.
IF NOT T064B-BSTAR = BSTAR.
SELECT SINGLE * FROM T064B WHERE SPRAS = LANGUAGE
AND BSTAR = BSTAR.
ENDIF.
ENDFORM. " T064B_LESEN
INCLUDE /SMB40/M07DRMMA.
*---------Material lesen-----------------------------------------------*
FORM MATERIAL_LESEN.
CLEAR MTCOM.
MTCOM-KENNG = 'MABDR'.
MTCOM-MATNR = MSEG-MATNR.
MTCOM-WERKS = MSEG-WERKS.
MTCOM-LGORT = MSEG-LGORT.
MTCOM-SPRAS = LANGUAGE.
MTCOM-NOMUS = 'X'.
CALL FUNCTION 'MATERIAL_LESEN'
EXPORTING
SCHLUESSEL = MTCOM
IMPORTING
MATDATEN = MABDR
RETURN = MTCOR
TABLES
SEQMAT01 = DUMMY.
IF NOT T156-KZMHD IS INITIAL.
IF NOT MABDR-MHDLP IS INITIAL.
IF T001W-VLFKZ = B. "Zentrale ?
PERFORM MHD_BERECHNEN.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
*----------------- Mindesthaltbarkeit berechnen ---------------------*
FORM MHD_BERECHNEN.
IF NOT EKPO-MHDRZ IS INITIAL.
AM07M-MHDAT = MSEG-VFDAT - ( EKPO-MHDRZ * MABDR-MHDLP / 100 ).
ELSEIF NOT MABDR-MHDRZ IS INITIAL.
AM07M-MHDAT = MSEG-VFDAT - ( MABDR-MHDRZ * MABDR-MHDLP / 100 ).
ENDIF.
ENDFORM.
*----------------- Prueftext lesen-------------------------------------*
FORM PRUEFTEXT_LESEN.
CLEAR DPTEXT.
CLEAR THEADER.
REFRESH DPTEXT.
THEADER-TDID = 'PRUE'.
THEADER-TDSPRAS = LANGUAGE.
THEADER-TDNAME = MSEG-MATNR.
THEADER-TDOBJECT = 'MATERIAL '.
CALL FUNCTION 'SELECT_TEXT'
EXPORTING
ID = THEADER-TDID
LANGUAGE = THEADER-TDSPRAS
NAME = THEADER-TDNAME
OBJECT = THEADER-TDOBJECT
IMPORTING
ENTRIES = EINTRAEGE
TABLES
SELECTIONS = DPTEXT.
ENDFORM.
* Lesen der Herstellerteilenummer *
FORM LESEN_HTN.
SELECT SINGLE MFRPN FROM MARA
INTO (AM07M-MFRPN) WHERE MATNR = MSEG-EMATN.
ENDFORM.
INCLUDE /SMB40/M07DRMBE.
*-------------Bestellung lesen-----------------------------------------*
FORM BESTELLUNG_LESEN."ORDER READING
DATA: NAME1 LIKE ADDR1_VAL-NAME1.
DATA: OLD_LIFNR LIKE EKKO-LIFNR.
CLEAR AM07M-NAME1.
CLEAR AM07M-NAME2.
IF EKKO-EBELN NE MSEG-EBELN.
SELECT SINGLE * FROM EKKO WHERE EBELN = MSEG-EBELN.
ENDIF.
SELECT SINGLE * FROM EKPO WHERE EBELN = MSEG-EBELN
AND EBELP = MSEG-EBELP.
* Purchase order history because of XBLNR read, since from MKPF can
*deviate
SELECT SINGLE * FROM EKBE WHERE EBELN = MSEG-EBELN
AND EBELP = MSEG-EBELP
AND VGABE = '1'
AND GJAHR = MSEG-MJAHR
AND BELNR = MSEG-MBLNR
AND BUZEI = MSEG-ZEILE.
IF NOT SY-SUBRC IS INITIAL.
CLEAR EKBE.
ELSE.
IF NOT EKBE-XBLNR IS INITIAL.
MKPF-XBLNR = EKBE-XBLNR.
ENDIF.
ENDIF.
CALL FUNCTION 'MM_ADDRESS_GET'
EXPORTING I_EKKO = EKKO
IMPORTING E_NAME1 = NAME1
EXCEPTIONS OTHERS = 1.
AM07M-NAME1 = NAME1.
IF NOT EKKO-LLIEF IS INITIAL.
OLD_LIFNR = EKKO-LIFNR.
EKKO-LIFNR = EKKO-LLIEF.
CALL FUNCTION 'MM_ADDRESS_GET'
EXPORTING I_EKKO = EKKO
IMPORTING E_NAME1 = NAME1
EXCEPTIONS OTHERS = 1.
AM07M-NAME2 = NAME1.
EKKO-LIFNR = OLD_LIFNR.
ENDIF.
XPSTY = EKPO-KNTTP.
CASE XPSTY.
WHEN B.
XPSTY = XKDE.
WHEN D.
XPSTY = XKDE.
WHEN G.
XPSTY = XPROJN.
WHEN O.
XPSTY = XPROJN.
WHEN Q.
XPSTY = XPROJN.
ENDCASE.
ENDFORM.
*----------Bestelltext lesen, wenn Matnr. = 0--------------------------*
FORM BESTELLTEXT_LESEN.
CLEAR: THEADER,
THEAD,
DTEXT.
REFRESH
DTEXT.
THEADER-TDID = 'F01 '.
THEADER-TDSPRAS = EKKO-SPRAS.
THEADER-TDNAME(10) = MSEG-EBELN.
THEADER-TDNAME+10(5) = MSEG-EBELP.
THEADER-TDOBJECT = 'EKPO '.
CALL FUNCTION 'READ_TEXT'
EXPORTING ID = THEADER-TDID
LANGUAGE = THEADER-TDSPRAS
NAME = THEADER-TDNAME
OBJECT = THEADER-TDOBJECT
IMPORTING HEADER = THEAD
TABLES LINES = DTEXT
EXCEPTIONS ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5.
ENDFORM.
*------------Bestellkopf lesen für WE-Version 2.-----------------------*
FORM BESTELLKOPF_LESEN.
CLEAR: THEADER,
THEAD,
DKTEXT.
REFRESH:
DKTEXT.
THEADER-TDID = 'F01 '.
THEADER-TDSPRAS = EKKO-SPRAS.
THEADER-TDNAME(10) = MSEG-EBELN.
THEADER-TDOBJECT = 'EKKO '.
CALL FUNCTION 'READ_TEXT'
EXPORTING ID = THEADER-TDID
LANGUAGE = THEADER-TDSPRAS
NAME = THEADER-TDNAME
OBJECT = THEADER-TDOBJECT
IMPORTING HEADER = THEAD
TABLES LINES = DKTEXT
EXCEPTIONS ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5.
ENDFORM.
INCLUDE /SMB40/M07DRMFA.
*------ Auftragskopf lesen --------------------------------------------*
FORM AUFTRAG_LESEN.
SELECT SINGLE * FROM AFKO WHERE AUFNR = MSEG-AUFNR.
IF MSEG-MATNR IS INITIAL.
SELECT SINGLE * FROM AUFK WHERE AUFNR = MSEG-AUFNR.
IF NOT SY-SUBRC IS INITIAL.
MESSAGE E001 WITH 'AUFK' MSEG-AUFNR.
ELSE.
MABDR-MAKTX = AUFK-KTEXT.
ENDIF.
ENDIF.
ENDFORM.
INCLUDE /SMB40/M07DRKON.
FORM KONTIERUNG_LESEN.
REFRESH XEKKN. CLEAR XEKKN.
SELECT * FROM EKKN WHERE EBELN = EKPO-EBELN
AND EBELP = EKPO-EBELP.
MOVE-CORRESPONDING EKKN TO XEKKN.
APPEND XEKKN.
* x_kont = x.
ENDSELECT.
DESCRIBE TABLE XEKKN LINES INDEX_Z.
IF INDEX_Z GT 1.
X_KONT = X.
ELSE.
X_KONT1 = X.
ENDIF.
ENDFORM.
* Network plan process determine.
FORM NW_VORGANG_LESEN USING F_AUFPL F_APLZL.
CALL FUNCTION 'READ_NETWORK_NPLNR_VORNR'
EXPORTING
APLZL = F_APLZL
AUFPL = F_AUFPL
IMPORTING
VORNR = N_VORNR
EXCEPTIONS
NOT_FOUND = 01.
ENDFORM.
* FORM PSP_CONVERT *
* Konvertierung des internen Felds PS_PSP_PNR zur Ausgabe *
FORM PSP_CONVERT USING PSPNR LIKE MSEG-PS_PSP_PNR.
CALL FUNCTION 'CJPN_INTERN_TO_EXTERN_CONV'
EXPORTING
INT_NUM = PSPNR
IMPORTING
EXT_NUM = AM07M-KONTIERUNG.
ENDFORM.
INCLUDE /SMB40/M07DRF01.
FORM WF01_DRUCK.
CALL FUNCTION 'START_FORM'
EXPORTING FORM = TNAPR-FONAM
LANGUAGE = LANGUAGE.
BELPOS-MBLNR = MKPF-MBLNR.
BELPOS-ZEILE = MSEG-ZEILE.
CONDENSE BELPOS NO-GAPS.
AM07M-BELPOS = BELPOS.
IF T156-SHKZG = H.
AM07M-HDLNE = TEXT-020.
ELSE.
AM07M-HDLNE = TEXT-010.
ENDIF.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1BACOKOPF'.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1KOPF'.
ENDIF.
IF XPSTY IS INITIAL.
IF MSEG-XBLVS IS INITIAL.
PERFORM WF1_LAGERMATERIAL. "Lagermaterial
ELSE.
PERFORM WF1_LVSMATERIAL. "LVS-Material
ENDIF.
ELSE.
PERFORM WF1_VERBRAUCHSMATERIAL.
ENDIF.
CALL FUNCTION 'END_FORM'.
PERFORM MKTO_DRUCK.
ENDFORM.
*------------ Drucken Lagermaterial ---------------------------------*
FORM WF1_LAGERMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1LGMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELGGRUND'.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'LGAUSST'.
ENDFORM.
FORM WF1_LVSMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1LVSMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELVSGRUND'.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'LVSAUSST'.
ENDFORM.
*-------------Drucken Verbrauchsmaterial------------------------------*
FORM WF1_VERBRAUCHSMATERIAL.
CASE XPSTY.
WHEN XKDANR. "Kundenauftrag
MOVE SPACE TO KUNDE.
CLEAR AM07M-KOTXT.
AM07M-KOTXT = TEXT-030.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
KUNDE-KDEIN = MSEG-KDEIN.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XANLAGE. "Anlage
MOVE SPACE TO ANLAGE.
CLEAR AM07M-KOTXT.
AM07M-KOTXT = TEXT-040.
ANLAGE-ANLN1 = MSEG-ANLN1.
ANLAGE-ANLN2 = MSEG-ANLN2.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE ANLAGE NO-GAPS.
AM07M-KONTIERUNG = ANLAGE.
WHEN XKOSTL. "Kostenstelle
CLEAR AM07M-KOTXT.
AM07M-KOTXT = TEXT-050.
AM07M-KONTIERUNG = MSEG-KOSTL.
WHEN XPROJN. "Projekt/Netzplan
CLEAR AM07M-KOTXT.
IF MSEG-NPLNR IS INITIAL.
AM07M-KOTXT = TEXT-060.
PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
ELSE.
AM07M-KOTXT = TEXT-061.
AM07M-KONTIERUNG = MSEG-NPLNR.
PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ENDCASE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1VERBRMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELVERBRGRUND'.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'VERBRAUSST'.
ENDFORM.
INCLUDE /SMB40/M07DRF02.
FORM WF02_DRUCK.
T001W-WERKS = R_WERKS.
T001W-NAME1 = R_NAME1.
CALL FUNCTION 'START_FORM'
EXPORTING FORM = TNAPR-FONAM
LANGUAGE = LANGUAGE.
PERFORM PRUEFTEXT_LESEN.
IF T156-SHKZG = 'H'. "Kennzeichen Haben ?
AM07M-HDLNE = TEXT-020.
ELSE.
AM07M-HDLNE = TEXT-010.
ENDIF.
IF NOT T159P-BACOD IS INITIAL.
BELPOS-MBLNR = MKPF-MBLNR.
BELPOS-ZEILE = MSEG-ZEILE.
CONDENSE BELPOS NO-GAPS.
AM07M-BELPOS = BELPOS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'WE2BACOKOPF'.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'WE2KOPF'.
ENDIF.
IF XPSTY IS INITIAL. "Lagermaterial ?
PERFORM W2_LAGERMATERIAL.
ELSE.
PERFORM W2_VERBRAUCHSMATERIAL.
ENDIF.
CALL FUNCTION 'END_FORM'.
PERFORM MKTO_DRUCK.
ENDFORM.
*-------------- Lagermaterial WE-Version 2 ---------------------------*
FORM WF2_LAGERMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'WE2LGMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELGGRUND'.
ENDIF.
THEAD-TDID = THEADER-TDID.
THEAD-TDNAME = THEADER-TDNAME.
THEAD-TDOBJECT = THEADER-TDOBJECT.
THEAD-TDSPRAS = THEADER-TDSPRAS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'PRTXTLGMAT'.
ENDFORM.
*------------ Verbrauchsmaterial WE-Version 2 ----------------------*
FORM WF2_VERBRAUCHSMATERIAL.
CASE XPSTY.
WHEN XKDANR.
MOVE SPACE TO KUNDE.
CLEAR AM07M-KOTXT.
AM07M-KOTXT = TEXT-030.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
KUNDE-KDEIN = MSEG-KDEIN.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XANLAGE.
MOVE SPACE TO ANLAGE.
CLEAR AM07M-KOTXT.
AM07M-KOTXT = TEXT-040.
ANLAGE-ANLN1 = MSEG-ANLN1.
ANLAGE-ANLN2 = MSEG-ANLN2.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE ANLAGE NO-GAPS.
AM07M-KONTIERUNG = ANLAGE.
WHEN XKOSTL.
CLEAR AM07M-KOTXT.
AM07M-KOTXT = TEXT-050.
AM07M-KONTIERUNG = MSEG-KOSTL.
WHEN XPROJN.
CLEAR AM07M-KOTXT.
IF MSEG-NPLNR IS INITIAL.
AM07M-KOTXT = TEXT-060.
PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
ELSE.
AM07M-KOTXT = TEXT-061.
AM07M-KONTIERUNG = MSEG-NPLNR.
PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ENDCASE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'WE2VERBRMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUEVERBRGRUND'.
ENDIF.
THEAD-TDID = THEADER-TDID.
THEAD-TDNAME = THEADER-TDNAME.
THEAD-TDOBJECT = THEADER-TDOBJECT.
THEAD-TDSPRAS = THEADER-TDSPRAS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'PRTXTVERBRMAT'.
ENDFORM.
INCLUDE /SMB40/M07DRE01.
FORM WE01_DRUCK.
T001W-WERKS = R_WERKS.
T001W-NAME1 = R_NAME1.
ENDFORM.
*------------ Drucken Lagermaterial ---------------------------------*
FORM W1_LAGERMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1LGMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELGGRUND'.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'LGAUSST'.
ENDFORM.
FORM W1_LVSMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1LVSMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELVSGRUND'.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'LVSAUSST'.
ENDFORM.
*-------------Drucken Verbrauchsmaterial------------------------------*
FORM W1_VERBRAUCHSMATERIAL.
CLEAR: AM07M-KOTXT, AM07M-KONTIERUNG.
CASE XPSTY.
WHEN XFERT. "Fertigungsauftrag
AM07M-KOTXT = TEXT-062.
IF X_KONT1 IS INITIAL.
AM07M-KONTIERUNG = MSEG-AUFNR.
ELSE.
AM07M-KONTIERUNG = EKKN-AUFNR.
ENDIF.
WHEN XKDE. "Kundeneinzelbest.
MOVE SPACE TO KUNDE.
AM07M-KOTXT = TEXT-030.
IF X_KONT1 IS INITIAL.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
ELSE.
KUNDE-KDAUF = EKKN-VBELN.
KUNDE-KDPOS = EKKN-VBELP.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XKDANR. "Kundenauftrag
MOVE SPACE TO KUNDE.
AM07M-KOTXT = TEXT-030.
IF X_KONT1 IS INITIAL.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
KUNDE-KDEIN = MSEG-KDEIN.
ELSE.
KUNDE-KDAUF = EKKN-VBELN.
KUNDE-KDPOS = EKKN-VBELP.
KUNDE-KDEIN = EKKN-VETEN.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XANLAGE. "Anlage
MOVE SPACE TO ANLAGE.
AM07M-KOTXT = TEXT-040.
IF X_KONT1 IS INITIAL.
ANLAGE-ANLN1 = MSEG-ANLN1.
ANLAGE-ANLN2 = MSEG-ANLN2.
ELSE.
ANLAGE-ANLN1 = EKKN-ANLN1.
ANLAGE-ANLN2 = EKKN-ANLN2.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE ANLAGE NO-GAPS.
AM07M-KONTIERUNG = ANLAGE.
WHEN XKOSTL. "Kostenstelle
AM07M-KOTXT = TEXT-050.
IF X_KONT1 IS INITIAL.
AM07M-KONTIERUNG = MSEG-KOSTL.
ELSE.
AM07M-KONTIERUNG = EKKN-KOSTL.
ENDIF.
WHEN XPROJN. "Projekt/Netzplan
IF X_KONT1 IS INITIAL.
IF MSEG-NPLNR IS INITIAL.
AM07M-KOTXT = TEXT-060.
PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
ELSE.
AM07M-KOTXT = TEXT-061.
AM07M-KONTIERUNG = MSEG-NPLNR.
PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ELSE.
IF EKKN-NPLNR IS INITIAL.
AM07M-KOTXT = TEXT-060.
PERFORM PSP_CONVERT USING EKKN-PS_PSP_PNR.
ELSE.
AM07M-KOTXT = TEXT-061.
AM07M-KONTIERUNG = EKKN-NPLNR.
PERFORM NW_VORGANG_LESEN USING EKKN-AUFPL EKKN-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
CLEAR X_KONT1.
* User-Exit über Erweiterung MBCF0005
CALL CUSTOMER-FUNCTION '001'
EXPORTING
I_MKPF = MKPF
I_MSEG = MSEG
I_EKKO = EKKO
I_EKPO = EKPO
I_NAST = NAST
I_TNAPR = TNAPR
TABLES
I_EKKN = XEKKN
CHANGING
C_AM07M = AM07M
EXCEPTIONS
OTHERS = 0.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'W1VERBRMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'RUELVERBRGRUND'.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING ELEMENT = 'VERBRAUSST'.
ENDFORM.
INCLUDE /SMB40/M07DRE02.
* FORM WE02_DRUCK *
FORM WE02_DRUCK.
T001W-WERKS = R_WERKS.
T001W-NAME1 = R_NAME1.
CALL FUNCTION 'START_FORM'
EXPORTING
FORM = TNAPR-FONAM
LANGUAGE = LANGUAGE.
PERFORM PRUEFTEXT_LESEN.
IF NOT MSEG-VFDAT IS INITIAL.
AM07M-MHTXT = TEXT-105.
ENDIF.
IF NOT AM07M-MHDAT IS INITIAL.
AM07M-MHZTX = TEXT-106.
ENDIF.
IF EKKO-BSART = 'UB'.
AM07M-LITXT = TEXT-101.
AM07M-LIBZG = EKKO-RESWK.
ELSE.
AM07M-LITXT = TEXT-100.
AM07M-LIBZG = EKKO-LIFNR.
IF NOT EKKO-LLIEF IS INITIAL.
AM07M-LIBZ2 = EKKO-LLIEF.
ELSE.
AM07M-LIBZ2 = EKKO-LIFNR.
ENDIF.
ENDIF.
IF T156-SHKZG = 'H'. "Kennzeichen Haben ?
AM07M-HDLNE = TEXT-020.
ELSE.
AM07M-HDLNE = TEXT-010.
ENDIF.
IF NOT T159P-BACOD IS INITIAL.
BELPOS-MBLNR = MKPF-MBLNR.
BELPOS-ZEILE = MSEG-ZEILE.
CONDENSE BELPOS NO-GAPS.
AM07M-BELPOS = BELPOS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE2BACOKOPF'.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE2KOPF'.
ENDIF.
IF XPSTY IS INITIAL. "Lagermaterial ?
* User-Exit über Erweiterung MBCF0005
CALL CUSTOMER-FUNCTION '001'
EXPORTING
I_MKPF = MKPF
I_MSEG = MSEG
I_EKKO = EKKO
I_EKPO = EKPO
I_NAST = NAST
I_TNAPR = TNAPR
TABLES
I_EKKN = XEKKN
CHANGING
C_AM07M = AM07M
EXCEPTIONS
OTHERS = 0.
IF MSEG-XBLVS IS INITIAL.
PERFORM W2_LAGERMATERIAL. "Lagermaterial
ELSE.
PERFORM W2_LVSMATERIAL. "LVS-Material
ENDIF.
ELSE.
PERFORM W2_VERBRAUCHSMATERIAL.
ENDIF.
CALL FUNCTION 'END_FORM'.
PERFORM MKTO_DRUCK.
ENDFORM.
*-------------- Lagermaterial WE-Version 2 ---------------------------*
FORM W2_LAGERMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE2LGMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'RUELGGRUND'.
ENDIF.
THEAD-TDID = THEADER-TDID.
THEAD-TDNAME = THEADER-TDNAME.
THEAD-TDOBJECT = THEADER-TDOBJECT.
THEAD-TDSPRAS = THEADER-TDSPRAS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'PRTXTLGMAT'.
ENDFORM.
*-------------- LVS-Daten WE-Version 2 ---------------------------*
FORM W2_LVSMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'W1LVSMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'RUELVSGRUND'.
ENDIF.
THEAD-TDID = THEADER-TDID.
THEAD-TDNAME = THEADER-TDNAME.
THEAD-TDOBJECT = THEADER-TDOBJECT.
THEAD-TDSPRAS = THEADER-TDSPRAS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'PRTXTLVSMAT'.
ENDFORM.
*------------ Verbrauchsmaterial WE-Version 2 ----------------------*
FORM W2_VERBRAUCHSMATERIAL.
CLEAR: AM07M-KOTXT, AM07M-KONTIERUNG.
CASE XPSTY.
WHEN XFERT. "Fertigungsauftrag
AM07M-KOTXT = TEXT-062.
IF X_KONT1 IS INITIAL.
AM07M-KONTIERUNG = MSEG-AUFNR.
ELSE.
AM07M-KONTIERUNG = EKKN-AUFNR.
ENDIF.
WHEN XKDE.
MOVE SPACE TO KUNDE.
AM07M-KOTXT = TEXT-030.
IF X_KONT1 IS INITIAL.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
ELSE.
KUNDE-KDAUF = EKKN-VBELN.
KUNDE-KDPOS = EKKN-VBELP.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XKDANR.
MOVE SPACE TO KUNDE.
AM07M-KOTXT = TEXT-030.
IF X_KONT1 IS INITIAL.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
KUNDE-KDEIN = MSEG-KDEIN.
ELSE.
KUNDE-KDAUF = EKKN-VBELN.
KUNDE-KDPOS = EKKN-VBELP.
KUNDE-KDEIN = EKKN-VETEN.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XANLAGE.
MOVE SPACE TO ANLAGE.
AM07M-KOTXT = TEXT-040.
IF X_KONT1 IS INITIAL.
ANLAGE-ANLN1 = MSEG-ANLN1.
ANLAGE-ANLN2 = MSEG-ANLN2.
ELSE.
ANLAGE-ANLN1 = EKKN-ANLN1.
ANLAGE-ANLN2 = EKKN-ANLN2.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE ANLAGE NO-GAPS.
AM07M-KONTIERUNG = ANLAGE.
WHEN XKOSTL.
AM07M-KOTXT = TEXT-050.
IF X_KONT1 IS INITIAL.
AM07M-KONTIERUNG = MSEG-KOSTL.
ELSE.
AM07M-KONTIERUNG = EKKN-KOSTL.
ENDIF.
WHEN XPROJN.
IF X_KONT1 IS INITIAL.
IF MSEG-NPLNR IS INITIAL.
AM07M-KOTXT = TEXT-060.
PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
ELSE.
AM07M-KOTXT = TEXT-061.
AM07M-KONTIERUNG = MSEG-NPLNR.
PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ELSE.
IF EKKN-NPLNR IS INITIAL.
AM07M-KOTXT = TEXT-060.
PERFORM PSP_CONVERT USING EKKN-PS_PSP_PNR.
ELSE.
AM07M-KOTXT = TEXT-061.
AM07M-KONTIERUNG = EKKN-NPLNR.
PERFORM NW_VORGANG_LESEN USING EKKN-AUFPL EKKN-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
CLEAR X_KONT1.
* User-Exit über Erweiterung MBCF0005
CALL CUSTOMER-FUNCTION '001'
EXPORTING
I_MKPF = MKPF
I_MSEG = MSEG
I_EKKO = EKKO
I_EKPO = EKPO
I_NAST = NAST
I_TNAPR = TNAPR
TABLES
I_EKKN = XEKKN
CHANGING
C_AM07M = AM07M
EXCEPTIONS
OTHERS = 0.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE2VERBRMAT'.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'RUEVERBRGRUND'.
ENDIF.
THEAD-TDID = THEADER-TDID.
THEAD-TDNAME = THEADER-TDNAME.
THEAD-TDOBJECT = THEADER-TDOBJECT.
THEAD-TDSPRAS = THEADER-TDSPRAS.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'PRTXTVERBRMAT'.
ENDFORM.
INCLUDE /SMB40/M07DRE03.
* FORM WE03_AUSGABE *
FORM WE03_AUSGABE using lgortsplit.
*----------------Drucken WE-Version 3 Überschrift---------------------*
if lgortsplit is initial.
ON CHANGE OF MKPF-MBLNR OR MSEG-EBELN OR MSEG-BWART
OR NAST-KSCHL OR MSEG-WERKS.
CLEAR XKOPFDR.
endon.
else.
ON CHANGE OF MKPF-MBLNR OR MSEG-EBELN OR MSEG-BWART
OR NAST-KSCHL OR MSEG-WERKS
OR MSEG-LGORT.
CLEAR XKOPFDR.
endon.
endif.
IF XKOPFDR IS INITIAL.
XKOPFDR = X.
IF NEW_PAGE = X.
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = 'NEW-PAGE'.
ENDIF.
IF EKKO-BSART = 'UB'.
AM07M-LITXT = TEXT-101.
AM07M-LIBZG = EKKO-RESWK.
ELSE.
AM07M-LITXT = TEXT-100.
AM07M-LIBZG = EKKO-LIFNR.
IF NOT EKKO-LLIEF IS INITIAL.
AM07M-LIBZ2 = EKKO-LLIEF.
ELSE.
AM07M-LIBZ2 = EKKO-LIFNR.
ENDIF.
ENDIF.
IF T156-SHKZG = H.
AM07M-HDLNE = TEXT-020.
ELSE.
AM07M-HDLNE = TEXT-010.
ENDIF.
IF XPSTY IS INITIAL. "Lagermaterial ?
IF MSEG-XBLVS IS INITIAL.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3BACOKOPF'
WINDOW = 'RÜKOPF'.
NEW_PAGE = X.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3KOPF'
WINDOW = 'RÜKOPF'.
NEW_PAGE = X.
ENDIF.
ELSE.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3BACOKOPF'
WINDOW = 'KOPF'.
NEW_PAGE = X.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3KOPF'
WINDOW = 'KOPF'.
NEW_PAGE = X.
ENDIF.
ENDIF.
ELSE.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3BACOLVSKOPF'
WINDOW = 'RÜKOPF'.
NEW_PAGE = X.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3LVSKOPF' "RL-Material
WINDOW = 'RÜKOPF'.
NEW_PAGE = X.
ENDIF.
ELSE.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3BACOLVSKOPF'
WINDOW = 'KOPF'.
NEW_PAGE = X.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3LVSKOPF' "RL-Material
WINDOW = 'KOPF'.
NEW_PAGE = X.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3BACOKOPF1'
WINDOW = 'RÜKOPF'.
NEW_PAGE = X.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3KOPF1'
WINDOW = 'RÜKOPF'.
NEW_PAGE = X.
ENDIF.
ELSE.
IF NOT T159P-BACOD IS INITIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3BACOKOPF1'
WINDOW = 'KOPF'.
NEW_PAGE = X.
ELSE.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3KOPF1'
WINDOW = 'KOPF'.
NEW_PAGE = X.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*------------- Drucken WE-Version 3 Position --------------------------*
**perform w3_lieferplan. "Routine Lieferplan
CLEAR T157E.
IF T156-SHKZG = H AND
NOT MSEG-GRUND IS INITIAL.
SELECT SINGLE * FROM T157E WHERE BWART = MSEG-BWART
AND GRUND = MSEG-GRUND
AND SPRAS = LANGUAGE.
ENDIF.
IF MSEG-EBELN IS INITIAL.
IF NOT MABDR-MAKTX IS INITIAL.
EKPO-TXZ01 = MABDR-MAKTX.
ENDIF.
ENDIF.
IF MABDR-WERTU IS INITIAL AND
MABDR-MENGU = X OR "Bestandsfuehrung = UNBW oder
XPSTY IS INITIAL. "Lagermaterial ?
* User-Exit über Erweiterung MBCF0005
CALL CUSTOMER-FUNCTION '001'
EXPORTING
I_MKPF = MKPF
I_MSEG = MSEG
I_EKKO = EKKO
I_EKPO = EKPO
I_NAST = NAST
I_TNAPR = TNAPR
TABLES
I_EKKN = XEKKN
CHANGING
C_AM07M = AM07M
EXCEPTIONS
OTHERS = 0.
IF MSEG-XBLVS IS INITIAL.
PERFORM W3_LAGERMATERIAL. "Routine Lagermaterial
ELSE.
PERFORM W3_LVSMATERIAL. "Routine RL-Material
ENDIF.
ELSE.
PERFORM W3_VERBRAUCHSMATERIAL. "Routine Verbrauchsmaterial
ENDIF.
*-------------- Drucken WE-Version 3 Seitenfuss ----------------------*
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3FUSS'
WINDOW = 'FUSS'
FUNCTION = 'APPEND'.
ENDFORM.
*--------------Unteroutinen für Positionsdruck -----------------------*
FORM W3_LAGERMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3LGMAT'.
ENDFORM.
* FORM W3_LVSMATERIAL *
FORM W3_LVSMATERIAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'WE3LVSMAT'.
ENDFORM.
* FORM W3_VERBRAUCHSMATERIAL *
FORM W3_VERBRAUCHSMATERIAL.
CLEAR: AM07M-KONTIERUNG.
AM07M-RSTYP = XPSTY.
CASE XPSTY.
WHEN XFERT. "Fertigungsauftrag
IF X_KONT1 IS INITIAL.
AM07M-KONTIERUNG = MSEG-AUFNR.
ELSE.
AM07M-KONTIERUNG = EKKN-AUFNR.
ENDIF.
WHEN XANLAGE.
MOVE SPACE TO ANLAGE.
IF X_KONT1 IS INITIAL.
ANLAGE-ANLN1 = MSEG-ANLN1.
ANLAGE-ANLN2 = MSEG-ANLN2.
ELSE.
ANLAGE-ANLN1 = EKKN-ANLN1.
ANLAGE-ANLN2 = EKKN-ANLN2.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE ANLAGE NO-GAPS.
AM07M-KONTIERUNG = ANLAGE.
WHEN XKDE. "Kundeneinzelbestand?
MOVE SPACE TO KUNDE.
IF X_KONT1 IS INITIAL.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
ELSE.
KUNDE-KDAUF = EKKN-VBELN.
KUNDE-KDPOS = EKKN-VBELP.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XKDANR. "Kundenauftrag ?
MOVE SPACE TO KUNDE.
IF X_KONT1 IS INITIAL.
KUNDE-KDAUF = MSEG-KDAUF.
KUNDE-KDPOS = MSEG-KDPOS.
KUNDE-KDEIN = MSEG-KDEIN.
ELSE.
KUNDE-KDAUF = EKKN-VBELN.
KUNDE-KDPOS = EKKN-VBELP.
KUNDE-KDEIN = EKKN-VETEN.
ENDIF.
MOVE SPACE TO AM07M-KONTIERUNG.
CONDENSE KUNDE NO-GAPS.
AM07M-KONTIERUNG = KUNDE.
WHEN XKOSTL. "auf Kostenstelle kontiert
IF X_KONT1 IS INITIAL.
AM07M-KONTIERUNG = MSEG-KOSTL.
ELSE.
AM07M-KONTIERUNG = EKKN-KOSTL.
ENDIF.
WHEN XPROJN. "auf Projekt/Netzplan
IF X_KONT1 IS INITIAL.
IF MSEG-NPLNR IS INITIAL.
PERFORM PSP_CONVERT USING MSEG-PS_PSP_PNR.
ELSE.
AM07M-KONTIERUNG = MSEG-NPLNR.
PERFORM NW_VORGANG_LESEN USING MSEG-AUFPL MSEG-APLZL.
IF NOT N_VORNR IS INITIAL.
MOVE '/' TO AM07M-KONTIERUNG+12.
MOVE N_VORNR TO AM07M-KONTIERUNG+13.
ENDIF.
ENDIF.
ELSE.
IF EKKN-NPLNR IS INITIAL.
PERFORM PSP_CONVERT USING EKKN-PS_PSP_PNR.
ELSE.
AM07M-KONTIERUNG = EKKN-NPLNR.
PERFORM NW_VORGANG_LESEN USING EKKN-AUFPL EKKN-APLZL.
IF NOT N_VORNR IS INITIAL.
Maybe you are looking for
-
Create favorite open in new Window
Hi, I have a new Command "Add to Portal Favorites" includet in the Search Result. I would now that the "Add to Portal Favorites" funktion open in a new window. how can i do this? Thanks for help Thomas
-
I bought an iPhone 5S in USA but I live in Brazil and I cannot use 4G is there anything to do in order to repair it?
-
Hi, I want to migrate data from one table in ABC schema to XYZ other schema. for e.g create table abc.book( col1 number, col2 sys.xmltype) is there in abc schema. now in other schema i've created the following table create table xyz.book (col1 number
-
Rainbow wheel of death-multi program
the subject says it all. after a year of perfect performance my imac g5 with 2 external hard drives, 1/3 of internal being used, is giving me pinwheels suddenly. it's across programs-internet, finder, photoshop....any ideas short of taking it to the
-
Centered Website Problems???
Can someone please tell me why everything is shifted to the left on a PC but centered on my MAC when i look at this site that i am creating? I want the logo and picture to be centered. www.EclipseThem.com/beta Thanks, dbrenton