SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Using Logos & wallpapers in ALV report



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ALV Grid / ALV Tree / ALV List
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1636

PostPosted: Sun Mar 02, 2008 12:26 pm    Post subject: Using Logos & wallpapers in ALV report Reply with quote

Code:
*----------------------------------------------------------------------
* Program: ZZ_ALV_REPORT_STUB
* Author : Clayton Mergen
* Date   :
*
* Purpose: Report using ALV function
*
* Notes:
* 1) Logos & wallpapers can be found in table BDS_CONN05
*    with class = PICTURES
*
* 2) Transaction OAER can be used to create PICTURES.
*    Run transaction OAER with class name = PICTURES, Class type = OT,
*    and Object key with whatever name you want to create.  In the
*    next screen, right clicking on screen and import
*
*----------------------------------------------------------------------
*                              Revisions
*----------------------------------------------------------------------
* Name    :
* Date    :
* Comments:
*----------------------------------------------------------------------
report zz_alv_report_stub
       no standard page heading
       line-size 200
       line-count 65
       message-id zz.

*--------------------------------
* Tables
*--------------------------------
tables:
  ekpo,
  trdir.

*--------------------------------
* Global Types
*--------------------------------
type-pools: slis.

*--------------------------------
* Global Internal Tables
*--------------------------------
data:
  i_fieldcat_alv  type slis_t_fieldcat_alv,
  i_events        type slis_t_event,
  i_event_exit    type slis_t_event_exit,
  i_list_comments type slis_t_listheader,
  i_excluding     type slis_t_extab.

* Display data
data: begin of i_data occurs 0,
        name    like trdir-name,
        clas    like trdir-clas,
        subc    like trdir-subc,
        cnam    like trdir-cnam,
        cdat    like trdir-cdat,
        myfield(1) type c,
      end of i_data.

*--------------------------------
* Global Variables
*--------------------------------
data:
  w_variant          like disvariant,
  wx_variant         like disvariant,
  w_variant_save(1)  type c,
  w_exit(1)          type c,
  w_repid            like sy-repid,
  w_user_specific(1) type c,
  w_callback_ucomm   type slis_formname,
  w_print            type slis_print_alv,
  w_layout           type slis_layout_alv,
  w_html_top_of_page type  slis_formname,
  w_fieldcat_alv     like line of i_fieldcat_alv,
  w_excluding        like line of i_excluding,
  w_events           like line of i_events,
  w_event_exit       like line of i_event_exit,
  w_list_comments    like line of i_list_comments.

*--------------------------------
* Global Constants
*--------------------------------
*constants:

*--------------------------------
* Selection Screen
*--------------------------------
selection-screen begin of block blk_criteria with frame title text-f01.
select-options:
  s_name for trdir-name.
selection-screen end of block blk_criteria.

selection-screen begin of block blk_params with frame title text-f02.
parameters:
  p_vari like disvariant-variant.
selection-screen skip 1.
parameters:
  p_grid radiobutton group rb01 default 'X',
  p_html as checkbox.
selection-screen skip 1.
parameters:
  p_list radiobutton group rb01.
selection-screen end of block blk_params.

*--------------------------------
* Initialization
*--------------------------------
initialization.
  perform init_variant.
  perform variant_default using p_vari.

  clear: s_name[].
  s_name-sign   = 'I'.
  s_name-option = 'CP'.
  s_name-low    = 'Z*'.
  append s_name.

*--------------------------------
* At Selection Screen PBO
*--------------------------------
at selection-screen output.

*----------------------------------
* At Selection Screen Value Request
*----------------------------------
at selection-screen on value-request for p_vari.
  perform variant_f4 using p_vari.

*--------------------------------
* At Selection Screen
*--------------------------------
at selection-screen.
  perform variant_fill.

*--------------------------------
* Start of Selection
*--------------------------------
start-of-selection.
  perform get_data.

end-of-selection.
  perform fieldcat_build.
  perform event_build.
  perform event_exit_build.
  perform exclude_build.
  perform print_build.
  perform layout_build.
  perform display_data.

*--------------------------------
* Top of Page
*--------------------------------
top-of-page.

