Regarding smartform pages
Dear all,
1.I have a smartform with 3 pages when i clicks on print it will print 3 pages.But some times I want to print only 2nd page in smartform is there any option to print 2nd page only
2.In second page I have 5 secondary windows and one main window ,23secondary windows are above the main window
adn remaining secondary window are below the main window.
if main window data flows to some 4 or more pages in every page all the secondary windows are displaying
for that i put coditions only after end of main widow after that when i see print preview in 2nd and 3rd and 4 th pages only main window data is displaying but below main window in each page it is showing empty spaces like blank?
please suggest how to do this.
Thanks&Regards
suresh.M
First question:
if i pass values as 2 in output_options in smartform function module it is printing only 2nd page
how put parameter for that one so that user cal select page 1 or 2 or 3 or all
how to achieve this one.
Second question
below the main window there are secondary windows which are showing at the end of main window
but if main window flows to further pages it is displaying as blanks
i got one idea putting all secondary windows in the footer of the table(main window) but in the secondary window i have template i cant put it in the footer.
Regards
suresh
Similar Messages
-
Regarding smartform page wise total.
hi
guru's
i am having doubt on smartform
i want to caluclate sum of qunatities in pagewise
Regards
AnandHello Anand ,
Really good Question.
As per my knowledge and understanding it is possible only a only when , when the you know the no of row you can print in Main window like......
In my Main Window I can print 5 Row . Then in the Footer you can Code like this. That's i don't thing big issue. But majar thing on the basic of your data in internal table (you can say how many row can be printed in first and so on page).
I haven't done this yet , quite sure it will help you.
Regards
Swati namdeo -
Regarding smartforms page format
i create a page format of size 240mm width and 93mm height and go through the transaction SPAD and i done the device type setup also correctly. but when i try to take the print out it is showing the following error as follows.
exception : send_error
message id : ssfcomposer
device type swin does not support page format <name>.
please anybody can give solution for this.Total Posts: 7
Total Questions: 6 (6 unresolved)
Did you even try to search before posting. Similar threads have been discussed no of times.
[Creating custom page format for sapscript/smartform|http://sample-code-abap.blogspot.com/2009/05/creating-custom-page-format-for.html]
Close the threads if resolved
Edited by: K.Manas on Dec 28, 2010 6:06 AM -
Smartform : How do i append o/p of a report(ZA3C) as Smartform Pages
Dear all
I have three smartform pages with a Driver prog .
Now i want 2 append the o/p of mere a report(not SapScript) as smartform pages .
I m trying 2 achieve that by the following BOLD part of my code .
Throw some light on this
Thnx in Advance
Moni
Have look at my code plz
*Printing of Export Invoice, Packing List,Enclosure to Packing List & Case Marking in one SMART FORMS layout *
REPORT ZSD_REP_MULTI_PRINT.
TABLES :
VBAK,
VBAP,
VBFA,
LIKP,
LIPS,
KONV,
t005t,
KNA1,
t001w,
T001,
ADRC.
DATA: FM_NAME1 TYPE RS38L_FNAM,
FM_NAME2 TYPE RS38L_FNAM,
FM_NAME3 TYPE RS38L_FNAM,
FM_NAME4 TYPE RS38L_FNAM,
P_E_DEVTYPE TYPE RSPOPTYPE,
P_JOB_OUTPUT_INFO TYPE SSFCRESCL OCCURS 2000 WITH HEADER LINE,
T_OTF LIKE ITCOO OCCURS 0 WITH HEADER LINE,
T_OTF2 TYPE SSFCRESCL OCCURS 2000 WITH HEADER LINE,
P_OUTPUT_OPTIONS TYPE SSFCOMPOP OCCURS 0 WITH HEADER LINE,
P_CONTROL_PARAMETERS TYPE SSFCTRLOP OCCURS 0 WITH HEADER LINE ,
P_DOC LIKE DOCS OCCURS 2000 WITH HEADER LINE,
P_LINES LIKE TLINE OCCURS 200,
P_BIN_FILESIZE TYPE I,
P_LANGUAGE TYPE SFLANGU,
P_BIN_FILE TYPE XSTRING,
OK_CODE LIKE SY-UCOMM.
DATA: T_ITEM TYPE ZSD_TABL_LITEM,
WA_ITEM TYPE ZSD_STRUCT_LITEM,
T_ADRS LIKE ZSD_STRUCT_ADRS OCCURS 0 WITH HEADER LINE,
MSLINES LIKE TLINE OCCURS 1 WITH HEADER LINE,
TIDNO LIKE STXL-TDID,
TNAME LIKE STXL-TDNAME,
TOBJT LIKE STXL-TDOBJECT,
SSORD LIKE VBAK-VBELN,
TOT LIKE VBAK-NETWR,
WORD LIKE SPELL,
ITNO LIKE VBAP-POSNR.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS: P_DELNO LIKE LIKP-VBELN OBLIGATORY,
P_INVNO LIKE VBRK-VBELN OBLIGATORY,
P_DATE LIKE SY-DATUM.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN.
CLEAR T_ADRS.
REFRESH T_ITEM.
T_ADRS-INVNO = P_INVNO.
T_ADRS-INVDAT = P_DATE.
SELECT SINGLE VBELV INTO VBFA-VBELV
FROM VBFA
WHERE VBELN = P_DELNO
AND VBTYP_N = 'J' .
SSORD = VBFA-VBELV.
*Exporter's Address
SELECT SINGLE BUKRS_VF INTO VBAK-BUKRS_VF
FROM VBAK
WHERE VBELN = VBFA-VBELV.
SELECT SINGLE ADRNR
INTO T001-ADRNR
FROM T001
WHERE BUKRS = VBAK-BUKRS_VF.
SELECT SINGLE NAME1 STREET CITY1 POST_CODE1 COUNTRY
INTO (T_ADRS-NAME1,T_ADRS-STREET,T_ADRS-CITY1,
T_ADRS-POST_CODE1, ADRC-COUNTRY)
FROM ADRC
WHERE ADDRNUMBER EQ T001-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-COUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
*Consignee Address & Buyer Other Than Consignee
SELECT SINGLE KUNNR KUNAG INTO (LIKP-KUNNR, LIKP-KUNAG)
FROM LIKP WHERE VBELN = P_DELNO.
IF LIKP-KUNNR = LIKP-KUNAG.
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
T_ADRS-CCITY, T_ADRS-CPCODE, T_ADRS-CREGIO,
T_ADRS-CTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNNR.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-CCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
T_ADRS-ONAME1 = T_ADRS-CNAME1 .
T_ADRS-ONAME2 = T_ADRS-CNAME2 .
T_ADRS-OSTREET = T_ADRS-CSTREET .
T_ADRS-OCITY = T_ADRS-CCITY.
T_ADRS-OPCODE = T_ADRS-CPCODE .
T_ADRS-OREGIO = T_ADRS-CREGIO.
T_ADRS-OTELF1 = T_ADRS-CTELF1 .
T_ADRS-OCOUNTRY = T_ADRS-CCOUNTRY.
ELSE.
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
T_ADRS-CCITY, T_ADRS-CPCODE, T_ADRS-CREGIO,
T_ADRS-CTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNNR.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-CCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
*Buyer Other than Consignee
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-ONAME1, T_ADRS-ONAME2, T_ADRS-OSTREET,
T_ADRS-OCITY, T_ADRS-OPCODE, T_ADRS-OREGIO,
T_ADRS-OTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNAG.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-OCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
ENDIF.
*Other's Ref
TIDNO = 'Z071'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-OREF = mslines-tdline(50).
EXIT.
ENDLOOP.
*Buyer's Order No Ref
TIDNO = 'Z023'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-BUYER = mslines-tdline(50).
EXIT.
ENDLOOP.
*Exporter Ref
TIDNO = 'Z072'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-XPREF = mslines-tdline(50).
EXIT.
ENDLOOP.
*Pre-Carraige By
TIDNO = 'Z074'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PCRG = mslines-tdline(50).
EXIT.
ENDLOOP.
*Place Of reciept by Pre-Carraige
TIDNO = 'Z073'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PLPCRG = mslines-tdline(50).
EXIT.
ENDLOOP.
*Vessel/Flight No
TIDNO = 'Z075'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-VFNO = mslines-tdline(50).
EXIT.
ENDLOOP.
*Port Of Loading
TIDNO = 'Z077'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PLOAD = mslines-tdline(50).
EXIT.
ENDLOOP.
*Port Of Discharge
TIDNO = 'Z076'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PDISG = mslines-tdline(50).
EXIT.
ENDLOOP.
*Final Destination
TIDNO = 'Z070'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-FDEST = mslines-tdline(50).
EXIT.
ENDLOOP.
*Terms Of Delivery & Payment
TIDNO = 'Z080'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-TERMS = mslines-tdline(50).
EXIT.
ENDLOOP.
APPEND T_ADRS.
*BODY SECTION FOR LINE ITEMS
SELECT POSNR KWMENG VRKME WAERK
INTO (VBAP-POSNR, VBAP-KWMENG, VBAP-VRKME, VBAP-WAERK)
FROM VBAP
WHERE VBELN = SSORD.
*Mark/Case No
TIDNO = '0002'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-MARKNO = mslines-tdline(40).
EXIT.
ENDLOOP.
*Packing Type
TIDNO = '0003'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-PACKTYP = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Description
TIDNO = '0001'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-GDESC = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Quantity
WA_ITEM-QTY = VBAP-KWMENG.
WA_ITEM-VRKME = VBAP-VRKME.
*Goods Rate
SELECT SINGLE KNUMV INTO VBAK-KNUMV FROM VBAK WHERE VBELN = SSORD.
SELECT SINGLE KBETR WAERS
INTO (WA_ITEM-RATE, WA_ITEM-WAERS)
FROM KONV
WHERE KNUMV = VBAK-KNUMV
AND KPOSN = VBAP-POSNR
AND KSCHL = 'PR00'.
*Item Remarks
TIDNO = 'ZREM'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-REMARK = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Amount
WA_ITEM-AMOUNT = WA_ITEM-QTY * WA_ITEM-RATE.
WA_ITEM-WAERK = VBAP-WAERK.
TOT = TOT + WA_ITEM-AMOUNT.
ITNO = VBAP-POSNR.
APPEND WA_ITEM TO T_ITEM.
ENDSELECT.
T_ADRS-TOT = TOT.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = TOT
CURRENCY = VBAP-WAERK
FILLER = ' '
LANGUAGE = SY-LANGU
IMPORTING
IN_WORDS = WORD
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Gross Wieght
TIDNO = 'Z078'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-GWT = mslines-tdline(40).
EXIT.
ENDLOOP.
*Net Wieght
TIDNO = 'Z079'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-NWT = mslines-tdline(40).
EXIT.
ENDLOOP.
T_ADRS-TOT_WORDS = WORD-WORD.
APPEND T_ADRS.
START-OF-SELECTION.
P_LANGUAGE = 'EN'.
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = P_LANGUAGE
I_APPLICATION = 'SAPDEFAULT'
IMPORTING
E_DEVTYPE = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-XSFCMODE = 'X'.
P_OUTPUT_OPTIONS-XSF = SPACE.
P_OUTPUT_OPTIONS-XDFCMODE = 'X'.
P_OUTPUT_OPTIONS-XDF = SPACE.
P_OUTPUT_OPTIONS-TDPRINTER = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-TDDEST = 'LOHP'.
APPEND P_OUTPUT_OPTIONS.
P_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
P_CONTROL_PARAMETERS-GETOTF = 'X'.
P_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
APPEND P_CONTROL_PARAMETERS.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZSD_REP_MULTI_PRINT1'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME1
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
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 FM_NAME1
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = P_CONTROL_PARAMETERS
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = P_OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO
JOB_OUTPUT_OPTIONS =
TABLES
T_ADRS = T_ADRS
T_ITEM = T_ITEM
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.
LOOP AT P_JOB_OUTPUT_INFO-OTFDATA INTO T_OTF.
APPEND T_OTF.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZSD_REP_MULTI_PRINT2'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME2
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
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 FM_NAME2
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = P_CONTROL_PARAMETERS
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = P_OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO
JOB_OUTPUT_OPTIONS =
TABLES
T_ADRS = T_ADRS
T_ITEM = T_ITEM
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.
LOOP AT P_JOB_OUTPUT_INFO-OTFDATA INTO T_OTF.
APPEND T_OTF.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZSD_REP_MULTI_PRINT3'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME4
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
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 FM_NAME4
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = P_CONTROL_PARAMETERS
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = P_OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO
JOB_OUTPUT_OPTIONS =
TABLES
T_ADRS = T_ADRS
T_ITEM = T_ITEM
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.
LOOP AT P_JOB_OUTPUT_INFO-OTFDATA INTO T_OTF.
APPEND T_OTF.
ENDLOOP.
<b>*for capturing the o/p pages from ZPL3 and consolidating into table T_OTF to get single PDF
SET PARAMETER ID: 'AUN' FIELD SSORD ,
'APO' FIELD ITNO.
CALL TRANSACTION 'ZPL3' AND SKIP FIRST SCREEN.
IF SY-SUBRC NE 0.
MESSAGE E001(ZQOTBANK).
ENDIF.
IMPORT (T_OTF2) FROM MEMORY ID 'MEMID'.
LOOP AT T_OTF2-OTFDATA INTO T_OTF.
APPEND T_OTF.
ENDLOOP.</b>
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
USE_OTF_MC_CMD = 'X'
ARCHIVE_INDEX =
IMPORTING
BIN_FILESIZE = P_BIN_FILESIZE
TABLES
OTF = T_OTF
DOCTAB_ARCHIVE = P_DOC
LINES = P_LINES
EXCEPTIONS
ERR_CONV_NOT_POSSIBLE = 1
ERR_OTF_MC_NOENDMARKER = 2
OTHERS = 3.
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 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
FILENAME = 'C:\SD6.pdf'
FILETYPE = 'BIN'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
IMPORTING
FILELENGTH = P_BIN_FILESIZE
TABLES
DATA_TAB = P_LINES
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
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 FINDTEXT
text
FORM FINDTEXT.
REFRESH mslines.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = tidno
language = sy-langu
name = tname
object = tobjt
TABLES
lines = mslines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
DELETE mslines WHERE tdline IS INITIAL.
ENDFORM. "FINDTEXTHello,
You can find out the Spool Request w.r.t the Program by FM RSPO_FIND_SPOOL_REQUESTS.
This Spool Request could be converted to PDF by FM CONVERT_ABAPSPOOLJOB_2_PDF.
P.S.: The Import parameter 'NO_DIALOG' in FM CONVERT_ABAPSPOOLJOB_2_PDF is to be initial. You will be getting a Popup seeking the Path and name of the file to be created. This is because you can direct the Spool list to be created in the same PDF file by appending it into earlier created SSF/SAPScript PDF outputs.
I hope this helps you.
Regards, Murugesh AS -
How can i know total number of lines in a smartform page?
Hello All,
1. How to find the total number of lines that can be printed on a smartform page?
2. Need to determine the current line on which the text is goint to printed
Depending upon the no of lines left for printing i need to call a new page explicitly?
Answers will be rewared...
Thanks and Regards,
Josin George
Edited by: Bhuvaneswari Mathuraiveeran on Jan 1, 2009 1:02 PMhi ,
I think u have to decide no of lines by trial error menthod only ...
u can use SY-TABIX to decide , which line its printing ...
hope its helps ..... -
Hi experts,
I am displaying notification numbers in the ALV format. when the user selects few of the notification numbers and click on display button it should display the notification details using smartform.
I have to trigger a new page for every notification number.
I had problem in numbering the smartform pages.
For example if the user selects 3 notification numbers say 1st one takes 3 pages, second one takes one page and third one takes 2 pages then i have number the pages as below.
1st notif:1of 3,2 of 3,3 of 3.
2nd notif:1 of 1.
3rd notif:1 of 2,2 of 2.
Please give me some suggestion.
Thank you.
Regards,
Bharat Kalagara.hi ,
in the driver program based on on a check on notification number call smartform , and now in smartform where u are printing page number make that window as a final window , this will help in calculating total no of pages now create a text element and write &sfsy-page(3cz)& of &sfsy-formpages(3cz)&.
hope this helps you !!!
regards,
prashanti -
Hi All,
I have a strange issue on Smartform Pages,I have 4 pages in the smartform and i need all pages should be printed one after another,
for that i have selected in GENERAL ATTRIBUTES next page as subsequent page,
Eg:
FIRST PAGE --> SECOND PAGE->THIRD PAGE->FOURTH PAGE and so on .
but when i execute layout is displaying only 2pages,if i change the sequence also 2 pages,
just to check i put command in the main window and in that i gave the page names even though always two pages.
did i miss something?or this is an issue with some other issue like GUI etc....
Please let me know your suggestions to resolve this.
Thanks
SurendraHi Vara,
By default there will be a value set by the administrator for the number of pages you can view in the spool. So to me it looks like this value is set to 33 in yoru case. You can go to setting from the same screen and change thsi setting to display all pages. But beware that this may take a long time some times and also give you a dump at times.
-Guru -
Regarding Smartforms printing - multiple pages
Hi Friends:
Please help me out on this query. I know how to make a smartform. I've made smartforms but the condition is that it triggers only one smartform. I've a requuirement that I've to trigger smartform for multiple vendors.The format of the smartform will be the same.Logo will be same. The address of the vendors will be changed.The line items in the main window will be changed.Footer will be constant. There will be a select option on the selection screen, which will select a range of the vendors.There will be some other parameters.I tried using loop, but every time it triggers one smartform & then again displays "print preview dialog box". I want all the smartforms to generate in one go.once the smartform for one vendor finishes, it should trigger a new one on the next page.Please help me out urgently.If anyone has a sample program, please send it to me.Reward points will be there.Hi,
Pass the select-option as a input to smartform.
Check this link.Here I am explaining how to do this.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/ccab6730-0501-0010-ee84-de050a6cc287
If you want to restrict print dialog box,you can achieve it by the following coding.
*& Report ZZZ_JAYTEST1 *
REPORT zzz_jaytest1 NO STANDARD PAGE HEADING MESSAGE-ID zhrt.
Variable Declaration
DATA : v_form_name TYPE rs38l_fnam,
itab TYPE STANDARD TABLE OF pa0001,
w_ctrlop TYPE ssfctrlop,
w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl.
SELECT * FROM pa0001 INTO TABLE itab UP TO 5 ROWS.
SORT itab BY pernr.
DELETE ADJACENT DUPLICATES FROM itab COMPARING pernr.
DATA: control TYPE ssfctrlop,
control_parameters TYPE ssfctrlop,
output_options type SSFCOMPOP.
control-preview = 'X'.
control-no_open = 'X'.
control-no_close = 'X'.
control-no_dialog = 'X'.
control-device = 'PRINTER'.
output_options-tddest = 'LOCL'.
OUTPUT_OPTIONS-TDNOPRINT = 'X'.
OUTPUT_OPTIONS-BCS_LANGU = SY-LANGU.
CALL FUNCTION 'SSF_OPEN'
EXPORTING
USER_SETTINGS = ' '
OUTPUT_OPTIONS = output_options
CONTROL_PARAMETERS = control
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.
output_options-tddest = 'LOCL'.
OUTPUT_OPTIONS-TDNOPRINT = 'X'.
OUTPUT_OPTIONS-BCS_LANGU = SY-LANGU.
CALL FUNCTION '/1BCDWB/SF00000066'
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = control
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = output_options
USER_SETTINGS = ' '
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = w_return
JOB_OUTPUT_OPTIONS =
TABLES
itab = itab
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.
CALL FUNCTION 'SSF_CLOSE'.
Kindly reward points if it helps. -
Not able to print Smartforms page
Hi,
I am not able to print more than one page in smartforms.
Even in the print preview, I can see just content of page one ?
I have alse made the next page attribute of page 1 as page 2 ?
Still it does not work.Tushar,
Assume you have 2 pages Page1 and Page2 . Page2 is the next page for Page1. So what u have to do is make a command line in Page1(right click on window -> create -> flow-logic -> command) and in there choose Page2 as your Go to New Page. This should solve your problem.
Regards,
Vinay -
Hi experts
Can i print the data in one form to the first page and print in a different form to the second page.(same data)
How to separate the page break in smartforms.
Thanks in advance.
Regards
RajaramHI ,
In smartforms
Right click->create->flow logic->command
In the conditions tab : give the condition for a particular filed so that a page break should trigger .
In general attributes tab : tick the go to new page cehk box and selexct the page from the drop down list .
Regards -
Regarding Smartforms Main Window
Hi SAP Gurus,
In a customized smartform,
i am having an output :
srl no mat no mat desc quan uom rate
10 123456 aaaaaaaaa 55 MM 4500
sales tx : 123
cst : 2%
for Eg,Like this are 10 line items, now while prining, at the bottom of the page it is printing the line item but sales tax and cst are starting on a new page, but the requirement is to display salestax and cst along with it .
Plz help,
Thanks & Regards,
Pavan.Hi,
All the above responses are very good but i think i had not get a clear picture.
Select your table node and in the table tab details you will find your line type on your line type you will find a check box with
No page break then check the check box it will solve your problem.
If the above problem is not solved your solution then the check the text element output options and above and below text elemtes also check whether any new line new cell are checked or not these two doesn't need to be checked and better to
write all the three in a single text element may be problem is with your new line & new cell options.
If not solved your problem please mention much clear what you did so we can get much clear idea.
Thanks,
Phani. -
hi all,
I designed one smartform for Multiple Range.
I need Output for each number in new page. For this i given command window at the end of loop.
I am getting output but last page is coming blank. I need to remove that blank page.
How can i do that one.
Please suggest.
Regards
RamiHi Ramireddy,
This is a logical error more than a SmartForm error. The idea is that when you get to the last line in the loop, there is a new page created at the end. But there is nothing to be printed there.
What I suggest is the following:
- remember the total lines of the table with DESCRIBE TABLE <table> LINES <total_lines> .
- move the sy-tabix value at the beginning of the loop in a new variable(maybe it gets changed along the way with READ TABLE statements or something) .
- make an IF <total_lines> NE <current_line> before executing the command
Regards,
George -
hi,
i have a problem in printing of smartform.i.e i want to display the column header information in all pages.Hi,
The column heading should be used in main page, then only it will appear in all pages.
regards,
Santosh Thorat -
Smartforms -Page Skipping Problem in Continue Sheet Printing.....
Hi Gurus,
I face problem with multiple page printing in dot matrix printer for purchase order printing.
Here are the details about my requirement
Our client Purchase order pre-printed Paper size Width 303 mm Height 203 mm and continued sheet. I have created a z layout zpoprint for the above size and assigned it in smarforms and select DINA4 transverse in printer. Whenever we printing 2nd page it starts printing after 5 cm. My friends asked me to create a customized page format in server properties in printer. Is there any other way to overcome this issue? Anybody face this problem kindly reply to me.
By
SP. ManavalanHi
Though you can double check the page layouts of both pages of your smartform, also keep in consideration that using a dot matrix printer to get the output of smartforms will have some impact of the positioning of the print as dot matrix printers are mechanical in nature(wheels are moving!).
Whereas, in laser printers, the whole data is taken, formatted and then sent to print.
Regards
Raj -
Smartforms : Page Protection in Main Window
I am working on one smartform which his printing the invoice. In the main window there is one table defined which prints all the line items. After this table there is one more table which prints the subtotals. I want to protect the entire contents of this second table against the page break.
e.g. if i have 4 lines in subtotal table and there is not enough space on the current page to print all the lines, then all the 4 lines should print on the next page. If anyone has encountered the similar problem and have an solution please respond as soon as possible.
Regards,
WasimkhanHi,
I have encountered an identical problem.
Is there any soulution ?
I do not want to count how many lines is used in the main window currently because it is to risky (each table record can ocuupy more than one line).
Regards,
Piotr
Maybe you are looking for
-
A PDF document with information about activation for CS6 software
Here's a PDF document with information about activation for CS6 software. I found it very useful for understanding how the system worked for activation of perpetual licenses, both in cases where the computer is and isn't connected to the Internet.
-
Can you change the size of the sample text in the character window in photoshop CC?
it appears that the ability to enlarge the sample text size has been demoed from cs7 and photoshop CC?
-
Hi, I have designed a scenario in which I am using my own queue for the message storage not the one that XI defines on its own. there is a BPM which uses a block a switch and a few transformation steps. at one end I am using HTTP adpt as sender adpt
-
Is it possible to call a Crystal Report from Oracle Forms.
Hi Everybody, I got a Dout about Crystal Reports. Is it possible to call Crystal Reports from Oracle Forms.
-
My Thinkfree office won't open bec the "java is corrupted". TFO immediately closes and "sends a message to Apple". The prompt recommends opening Software Update--which doesn't recognize that Java is corrupted. what to do?