Smart form modification.(Language requriments)
Hi all,
I have to change the smartform for the language requirements with out changing print program. Here the form ic processed by the Classes and methods. Those r standard.
we have to check the condition i.e pur. org. country and vendor country.
If both are same we have to print the texts in local language.
(see below code for conditions).
For this,
we have to write a code.
Where we have to write the code in smartform (not in print program)?
<u><b>Contract Output processing details:</b></u>
Compare Country of Purchasing Organization with Country of Vendor from the Contract
A. If the Country of Purchasing Organization and Country of Vendor from the CONTRACT are the same, then use local language (ZBBP_FORM_LAYOUT_DET - ZLOCAL)
1. If local language (ZBBP_FORM_LAYOUT_DET - ZLOCAL) is EN then print form layout and print Texts in (ZBBP_FORM_TXT_DET-ZFILE_LOCAL) in English(EN) for the Purchasing organization, Form type and output date between the date range (ZFROM_DATE and ZTO_DATE)
2. Local language (ZBBP_FORM_LAYOUT_DET - ZLOCAL) is not EN and based on Label Language (ZLABEL_LOCAL), Print labels in the required languages and print Texts in (ZBBP_FORM_TXT_DET-ZFILE_LOCAL) in Local language for the Purchasing organization , Form type and output date between the date range (ZFROM_DATE and ZTO_DATE)
B. If the Country of Purchasing Organization and Country of Vendor from the Contract are NOT the same, then use language as non-local language (ZBBP_FORM_LAYOUT_DET - ZNONLOCAL) then print form layout based on Label Language (ZLABEL_NONLOCAL) and print Texts in and print Texts in (ZBBP_FORM_TXT_DET-ZFILE_NONLOCAL) for the Purchasing organization, Form type and output date between the date range (ZFROM_DATE and ZTO_DATE)
Step 2:
Get Texts Names and language where Text Type in ('BILL_TO' ,HEADER, EOP, NOTE,, FOOTER_LT, FOOTER_MID, FOOTER_RT, EODOC, TERM_COND') as per the purchasing Org and Date range, then get Text details of 'Text name' where text id ='ST' as per the language and populated them on the Contract which are stored using transaction code 'SO10'.
Output Processing:
During the Output preview Texts info will be populated as per the latest output of Contract transmitted to the Vendor, the date of last output is fetched from the log table Contract output.
Date format and decimal notation:
Print Date Format (V_T005_BAS-DATFM) and decimal notation (V_T005_BAS-XDEZP) on Contract form, where Country of Purchasing Organization of the Contract is equals to Country ISO code(V_T005_BAS-INTCA)
This is requirement.
Where ew have to impliment the code in smartform?
Can any one help on this?
We r not going to change the classes and methods. (Print program)
Rewards to all.
Thanks,
Anu.
Hi!
You can do this within the Smartform.
You have to define the window in all languages, you wanted to print. Then you can define conditions for the language code. If you set a condition to one of the windows, you have to exclude it from the another.
For example
ZWINDOW_EN - condition language = 'EN'
ZWINDOW_OTHERS - condition language <>'EN'
Regards
Tamá
Similar Messages
-
Need inputs : PO Smart form Bulgaria language in SRM
Hi Experts,
I need a couple of suggestions and guide lines for PO print out Smart form.
We have requirement for PO, print out should print in Bulgaria language if the PO Vendors is from Bulgaria country.
And if the vendor is other than Bulgaria country then it should print in the English.
We have already a custom smart form (English)which we have assigned it in BADI for the PO Print output BBP_OUTPUT_CHANGE_SF.
Do we have to create 2 different smart forms? One is for Bulgaria vendors and other for non Bulgaria vendors.
And Do need to assign the 2 different smart forms in BADI based up on the vendor country?
If I enter the fixed text (like labels) in Bulgarian language then it will automatically will print in Bulgarian language?
And what I have to do dynamic text (which I will read from the print program input data or data base tables) ? Is there any way for the translation for these dynamic texts?
And I tried to put some labels in Bulgarian language in the smart form, but I am not able to see in those characters in the print preview in the portal. Its showing as some junk characters asu201D#u201D. But I am able to see in Spool (GUI, SP01). Is it because of the Bulgaria Language pack is not there in my system
looking for your valuable inputs.
Thank you ,
Bharathi.Ok here´s how it works:
In standard logic the output type gets drawn in communication language of supplier.
so for a bulgarian supplier, with communication language Bulgarian the output type will get drawn in bulgarian.
This means the bulgarian form will get processed and in the form text will be drawn in bulgarian language as well if you stayed with standard logic and draw texts with NAST-SPRAS.
in your print program in the entry routine, not any entry routine but the one which is customized in TNAPR for this output type, place following coding:
if nast-spras NE 'BG'.
nast-spras = 'EN'.
endif.
that should do the whole job.
and NO you have absoluteley NO chance to handle this in the form.
If you arrived in the form you are already in a certain language and it too late to do what you want to.
Edited by: Florian Kemmer on Jul 16, 2009 3:21 PM
Edited by: Florian Kemmer on Jul 16, 2009 3:23 PM -
Hi
I am using the transaction va22 for sales transaction, I want to modify smartforms inside the form, after entering the quotation when i am selecting the text messages it is comming correctly in the paragraph but when the smartform the material text message is displaying and moving vertically downwards direction instead of horizontal
could you please help why this is happening.......
PirozHi Mukul
I have the the text type=include text and start time = Append directly
The change quotation smartforms is taking from transaction va22
and the text is displaying from material text but in the smart form it is displaying as
The
delivery
note
is accepted
but
dfdsfdsf
dfdsfdfd
Instead of The delivery note is accepted but dsfdsfdsfdsfdsfdsfdsfdsfds should be display , where to change the text position and the width in window attributes i cannot see that when i open smart form
regards -
How to print a smart form in two diff languages runtime
Hi friends,
we have a requirement to print a smart form in two langauges one in english
and other in Spanish those selection has to given by check box condition.
pls send some stuff .
Thanks & Regards
Jagadeeshwar.Bhi! Jagadesh
1. Create two different Smartforms
2. In Form Atributes Option -->General Attributes -->Language Tab -- there is a Optiona to select a Particular Language.( To select Language) there <b>select the EN</b> for 1st optin and <b>ES for Spanish</b>, Normally it will be in To all Language.
3. Create a report with Radiobutton (bz Check Box have an attributes to check both the Options)
when option1 = 'EN'.
call form1 with EN language
when option2 = 'ES'.
call forms 2 with ES Language.
Reward me if its useful.
Regards,
Nagulan -
Mail subject modification for smart-form SMIV
Hi Experts,
We have implemented ServiceDesk in Solution Manager 7.1 SPS 08 & are using automatic notifications to be generated as alert emails to the customer key users / service desk support team / message processors etc.
We are using Actions under transaction SPPFCADM, which is using smart-form AI_CRM_IM_SHORT_TEXT_LINK_FORM for the email content.
We need to modify the notification mail subject as follows -
Current Mail Subject – 80000xxxxxx : <Incident Description>
Required Mail Subject – 80000xxxxxx : <Incident Description> : <Incident Status>
Can you please suggest, how this can be achieved? What modifications are needed in smart form for the same?
Best Regards,
TanmeyaHi Tanmeya,
Go through the following Links, here u can find example with step
by step.
http://smoschid.tripod.com/How_to_do_things_in_SAP/How_To_Build_SMARTFORMS/How_To_Build_SMARTFORMS.html
Check these step-by-step links
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/ccab6730-0501-0010-ee84-de050a6cc287
https://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/8fd773b3-0301-0010-eabe-82149bcc292e
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/3c5d9ae3-0501-0010-0090-bdfb2d458985
Check these links also.
http://www.sap-basis-abap.com/sapsf001.htm
http://www.sap-press.com/downloads/h955_preview.pdf
http://www.ossincorp.com/Black_Box/Black_Box_2.htm
http://www.sap-img.com/smartforms/sap-smart-forms.htm
http://www.sap-img.com/smartforms/smartform-tutorial.htm
http://www.sapgenie.com/abap/smartforms.htm
for Smartforms material
http://www.sap-basis-abap.com/sapsf001.htm
http://www.sap-press.com/downloads/h955_preview.pdf
http://www.ossincorp.com/Black_Box/Black_Box_2.htm
http://www.sap-img.com/smartforms/sap-smart-forms.htm
http://www.sap-img.com/smartforms/smartform-tutorial.htm
http://www.sapgenie.com/abap/smartforms.htm
How to trace smartform
http://help.sap.com/saphelp_47x200/helpdata/en/49/c3d8a4a05b11d5b6ef006094192fe3/frameset.htm
http://www.help.sap.com/bp_presmartformsv1500/DOCU/OVIEW_EN.PDF
http://www.sap-img.com/smartforms/smart-006.htm
http://www.sap-img.com/smartforms/smartforms-faq-part-two.htm
Re: Need FAQ's
http://www.sap-img.com/smartforms/smart-006.htm
http://www.sap-img.com/smartforms/smartforms-faq-part-two.htm
Re: Need FAQ's
https://scn.sap.com/thread/499311 -
Converting smart forms as a pdf in different languages
Hi Experts,
I have been created a smart form and later on i converted it to in pdf also, but how can i convert a smart form output into different languages (English(defualt), German, Italian, French, Spanish,). Can anyone tell me about the idea behind this or a simple demo program???????????
do i need to maintain each text on the smart form into these languages already through SE63 or somewhere any idea that can help me without translating the whole text into those languages, could be able to do pdf conversion.
Thanks and Regards,
ShakunThe OTF data needs to already be in the target language - the conversion process is a process of changing the document format only, not a translation tool.
-
Output in Customer Language for Service Dispatch Note Smart form
We have upgraded from ECC 5.0 to ECC 6.0.
After the upgrade we are facing an issue in some of our Service related smart forms.
The version of the driver program is same in both the systems and the smart form is also same.
The customer's language is maintained in Customer Master data.
In the un-upgraded system, the forms were printed in the Customer language according to what is maintained in the customer master data.
But after the upgrade, in the new system, the form is being printed in English as opposed to the Customer language in the older system.
As I have already mentioned above, in both the systems, the driver program, smart form and Customer Language in the customer master data are similar.
Kindly suggest me the solution if anyone has faced a similar problem.Hi, Actually I have checked in debugging and have come to know that during the upgrade, when I have downloaded the form from ECC 5.0 and uploaded it to ECC6.0, the Language option in the general attributes tab of the text modules is blank and hence the form is displayed in English only.
Is there any way that I can get the smartform uploaded as it is in the earlier system? -
How to display Smart form in Multiple Languages ?
Hello,
Very Good evening!
How can I print the Smart Form in Multiple Languages like Korea, German and Japneese....
I got a requirement where I need to display the developed Smart form in these languages. As of now it is displayed only in the Language ENGLISH.
Any Suggestions will be appreciated!
Regards,
KittuHello kittu....
I would recommend that you create a single Smart Form in the primary supported language (or the one which you're most comfortable maintaining forms). Embed all necessary logic in this form, and design it with the idea that it would need to be viewable in multiple languages .
Then use transaction SE63 to translate all necessary form components into each desired language -- one by one -- and they will all be bound together under the same form name. In my experience, a basic multi-column spreadsheet (put together with the guidance of professional translators) works well as a translation guide.
The advantages of a single, shared form include: consistent look and feel, avoiding dual maintenance for shared logic (or, in your case, up to 10x maintenance), and simplified output determination. On the other hand, a single form does constrain your design and can make for a more complex implementation.
Hope this is useful
Best of luck,
Bhumika -
Smart Form Language Print Problem
Hi ,
i want to ask that in PO smart form if i am taking print preview. then vendor & Shipping Address are not coming in print preview...another fields are coming like tele & Fax No these are store in numeric value but these name1 and street store in taiwan Lang..
then data fetch from ARDC table but ARDC-name1 and ADRC-street store data in taiwan lang..so these two fields data is not displaying in taiwan lang during print preview but some other format is displaying like squrae shape.....
so plz send me solution...ASAP...
Thanks
Amit NigamHi,
Pick up the Address using user log on language instead of adrc-spras Or the language which user wants to display on the form.
Alternatively u can also code the driver program in such a way so that, if the the sy-langu is EN pick the address in EN or pick the address in Taiwan language.
ADRC-Nation is set in such case.
Another solution is the master data for the vendor has to be first maintained in English and then international versions have to be maintained in various languages.
Thanks,
Rashmi -
Reagrding modification in the select statement of smart form
hi,
i have been assigned to make modifications in smart form and now if i want to add field in the existing slect statement it gives error . when i check smart form there is no structure but dere in types declaration
d internal table is passed as a table itself in the form interface and also defined the variables in the global definations . but problem is how reterive data from dese variables in to smart forms which i want add right now as i am new to the smart forms.
Edited by: ric .s on Mar 12, 2008 10:16 AMhi,
i had checked the internal table which is passsed in the program whihc conatins statement :-
data : ivbkd like vbkd occurs 0 with header line.
data : ikna1 like kna1 occurs 0 with header line.
and also passed in the form in d program as it is .
den what s the problem coming after doing all these steps .
plzz help me out as help will be deinfately rewarded. -
Smart forms in different languages
Hi all,
i have an issue
I hav to convert my smart form in 8 different languages.
i know se63 but i dont want to use it as i have to maintain texts manually in different languages in se63.
is there any FM or code with which i can convert my smart form in different languages.
my smart form is originally made in EN language n i hav to convert it to german , italian , french , spanish etc.
please tell me any SAP note no that would be really helpful.Hello,
if you do to want to use se63, you have 2 way:
1. use modul text ( see Transaction smartforms, 3°option on the screen)
2. Use a standard text (so10 transaction)
I mean that on smartforms you have to use only this 2 kind of text and, of corse, translate it.
regards -
Smart form - convertion of english to japanees language
Dear abaper,
i have an language conversion issue in smart forms. what all iam writting and passing in english should be converted into japaniees language .
did any one face the problem.if so pls let me know to close my issue . i will be very much thank full to u.
regards
veerayeah,
u can define SET LANGUAGE lang. in the initialisation of smartform.
here lang is the system defined language
hope this will be helpfull...
Regards,
Prashant -
Smart forms with multiple languages
Hi friends
How to create smart forms in multiple languages please assist me.....
Thank you friends in Advance for helping me...1) Goto-->SMARTFORMS-->Create Form-->Form Attributes-->General Tab-->Select Translate to
all langagues.
2) Logon in any Language and open the same form it will automatically give the opoup to translate
the langauge.
Regards,
Gurpreet -
Regarding smart forms (really urgent)
hi,
i am new to smartforms and i got report to make changes in the smart forms,plzz help me out as i know nothing about the smart forms by providing me it in easiest & simplest form.
if find useful help will be deifnately rewarded.
Edited by: ric .s on Mar 6, 2008 5:16 AMHi,
This Smartform Information I read, really helped me out.
I think it would be of some good help to you too..
What is SAP Smart Forms?
SAP Smart Forms is introduced in SAP Basis Release 4.6C as the tool for creating and maintaining forms.
SAP Smart Forms allow you to execute simple modifications to the form and in the form logic by using simple graphical tools; in 90% of all cases, this won't include any programming effort. Thus, a power user without any programming knowledge can configure forms with data from an SAP System for the relevant business processes.
To print a form, you need a program for data retrieval and a Smart Form that contains the entire from logic. As data retrieval and form logic are separated, you must only adapt the Smart Form if changes to the form logic are necessary. The application program passes the data via a function module interface to the Smart Form. When activating the Smart Form, the system automatically generates a function module. At runtime, the system processes this function module.
You can insert static and dynamic tables. This includes line feeds in individual table cells, triggering events for table headings and subtotals, and sorting data before output.
You can check individual nodes as well as the entire form and find any existing errors in the tree structure. The data flow analysis checks whether all fields (variables) have a defined value at the moment they are displayed.
SAP Smart Forms allow you to include graphics, which you can display either as part of the form or as background graphics. You use background graphics to copy the layout of an existing (scanned) form or to lend forms a company-specific look. During printout, you can suppress the background graphic, if desired.
SAP Smart Forms also support postage optimizing.
Also read SAP Note No. 168368 - Smart Forms: New form tool in Release 4.6C
What Transaction to start SAP Smart Forms?
Execute transaction SMARTFORMS to start SAP Smart Forms.
Key Benefits of SAP Smart Forms:
SAP Smart Forms allows you to reduce considerably the implementation costs of mySAP.com solutions since forms can be adjusted in minimum time.
You design a form using the graphical Form Painter and the graphical Table Painter. The form logic is represented by a hierarchy structure (tree structure) that consists of individual nodes, such as nodes for global settings, nodes for texts, nodes for output tables, or nodes for graphics.
To make changes, use Drag & Drop, Copy & Paste, and select different attributes.
These actions do not include writing of coding lines or using a Script language.
Using your form description maintained in the Form Builder, Smart Forms generates a function module that encapsulates layout, content and form logic. So you do not need a group of function modules to print a form, but only one.
For Web publishing, the system provides a generated XML output of the processed form.
Smart Forms provides a data stream called XML for Smart Forms (XSF) to allow the use of 3rd party printing tools. XSF passes form content from R/3 to an external product without passing any layout information about the Smart Form.
Advantages of SAP Smart Forms
1. The adaption of forms is supported to a large extent by graphic tools for layout and logic, so that no programming knowledge is necessary (at least 90% of all adjustments). Therefore, power user forms can also make configurations for your business processes with data from an SAP system. Consultants are only required in special cases.
2. Displaying table structures (dynamic framing of texts)
3. Output of background graphics, for form design in particular the use of templates which were scanned.
4. Colored output of texts
5. User-friendly and integrated Form Painter for the graphical design of forms
6. Graphical Table Painter for drawing tables
7. Reusing Font and paragraph formats in forms (Smart Styles)
8. Data interface in XML format (XML for Smart Forms, in short XSF)
9. Form translation is supported by standard translation tools
10. Flexible reuse of text modules
11. HTML output of forms (Basis release 6.10)
12. Interactive Web forms with input fields, pushbuttons, radio buttons, etc. (Basis-Release 6.10)
A Simple Smartform Tutorial
SAP Smartforms can be used for creating and maintaining forms for mass printing in SAP Systems. The output medium for Smartforms support printer, fax, e-mail, or the Internet (by using the generated XML output).
According to SAP, you need neither have any programming knowledge nor use a Script language to adapt standard forms. However, basic ABAP programming skills are required only in special cases (for example, to call a function module you created or for complex and extensive conditions).
1. Create a new smartforms
Transaction code SMARTFORMS
Create new smartforms call ZSMART
2. Define looping process for internal table
Pages and windows
First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create)
Here, you can specify your title and page numbering
&SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page)
Main windows -> TABLE -> DATA
In the Loop section, tick Internal table and fill in
ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2
3. Define table in smartforms
Global settings :
Form interface
Variable name Type assignment Reference type
ITAB1 TYPE Table Structure
Global definitions
Variable name Type assignment Reference type
ITAB2 TYPE Table Structure
4. To display the data in the form
Make used of the Table Painter and declare the Line Type in Tabstrips Table
e.g. HD_GEN for printing header details,
IT_GEN for printing data details.
You have to specify the Line Type in your Text elements in the Tabstrips Output options.
Tick the New Line and specify the Line Type for outputting the data.
Declare your output fields in Text elements
Tabstrips - Output Options
For different fonts use this Style : IDWTCERTSTYLE
For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&
5. Calling SMARTFORMS from your ABAP program
REPORT ZSMARTFORM.
Calling SMARTFORMS from your ABAP program.
Collecting all the table data in your program, and pass once to SMARTFORMS
SMARTFORMS
Declare your table type in :-
Global Settings -> Form Interface
Global Definintions -> Global Data
Main Window -> Table -> DATA
Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming
http://sapr3.tripod.com
TABLES: MKPF.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: BEGIN OF INT_MKPF OCCURS 0.
INCLUDE STRUCTURE MKPF.
DATA: END OF INT_MKPF.
SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.
ENDSELECT.
At the end of your program.
Passing data to SMARTFORMS
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORM'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc <> 0.
WRITE: / 'ERROR 1'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function FM_NAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GS_MKPF = INT_MKPF
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.
Additional Fonts for your SMARTFORMS
You can create additional fonts and style with transaction SMARTSTYLES
This can then be define in the paragraph and character formats, which you can then be assign to texts and fields in the Smart Form.
The character formats includes effects such as superscript, subscript, barcode and font attributes.
Difference with SMARTFORMS vs. SapScript(SE71)
The Following are the differences :-
a) Multiple page formats are possible in smartforms which is not the case in SAPScripts
b) It is possible to have a smartform without a main window .
c) Labels cannot be created in smartforms.
d) Routines can be written in smartforms tool.
e) Smartforms generates a function module when activated.
f) Unlike sapscripts (RSTXSCRP), you cannot upload/download Smartform to your local harddisk.
It was said that it was provided in CRM 3.0 version, but not available in R/3. You can download smartforms into Local PC in a XML format. In the same way you can upload this XML format into Smartform. From the smartform editor itself you can call download option, if you are working in CRM 3.0 environment.
In R3 also, you can download into XML format. However, it's not sure about uploading. Refer to the program 'SF_XSF_DEMO'.
In 4.7 Enterprise, other have seen this utlity which is completey missing in 4.6c. There is functionality to downlaod a complete form or only a particular node. (Utilities -> Download form). It will create a XML file and save it in the hard disk.
For others, if you want to download/upload the Smartforms source, you will need the help from the Basis people. What you can do is to create a Transport and then FTP down to your local harddisk. When you need the Smartform source in another system, you have FTP up the Smartforms file back to the SAP server. Finally, the Basis team, will tp it into your system.
g) The protect and endprotect command in sapscript doesn't work with smartforms. For example on a invoice: First data of position no 80. is printed on page one, other data of position no 80 is printed on page 2. And there's nothing you can do about it. Actually, there is something you can do about it. By using a folder node and checking the 'protect' checkbox, everything in that folder will be page protected.
FAQ on Migrating SAPscript to SmartForms
Is it possible to migrate a SAPscript form to a Smart Form?
Smart Forms provides a migration tool for this purpose which migrates layout and texts of a SAPscript form to a Smart Form. It does not migrate SAPscript form logic of the print program. Using Smart Forms, this logic is described by the tree structure of the Form Builder. The effort involved in migrating it depends on the complexity of the print program.
Which Basis Release do I need to use SAP Smart Forms?
SAP Smart Forms is available as of R/3 Basis Release 4.6C.
I have heard that Smart Forms replaces SAPscript. What does "replace" mean?
It does not mean that SAPscript is removed from the Basis shipment. Even as of Basis Release 4.6C, SAPscript remains part of the SAP standard and there are no plans to remove it. Since Smart Forms is currently, and will continue to be, the tool for form maintenance for mySAP.com solutions, our further development efforts will focus on Smart Forms, not on SAPscript.
Do we have to migrate all SAPscript forms to Smart Forms?
There is no point in migrating all SAPscript forms already in use. Since SAPscript can still be used and will be available in the future, there is no need to. If you plan to migrate a SAPscript form, it is recommended that you check whether benefit is worth the effort involved
Conversion of SAPSCRIPT to SMARTFORMS
SAP provides a conversion for SAPscript documents to SMARTforms.
This is basically a function module, called FB_MIGRATE_FORM. You can start this function module by hand (via SE37), or create a small ABAP which migrates all SAPscript forms automatically.
You can also do this one-by-one in transaction SMARTFORMS, under
Utilities -> Migrate SAPscript form.
You could also write a small batch program calling transaction SMARTFORMS and running the migration tool.
SmartForms System Fields
Within a form you can use the field string SFSY with its system fields. During form processing the system replaces these fields with the corresponding values. The field values come from the SAP System or are results of the processing.
System fields of Smart Forms
&SFSY-DATE&
Displays the date. You determine the display format in the user master record.
&SFSY-TIME&
Displays the time of day in the form HH:MM:SS.
&SFSY-PAGE&
Inserts the number of the current print page into the text. You determine the format of the page number (for example, Arabic, numeric) in the page node.
&SFSY-FORMPAGES&
Displays the total number of pages for the currently processed form. This allows you to include texts such as'Page x of y' into your output.
&SFSY-JOBPAGES&
Contains the total page number of all forms in the currently processed print request.
&SFSY-WINDOWNAME&
Contains the name of the current window (string in the Window field)
&SFSY-PAGENAME&
Contains the name of the current page (string in the Page field)
&SFSY-PAGEBREAK&
Is set to 'X' after a page break (either automatic [Page 7] or command-controlled [Page 46])
&SFSY-MAINEND&
Is set as soon as processing of the main window on the current page ends
&SFSY-EXCEPTION&
Contains the name of the raised exception. You must trigger your own exceptions, which you defined in the form interface, using the user_exception macro (syntax: user_exception <exception name >).
Example Forms Available in Standard SAP R/3
SF_EXAMPLE_01
Simple example; invoice with table output of flight booking for one customer
SF_EXAMPLE_02
Similar to SF_EXAMPLE_01 but with subtotals
SF_EXAMPLE_03
Similar to SF_EXAMPLE_02, whereby several customers are selected in the application program; the form is called for each customer and all form outputs are included in an output request
Smart forms Frequently Asked Questions
Forcing a page break within table loop
Create a loop around the table. Put a Command node before the table in the loop that forces a NEWPAGE on whatever condition you want. Then only loop through a subset of the internal table (based on the conditions in the Command node) of the elements in the Table node.
Font style and Font size
Goto Transaction SMARTSTYLES.
There you can create Paragraph formats etc just like in sapscript.
Then in your window under OUTPUT OPTIONS you include this SMARTSTYLE and use the Paragraph and character formats.
Line in Smartform
Either you can use a window that takes up the width of your page and only has a height of 1 mm.
Then you put a frame around it (in window output options).
Thus you have drawn a box but it looks like a line.
Or you can just draw "__" accross the page and play with the fonts so that it joins each UNDER_SCORE.
Difference between 'forminterface' and 'global definitions' in global settings of smart forms
The Difference is as follows.
To put it very simply:
Form Interface is where you declare what must be passed in and out of the smartform (in from the print program to the smartform and out from the smartform to the print program).
Global defs. is where you declare data to be used within the smartform on a global scope.
ie: anything you declare here can be used in any other node in the form.
Smartforms function module name
Once you have activated the smartform, go to the environment -> function module name. There you can get the name of funtion module name.
The key thing is the program that calls it. for instance, the invoice SMARTFORM LB_BIL_INVOICE is ran by the program RLB_INVOICE.
This program uses another FM to determine the name of the FM to use itself. The key thing is that when it calls this FM (using a variable to store the actual name), that the parameters match the paramters in your smartform.
Another thing to note is that the FM name will change wherever the SF is transported to.
So you need to use the FM to determine the name of the SF.
Here is the code that can be use to determine the internal name of the function module:
Code:
if sf_label(1) <> '/'. " need to resolve by name
move sf_label to externalname.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = externalname
importing
fm_name = internalname
exceptions
no_form = 1
no_function_module = 2
others = 3.
if sy-subrc <> 0.
message 'e427'.
endif.
move internalname to sf_label.
endif.
It checks to see if the sf_label starts with a '/', which is how the internal names start. if it does, the name has already been converted. If not, it calls the FM and converts the name.
You would then CALL FUNCTION sf_label.
Smartforms FAQ Part Two
Smartforms output difference
Problem with Smartforms: in a certain form for two differently configured printers, there seem to be a difference in the output of characters per inch (the distance between characters which gives a layout problem - text in two lines instead of one. It happens when the two printers having different Printer Controls' if you go to SPAD Menu (Spool Administrator Menu) you can see the difference in the Printer Control and if you make the Printer control setting for both the printers as same. then it will be ok. and also u have to check what is the device type used for both the output devices.
SmartForms Output to PDF
There is a way to download smartform in PDF format.
Please do the following:
1. Print the smartform to the spool.
2. Note the spool number.
3. Download a PDF file (Acrobat Reader) version of the spool by running Program RSTXPDFT4 and entering the noted spool number.
SmartForm Doublesided printing question Your customer wants your PO SmartForm to be able to print "Terms and Conditinos" on the back side of each page. They don't want to purchase pre-printed forms with the company's logo on the front and terms & conditions on the back. Now this presents an interesting problem.
Has anyone else ever had a request like this? If for example there was a 3 page PO to be printed, they want 3 pieces of paper, the front side of each to containe the PO information (page 1, 2, and 3) and the back side of each piece of paper to containg the static "Terms & Conditions" information.
Anyone have a clue how to force this out?
Easy - page FRONT lists page CONTACTS as next page and CONTACTS lists FRONT as next page. Since CONTACTS does not contain a MAIN window, it will print the contacts info and then continue on to FRONT for the rest of the main items. Additionally, set print mode on FRONT to D (duplex) and set CONTACTS to 'blank' (for both resource name and print mode - this is the only way to get to the back of the page).
Transport Smart Forms
How does one transport SMARTFORM? SE01?
How do you make sure that both, the SMARTFORM & it's function module gets transported? Or does the FM with same name gets generated automatically in the transported client?
A smartform is transported no differently than any other object. if it is assigned to a development class that is atteched to a transport layer, it will be transported.
The definition is transported, and when called, the function module is regenerated.
This leads to an interetsing situation. On the new machine, it is very likely the function module name will be different than the name on the source system. Make sure, before you call the function module, you resolve the external name to the internal name using the 'SSF_FUNCTION_MODULE_NAME' function module.
Typically, generate the SF, then use the pattern to being in the interface. Then change the call function to use the name you get back from the above function module.
Smartforms: protect lines in main window.
How to protect lines in the main window from splitting between pages?
It was easy with SAPscript, but how to do it with SF's. For 4.7 version if you are using tables, there are two options for protection against line break:
- You can protect a line type against page break.
- You can protect several table lines against page break for output in the main area.
Protection against page break for line types
- Double-click on your table node and choose the Table tab page.
- Switch to the detail view by choosing the Details pushbutton.
- Set the Protection against page break checkbox in the table for the relevant line type. Table lines that use this line type are output on one page.
Protection against page break for several table lines
- Expand the main area of your table node in the navigation tree.
- Insert a file node for the table lines to be protected in the main area.
- If you have already created table lines in the main area, you can put the lines that you want to protect again page break under the file using Drag&Drop. Otherwise, create the table lines as subnodes of the file.
- Choose the Output Options tab page of the file node and set the Page Protection option. All table lines that are in the file with the Page Protection option set are output on one page.
Regards,
Rohini. -
Can anybody provide me good step by step procedurehow create smart form and module pool programming.
My email Id is [email protected]hi,
SAP Smartforms can be used for creating and maintaining forms for mass printing in SAP Systems. The output medium for Smartforms support printer, fax, e-mail, or the Internet (by using the generated XML output).
According to SAP, you need neither have any programming knowledge nor use a Script language to adapt standard forms. However, basic ABAP programming skills are required only in special cases (for example, to call a function module you created or for complex and extensive conditions).
1. Create a new smartforms
Transaction code SMARTFORMS
Create new smartforms call ZSMART
2. Define looping process for internal table
Pages and windows
First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create)
Here, you can specify your title and page numbering
&SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page)
Main windows -> TABLE -> DATA
In the Loop section, tick Internal table and fill in
ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2
3. Define table in smartforms
Global settings :
Form interface
Variable name Type assignment Reference type
ITAB1 TYPE Table Structure
Global definitions
Variable name Type assignment Reference type
ITAB2 TYPE Table Structure
4. To display the data in the form
Make used of the Table Painter and declare the Line Type in Tabstrips Table
e.g. HD_GEN for printing header details,
IT_GEN for printing data details.
You have to specify the Line Type in your Text elements in the Tabstrips Output options.
Tick the New Line and specify the Line Type for outputting the data.
Declare your output fields in Text elements
Tabstrips - Output Options
For different fonts use this Style : IDWTCERTSTYLE
For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&
5. Calling SMARTFORMS from your ABAP program
REPORT ZSMARTFORM.
Calling SMARTFORMS from your ABAP program.
Collecting all the table data in your program, and pass once to SMARTFORMS
SMARTFORMS
Declare your table type in :-
Global Settings -> Form Interface
Global Definintions -> Global Data
Main Window -> Table -> DATA
Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming
http://sapr3.tripod.com
TABLES: MKPF.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: BEGIN OF INT_MKPF OCCURS 0.
INCLUDE STRUCTURE MKPF.
DATA: END OF INT_MKPF.
SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.
ENDSELECT.
At the end of your program.
Passing data to SMARTFORMS
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORM'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc <> 0.
WRITE: / 'ERROR 1'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function FM_NAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GS_MKPF = INT_MKPF
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.
What is SAP Smart Forms?
SAP Smart Forms is introduced in SAP Basis Release 4.6C as the tool for creating and maintaining forms.
SAP Smart Forms allow you to execute simple modifications to the form and in the form logic by using simple graphical tools; in 90% of all cases, this won't include any programming effort. Thus, a power user without any programming knowledge can
configure forms with data from an SAP System for the relevant business processes.
To print a form, you need a program for data retrieval and a Smart Form that contains the entire from logic. As data retrieval and form logic are separated, you must only adapt the Smart Form if changes to the form logic are necessary. The application program passes the data via a function module interface to the Smart Form. When activating the Smart Form, the system automatically generates a function module. At runtime, the system processes this function module.
You can insert static and dynamic tables. This includes line feeds in individual table cells, triggering events for table headings and subtotals, and sorting data before output.
You can check individual nodes as well as the entire form and find any existing errors in the tree structure. The data flow analysis checks whether all fields (variables) have a defined value at the moment they are displayed.
SAP Smart Forms allow you to include graphics, which you can display either as part of the form or as background graphics. You use background graphics to copy the layout of an existing (scanned) form or to lend forms a company-specific look. During printout, you can suppress the background graphic, if desired.
SAP Smart Forms also support postage optimizing.
Also read SAP Note No. 168368 - Smart Forms: New form tool in Release 4.6C
What Transaction to start SAP Smart Forms?
Execute transaction SMARTFORMS to start SAP Smart Forms.
Key Benefits of SAP Smart Forms:
SAP Smart Forms allows you to reduce considerably the implementation costs of mySAP.com solutions since forms can be adjusted in minimum time.
You design a form using the graphical Form Painter and the graphical Table Painter. The form logic is represented by a hierarchy structure (tree structure) that consists of individual nodes, such as nodes for global settings, nodes for texts, nodes for output tables, or nodes for graphics.
To make changes, use Drag & Drop, Copy & Paste, and select different attributes.
These actions do not include writing of coding lines or using a Script language.
Using your form description maintained in the Form Builder, Smart Forms generates a function module that encapsulates layout, content and form logic. So you do not need a group of function modules to print a form, but only one.
For Web publishing, the system provides a generated XML output of the processed form.
Smart Forms provides a data stream called XML for Smart Forms (XSF) to allow the use of 3rd party printing tools. XSF passes form content from R/3 to an external product without passing any layout information about the Smart Form.
PROGRAM YMPSKEL MESSAGE-ID YL.
DESCRIPTION
written by !
TABLES:
DATA: OK_CODE(4), " ok code - screen 1
OK_CODE2(4).
DATA C LIKE SY-INDEX. " Index for screen loop
*& Module USER_COMMAND_0100 INPUT
process after input for screen 0100 *
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE.
WHEN 'SAVE'.
WHEN 'DISP'.
WHEN 'LIST'.
C = 0. "reset loop control
WHEN OTHERS.
ENDCASE.
CLEAR OK_CODE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0100 OUTPUT
process before output for screen 0100 *
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'AMEND'. " set gui status
SET TITLEBAR '100'. " set title
ENDMODULE. " STATUS_0100 OUTPUT
*& Form SAVE data
Save screen details
FORM SAVE.
CLEAR OK_CODE.
ENDFORM.
*& Form DISPLAY
FORM DISPLAY.
ENDFORM.
*& Module EXIT_COMMAND INPUT
exit commands are processed before validation *
defined by E against function in menu painter(function list)
MODULE EXIT_COMMAND INPUT.
CASE OK_CODE.
WHEN 'EXIT'. CLEAR OK_CODE. SET SCREEN 0. LEAVE SCREEN.
WHEN 'CANC'. CLEAR OK_CODE. SET SCREEN 0. LEAVE SCREEN.
WHEN 'BACK'. CLEAR OK_CODE. SET SCREEN 0. LEAVE SCREEN.
ENDCASE.
ENDMODULE. " EXIT_COMMAND INPUT
*& Form list
text *
FORM LIST.
CLEAR OK_CODE. SET SCREEN 200. LEAVE SCREEN.
ENDFORM. " LIST
*& Module EXIT_COMMAND_200 INPUT
exit command processing for screen 200 *
defined by E against function in menu painter(function list)
MODULE EXIT_COMMAND_200 INPUT.
CASE OK_CODE2.
WHEN 'EXIT'. CLEAR OK_CODE2. SET SCREEN 0. LEAVE SCREEN.
WHEN 'CANC'. CLEAR OK_CODE2. SET SCREEN 0. LEAVE SCREEN.
WHEN 'BACK'. CLEAR OK_CODE2. SET SCREEN 100. LEAVE SCREEN.
ENDCASE.
ENDMODULE. " EXIT_COMMAND_200 INPUT
*& Module STATUS_0200 OUTPUT
process before output for screen 200 *
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'POPUP'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0200 OUTPUT
Module pool programs are created in abap development work bench (TCODE: SE80).
Here we can do all the works whatever you can do in abap.
Module pool programs are also called dialog programs.
The module Pool are reports prepared for different screens and to manage the sequence of events of these screens, in the transaction SE80 you can see all the dynpros that you have for this kind of report, add new ones, add all types of element to the report.
Process Before Output is the part of the dynpro code that is processed before the user can do anything with the data in the screen
Process After Input is the part of the dynpro code that is processed after the interaction with the user.
module pool programs are excuted using Tcodes
regards,
sreelakshmi
Maybe you are looking for
-
How can I delete all my photos from my iphone ios8
I have backed up all my photos from my Camera Roll on my computer. I know wish to free up that space. It is 1300 photos. I do not have time to sit and tap through each moment and delete. Too many moments. There must be a quicker way to delete all pho
-
RoboHelp 8 HTML runtime error on version control sync
I have a user of RoboHelp 8 HTML that is receiving a runtime error after opening a project that syncs files from our revision control server with RoboSource. When she receives the error there are no error codes just a very "generic" error. I have uni
-
E-mailed File "The project is not compatible with the current version of Premiere Elements"
I have Version 12 on a PC. My friend has Version 12 on a MAC. E-mailed him a file. He could not open, and a message box popped up: "The project is not compatible with the current version of Premiere Elements". Could someone kindly asssit, this does
-
Custom transformation does not run against Logical Model
Here is the screen [http://img849.imageshack.us/img849/7411/20110530174314002.jpg|http://img849.imageshack.us/img849/7411/20110530174314002.jpg] Besides setting the object=logical, the script ran against the relational model. To prove this, have a sc
-
Regarding user prompts in non distributed forms
Hi, newbie here. Am creating forms for use by trained advisers. Idea is to maintain style and content consistency. User prompts in text fields only seem to work when form is distributed, is that the case. i.e. the prompts will not operate if the pers