Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to input logo with REUSE_ALV_GRID_COMMENTARY_SET

0 Kudos

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.

1 ACCEPTED SOLUTION

0 Kudos

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.

8 REPLIES 8

Mohamed_Mukhtar
Active Contributor
0 Kudos

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

0 Kudos

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.

gurunathkumar_dadamu
Active Contributor
0 Kudos

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

0 Kudos

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.

0 Kudos

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.

DATAg_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


0 Kudos

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.

0 Kudos

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.

  • *  CALL METHOD dg_dyndoc_id->vertical_split 
  • *       EXPORTING 
  • *         split_area     = dg_dyndoc_id 
  • *         split_width    = '70%' 
  • *       IMPORTING 
  • *         right_area     = dl_logo. 

let me know if you have any issues.

Regards,

Gurunath D

0 Kudos

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.