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

Print problem in Samart Form

Former Member
0 Likes
460

HI

I am creating a smart form and own print program for PR note . I wanna give range of PR nos. no selection screen & I wanna all PR (within the select range) should be print by single time click on print. But i hv a problem that when i select a range of PR no on selection screen. I have to click on print eq no of PR times to print all of PRs which r in selection range.

I am using these code lines in my print program.

SELECT * FROM EBAN INTO CORRESPONDING FIELDS OF TABLE ITAB_EBANI

WHERE BANFN IN PR_NO AND BADAT IN PR_DTE.

ITAB_EBANH[] = ITAB_EBANI[].

SORT ITAB_EBANH BY BANFN. "Table for Header date

SORT ITAB_EBANI BY BANFN. "Table for Item date

DELETE ADJACENT DUPLICATES FROM ITAB_EBANH COMPARING BANFN.

DATA: AMT LIKE EBAN-PREIS.

LOOP AT ITAB_EBANH.

REFRESH ITAB_EBANIO.

CLEAR AMT.

MOVE-CORRESPONDING ITAB_EBANH TO ITAB_EBANHO.

LOOP AT ITAB_EBANI WHERE BANFN = ITAB_EBANHO-BANFN.

MOVE-CORRESPONDING ITAB_EBANI TO ITAB_EBANIO.

AMT = AMT + ITAB_EBANIO-PREIS.

APPEND ITAB_EBANIO.

ENDLOOP.

CALL FUNCTION '/1BCDWB/SF00000065'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

ITAB_H = ITAB_EBANHO

TAMT = AMT

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

TABLES

ITAB_OUT = ITAB_EBANIO

  • 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.

ENDLOOP.

Plz give me any idea or example for that.

From

Jitendra Singh

HI

I am creating a smart form and own print program for PR note . I wanna give range of PR nos. no selection screen & I wanna all PR (within the select range) should be print by single time click on print. But i hv a problem that when i select a range of PR no on selection screen. I have to click on print eq no of PR times to print all of PRs which r in selection range.

I am using these code lines in my print program.

SELECT * FROM EBAN INTO CORRESPONDING FIELDS OF TABLE ITAB_EBANI

WHERE BANFN IN PR_NO AND BADAT IN PR_DTE.

ITAB_EBANH[] = ITAB_EBANI[].

SORT ITAB_EBANH BY BANFN. "Table for Header date

SORT ITAB_EBANI BY BANFN. "Table for Item date

DELETE ADJACENT DUPLICATES FROM ITAB_EBANH COMPARING BANFN.

DATA: AMT LIKE EBAN-PREIS.

LOOP AT ITAB_EBANH.

REFRESH ITAB_EBANIO.

CLEAR AMT.

MOVE-CORRESPONDING ITAB_EBANH TO ITAB_EBANHO.

LOOP AT ITAB_EBANI WHERE BANFN = ITAB_EBANHO-BANFN.

MOVE-CORRESPONDING ITAB_EBANI TO ITAB_EBANIO.

AMT = AMT + ITAB_EBANIO-PREIS.

APPEND ITAB_EBANIO.

ENDLOOP.

CALL FUNCTION '/1BCDWB/SF00000065'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

ITAB_H = ITAB_EBANHO

TAMT = AMT

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

TABLES

ITAB_OUT = ITAB_EBANIO

  • 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.

ENDLOOP.

Plz give me any idea or example for that.

From

Jitendra Singh

2 REPLIES 2
Read only

jayanthi_jayaraman
Active Contributor
0 Likes
434

Hi,

The problem occurs because you placed the fn.

CALL FUNCTION '/1BCDWB/SF00000065'

EXPORTING

...

inside the loop.

MOdify the coding as follows.

LOOP AT ITAB_EBANH.

<b>

*REFRESH ITAB_EBANIO.</b>Comment the refresh line

CLEAR AMT.

MOVE-CORRESPONDING ITAB_EBANH TO ITAB_EBANHO.

LOOP AT ITAB_EBANI WHERE BANFN = ITAB_EBANHO-BANFN.

MOVE-CORRESPONDING ITAB_EBANI TO ITAB_EBANIO.

AMT = AMT + ITAB_EBANIO-PREIS.

APPEND ITAB_EBANIO.

ENDLOOP.

<b>Endloop.</b>

CALL FUNCTION '/1BCDWB/SF00000065'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

ITAB_H = ITAB_EBANHO

TAMT = AMT

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

TABLES

ITAB_OUT = ITAB_EBANIO

  • 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.

Kindly reward poits by clikcing the star on the left of reply,if it helps.

Jayanthi Jayaraman

Read only

Former Member
0 Likes
434

answerd