cancel
Showing results for 
Search instead for 
Did you mean: 

SMARTFORM with huge data

Former Member
0 Kudos

Hi ,

I am using SMARTFORMS to print account statement ,

but my client has huge data i.e 16000 customers ,and current program is calling SMARTFORMS finction module 16000 times and causing prformance issue,

Any suggestion overcome this issue.

Venu Madhav.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Design the form as per your layout,

In se11 you create one structure as per your required fields.then in smartform, forminterface tables tab declare internal using the created structure and in global interface declare one work area.............then pass the internal table data into smartform from driver program and inside the smartform place the text wherevere you want according to layout.. I think you are using function module inside the loop in driver program dont use that way follow the above method it will call only one time .

Answers (5)

Answers (5)

0 Kudos

Hi,

as said it is not a good practice to use function module with in a loop

instead of that u take all the data in the internal table i think you might be using knb1 and bsid tables take the entire data in to the internal tables and then pass thee internal tables directly to the smartform and there in the first page the first insert prog lines as

IF COUNTER LE 0.

READ TABLE t_knb1 INDEX 1.

READ TABLE t_bsid WITH KEY kunnr = t_knb1-kunnr.

ELSE.

READ TABLE t_knb1 WITH KEY kunnr = t_knb1-kunnr.

ENDIF.

in the main window insert a loop of knb1after that keep a command to goto first page if counter>=1

increment the counter after the command

take another loop of bsid in the where condition insert the condition for particular customer

hope this solves ur problem

Former Member
0 Kudos

Hi,

Just call the form at the end of the driver program.

Jshree

nabheetscn
Active Contributor
0 Kudos

Hi,

Its not good to call a smartform so many times. The best approach is call it once with all data and handle it at smartform level.

Try to minimize all the processing in smartform doit at report level.

Nabheet

pankaj_mittal
Explorer
0 Kudos

Hi

Don't call the function module again and again..

You just need to create Internal Table, the values which you are passing to smartform and

In smartform start loop and inside it use the same functionality which you are used earlier.

Regards

Pankaj Mittal

Former Member
0 Kudos

Hi,

As ramesh said


I think you are using function module inside the loop in driver program 
dont use that way follow the above method it will call only one time .

good solution. and one more thing you have change the smartforms to put page break for once the customer will

change.

regards,

Dhina..