*--------------------------------
* Top of Page During Line Sel
*--------------------------------
top-of-page during line-selection.

*--------------------------------
* At User Command
*--------------------------------
at user-command.

*--------------------------------
* At Line Selection
*--------------------------------
at line-selection.

*--------------------------------
* Macros
*--------------------------------
  define skip_1.
    write: /001 sy-vline,
                at sy-linsz sy-vline.
  end-of-definition.

*----------------------------------------------------------------------
*                                 Forms
*----------------------------------------------------------------------
*&---------------------------------------------------------------------*
*&      Form  variant_f4
*&---------------------------------------------------------------------*
form variant_f4 using p_variant.

  call function 'LVC_VARIANT_F4'
       exporting
            is_variant    = w_variant
            i_save        = w_variant_save
       importing
            e_exit        = w_exit
            es_variant    = wx_variant
       exceptions
            not_found     = 1
            program_error = 2
            others        = 3.

  if sy-subrc <> 0.
    message i000(zz) with text-g01.
  endif.

  if w_exit is initial.
    w_variant-variant = wx_variant-variant.
    p_variant         = wx_variant-variant.
  endif.

endform.
*&---------------------------------------------------------------------*
*&      Form  init_variant
*&---------------------------------------------------------------------*
form init_variant.

  clear: w_variant.
  w_repid              = sy-repid.
  w_variant-report     = w_repid.
  w_variant-username   = sy-uname.
  w_variant_save       = 'A'. "All types

endform.
*&---------------------------------------------------------------------*
*&      Form  variant_default
*&---------------------------------------------------------------------*
form variant_default using p_variant.

  wx_variant = w_variant.

  if not p_variant is initial.
    wx_variant-variant = p_variant.
  endif.

  call function 'LVC_VARIANT_DEFAULT_GET'
       exporting
            i_save        = w_variant_save
       changing
            cs_variant    = wx_variant
       exceptions
            wrong_input   = 1
            not_found     = 2
            program_error = 3
            others        = 4.

  case sy-subrc.
    when 0.
      p_variant = wx_variant-variant.
    when 2.
      clear: p_variant.
  endcase.

endform.
*&---------------------------------------------------------------------*
*&      Form  variant_fill
*&---------------------------------------------------------------------*
form variant_fill.

  clear: w_variant.

  if p_vari is initial.
    w_variant-variant = 'STANDARD'.
    w_variant-report  = w_repid.
  else.

    w_variant-variant = p_vari.
    w_variant-report  = w_repid.

    call function 'LVC_VARIANT_EXISTENCE_CHECK'
         exporting
              i_save     = w_variant_save
         changing
              cs_variant = w_variant
         exceptions
              others     = 01.
    if sy-subrc ne 0.
      message i000(zz) with text-g02.
    endif.
  endif.

endform.
*&---------------------------------------------------------------------*
*&      Form  fieldcat_build
*&---------------------------------------------------------------------*
form fieldcat_build.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
       exporting
            i_program_name     = w_repid
*           i_structure_name   = 'TRDIR'
            i_internal_tabname = 'I_DATA'
            i_inclname         = w_repid
       changing
            ct_fieldcat        = i_fieldcat_alv.

* Modify displayed fields
  loop at i_fieldcat_alv into w_fieldcat_alv.
    case w_fieldcat_alv-fieldname.
      when 'NAME'.
        w_fieldcat_alv-hotspot   = 'X'.
      when 'MYFIELD'.
        w_fieldcat_alv-checkbox  = 'X'.
        w_fieldcat_alv-seltext_s = 'MyChkBox'.
      when others.
    endcase.

    modify i_fieldcat_alv from w_fieldcat_alv.
  endloop.

endform.
*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
form display_data.

  w_callback_ucomm   = 'CALLBACK_UCOMM'.

  case 'X'.
    when p_grid.
      if p_html = 'X'.
        w_html_top_of_page = 'HTML_TOP_OF_PAGE'.
      endif.

      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
*               i_background_id             = 'SIWB_WALLPAPER'
                i_background_id             = 'SIWB_WALLPAPER'
                i_callback_program          = w_repid
                i_callback_html_top_of_page = w_html_top_of_page
