Hello Guyz,
I am displaying the data of two table using inner join in form of ALV_list. Now i want to convert this displayed data in pdf & then download it.
I have this using FMs CONVERT_ABAPSPOOLJOB_2_PDF & GUI_DOWNLOAD. Its dispalying the data in alv form but it is not downloading & converting it in pdf.
Following error after displaying data in alv
Spool request 0 does not exist.
Please help me in this issue. I need it urgently.. ur help will be appreciated. Here is the code i am using :
*&---------------------------------------------------------------------*
*& Report ZRESULT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZRESULT.
TYPE-POOLS:slis.
DATA: BEGIN OF gs_ara,
USER_NAME TYPE XUBNAME,
QSTN_NO TYPE ZQSTNNO,
SELECTED TYPE ZSELECTED,
ANSWER TYPE ZANSWER,
END OF gs_ara.
DATA gt_ara LIKE STANDARD TABLE OF gs_ara .
DATA : gk_ara LIKE gs_ara,
i_ara like DD02L-TABNAME.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002 .
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: ld_file TYPE string.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001 .
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: U_NAME TYPE SY-UNAME.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID,
G_SAVE TYPE C VALUE 'X',
MARKS TYPE I VALUE 0,
G_VARIANT TYPE DISVARIANT,
GX_VARIANT TYPE DISVARIANT.
DATA : RIGHT TYPE I VALUE 0,
WRONG TYPE I VALUE 0,
RESULT TYPE FLOAT.
DATA: w_print TYPE slis_print_alv.
DATA:g_spool TYPE tsp01-rqident,
g_program TYPE sy-repid VALUE sy-repid.
DATA : pdf LIKE tline OCCURS 0.
DATA: ld_path TYPE string,
ld_fullpath TYPE string,
ld_result TYPE i.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR LD_FILE.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = 'Select Location'
* default_extension = '*.txt'
default_file_name = '*.pdf'
CHANGING
filename = LD_FILE
path = ld_PATH
fullpath = ld_fullpath.
**GETTING DEFAULT VARIANT
INITIALIZATION.
GX_VARIANT-REPORT = SY-REPID.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
* VARIANT = GX_VARIANT-VARIANT.
ENDIF.
**PERFORM DECLARATIONS
START-OF-SELECTION.
PERFORM DATA_RETRIVEL.
PERFORM BUILD_FIELDCATALOG.
PERFORM DISPLAY_ALV_REPORT.
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'QSTN_NO'.
FIELDCATALOG-SELTEXT_M = 'QUESTION'.
FIELDCATALOG-COL_POS = 1.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ANSWER'.
FIELDCATALOG-SELTEXT_M = 'ORIGINAL ANSWER'.
FIELDCATALOG-COL_POS = 2.
FIELDCATALOG-OUTPUTLEN = 20.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SELECTED'.
FIELDCATALOG-SELTEXT_M = 'ANSWER ATTEMPTED'.
FIELDCATALOG-COL_POS = 3.
FIELDCATALOG-OUTPUTLEN = 20.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "see FORM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = FIELDCATALOG[]
I_SAVE = 'X'
IS_VARIANT = G_VARIANT
I_STRUCTURE_NAME = i_ara
IS_PRINT = w_print
TABLES
T_OUTTAB = gt_ara
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
g_spool = sy-spono.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = g_spool
TABLES
pdf = pdf.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = ld_fullpath
filetype = 'BIN'
TABLES
data_tab = pdf.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "see FORM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = FIELDCATALOG[]
I_SAVE = 'X'
IS_VARIANT = G_VARIANT
I_STRUCTURE_NAME = i_ara
IS_PRINT = w_print
TABLES
T_OUTTAB = gt_ara.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
"DISPLAY_ALV_REPORT
" DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*& Form DATA_RETRIVEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_RETRIVEL .
select
RES~USER_NAME RES~QSTN_NO RES~SELECTED
UPL~ANSWER
into CORRESPONDING FIELDS OF TABLE gt_ara
from
ZOESRESULT3 AS RES
INNER JOIN
ZOESEXAM as UPL
on
RES~QSTN_NO = UPL~QSTN_NO
where
RES~USER_NAME = U_NAME.
loop at gt_ara into gk_ara.
IF GK_ARA-SELECTED EQ GK_ARA-ANSWER.
RIGHT = RIGHT + 1.
ELSE.
WRONG = WRONG + 1.
ENDIF.
ENDLOOP.
RESULT = ( RIGHT * 1 ) - ( WRONG * '0.50' ).
ENDFORM. " DATA_RETRIVEL
*-------------------------------------------------------------------*
* Form TOP-OF-PAGE *
*-------------------------------------------------------------------*
* ALV Report Header *
*-------------------------------------------------------------------*
FORM TOP-OF-PAGE.
*ALV Header declarations
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER,
T_LINE LIKE WA_HEADER-INFO,
LD_LINES TYPE I,
LD_LINESC(10) TYPE C.
* Title
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'ONLINE EXAMNATION RESULT'.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'REGISTRATION ID :'.
WA_HEADER-INFO = U_NAME.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'TOTAL MARKS :'.
WA_HEADER-INFO = '20'.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'MARKS OBTAINED :'.
WA_HEADER-INFO = RESULT.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM.