Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

creating different spool requests based on sorting -part II

Former Member
0 Likes
4,523

hi folks,

Now I have added the group field to 'accitab' and as mentioned I have another itable (same as 'accitab') called 'final_accitab where I have the recrods for all the customers and their corresponding group types too.

something like this..

customernumber ........ sortgroup

1000001 1

1000001 1

1000001 1

1000012 1

1000012 1

1000112 1

.

.

.

.

10000002 2

10000002 2

10000002 2

.

.

.

.

10000003 3 and so on

Now I have to print the customers based on the sorting therefore I should be passing the records of all the customers that come under a common sort type into one spool request,( I think that way!!) and how to do that ?

ii)how to print separate statements for each customer

for the same sort within the same spool request.

Thanks in advance

Vinu

Hi Vinu

I run this code and it works fine:

DATA: BEGIN OF FINAL_ACCITAB OCCURS 10,

ZADVERTISER TYPE KUNNR,

ZAGENCY TYPE KUNNR,

ZSORTGROUP(1) TYPE N,

END OF FINAL_ACCITAB.

DATA: SSFCTRLOP TYPE SSFCTRLOP,

SSFCTRLOP_OPEN TYPE SSFCTRLOP,

SSFCRESOP TYPE SSFCRESOP,

E_SSFCOMPOP TYPE SSFCOMPOP,

SORT LIKE FINAL_ACCITAB-ZSORTGROUP,

ZZADVERTISER LIKE FINAL_ACCITAB-ZADVERTISER,

ZZBUSINESSPARTNER LIKE FINAL_ACCITAB-ZAGENCY,

FL_OPEN,

T_CUSTOMER LIKE STANDARD TABLE OF FINAL_ACCITAB WITH HEADER LINE,

FL_CUSTOMER_PRINT.

DATA FM_NAME TYPE RS38L_FNAM.

FINAL_ACCITAB-ZADVERTISER = '100000065'.

FINAL_ACCITAB-ZAGENCY = '100000065'.

FINAL_ACCITAB-ZSORTGROUP = '1'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000065'.

FINAL_ACCITAB-ZAGENCY = '100000065'.

FINAL_ACCITAB-ZSORTGROUP = '1'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000065'.

FINAL_ACCITAB-ZAGENCY = '100000065'.

FINAL_ACCITAB-ZSORTGROUP = '1'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000066'.

FINAL_ACCITAB-ZAGENCY = '100000066'.

FINAL_ACCITAB-ZSORTGROUP = '1'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000066'.

FINAL_ACCITAB-ZAGENCY = '100000066'.

FINAL_ACCITAB-ZSORTGROUP = '1'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000067'.

FINAL_ACCITAB-ZAGENCY = '100000067'.

FINAL_ACCITAB-ZSORTGROUP = '1'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000068'.

FINAL_ACCITAB-ZAGENCY = '100000068'.

FINAL_ACCITAB-ZSORTGROUP = '2'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000068'.

FINAL_ACCITAB-ZAGENCY = '100000068'.

FINAL_ACCITAB-ZSORTGROUP = '2'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000069'.

FINAL_ACCITAB-ZAGENCY = '100000069'.

FINAL_ACCITAB-ZSORTGROUP = '2'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000070'.

FINAL_ACCITAB-ZAGENCY = '100000070'.

FINAL_ACCITAB-ZSORTGROUP = '2'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000070'.

FINAL_ACCITAB-ZAGENCY = '100000070'.

FINAL_ACCITAB-ZSORTGROUP = '2'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000071'.

FINAL_ACCITAB-ZAGENCY = '100000071'.

FINAL_ACCITAB-ZSORTGROUP = '3'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000072'.

FINAL_ACCITAB-ZAGENCY = '100000072'.

FINAL_ACCITAB-ZSORTGROUP = '3'.

APPEND FINAL_ACCITAB.

FINAL_ACCITAB-ZADVERTISER = '100000073'.

FINAL_ACCITAB-ZAGENCY = '100000073'.

FINAL_ACCITAB-ZSORTGROUP = '4'.

APPEND FINAL_ACCITAB.

SORT FINAL_ACCITAB BY ZSORTGROUP ZADVERTISER ZAGENCY.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'ZSF_TEST'

IMPORTING

FM_NAME = FM_NAME

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 2

OTHERS = 3.

LOOP AT FINAL_ACCITAB.

IF FINAL_ACCITAB-ZSORTGROUP <> SORT.

PERFORM CALL_SMARTFORM.

SORT = FINAL_ACCITAB-ZSORTGROUP.

IF NOT E_SSFCOMPOP IS INITIAL.

  • After first time dialog doesn't open

SSFCTRLOP_OPEN-NO_DIALOG = 'X'.

ENDIF.

IF FL_OPEN = 'X'.

CALL FUNCTION 'SSF_CLOSE'.

ENDIF.

CALL FUNCTION 'SSF_OPEN'

EXPORTING

USER_SETTINGS = SPACE

OUTPUT_OPTIONS = E_SSFCOMPOP

CONTROL_PARAMETERS = SSFCTRLOP_OPEN

IMPORTING

JOB_OUTPUT_OPTIONS = SSFCRESOP

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5.

IF SY-SUBRC = 0.

FL_OPEN = 'X'.

MOVE-CORRESPONDING SSFCRESOP TO E_SSFCOMPOP.

ENDIF.

ENDIF.

  • Block open and close of smartform in FM

SSFCTRLOP-NO_OPEN = 'X'.

SSFCTRLOP-NO_CLOSE = 'X'.

IF ZZADVERTISER NE FINAL_ACCITAB-ZADVERTISER AND ZZADVERTISER NE ' '.

PERFORM CALL_SMARTFORM.

ENDIF.

INSERT FINAL_ACCITAB INTO TABLE T_CUSTOMER.

  • append final_accitab.

ZZADVERTISER = FINAL_ACCITAB-ZADVERTISER.

ZZBUSINESSPARTNER = FINAL_ACCITAB-ZAGENCY.

ENDLOOP.

PERFORM CALL_SMARTFORM.

IF FL_OPEN = 'X'.

CALL FUNCTION 'SSF_CLOSE'.

ENDIF.

&----


*& Form CALL_SMARTFORM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_SMARTFORM .

IF NOT T_CUSTOMER[] IS INITIAL.

READ TABLE T_CUSTOMER INDEX 1.

  • now call the generated function module

CALL FUNCTION FM_NAME

EXPORTING

CONTROL_PARAMETERS = SSFCTRLOP

KUNNR = T_CUSTOMER-ZADVERTISER

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5.

REFRESH T_CUSTOMER.

ENDIF.

ENDFORM. " CALL_SMARTFORM

2) Get data of last customer at the of loop.

When dialog is open, CHOOSE OPTION TO CREATE A NEW SPOOL

Max

Message was edited by: max bianchi

Message was edited by: max bianchi

43 REPLIES 43
Read only

0 Likes
4,006

Printer names are case sensitive. Have you checked that?

Srinivas

Message was edited by: Srinivas Adavi

Also, I see that you marked this as answered, but I don't see any points given to Max, who has helped you a lot on this issue. Please reward him for his efforts.

Read only

0 Likes
4,006

Yes.

Read only

0 Likes
4,006

Hi Vinu

I agree with Srinivas: check the name of device, are you sure it's Xerox1?

You can try to transfer the name of that printer by dialog (FM SSF_OPEN) and then check the name in debug.

Max

Read only

Former Member
0 Likes
4,006

Hi Vinu,

I saw that you rewarded Max for his effort. I apologize for missing it.

Regards,

Srinivas