04-17-2014 1:47 PM
HEllo guys,
Im facing a problem,
Im trying to include a logo in my TOP_EVENT, but i don't know what do i need to do.
I have this call,
CALL FUNCTION 'REUSE_ALV_GRID_COMMENTARY_SET'
EXPORTING
document = dg_dyndoc_id
bottom = space
IMPORTING
length = dl_length.
But i couldn't find the method to include the logo in dg_dyndoc_id.
Anybody could help me?
Thanks,
Lucas Antoni.
04-17-2014 2:20 PM
I get it,
But the logo appears so many times hahahha, i just added in this CALL,
dl_background_id = 'ENJOYSAP_LOGO'.
CALL METHOD dg_dyndoc_id->set_document_background
EXPORTING
picture_id = dl_background_id.
Now i just need to set the position and to appears only 1 logo hahahahah.
04-17-2014 1:53 PM
Hello Lucas,
Use FM REUSE_ALV_COMMENTARY_WRITE to display logo on Top of Page of ALV.
The FM REUSE_ALV_COMMENTARY_WRITE needs to be called in the Form routine of 'Top of Page''
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
TABLES
t_outtab = it_ITAB
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'Logo NAme'
it_list_commentary = it_listheader.
ENDFORM. "top_of_page
Thanks
04-17-2014 2:02 PM
Thansk for the answer, but i've already tried, but i didn't work for me, nothing happens,it keeps without logo, im using ENJOYSAP_LOGO just to test, but it's not working.
Do i need to fill the lt_listheader with something? I calling the function with lt_listheader empty.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = tl_top.
PS. Im using ALV OO, this function si being called from my CLASS implementation. (i don't knwo if it's important)
Thanks,
Lucas.
04-17-2014 2:17 PM
Hi Lucas,
check the below link may help you ,
http://scn.sap.com/people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid
Regards,
Gurunath D
04-17-2014 2:20 PM
I get it,
But the logo appears so many times hahahha, i just added in this CALL,
dl_background_id = 'ENJOYSAP_LOGO'.
CALL METHOD dg_dyndoc_id->set_document_background
EXPORTING
picture_id = dl_background_id.
Now i just need to set the position and to appears only 1 logo hahahahah.
04-17-2014 2:58 PM
Hi Lucas,
Use the method
CALL METHOD o_dyndoc_id->add_picture
EXPORTING
picture_id
='ENJOYSAP_LOGO'.
Please refer following code for your reference.
DATA: it_flight TYPE TABLE OF sflight.
DATA: ok_code LIKE sy-ucomm, save_ok LIKE sy-ucomm.
DATA: g_container TYPE scrfname VALUE 'CONTROL',
o_dyndoc_id TYPE REF TO cl_dd_document,
o_splitter TYPE REF TO cl_gui_splitter_container,
o_parent_grid TYPE REF TO cl_gui_container,
o_parent_top TYPE REF TO cl_gui_container,
o_html_cntrl TYPE REF TO cl_gui_html_viewer.
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_HANDLER DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION .
PUBLIC SECTION .
METHODS:
*Event Handler for Top of page
top_of_page FOR EVENT top_of_page OF cl_gui_alv_grid
IMPORTING e_dyndoc_id.
ENDCLASS. "LCL_EVENT_HANDLER DEFINITION
"lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_HANDLER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
METHOD top_of_page.
* Top-of-page event
PERFORM event_top_of_page USING o_dyndoc_id.
ENDMETHOD. "top_of_page
ENDCLASS. "LCL_EVENT_HANDLER DEFINITION
*LCL_EVENT_HANDLER IMPLEMENTATION
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
g_handler TYPE REF TO lcl_event_handler.
"handler
START-OF-SELECTION.
SELECT * FROM sflight UP TO 20 ROWS INTO TABLE it_flight.
END-OF-SELECTION.
IF NOT it_flight[] IS INITIAL.
CALL SCREEN 100.
ELSE.
MESSAGE 'NO DATA FOR THE SELECTION' TYPE 'I'.
ENDIF.
*----------------------------------------------------------------------*
* MODULE STATUS_0100 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'.
IF g_custom_container IS INITIAL.
PERFORM create_and_init_alv.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*----------------------------------------------------------------------*
* MODULE USER_COMMAND_0100 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form CREATE_AND_INIT_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM create_and_init_alv .
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container.
* create top-document
CREATE OBJECT o_dyndoc_id
EXPORTING
style = 'ALV_GRID'.
* create splitter for custom_container
CREATE OBJECT o_splitter
EXPORTING
parent = g_custom_container
rows = 2
columns = 1.
CALL METHOD o_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = o_parent_top.
CALL METHOD o_splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = o_parent_grid.
* set height for g_parent_html
CALL METHOD o_splitter->set_row_height
EXPORTING
id = 1
height = 5.
CREATE OBJECT g_grid
EXPORTING
i_parent = o_parent_grid.
CREATE OBJECT g_handler.
SET HANDLER g_handler->top_of_page FOR g_grid.
*calling the method for alv output
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
it_outtab = it_flight[].
CALL METHOD o_dyndoc_id->initialize_document
EXPORTING
background_color = cl_dd_area=>col_textarea.
* processing events
CALL METHOD g_grid->list_processing_events
EXPORTING
i_event_name = 'TOP_OF_PAGE'
i_dyndoc_id = o_dyndoc_id.
ENDFORM. "CREATE_AND_INIT_ALV
"CREATE_AND_INIT_ALV
*&---------------------------------------------------------------------*
*& Form EVENT_TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->DG_DYNDOC_ID text
*----------------------------------------------------------------------*
FORM event_top_of_page USING dg_dyndoc_id TYPE REF TO cl_dd_document.
DATA : dl_text(255) TYPE c.
"Text
CALL METHOD dg_dyndoc_id->add_text
EXPORTING
text = 'Flight Details'
sap_style = cl_dd_area=>heading
sap_fontsize = cl_dd_area=>large
sap_color = cl_dd_area=>list_heading_int.
CALL METHOD dg_dyndoc_id->add_gap
EXPORTING
width = 200.
CALL METHOD o_dyndoc_id->add_picture
EXPORTING
picture_id
='ENJOYSAP_LOGO'.
* add new-line
CALL METHOD dg_dyndoc_id->new_line.
CALL METHOD dg_dyndoc_id->new_line.
CLEAR : dl_text.
* program id
dl_text = 'Program Name :'.
CALL METHOD dg_dyndoc_id->add_gap.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_heading_int.
CLEAR dl_text.
dl_text = sy-repid.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* add new-line
CALL METHOD dg_dyndoc_id->new_line.
CLEAR : dl_text.
CLEAR : dl_text.
* program id
dl_text = 'User Name :'.
CALL METHOD dg_dyndoc_id->add_gap.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_heading_int.
CLEAR dl_text.
dl_text = sy-uname.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* add new-line
CALL METHOD dg_dyndoc_id->new_line.
CLEAR : dl_text.
* run date
dl_text = 'Run Date :'.
CALL METHOD dg_dyndoc_id->add_gap.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_heading_int.
CLEAR dl_text.
* move date
WRITE sy-datum TO dl_text.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* add new-line
CALL METHOD dg_dyndoc_id->new_line.
CLEAR : dl_text.
*timedl_text = 'Time :'.
CALL METHOD dg_dyndoc_id->add_gap.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_heading_int.
CLEAR dl_text.
* move time
WRITE sy-uzeit TO dl_text.
CALL METHOD o_dyndoc_id->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_color = cl_dd_area=>list_negative_inv.
* add new-line
CALL METHOD dg_dyndoc_id->new_line.
PERFORM display.
ENDFORM. " EVENT_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display.
*creating html control
IF o_html_cntrl IS INITIAL.
CREATE OBJECT o_html_cntrl
EXPORTING
parent = o_parent_top.
ENDIF.
CALL METHOD o_dyndoc_id->merge_document.
o_dyndoc_id->html_control = o_html_cntrl.
* display document
CALL METHOD o_dyndoc_id->display_document
EXPORTING
reuse_control = 'X'
parent = o_parent_top
EXCEPTIONS
html_display_error = 1.
IF sy-subrc NE 0.
MESSAGE 'Error in displaying top-of-page' TYPE 'I'.
ENDIF.
ENDFORM. " display
Regards,
Gurunath D
04-17-2014 3:10 PM
Thanks for the code, it almost worked for me, but i need logo on the right but at the same 'line' of text,
See the image below,
Im tryng to use this,
* CALL METHOD dg_dyndoc_id->vertical_split
* EXPORTING
* split_area = dg_dyndoc_id
* split_width = '70%'
* IMPORTING
* right_area = dl_logo.
But it's not spliting.
04-17-2014 4:30 PM
Hi Lucas ,
call this method before calling your method to set the logo.
CALL METHOD dg_dyndoc_id->add_gap
EXPORTING
width = 200.
then call your method.
let me know if you have any issues.
Regards,
Gurunath D
04-17-2014 4:42 PM
I got it,
I used this code, but i changed where it was in my code,
CALL METHOD dg_dyndoc_id->vertical_split
EXPORTING
split_area = dg_dyndoc_id
split_width = '70%'
IMPORTING
right_area = dl_logo.
CALL METHOD dl_logo->add_picture
EXPORTING
picture_id = 'Z_XXXX'.
And now it is working fine,
Thanks for help me,
Lucas Antoni.