Compressing data in Smartform
Dear All
I am supposed to customize a Smartforms(HCM) which has a work schedule being displayed as follows currently
Week No 1 Days Off SAT/SUN
Start Time End Time
Sat 00 00
Sun 00 00
Mon 800 1700
Tue 800 1700
Wed 800 1700
Thu 800 1700
Fri 800 1700
Which consumes lot of space & readability is not up to the mark , so the following format is recommended
Week No Days On Start Time End Time Days Off
1 MO/TU/WE/TH/FR 800 1700
00 00 SA/SU
2 SA/MO/TU/WE/TH 800 1700 00 00 SU/FR
existing format is being dispalyed with the help of a loop node with a table type interface
Now the same loop node is to be modified to get the recommended format (they dont want to modify the print/driver program ,only smartform is to be modified )
Plz help me out to solve the same .
Thanks
Moni
Dear Sasi
Here is the steps i followed
Under global def TYPES tab
TYPES:
BEGIN OF NEW_SCHL_FORMAT,
POSITION_ID TYPE N,
WEEKNO TYPE N,
DAYS_ON TYPE STRING,
STIME TYPE T,
ETIME TYPE T,
DAYS_OFF TYPE STRING ,
END OF NEW_SCHL_FORMAT,
NW_SCHEDULE TYPE TABLE OF NEW_SCHL_FORMAT.
Under Global Data tab
NEW_SCHEDULE TYPE NW_SCHEDULE
WA_NSCHEDULE TYPE NEW_SCHL_FORMAT
Having had a LOOP node ( IT_SCHEDULE INTO WA_SCHEDULE ) & under this => a Program lines(with i/p para IT_SCHEDULE ,D1,D2,D3,D4,D5,D6,D7,WA_NSCHEDULE & O/P parameter WA_SCHEDULE,D1,D2,D3,D4,D5,D6,D7,NEW_SCHEDULE )
with the code as follows
WA_NSCHEDULE-POSITION_ID = WA_SCHEDULE-POSITION_ID.
WA_NSCHEDULE-WEEKNO = WA_SCHEDULE-WEEK_NUMBER.
WA_NSCHEDULE-DAYS_ON = SPACE.
WA_NSCHEDULE-STIME = '000000'.
WA_NSCHEDULE-ETIME = '000000'.
WA_NSCHEDULE-DAYS_OFF = WA_SCHEDULE-DAYS_OFF.
APPEND WA_NSCHEDULE TO NEW_SCHEDULE.
CLEAR: D1,D2,D3,D4,D5,D6,D7,WA_NSCHEDULE.
WA_NSCHEDULE-POSITION_ID = WA_SCHEDULE-POSITION_ID.
*NEW_SCHEDULE-WEEKNO = SPACE.
IF WA_SCHEDULE-START_TIME1 <> '000000'
AND WA_SCHEDULE-END_TIME1 <> '000000'.
D1 = 'SA/'.
IF NEW_SCHEDULE-STIME NE SPACE AND NEW_SCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME1.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME1.
ENDIF.
ENDIF.
IF WA_SCHEDULE-START_TIME2 <> '000000'
AND WA_SCHEDULE-END_TIME2 <> '000000'.
D2 = 'SU/'.
IF WA_NSCHEDULE-STIME NE SPACE AND WA_NSCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME2.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME2.
ENDIF.
ENDIF.
IF WA_SCHEDULE-START_TIME3 <> '000000'
AND WA_SCHEDULE-END_TIME3 <> '000000'.
D3 = 'MO/'.
IF WA_NSCHEDULE-STIME NE SPACE AND WA_NSCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME3.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME3.
ENDIF.
ENDIF.
IF WA_SCHEDULE-START_TIME4 <> '000000'
AND WA_SCHEDULE-END_TIME4 <> '000000'.
D4 = 'TU/'.
IF WA_NSCHEDULE-STIME NE SPACE AND WA_NSCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME4.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME4.
ENDIF.
ENDIF.
IF WA_SCHEDULE-START_TIME5 <> '000000'
AND WA_SCHEDULE-END_TIME5 <> '000000'.
D5 = 'WE/'.
IF WA_NSCHEDULE-STIME NE SPACE AND WA_NSCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME5.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME5.
ENDIF.
ENDIF.
IF WA_SCHEDULE-START_TIME6 <> '000000'
AND WA_SCHEDULE-END_TIME6 <> '000000'.
D6 = 'TH/'.
IF WA_NSCHEDULE-STIME NE SPACE AND WA_NSCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME6.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME6.
ENDIF.
ENDIF.
IF WA_SCHEDULE-START_TIME7 <> '000000'
AND WA_SCHEDULE-END_TIME7 <> '000000'.
D7 = 'FR'.
IF WA_NSCHEDULE-STIME NE SPACE AND WA_NSCHEDULE-ETIME NE SPACE.
WA_NSCHEDULE-STIME = WA_SCHEDULE-START_TIME7.
WA_NSCHEDULE-ETIME = WA_SCHEDULE-END_TIME7.
ENDIF.
ENDIF.
CONCATENATE D1 D2 D3 D4 D5 D6 D7 INTO WA_NSCHEDULE-DAYS_ON.
WA_NSCHEDULE-DAYS_OFF = SPACE.
APPEND WA_NSCHEDULE TO NEW_SCHEDULE.
CLEAR: D1,D2,D3,D4,D5,D6,D7,WA_NSCHEDULE .
But the NEW_SCHEDULE is not getting populated ,
Hellllllppppppp...... Plz
Thanks
Moni
Message was edited by: Monirujjaman MD
Similar Messages
-
Display data in smartforms using report
hi,
i want to display data from smartform using report.
i have a preview buttons in report when i select preview buttons displays in smarts
regards
amitdesign the smartform as per ur need and get the function module generated by smartform and pass it to ur report programas below..
case sy-ucomm.
when 'smartform'.
pass the f.m that is generated by system in smartforms
CALL FUNCTION '/1BCDWB/SF00000265'
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
DATE_L = s_fkdat-low
DATE_H = s_fkdat-high
PLANT_L = s_werks-low
PLANT_H = s_werks-high
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
IFINAL = ifinal1[]
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.
endcase. -
Report and data comming wrong after compress data with full optimization
In SAP BPC 5.1 version to increase the sysetm performance we did full optimization with compress data.
Theis process end with error, after login into system the report and values comming wrong,
What is the wrong,how to rectify it
Regards
prakash JThis issue is resolved,
-
How can i print data in smartforms from ABAP program.
Dear gurus:
in my abap program i process require data, and saved in a internal table.
how can l print the data in smartforms.?
who can give me a code sample is better:)
reward all helpful advise.Try this....
1) Tcode --> SmartForms
2) Form name --> Z_SF_TEST Create
3) Under Global settings
a) Form Interface
Table Tab
ITAB LIKE EKPO
b) GLOBAL Definitions
WA_NETPR LIKE EKPO-NETPR
In smart forms if we want to display quantity and currency fields. We can't directly display currency field and quantity fields
For that we have to create an extra variable in global definitions
Ex: netpr FIELD of EKPO
CREATE program lines and specify WA_NETWR = itab-netpr.
4) RT CLick on main Window
CREATE --> TABLE
Click Table painter
DEFAULT %LTYPE will be Created
a) If you want more like Header footer etc add by rt click on %LTYPE1
Table (Tab)
%LTYPE Radio(SELECT) 5 CM 5 CM 6 CM
CLICK on DATA (Tab)
INTERNAL TABLE ITAB LIKE ITAB
5)RT click on table control and create --> program lines
General attribute (Tab)
INPUT PARAMETER OUTPUT PARAMETER
itab WA_NETPR
Code Area
WA_NETWR = ITAB-NETPR.
6) RT CLcick on table ctl and create 3 text to display the fields
a) % text1 +button(insert field)
FIELD name &itab-ebeln&
Output options (tab)
Check New line LINETYPE %Ltype1
check new cell
b) % text2
& itab-ebelp&
output options
check new cell
c) % text2
& wa_netpr&
output options
check new cell
<b>Report ac
Tables ekpo.
Data: itab1 like ekpo occurs 0 with header line.
select * into table itab1 from ekpo.
Call function module --> smart form function module and pass your internal table</b>
Regards,
SaiRam -
Compressing data through URLConnection
I was looking into to the URLConnection and try to get a way to configure the connection(set my own sockets so that I can compress data going back and forth) similar to the way RMI handles this issue by providing clientSocketFactory, and serversocketFactory to UnicastRemoteObject. It seems there is no way to do that. I know I can specify URLStreamHandlerFactory but that does not seem to do what I am looking for.
I am looking for a way to control the underlying communication mechanism in which the connection I get from URL.openConnection() uses. That is possible if the API would provide a way to pass <mechanism>Factories to the URL. if any one has a solution to this please email it to me.
I will give you some code to see what I am talking about.
//Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DataCruncherServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doPost(req, res);
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
ServletInputStream in = req.getInputStream();
InputStreamReader inr = new InputStreamReader(in);
StringBuffer sb = new StringBuffer();
char data[] = new char[1024];
while( inr.read(data) != -1 ) {
sb.append(new String(data));
OutputStream out = res.getOutputStream();
out.write(sb.toString().getBytes());
in.close();
inr.close();
out.close();
//For The client
import java.net.*;
import java.io.*;
public class DataCruncherClient {
public static void main(String[] args) {
URL fileURL = null;
URLConnection con = null;
StringBuffer buffer = null;
OutputStream out = null;
BufferedReader br = null;
InputStreamReader in = null;
try {
fileURL = new URL("http://localhost:8000/myContext/DataCruncherServlet");
//There is no way to control the underlying communication mechanism(sockets rmi, ...)
//connection we get uses.
con = fileURL.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
out = con.getOutputStream();
br = new BufferedReader(new FileReader("test.txt"));
StringBuffer sb = new StringBuffer();
String line = null;
while( (line = br.readLine()) != null){
sb.append(line);
out.write(sb.toString().getBytes());
in = new InputStreamReader(con.getInputStream());
char data[] = new char[1024];
buffer = new StringBuffer();
while( in.read(data) != -1 ) {
buffer.append(new String(data));
catch(MalformedURLException me) {
System.out.println("MalFormed URLException: "+me.getMessage());
catch(FileNotFoundException fe) {
System.out.println("File Not Found: "+fe.getMessage());
catch(IOException ioex){
System.out.println("IOEXception: "+ioex.getMessage());
finally{
try {
out.close();
br.close();
in.close();
catch(IOException ioex) {
System.out.println("can not close stream: "+ioex.getMessage());
System.out.println("Returned from Servlet is: ");
System.out.println(buffer.toString());
email me :[email protected]s.append(char[]) and s.append(char[], int, int) are
similar each one is converted into string throught
String.valueOf(char[]) and String.valueOf(char[], int,
int) respectively then it is appended to the
s(stringBuffer) so I do not see why one is more
efficient Than the other, please explain.from the implementation of StringBuffer:
public synchronized StringBuffer append(char str[], int offset, int len) {
int newcount = count + len;
if (newcount > value.length)
expandCapacity(newcount);
System.arraycopy(str, offset, value, count, len);
count = newcount;
return this;
}where do you see conversion to String? typically you do multiple appends and then one StringBuffer.toString(). this is different from creating a String on every append.
Using Zip streams can fix the particular problem I
outlined but I was thinking about a way to control
the underlying communication mechanizim in which the
connection(URLConnection) depend on.so you wanted to hide the compression inside of URL.openStream()?
robert -
To display execise number and date in smartform
Hi Abappers,
i want to display execise number and date in smartform and by using driver program also.
i have taken fields from vbrk,vbrp and send to final internal table,but now i want to display execise number in my Smartform also.
Thanking u,
sri.Create a window inside window create text element inside that insert field your excise number and date field names.
Go to form interface -> import parameters declare your internal table name type vbrp/vbrk.
In your print program smart form function module pass this table. -
One integration scenario Many target system and Outgoing compressed data
I have some theoretical questions about XI usage.
At first, I'm not quite sure about the following thing: for example we have a corporate system and a lot of mobile computers (let's name them "clients") with installed small databases. Number of clients is not constant, but integration scenario is one for all of them. Next, if we add new client we must add new technical system, business system, communication channel, configure scenario, add required receiver and interface determination, and so on and so on. If we remove client we also must do all these steps. In this case, is it possible in XI (anywhere) to automate these procedures of scenario configuration? For example create something like business system template with communication channels or have one business system and a lot of communication channels in one integration scenario (in this way I suppose that message will be delivered to target system on the message content-based routing) and quickly activate/deactivate this channels (in fact receiver determination).
At second, we know that XI can receive and send compressed data if client initiates communication with XI. Anybody know about reverse functionality, when XI initiates communication with target system and compresses data (on the understanding that target system is able to receive and handle compressed data). If anybody know that is possible - can you navigate me to this information?
Thank you for help,
Best regards.Hi Maxim,
You dont need to create techn and bus systems in SLD for your clients as you can use business services. Of course you have to create a comm channel for every client (receiver address is individual!). Receiver determination and interface determination can be configured dynmamicly with wild cards (*). You can find receivers by condition of payload content.
If you want to change this conditions very quickly (with a customizing table) you can use following trick: Use a ABAP mapping which is reading that table. Unfortunately the message is first routed and then mapped. So you have to send the message over http adapter back to XI, where the changed message is now routed by a condition. Of course a quite complex scenario, the monitoring is even more complex bcoz doubled no of messages (no performance problem - http adapter is never a bottleneck).
Regards,
Udo -
Any Function Module to translate variable data in smartform
Hi All,
I am working with smartform.
My requirement is, when user logins with Japan language.
then all the data ( text template and variable data ) should be in Japan .
By using SE63 ,i can translate only text data. How about the variable data in smartform?
Please suggest any solution.
Regards,
KishanHope you are passing the variable from print program. If not then do the same. and in the print program do the below thing.
wf_spras = sy-langu.
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTP
EXPORTING
input = wf_spras
IMPORTING
output = wf_language.
SET LANGUAGE wf_language.
wa_control_parameters-langu = wf_spras.
PS : wa_control_parameter , you pass through control_parameters, in to the SMARTFORM calling FM .
Make sure that the data, which u fill into the variable you are talking about in maintained in the log on language also. -
How i can display i_tab data in smartform as required
hi all
i have tried a lot but not able to make logic for displaying data frm i_tab to SF as required ,
my requirement is , i have data in i_tab as given below
field 1, 2,3,4, are TRNTYP CHAPID MATNR MAKTX OF J_1IEXCDTL respectivly.
GRPO 8707.00 0025F AC92 CON ROD FORGING.
ARE1 1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD
DLFC 1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD
now i want to display this data on SF like as :
<b>discription of 8700.00
export against = ARE1
1315F CONNECTING ROD
1315F CONNECTING ROD
1315F CONNECTING ROD </b>
Way to Display :-
1. Chapter id in one single line
2. then if TRNTYP is ARE1 or ARE3 it should display in second single
line. <b><not any other TRNTYP></b>
3. then field no. 3 & 4 of i_tab should come based on TRNTYP
please guide me and help me , if possible help me with dummy code example
or if not then help me to make logic by give hint,
<b>i have all related data in one single i_tab</b>
Message was edited by: SACHIN
sachin sharmaHi
see this and do accordingly
How to create a New smartfrom, it is having step by step procedure
http://sap.niraj.tripod.com/id67.html
step by step good ex link is....
http://smoschid.tripod.com/How_to_do_things_in_SAP/How_To_Build_SMARTFORMS/How_To_Build_SMARTFORMS.html
Here is the procedure
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.
Smartform
you can check this link here you can see the steps and you can do it the same by looking at it..
http://smoschid.tripod.com/How_to_do_things_in_SAP/How_To_Build_SMARTFORMS/How_To_Build_SMARTFORMS.html
SMARTFORMS STEPS.
1. In Tcode se11 Create a structure(struct) same like the Internal table that you are going to use in your report.
2. Create Table type(t_struct) of stracture in se11.
3. In your program declare Internal table(Itab) type table of structure(struct).
4. Define work area(wa) like line of internal table.
5. Open Tcode Smartforms
6. In form Global setting , forminterface Import parameter define Internal table(Itab) like table type of stracture(t_struct).
7. In form Global setting , Global definitions , in Global data define Work area(wa) like type stracture(struct).
8. In form pages and window, create Page node by default Page1 is available.
9. In page node you can create numbers of secondary window. But in form there is only one Main window.
10. By right click on page you can create windows or Go to Edit, Node, Create.
11. After creating the window right click on window create table for displaying the data that you are passing through internal table.
12. In the table Data parameter, loop internal internal table (Itab) into work area(wa).
13. In table there are three areas Header, Main Area, Footer.
14. Right click on the Main area create table line by default line type1 is there select it.
15. Divide line into cells according to your need then for each cell create Text node.
16. In text node general attribute. Write down fields of your work area(wa) or write any thing you want to display.
17. Save form and activate it.
18. Then go to Environment, function module name, there you get the name of function module copy it.
19. In your program call the function module that you have copied from your form.
20. In your program in exporting parameter of function pass the internal table(itab).
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.
Reward if useful
Anji -
Sending & Receiving compressed Data
Hi, How can i send & receive compressed data over a network using DeflaterInputStream and InflaterOutputStream, thanks.
You probably would not use those classes directly, but GZIPInput and GZIPOutput stream instead. you would wrap those streams around the socket Input and Output streams at either end of a socket connection.
-
Invalid compressed data--crc error (RHEL ES 3.0)
Hi,
i have downloaded from the Oracle Server these archive: ship.db.lnx32.cpio.gz
in order to install Oracle Database 10g Release 1 (10.1.0.3) on a Red Hat Enterprise Linux (ES) 3.0 server, but when i tried to uncompress (with gunzip) the archive ship.db.lnx32.cpio.gz, i receive these error: "invalid compressed data--crc error".
so, please can you tell me what is the problem exactly. because, i have downloaded four times !!! but the problem didn't change.
ThanksThis is what I got when I ran cksum:
$ chsum ship.db.lnx32.cpio.gz
405751305 649170233 ship.db.lnx32.cpio.gz
as you can see it does not equal 1778052285, so does that mean I have to dl keep downloading the file till i get the correct cksum?
This is just a dev system so it has only 32MB, is that a problem? Do I have to have 256MB?
Thanks. -
Hi Gurus,
Is it possible to do the reporting on compressed data.
Thanks,
VenuYes Venu, the system will pick data from the F (fact) and E (table) depending on any filters, selections, variables you have given. The compression of data is transparent to the end user.
Hope this helps... -
How to pull the data into smartform after designing layout?
how to pull the data into smartform after designing layout?
call the smartform in your Driver program and pass your output internal tables in the smartforms paramaters
Check the below Sample code.
FORM label_print.
DATA : g_fm_name TYPE rs38l_fnam,
g_output TYPE ssfcompop,
g_control TYPE ssfctrlop,
g_form TYPE tdsfname VALUE 'ZPRINT_LABELS',
g_dest TYPE rspopname,
g_printer TYPE rspoptype..
REFRESH : i_out[],i_qals[].
SELECT matnr maktx
INTO TABLE i_out
FROM makt
FOR ALL ENTRIES IN i_mseg
WHERE matnr = i_mseg-matnr
AND spras = sy-langu.
SELECT prueflos objnr ersteldat erstelzeit matnr revlv charg mengeneinh
INTO TABLE i_qals
FROM qals
FOR ALL ENTRIES IN i_mseg
WHERE matnr = i_mseg-matnr
AND charg = i_mseg-charg.
*FM to accept the device type and returns the short name of the output device
CALL FUNCTION 'EFG_GET_PRINTER'
EXPORTING
x_no_dialog = ' '
x_obligatory = 'X'
IMPORTING
y_tddest = g_dest
EXCEPTIONS
cancelled = 1
failed = 2
OTHERS = 3.
*device type name for the output device
SELECT SINGLE patype "#EC CI_NOFIELD
FROM tsp03d
INTO g_printer
WHERE padest = g_dest.
*printer setting
g_control-no_dialog = 'X'.
g_output-tdarmod = '1'.
g_output-tdcopies = '001'.
g_output-tddest = g_dest.
g_output-tdprinter = g_printer.
g_output-tdnewid = 'X'.
g_output-tdimmed = 'X'.
CLEAR wa_mseg.
LOOP AT i_mseg INTO wa_mseg.
READ TABLE i_out INTO wa_out WITH KEY matnr = wa_mseg-matnr.
check for the status and filter the records
CLEAR : wa_qals.
LOOP AT i_qals INTO wa_qals WHERE matnr = wa_mseg-matnr
AND charg = wa_mseg-charg.
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
objnr = wa_qals-objnr
spras = sy-langu
IMPORTING
line = l_status
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF l_status CS 'LTCA' OR l_status CS 'SKIP'.
DELETE i_qals.
ENDIF.
ENDLOOP.
SORT i_qals BY ersteldat DESCENDING erstelzeit DESCENDING.
IF i_qals IS INITIAL.
l_msg = text-002.
ELSE.
READ TABLE i_qals INTO wa_qals INDEX 1.
SELECT prueflos vbewertung
INTO TABLE i_qave
FROM qave
WHERE prueflos = wa_qals-prueflos
AND kzart = 'L'.
IF sy-subrc <> 0.
l_msg1 = text-003.
ENDIF.
SORT i_qave.
CLEAR : wa_qave.
IF NOT i_qave IS INITIAL.
READ TABLE i_qave INTO wa_qave INDEX 1.
IF wa_qave-vbewertung = 'A'.
l_msg = text-002.
ELSEIF wa_qave-vbewertung = 'R'.
l_msg1 = text-003.
ELSE.
l_msg1 = text-003.
ENDIF.
ENDIF.
ENDIF.
CLEAR : wa_ser03.
READ TABLE i_ser03 INTO wa_ser03 WITH KEY mblnr = wa_mseg-mblnr.
*Calling Smartform
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = g_form
IMPORTING
fm_name = g_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
LOOP AT i_objk INTO wa_objk WHERE obknr = wa_ser03-obknr.
*Calling FM generated from the smartform
DATA : l_date(10) TYPE c,
l_date1(10) TYPE c,
l_date2(10) TYPE c,
l_date3(10) TYPE c,
l_hyphen(1) TYPE c VALUE '-'.
CLEAR : l_date,l_date1,l_date2,l_date3.
l_date1 = wa_mseg-vfdat+0(4).
l_date2 = wa_mseg-vfdat+4(2).
l_date3 = wa_mseg-vfdat+6(2).
CONCATENATE l_date1 l_hyphen l_date2 l_hyphen l_date3 INTO l_date.
CALL FUNCTION g_fm_name
EXPORTING
control_parameters = g_control
output_options = g_output
user_settings = ' '
g_matnr = wa_mseg-matnr
g_mat_text = wa_out-maktx
g_batch = wa_mseg-charg
g_rev = wa_qals-revlv
g_edate = l_date
g_lot = wa_qals-prueflos
g_qty = wa_mseg-erfmg
g_uom = wa_mseg-erfme
g_serial = wa_objk-sernr
g_smsg = l_msg
g_fmsg = l_msg1
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
CLEAR g_output-tdnewid.
ENDLOOP.
IF sy-subrc <> 0.
CLEAR : l_date,l_date1,l_date2,l_date3.
l_date1 = wa_mseg-vfdat+0(4).
l_date2 = wa_mseg-vfdat+4(2).
l_date3 = wa_mseg-vfdat+6(2).
CONCATENATE l_date1 l_hyphen l_date2 l_hyphen l_date3 INTO l_date.
CALL FUNCTION g_fm_name
EXPORTING
control_parameters = g_control
output_options = g_output
user_settings = ' '
g_matnr = wa_mseg-matnr
g_mat_text = wa_out-maktx
g_batch = wa_mseg-charg
g_rev = wa_qals-revlv
g_edate = l_date
g_lot = wa_qals-prueflos
g_qty = wa_mseg-erfmg
g_uom = wa_mseg-erfme
g_serial = wa_objk-sernr
g_smsg = l_msg
g_fmsg = l_msg1
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
CLEAR g_output-tdnewid.
ENDIF.
ENDLOOP.
IF sy-subrc = 0.
MESSAGE i000(zm).
ENDIF.
ENDFORM. " label_print -
Problems with E-Recruiting Data Overview Smartforms
Hello,
We recently upgraded from E-Recruiting 3.0 sp12 to sp15. During this upgrade we have noticed that our custom Data Overview Smartforms have not being displayed. Instead the system is calling the original SAP delivered forms. The problem is that in table T77RCF_UI_PARAM we have the parameters set to display the correct forms. As strange as that sounds we were able to fix most of them by changing the case, i.e. from lower to upper or upper to lower, of the BSP application name. We are still however having problems with one particular BSP application:
<b>Name Paramtyp Parameter</b>
HRRCF_CAND_DOVR DISPLAY_PDF Z_ER_CANDIDATE_PREVIEW
HRRCF_CAND_DOVR SF_VIEW_CAND Z_ER_CANDIDATE_PREVIEW
The SAP delivered smartform is HRRCF_CANDIDATE_PREVIEW.
This one, regardless of what case the BSP application is in, continually displayes the SAP delivered smartform.
I have verified that the custom form is indeed active. And we also went as far as appying oss notes:
Note 1017662 - T77RCF_UI_PARAM: Application name is case-sensitive
Note 1037121 - T77RCF_UI_PARAM: Length of Input Field Parameters too short
Yet another twist to this is that when I log on as an Internal Candidate and click on the Data Overview link on the external candidate personnel page the custom form is displayed. However, when I log on as an External Candidate and click on the same link the SAP delivered form is displayed.
Could this have something to do with the type of roles assigned? Just incase I verified that the roles for the External Candidate were indeed SAP_RCF_EXTERNAL_CANDIDATE and the internal role was SAP_RCF_INTERNAL_CANDIDATE.
Any help would be appreciated!
Respectfully,
RyanWell the error you are facing, that the external candidate does not see the custom smartform depends on a new BSP application that is delivered with SP14.
You need to copy the customizing of hrrcf_cand_dovr to hrrcf_cdovr_ext.
Regards -
Hy
Is there anybody out there who can tell me how can I do to compress data from a 35 to 40 pages file to be able to send it on one shot by email. Otherwise the file is going to be too gig to be sende on one email.
Thanks
IdanuelIt's generally considered a bad idea to send big files in a mail shot. It really annoys some people because it fills up their mail box. Good practice is to put the file on your web site, and send out a small piece inviting them to visit and read it.
Maybe you are looking for
-
Is that a 394 port on my Audigy 2 soundcard? Looks like it but I'm not positi've. If so, do I need to activate it's Is anybody using theirs? Thanks!!!
-
How to call C++ function like this...
hi!everyone! i have a C++ function like this: java_call_c::test() how do i write codes in java in order to call the function ??? thanksa lot !!!
-
My MacBook Pro is slow, activity monitor says crash report using CPU
Hi, my MacBook Pro is running very slow. My activity monitor says high CPU usage by crash report. When i look at the system log MediaTek.winmax appears repeatedly with the word bug close by. I am not so good with computers (got this far by searching
-
I'm looking for a download option for adobe configurator. the last version (version 4) only works with cc and cs6, but not with cs5 anymore. I would be really lucky, if someone still has a earlier version (2 or 3) and could upload it for me. thank yo
-
Ok. There are many threads which address pieces of my issue but I wanted to try and consolidate them into one answer as I anticipate many people having a similar issue after christmas! Products Have been an iTunes person since 08. Have not changed th