*               i_structure_name            = 'TRDIR'
                i_default                   = 'X'
                i_save                      = 'A'
                is_variant                  = w_variant
                is_layout                   = w_layout
                i_callback_user_command     = w_callback_ucomm
                it_fieldcat                 = i_fieldcat_alv
                it_events                   = i_events
                it_event_exit               = i_event_exit
                it_excluding                = i_excluding
                is_print                    = w_print
*               i_screen_start_column       = 1
*               i_screen_start_line         = 1
*               i_screen_end_column         = 70
*               i_screen_end_line           = 30
           tables
                t_outtab                    = i_data.

    when p_list.
      call function 'REUSE_ALV_LIST_DISPLAY'
           exporting
                i_background_id         = 'ALV_BACKGROUND'
                i_callback_program      = w_repid
                i_default               = 'X'
                i_save                  = 'A'
                is_variant              = w_variant
                is_layout               = w_layout
                i_callback_user_command = w_callback_ucomm
                it_fieldcat             = i_fieldcat_alv
                it_events               = i_events
                it_event_exit           = i_event_exit
                is_print                = w_print
           tables
                t_outtab                = i_data.
  endcase.

endform.
*---------------------------------------------------------------------*
*       FORM user_command                                             *
*---------------------------------------------------------------------*
form callback_ucomm  using r_ucomm like sy-ucomm
                           rs_selfield type slis_selfield.

  message i000(zz) with r_ucomm.

  case r_ucomm.
    when '&IC1'.
      set parameter id 'RID' field rs_selfield-value.
      call transaction 'SE38'.
    when others.
  endcase.

endform.
*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
form get_data.

  select * up to 15 rows from trdir
         into corresponding fields of table i_data
         where name in s_name.

endform.
*---------------------------------------------------------------------*
*       FORM ALV_TOP_OF_PAGE                                          *
*---------------------------------------------------------------------*
form alv_top_of_page.

  clear: i_list_comments[].

  w_list_comments-typ  = 'H'. "H=Header, S=Selection, A=Action
  w_list_comments-key  = ''.
  w_list_comments-info = 'Info 1'.
  append w_list_comments to i_list_comments.

  w_list_comments-typ  = 'A'. " H = Header, S = Selection, A = Action
  w_list_comments-key  = ''.
  w_list_comments-info = 'Begin of list'.
  append w_list_comments to i_list_comments.

  call function 'REUSE_ALV_COMMENTARY_WRITE'
       exporting
            i_logo             = 'ENJOYSAP_LOGO'
            it_list_commentary = i_list_comments.

endform.
*&---------------------------------------------------------------------*
*&      Form  event_build
*&---------------------------------------------------------------------*
form event_build.

  call function 'REUSE_ALV_EVENTS_GET'
       exporting
            i_list_type = 0
       importing
            et_events   = i_events.

  read table i_events
       with key name = slis_ev_top_of_page
       into w_events.
  if sy-subrc = 0.
    move 'ALV_TOP_OF_PAGE' to w_events-form.
    modify i_events from w_events index sy-tabix.
  endif.

  read table i_events
       with key name = slis_ev_end_of_list
       into w_events.
  if sy-subrc = 0.
    move 'ALV_END_OF_LIST' to w_events-form.
    modify i_events from w_events index sy-tabix.
  endif.

  read table i_events
       with key name = slis_ev_end_of_page
       into w_events.
  if sy-subrc = 0.
    move 'ALV_END_OF_PAGE' to w_events-form.
    modify i_events from w_events index sy-tabix.
  endif.

endform.
*---------------------------------------------------------------------*
*       FORM alv_end_of_list                                          *
*---------------------------------------------------------------------*
form alv_end_of_list.

  clear: i_list_comments[].

  w_list_comments-typ = 'A'. "H = Header, S = Selection, A = Action
  w_list_comments-key = ''.
  w_list_comments-info = 'End of list'.
  append w_list_comments to i_list_comments.

  call function 'REUSE_ALV_COMMENTARY_WRITE'
       exporting
            it_list_commentary = i_list_comments
            i_logo             = 'ZMYOBJECTKEY'
            i_end_of_list_grid = 'X'.

