on 06-14-2008 6:21 AM
Hi,
PO printing is done with Standard Tcode at present.
Pls forward me Z_smartforms for PO printing with future modifications or additions to that Zform available.
I would like to print Many PO at one time
Create Purchase Order Smartform
Create a Smartform, copy the existing SAP provided purchase order Smartform to ZSFM_PURCHASEORDER for
customizing as per business requirement.
1. Form Settings under Global Settings node, set the parameters in Output Option:
Page Format: Letter
Character per Inch: 20
Line per Inch: 6
Style: ZSTM_SMB40_SF
Output Format: Standard Output
2. Form Interface
We can add parameters in the Import Parameters and tables in Tables tab of the form interface for the application
data to be available for the Smartform to print.
3. In Global definition we can define the all the global variables which can be used in Smartforms. Initialization
can be used for initializing the variables and even for retrieving the data.
Creating pages:
Each form consists of one or more pages. The first page in the tree structure is the start page and the
processing of the form starts with this page itself.
1. Open the context menu for existing page node and choose create page
2. Enter a unique name (FIRST) for the node and a description (Page)
3. Determine the format (1, 2, 3...)and the mode of the page counter (Increase counter) on the general
attributes tab
4. Determine the print attributes (Portrait Format) of the page on the output options
5. Determine a background graphic for the entire page on the background tab (Not used in PO).
Creating windows:
The size and position of the window can be graphically set in the form painter. There are main windows and
secondary windows. The difference between these two is that the output in a main window can cover several
pages.
1. Open the context menu for an existing page node and choose window
2. Enter a name for the node (NAMEFORM) and a description (Title Window).
3. On the general attributes indicate type of window. NAMEFORM is secondary window.
In similar fashion all the other windows are created and positioned as per the form design. Only one MAIN
window is created, it is used for line items which can cover several pages.
Positioning texts on the form
The texts are displayed in the form using text nodes. The only exceptions are addresses.
The predecessor node of the text node determines its use:
Predecessor node Used to
Secondary window Position text on one or more pages
Main window Display text in relation to other nodes in the main window, it may cover several pages
Template Displays texts for table cells of a static table
Table Display table contents
There are three text types:
1. Text element : to enter new text in the PC editor
2. Text module : to include a text module
3. Include text : to include an existing SAPscript text
Entering texts in PC editor: (TITLE)·
To create a text node call the context menu for that node in the tree structure that should receive the
text, then choose->text
· Enter a unique name (TITLE) for the node and the node description (TITLE)
· On the general attributes tab choose text element as text type
· In the text node box choose whether the text should be started with a new paragraph or only in a new
line
· Enter the text in the PC editor. Text could be a program element like &Title& or u2018Purchase Orderu2019. &Title&
is a variable for which the value is assigned in Program line before the text.
Including text modules: (TERMSCONDITION)
Text module of the text node is used to refer to an existing text module in the system. The text modules can be
used in two ways:
· To create a text node, call the context menu for that node in the tree structure that shall contain the text
and choose create->text under the window TERMSCONDITION.
· Enter a unique name for the node (TERMSCONDITION) and a description (Terms and Condition)
· On the general attributes tab select the text type text module
· Enter the name of the text module in the text name field (&G_TERMS_TEXT&). &G_TERMS_TEXT& is
used to determine the Text name dynamically in the program lines preceding the text module node.
· Program Lines: GETTERMSCONDITION
Concatenate 'ZTMM_PO_TERMS_' ZXEKKO-BUKRS
INTO G_TERMS_TEXT.
Including SAPscript texts:
(HD_TXT_F01 u2013 Order Header Text)
The text type include text node to refer to a SAPscript text, which already exists in the system. To identify the
text the text name, object, id and the language is needed.
· To create the text node, call the context menu for that node in the tree structure that shall receive the
text and choose create -> text under the main window.
· Enter a unique name (HD_TXT_F01) for the node and the node description (Order Header Text).
· On the general attributes tab choose include text as text type
· Text Name - &ZEKKO-EBELN&, Text Object u2013 EKKO, Text ID u2013 F01, Language - &SY-LANGU&. Also check
mark u2013 No error if no text exists.
Tip: Since the size of text is not known, its better to have the text in MAIN window, so that it can run to more
than one page if required.
Inserting addresses: (SENDER):
Address node is used to insert an address into the form. This guarantees that the address is formatted
according to the postal rules of the sender country.
· To create an address node , call the context menu for that node in the tree structure that one wants to
contain the text and choose create->Address
· Enter a name for the node (COMPANY_CODE_ADDRESS) and a description (Company Code Address)
· Determine the address type (Organization Address) on the general attributes tab
· For organizational addresses - specify the address number, for any other - specify the person number
and the address number. In this case we get the company code address into variable &ADDNR&, so we need
program lines (SENDER) preceding the address text.
· In the box additional addresses, attributes to specify how to display the address are maintained.
Printing graphics: (LOGO):
Tcode SE78 is used to import graphics into the SAP system. The transaction imports the graphics and stores it
in the BDS (business transaction server) and then it can be displayed in the form.
· To create the graphic node , call the context menu for that node in the tree structure and choose create-
>graphic
· Enter a name (LOGO) for the node and the description (Logo Graphic)
· On the general attributes determine whether a colored or a black and white
· On General Attributes use the fields object - GRPAHIC, id u2013 BMAP and name - &G_LOGO& to identify the
graphic. &G_LOGO& is variable and therefore we can print company code specific logo. Program line preceding
the graphic is required.
· Program line COMP_LOGO is used to assign the value to G_LOGO. Concatenate 'ZCOMPANY_LOGO_'
ZXEKKO-BUKRS INTO G_LOGO. So, the name of graphic for example will be ZCOMPANY_LOGO_0202 for
company code 0202.
Displaying a static table (Window u2013 INFO, Template - TEM_INFO)
Use node type template to display a table whose layout and size is determined before the runtime of the print
program.
To create a template, define a table layout to determine the cell structure for each line. The cells are used to
display the cell structure for each line. The cells are used to display the contents of the successor nodes of the
template node.
· Create Template under the INFO window node. Create > Template.
The template layout is used to determine the following,
1. The number of lines and cells
2. The height of each cell
3. The width of each cell
4. The alignment of the table in the window
5. Whether and where to display separator lines or frames
Use the table control on the template tab to define the layout of the lines. Each line of the template must have
a definition.
Use the pattern box to select the desired table pattern.
·
Displaying contents in cells: (TLE_CONTACT)
The template node defines the table layout. The successor nodes of the template determine the data to be
displayed in the table cells.
In General Attributes choose Text type u2013 Text Element. In editor, type u2018DTE Contactu2019.
In Output Options, define the output structure LINE u2013 5 and Column u2013 1.
Similarly all other information for each cell can be filed using the text module and address module.
Displaying Dynamic Table (ITEM_TABLE)
· Create TABLE under the MAIN window node. In DATA Tab, loop through the data internal table.
L_XEKPO is the item table which has all the line item details.
Define the line types based on the positioning of the text in main window. For example: TABLE_HEADER1
is used for positioning Header texts in the table.
· Table is divided into three parts: Header, Main Area and Footer.
· Header is used for printing the Header Title of the table and it at the start of the table on every page.
· Main Area is used to print the line item details of the PO. Create a line (ITEM_DETAIL) of the line type
TABLE_HEADER1. It will dynamically generate number cells based on the line type defined in the table layout.
Name all the cells as per the usage. For each cell create the text node to display the information. For example:
Cell VAL_MATERIAL, Text node MATNR is created which has text element - -matnr.
· Footer is used for printing the information after Main Area data is printed. This can be used for Total
printing or any other information which needs to be printed after all line items are printed. Create line
TLE_CONTR_STP for Contractual Stipulation of the line type u2013 LINE which has only one column. Create the
text element to print the information.
Special Requirement: Printing the Acknowledgement text if the order value is greater then USD 50,000.00 on
the second copy only.
· This requirement needs the modification in the print program and the Smartform.
· Modification in Print Program to trigger the second copy if the order value is greater then 50K. Its
advisable to copy the standard print program to custom Z program (Z_SMB40_FM06P), and changes should
be made to Z program. Number of copies is passed from NAST to ls_composer_param-tdcopies in Smartforms.
The value ls_composer_param-tdcopies is modified in the print program to 2 if the order value is greater then
50K.
· The printing of Acknowledgement Text only on second copy is achieved using the COPIES WINDOW in
Smartforms. Define Window ACKN_COPY of the type COPIES WINDOW and Output to u2013 Only Copies u2013 Copies
Differ. Also set the condition in the Condition Tab of the window u2013 SFSY-JOBPAGES = 1, so that it only print
on the first page of the copy.
· If user selects to print 2 copies and the order value is more then 50k, program needs to print 2 sets
meaning 4 copies. So number of copies is taken care of in Print program but again the printing of
Acknowledgement Text should be only the Even number copy meaning Copy# 2 and 4. This achieved by using
the program lines to determine the even copy. SFSY-COPYCOUNT will tell us the current copy number being
printed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Also pls provide logic for multiple document printing.
at present seletion screen consists of
Parameters for BKPF-belnr .
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
95 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.