2006 Apr 05 6:29 AM
hello people! So far I have done some good progress regarding this thanks to many of you people. I do have some hurdles and one of them involves ALV Reports. So far I use
WWW_LIST_TO_HTML - to temporarly store the list report to a table known as ihtml.
and Open/Transfer/Close data set to send the file to the application server using the syntax below
<b>OPEN DATASET file FOR OUTPUT IN BINARY MODE.
LOOP AT ihtml.
TRANSFER ihtml TO file.
ENDLOOP.
CLOSE DATASET file.</b>
So far the program works fine in the report with the expection if its one that generates an ALV Report.
My question is that is there a way to successfully run the program the way it was mentioned above using ALV? If so what techniques do you guys suggest?
<b>Note:</b> Also please note the report and transfering/writing of the file has to be done during background processing.
Hope I get some replies soon as many of you have been most helpful thank you and good day.
2006 Apr 05 6:37 AM
Hi,
After you got the data,you just need to use an output table to populate the data.
Check these links for ALV concepts.
http://www.geocities.com/mpioud/Abap_programs.html
http://72.14.203.104/search?q=cache:NjFXTBr5lX8J:www.sap-img.com/abap/an-interactive-alv-report.htmALVInteractivereportsABAP&hl=en&gl=in&ct=clnk&cd=5
Check this tutorial for OOPS Alv.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/an easy reference for alv grid control.pdf
If you need more infomration,get back.Kindly reward points if it helps.
2006 Apr 05 6:36 AM
Hi,
I am little confused as I am unable to find what exactly the problem is here.
If you want to run a ALV report in the background, just make sure you check cl_gui_alv_grid=>offline( ), then create the container.
Anything else that you are doing should work fine in the background as well.
Regards,
Ravi
Note : Please mark the helpful answer
2006 Apr 05 6:47 AM
<b>"Hi,
I am little confused as I am unable to find what exactly the problem is here.
If you want to run a ALV report in the background, just make sure you check cl_gui_alv_grid=>offline( ), then create the container.
Anything else that you are doing should work fine in the background as well.
Regards,
Ravi"</b>
my apologies for not making it clear. Problem is that the function module WWW_LIST_TO_HTML does not work in an alv report. It would generate a runtime error. Specifying the <b>list index</b> is invalid.
If you see the code above, ususally is that after I run the report a new file will automatically generate in a particular path. With the alv it runs the report but without transfering the file, and if I click the BACK button it would execute a runtime error.
Thanks again.
2006 Apr 05 6:49 AM
Hi,
Can you post your code here, not the entire code, whichever is giving the short dump.
Regards,
Ravi
2006 Apr 05 6:59 AM
DATA: LD_FILENAME TYPE LOCALFILE.
...
the code below is run after the function <b>REUSE_ALV_LIST_DISPLAY</b> is called
...
CALL FUNCTION 'WWW_LIST_TO_HTML'
EXPORTING
list_index = sy-lsind
TABLES
HTML = IHTML.
CLEAR IHTML.
CONCATENATE '
HCMWEB00\SAPReport\' sy-cprog '.html'
INTO LD_FILENAME.
OPEN DATASET LD_FILENAME FOR OUTPUT IN BINARY MODE.
LOOP AT IHTML.
TRANSFER IHTML TO LD_FILENAME.
ENDLOOP.
CLOSE DATASET LD_FILENAME.
CLEAR LD_FILENAME.
....
the report runs fine but one I press Back a runtime occurs stating
<b>Exception condition "LIST_INDEX_INVALID" raised.</b>
A RAISE statement in the program "SAPLSLST " raised the exception
condition "LIST_INDEX_INVALID".
Since the exception was not intercepted by a superior program
in the hierarchy, processing was terminated.
2006 Apr 05 10:07 AM
Hi chad,
1. yes u are right
2. it will give this error only.
3. the reason is, the www_list_to_html
is exected after list display,
4. the code comes there when
we press BACK, and at that time
no list is there in memory.
<b>5. So we have to use some workaround.
6. END_OF_LIST
7. We have to use this EVENT
and inside this event,
we have to export to HTML.</b>
8. I tried and it works FANTASTIC
9. Just copy paste this program.
(it will show a alv list of t001,
and write the HTML file also)
( i have used END_OF_LIST event)
10.
REPORT abc.
TYPE-POOLS : slis.
*----
Data
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : END OF itab.
DATA : alvfc TYPE slis_t_fieldcat_alv.
*----
Select
SELECT * FROM t001 INTO TABLE itab.
*------- Field Catalogue
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'ITAB'
i_inclname = sy-repid
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
.
*----
DATA : alvev TYPE slis_t_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = alvev.
PERFORM alv_setevent USING 'END_OF_LIST' 'ITAB'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = SY-REPID
i_callback_user_command = alvcallback_formname
it_events = alvev[]
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
*----
form itab_end_of_list.
*----
Display
data : ht like table of W3HTML.
CALL FUNCTION 'WWW_LIST_TO_HTML'
EXPORTING
list_index = sy-lsind
TABLES
HTML = ht
.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
filename = 'd:\my.html'
tables
data_tab = ht
.
endform.
*=============This Function Links the Event Name To The Specified Form
FORM alv_setevent USING value(eventname) value(alvitabname).
DATA: tempev TYPE slis_alv_event.
DATA : formname(30) TYPE c.
TRANSLATE eventname TO UPPER CASE.
CONCATENATE alvitabname '_' eventname INTO formname.
TRANSLATE formname TO UPPER CASE.
LOOP AT alvev INTO tempev WHERE name = eventname.
tempev-form = formname.
MODIFY alvev FROM tempev.
ENDLOOP.
ENDFORM. "alv_setevent
regards,
amit m.
2006 Apr 06 3:22 AM
Hey Amit Mittal thanks for the help however, I do have a few questions.
Regarding form <b>itab_end_of_list</b> where is is being called? Thanks
2006 Apr 06 5:28 AM
Hi again,
1. itab_end_of_list
is a CALL BACK command.
2. ie.
when the alv printing on screen ends,
the alv program
itself calls this
itab_end_of_list.
3. Then it executes whatever is there in this form.
4. This is nothing but EVENT concept in alv.
regards,
amit m.
2006 Apr 06 7:06 AM
Ok i'll get back on it soon, when/if it works i'll reward you the full 10 pts. for now i just put in 6. Til' Text Time. Thank you and good day.
2006 Apr 05 6:37 AM
Hi,
After you got the data,you just need to use an output table to populate the data.
Check these links for ALV concepts.
http://www.geocities.com/mpioud/Abap_programs.html
http://72.14.203.104/search?q=cache:NjFXTBr5lX8J:www.sap-img.com/abap/an-interactive-alv-report.htmALVInteractivereportsABAP&hl=en&gl=in&ct=clnk&cd=5
Check this tutorial for OOPS Alv.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/an easy reference for alv grid control.pdf
If you need more infomration,get back.Kindly reward points if it helps.