‎2006 Sep 13 8:33 PM
Hi ,
I two windows First and Main windows.
i am using these two windows in Page Page1.
the problem here is the text element i have defined in main window is repeating twice.
i need to print it only once in the form.
can anyone let me know the where the issues is .
Thanks in advance.
Regards,
Roby
‎2006 Sep 13 8:38 PM
May be the text element is being called more than once from the program using write_form funciton module.
If you want to print the information only once, you can create a window and put the information with out any text elements.
‎2006 Sep 13 8:39 PM
Hi,
Go through the sample code,
&----
*& Report ZPROSCR05081 *
*& *
&----
*& *
*& *
&----
REPORT ZPROSCR05081 .
TABLES : VBUK , VBAP , VBAK .
data : BEGIN OF ITab OCCURS 0 ,
VBELN LIKE VBAK-VBELN , "Sales Document
VKORG LIKE VBAK-VKORG , "Sales Organization
POSNR LIKE VBAP-POSNR , "Sales Document Item
MATNR LIKE VBAP-MATNR , "Material Number
MEINS LIKE VBAP-MEINS , "Base Unit of Measure
SPART LIKE VBAK-SPART , "Division
VTWEG LIKE VBAK-VTWEG , "Distribution Channel
KUNNR LIKE VBAK-KUNNR , "Sold-to party 1
END OF ITAB .
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : V_VBELN FOR VBUK-VBELN .
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN.
PERFORM CHECK_VBELN .
START-OF-SELECTION .
PERFORM EXTRACT_SALES .
CALL FUNCTION 'OPEN_FORM'
EXPORTING
APPLICATION = 'TX'
ARCHIVE_INDEX =
ARCHIVE_PARAMS =
DEVICE = 'PRINTER'
DIALOG = 'X'
FORM = 'ZSCR05081'
LANGUAGE = SY-LANGU
OPTIONS =
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJECT =
RAW_DATA_INTERFACE = '*'
SPONUMIV =
IMPORTING
LANGUAGE =
NEW_ARCHIVE_PARAMS =
RESULT =
EXCEPTIONS
CANCELED = 1
DEVICE = 2
FORM = 3
OPTIONS = 4
UNCLOSED = 5
MAIL_OPTIONS = 6
ARCHIVE_ERROR = 7
INVALID_FAX_NUMBER = 8
MORE_PARAMS_NEEDED_IN_BATCH = 9
SPOOL_ERROR = 10
CODEPAGE = 11
OTHERS = 12
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
****************************WRITE FORM FOR MAIN WINDOW*************
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'FIRST'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
IMPORTING
PENDING_LINES =
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
CODEPAGE = 9
OTHERS = 10
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*****************************WRITE FORM FOR SALES WINDOW**************
LOOP AT ITAB.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ELSALES'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'SALES'
IMPORTING
PENDING_LINES =
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
CODEPAGE = 9
OTHERS = 10
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'SECOND'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
IMPORTING
PENDING_LINES =
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
CODEPAGE = 9
OTHERS = 10
.
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.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT =
RDI_RESULT =
TABLES
OTFDATA =
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
&----
*& Form CHECK_VBELN
&----
text
----
--> p1 text
<-- p2 text
----
form CHECK_VBELN .
SELECT SINGLE VBELN
FROM VBUK
INTO V_VBELN
WHERE VBELN = VBUK-VBELN.
endform. " CHECK_VBELN
&----
*& Form EXTRACT_SALES
&----
text
----
--> p1 text
<-- p2 text
----
form EXTRACT_SALES .
SELECT VBAK~VBELN
VBAK~VKORG
VBAP~POSNR
VBAP~MATNR
VBAP~MEINS
VBAK~SPART
VBAK~VTWEG
VBAK~KUNNR
INTO TABLE ITAB
FROM VBAK INNER JOIN VBAP ON VBAKVBELN = VBAPVBELN
WHERE VBAK~VBELN IN V_VBELN.
ENDFORM.
regards,
Azaz Ali.
‎2006 Sep 13 8:40 PM
It can be either due to the fact that you have the same element in both windows...
or
you are calling the text element twice.
‎2006 Sep 13 8:51 PM
Hi Roby,
The problem may have one of the following reasons.
1) You are using text element in both windows ie ( in FIRST and MAIN window )
2) Your MAIN window may be in a LOOP...ENDLOOP.
3) You are repeating the text element twice in MAIN window with the call of WRITE_FORM.
To resolve this issue, put your text element in between TOP...ENDTOP in MAIN window.
Thanks,
Vinay
‎2006 Sep 13 8:53 PM