2007 Jan 08 11:32 AM
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
2007 Jan 08 11:58 AM
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
2007 Apr 06 10:08 AM