endform.
*---------------------------------------------------------------------*
*       FORM alv_end_of_page                                          *
*---------------------------------------------------------------------*
form alv_end_of_page.

endform.
*&---------------------------------------------------------------------*
*&      Form  print_build
*&---------------------------------------------------------------------*
form print_build.

  w_print-no_print_listinfos = 'X'.

endform.
*&---------------------------------------------------------------------*
*&      Form  layout_build
*&---------------------------------------------------------------------*
form layout_build.

  w_layout-zebra                = 'X'.
  w_layout-no_vline             = 'X'.
  w_layout-colwidth_optimize    = 'X'.
  w_layout-detail_popup         = 'X'.
  w_layout-detail_initial_lines = 'X'.
  w_layout-detail_titlebar      = 'Detail Title Bar'.

endform.
*&---------------------------------------------------------------------*
*&      Form  event_exit_build
*&---------------------------------------------------------------------*
form event_exit_build.

  clear: i_event_exit[].

* Pick
  w_event_exit-ucomm  = '&ETA'.
  w_event_exit-before = ' '.
  w_event_exit-after  = 'X'.
  append w_event_exit to i_event_exit.

endform.
*---------------------------------------------------------------------*
*       FORM HTML_TOP_OF_PAGE                                         *
*---------------------------------------------------------------------*
form html_top_of_page using r_top type ref to cl_dd_document.

  data:
    text     type sdydo_text_element,
    s_table  type ref to cl_dd_table_element,
    col_key  type ref to cl_dd_area,
    col_info type ref to cl_dd_area,
    a_logo   type ref to cl_dd_area.

* Split TOP-Document
  call method r_top->vertical_split
            exporting split_area  = r_top
                      split_width = '30%'
            importing right_area  = a_logo.

* Fill TOP-Document
  call method r_top->add_text
            exporting text  = 'Example of a Heading'
            sap_style       = 'HEADING'.

  call method r_top->new_line.
  call method r_top->new_line.
  call method r_top->add_table
            exporting no_of_columns = 2
                      with_heading  = ' '
                      border        = '1'
            importing table         = s_table.

  call method s_table->add_column importing column = col_key.
  call method s_table->add_column importing column = col_info.

  text = 'A key value marked'.
  call method col_key->add_text
            exporting text         = text
                      sap_emphasis = 'Strong'.

  call method col_info->add_gap exporting width = 6.

  text = '600' .
  call method col_info->add_text
            exporting text      = text
                      sap_style = 'Key'.

  call method col_info->add_gap  exporting width = 3.

  text = 'Block brick units'.
  call method col_info->add_text exporting text  = text.

  call method s_table->new_row.

  text = 'Storage Bin'.
  call method col_key->add_text
            exporting text         = text
                      sap_emphasis = 'Strong'.

  call method col_info->add_gap exporting width = 7.

  text = 'C-A-004'.
  call method col_info->add_text exporting text = text.

  call method s_table->new_row.

  text = 'Warehouse number' .
  call method col_key->add_text
            exporting text         = text
                      sap_emphasis = 'Strong'.

  call method col_info->add_gap  exporting width = 6.

  text = '200' .
  call method col_info->add_text
            exporting text      = text
                      sap_style = 'Success'.

  call method col_info->add_gap  exporting width = 3.

  text = 'marked success'.
  call method col_info->add_text exporting text = text.

  call method s_table->new_row.

  call method r_top->new_line.
  text = 'This last line is a comment in italics.'.
  call method r_top->add_text
            exporting text         = text
                      sap_emphasis = 'EMPHASIS'.

  call method r_top->new_line.
  call method a_logo->add_picture
*           exporting picture_id = 'ZZTESTBMP'.
            exporting picture_id = 'ENJOYSAP_LOGO'.

endform.
*&---------------------------------------------------------------------*
*&      Form  exclude_build
*&---------------------------------------------------------------------*
form exclude_build.

  w_excluding = '&GRAPH'. "Graphic
  append w_excluding to i_excluding.

endform.                    " exclude_build


Original: sap4.com/modules.php?name=conteni2&pa=showpagina&pid=169
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ALV Grid / ALV Tree / ALV List All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.