01-25-2010 5:31 AM
Mates
I am trying to convert ALV Report into PDF For that what i did following steps
1)Created ZPF STATUS and Place a button ,Named As Conver to PDF
2).Then used to Function Module Name GET_PRINT_PARAMETER for setting printer paramter
3) Created Spool request by using KEYword
SUBMIT RSTXPDFT4 TO SAP-SPOOL
SPOOL PARAMETERS PRI_STR
WITHOUT SPOOL DYNPRO.
4) Retrieving spool number and passing to standard for converting PDF
SELECT SINGLE MAX( RQIDENT ) INTO SPNO FROM TSP01 WHERE RQ2NAME EQ 'ZPProgram'.
SUBMIT RSTXPDFT4 VIA SELECTION-SCREEN WITH SPOOLNO EQ SPNO AND RETURN.
i got no error in these process but when i open pdf output , there is no content in pdf . Tried all tricks in books
That is when click the standard print button , i am getting the output content but when i use my own control i am not getting the content in the pdf output
cross checked table : TSP01 --Different between standard button Any My button
RQTELENUME --->L21B0041 i am getting the print
RQTELENUME --->L0FF0041 i am not getting the print in output of pdf
kindly so some helpful idea
with regards
Anand kumar
01-25-2010 5:56 AM
Hi Anand,
plz check up with the spool parameters u pass while submitting the program to Sap Spool .
mstr_print_parms-linsz = linsz.
mstr_print_parms-paart = paart.
if still it doesn't resolve the error reply back and i will help u with an sample code .
regards
p.gurunath
01-25-2010 6:07 AM
hi guru
Thanks for reply.. this my print parameter code kindly check it and valuable suggestions
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
DESTINATION = 'WIP1'
COPIES = 1
LIST_NAME = 'ZPP1'
LIST_TEXT = 'SUBMIT ... TO SAP-SPOOL'
IMMEDIATELY = ' '
RELEASE = 'X'
NEW_LIST_ID = 'X'
EXPIRATION = 2
LINE_SIZE = 255
LINE_COUNT = 65
LAYOUT = 'Z_65_1023'
SAP_COVER_PAGE = 'D'
COVER_PAGE = 'D'
AUTHORITY = SPACE
MODE = SPACE
RECEIVER = ' '
DEPARTMENT = 'System'
NO_DIALOG = ' '
IMPORTING
OUT_PARAMETERS = PRI_STR
OUT_ARCHIVE_PARAMETERS = ARCPAR
VALID = VALID_FLAG
EXCEPTIONS
INVALID_PRINT_PARAMS = 2
OTHERS = 4.
01-25-2010 6:23 AM
Hi Anand ,
I dnt mean the function module "GET_PRINT_PARAMETERS " . i was telling abt the parameter which u were passing " PRI_STR " . This structure should be of type pri_params.. then u hav to set the parameters for the structure as follows .
linsz like sy-linsz VALUE 132, " Line size
paart like sy-paart VALUE 'X_65_132', " Paper Format
PRI_STR-pdest = space.
PRI_STR-pdest = 'LOCL'.
PRI_STR-linsz = linsz.
PRI_STR-paart = paart.
regards ,
01-25-2010 6:53 AM
01-25-2010 7:31 AM
Hi Anand,
FORM find_spool_request_id.
CALL FUNCTION 'RSPO_FIND_SPOOL_REQUESTS'
EXPORTING
allclients = '320'
datatype = '*'
has_output_requests = '*'
rq0name = nast-dsnam
rq1name = '*'
rq2name = '*'
rqdest = 'LOCL'
rqowner = sy-uname
TABLES
spoolrequests = it_spool
EXCEPTIONS
no_permission = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i000 DISPLAY LIKE 'E' WITH text-002.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM.
* " find_spool_request_id
FORM convert_spool_to_pdf .
READ TABLE it_spool INTO wa_spool INDEX 1.
v_spoolno = wa_spool-rqident.
SELECT SINGLE *
FROM tsp01
INTO tsp01
WHERE rqident EQ v_spoolno.
IF sy-subrc <> 0.
MESSAGE i000 DISPLAY LIKE 'E'
WITH text-003 v_spoolno text-034.
LEAVE LIST-PROCESSING.
ENDIF.
v_client = tsp01-rqclient.
v_name = tsp01-rqo1name.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = v_client
name = v_name
part = 1
IMPORTING
objtype = v_objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE i000(zz) DISPLAY LIKE 'E'
WITH text-003 v_spoolno text-034.
LEAVE LIST-PROCESSING.
ENDIF.
IF v_objtype(3) EQ 'OTF'.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = v_spoolno
no_dialog = ' '
TABLES
pdf = it_pdf
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
IF sy-subrc <> 0.
ENDIF.
ELSE
Edited by: Kumar Manas Mishra on Jan 25, 2010 8:31 AM
01-25-2010 7:32 AM
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = v_spoolno
no_dialog = 'X'
TABLES
pdf = it_pdf
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
01-25-2010 7:56 AM
Hi Anand,
Try with this sample to code to convert the alv grid to pdf .
REPORT ZALV_TO_PDF.
tables : sflight , tsp01.
TYPE-POOLS : slis.
data : it_sflight type STANDARD TABLE OF sflight WITH HEADER LINE.
DATA : PROG_NAME TYPE SY-REPID,
linsz like sy-linsz VALUE 132, " Line size
paart like sy-paart VALUE 'X_65_132', " Paper Format
itab_pdf like tline occurs 0 with header line,
t_valid(1) type c,
mstr_print_parms type pri_params.
START-OF-selection.
select * from sflight into TABLE it_sflight UP TO 20 rows.
PROG_NAME = SY-REPID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = PROG_NAME
I_CALLBACK_PF_STATUS_SET = 'FLIGHT'
I_CALLBACK_USER_COMMAND = 'PDF_CONVERT'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'SFLIGHT'
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT =
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = it_sflight
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
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 FLIGHT USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'FLIGHT' EXCLUDING RT_EXTAB.
ENDFORM.
FORM PDF_CONVERT USING UCOMM type SY-UCOMM
SELFIELD type SLIS_SELFIELD.
CASE UCOMM.
WHEN 'FLIGHT' .
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
ARCHIVE_ID = C_CHAR_UNKNOWN
ARCHIVE_INFO = C_CHAR_UNKNOWN
ARCHIVE_MODE = C_CHAR_UNKNOWN
ARCHIVE_TEXT = C_CHAR_UNKNOWN
AR_OBJECT = C_CHAR_UNKNOWN
ARCHIVE_REPORT = C_CHAR_UNKNOWN
AUTHORITY = C_CHAR_UNKNOWN
COPIES = C_NUM3_UNKNOWN
COVER_PAGE = C_CHAR_UNKNOWN
DATA_SET = C_CHAR_UNKNOWN
DEPARTMENT = C_CHAR_UNKNOWN
DESTINATION = C_CHAR_UNKNOWN
EXPIRATION = C_NUM1_UNKNOWN
IMMEDIATELY = space "C_CHAR_UNKNOWN
IN_ARCHIVE_PARAMETERS = ' '
IN_PARAMETERS = ' '
LAYOUT = C_CHAR_UNKNOWN
LINE_COUNT = C_INT_UNKNOWN
LINE_SIZE = C_INT_UNKNOWN
LIST_NAME = C_CHAR_UNKNOWN
LIST_TEXT = C_CHAR_UNKNOWN
MODE = ' '
NEW_LIST_ID = C_CHAR_UNKNOWN
PROTECT_LIST = C_CHAR_UNKNOWN
NO_DIALOG = 'X'"C_FALSE
RECEIVER = C_CHAR_UNKNOWN
RELEASE = C_CHAR_UNKNOWN
REPORT = C_CHAR_UNKNOWN
SAP_COVER_PAGE = C_CHAR_UNKNOWN
HOST_COVER_PAGE = C_CHAR_UNKNOWN
PRIORITY = C_NUM1_UNKNOWN
SAP_OBJECT = C_CHAR_UNKNOWN
TYPE = C_CHAR_UNKNOWN
USER = SY-UNAME
USE_OLD_LAYOUT = ' '
UC_DISPLAY_MODE = C_CHAR_UNKNOWN
DRAFT = C_CHAR_UNKNOWN
ABAP_LIST = ' '
USE_ARCHIVENAME_DEF = ' '
DEFAULT_SPOOL_SIZE = C_CHAR_UNKNOWN
WITH_STRUCTURE = C_CHAR_UNKNOWN
SUPPRESS_SHADING = C_CHAR_UNKNOWN
PO_FAX_STORE = ' '
NO_FRAMES = C_CHAR_UNKNOWN
IMPORTING
OUT_ARCHIVE_PARAMETERS =
OUT_PARAMETERS = mstr_print_parms
VALID = t_valid
VALID_FOR_SPOOL_CREATION =
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*-- Make sure that a printer destination has been set up
*-- If this is not done the PDF function module ABENDS
if mstr_print_parms-pdest = space.
mstr_print_parms-pdest = 'LOCL'.
endif.
*-- Explicitly set line width, and output format so that
*-- the PDF conversion comes out OK
mstr_print_parms-linsz = linsz.
mstr_print_parms-paart = paart.
submit (PROG_NAME) to sap-spool without spool dynpro
spool parameters mstr_print_parms
via selection-screen
and return.
data : f_repid type sy-repid,
f_uname type sy-uname.
data:
lc_rq2name like tsp01-rq2name,
f_rqident like tsp01-rqident,
byte_count type i,
file_name type string VALUE 'c:\fol\test1.pdf'.
f_repid = sy-repid.
f_uname = sy-uname.
concatenate f_repid+0(9)
f_uname+0(3)
into lc_rq2name ."separated by '_'.
select * from tsp01 where rq2name = lc_rq2name
order by rqcretime descending.
f_rqident = tsp01-rqident.
exit.
endselect.
if sy-subrc ne 0.
clear f_rqident.
endif.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = f_rqident
NO_DIALOG = space
DST_DEVICE = mstr_print_parms-pdest
PDF_DESTINATION =
IMPORTING
PDF_BYTECOUNT = byte_count
PDF_SPOOLID =
LIST_PAGECOUNT =
BTC_JOBNAME =
BTC_JOBCOUNT =
TABLES
PDF = itab_pdf
EXCEPTIONS
ERR_NO_ABAP_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DESTDEVICE = 5
USER_CANCELLED = 6
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_OPEN_FAILED = 9
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 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.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = byte_count
FILENAME = file_name
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'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
SHOW_TRANSFER_STATUS = ABAP_TRUE
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = itab_pdf
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.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>EXECUTE
EXPORTING
DOCUMENT = file_name
APPLICATION =
PARAMETER =
DEFAULT_DIRECTORY =
MAXIMIZED =
MINIMIZED =
SYNCHRONOUS =
OPERATION = 'OPEN'
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
BAD_PARAMETER = 3
FILE_NOT_FOUND = 4
PATH_NOT_FOUND = 5
FILE_EXTENSION_UNKNOWN = 6
ERROR_EXECUTE_FAILED = 7
SYNCHRONOUS_FAILED = 8
NOT_SUPPORTED_BY_GUI = 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.
when 'EXIT'.
leave program.
ENDCASE.
ENDFORM.
01-25-2010 6:57 AM
hi,
Check your program name when you are submitting.you are submitting some RSTXPDFT4 program this is a standard one i think this one is not your program.
what your coode is doing it generate the spool of RSTXPDFT4 this program not the program u you create.
SUBMIT RSTXPDFT4 TO SAP-SPOOL
SPOOL PARAMETERS PRI_STR
WITHOUT SPOOL DYNPRO.
"insted of write the above code change it with the below one
SUBMIT SY-REPID TO SAP-SPOOL
SPOOL PARAMETERS PRI_STR
WITHOUT SPOOL DYNPRO.
hope this helps
regards
RItesh
01-25-2010 8:49 AM