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

Dropdown list in ALV



 
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: 1639

PostPosted: Thu Jan 17, 2008 1:01 pm    Post subject: Dropdown list in ALV Reply with quote

Author: Swarna S, Tata Consultancy Services

Code:
****************************************************************************
*Simple code for creating dropdown lists for columns in ALV grid output
*Author : Swarna.S.
* Published at SAPTechnical.COM
****************************************************************************REPORT zalv_dropdowns.*Type pools declarations for ALV
TYPE-POOLS : slis.*data declarations for ALV container,ALV grid, Fieldcatalogues & layout
DATA: g_grid  TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      gt_fieldcat TYPE lvc_t_fcat,
      gs_layout TYPE lvc_s_layo.*INTERNAL TABLE AND WA DECLARATIONS FOR t517 A table
DATA: gt_outtab TYPE STANDARD TABLE OF t517a INITIAL SIZE 0,
      wa_outtab TYPE t517a.*initialisation event
INITIALIZATION.*Start of selection event
START-OF-SELECTION.*Call to ALV
  CALL SCREEN 600.*On this statement double click  it takes you to the screen painter SE51.
*Create a Custom container and name it CCONT and OK code as OK_CODE.
*Save check and Activate the screen painter.
*Now a normal screen with number 600 is created which holds the ALV grid.
* PBO of the actual screen , Here we can give a title and customized menus
* Here we also call the subroutine for ALV output.
*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
*  set pf-status 'xxx'.
*  set titlebar 'MAIN100'.
* Subroutine to display the output in alv
  PERFORM alv_output.ENDMODULE.                    "pbo OUTPUT* PAI module of the screen created. In case we use an interactive ALV or
*for additional functionalities we can create OK codes and
* based on the user command we can do the coding.*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.ENDMODULE.                    "pai INPUT
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*FORM build_fieldcat.  DATA ls_fcat TYPE lvc_s_fcat.*Build the field catalogue
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'T517A'
    CHANGING
      ct_fieldcat      = gt_fieldcat.* To assign dropdown in the fieldcataogue
  LOOP AT gt_fieldcat INTO ls_fcat.    CASE ls_fcat-fieldname.      WHEN 'SLART'.
*drdn-hndl = '1' is the first list box
        ls_fcat-drdn_hndl = '1'.
        ls_fcat-outputlen = 15.
        MODIFY gt_fieldcat FROM ls_fcat.*drdn-hndl = '2' is the second list box      WHEN 'ABART'.        ls_fcat-drdn_hndl = '2'.
        ls_fcat-outputlen = 15.
        MODIFY gt_fieldcat FROM ls_fcat.    ENDCASE.  ENDLOOP.ENDFORM.                    "build_fieldcat
*&---------------------------------------------------------------------*
*&      Form  ALV_OUTPUT
*&---------------------------------------------------------------------*
FORM alv_output .*Create object for container
  CREATE OBJECT g_custom_container
         EXPORTING container_name = 'CCONT'.*create object for grid
  CREATE OBJECT g_grid
         EXPORTING i_parent = g_custom_container.* Build fieldcat and set column
*Assign a handle for the dropdown listbox.
  PERFORM build_fieldcat.*Build layout
  PERFORM build_layout.* Define a drop down table.
  PERFORM dropdown_table.*fetch values from the T517A table
  SELECT * FROM t517a INTO TABLE gt_outtab.*Display ALV output
  CALL METHOD g_grid->set_table_for_first_display
    EXPORTING
      is_layout       = gs_layout
    CHANGING
      it_fieldcatalog = gt_fieldcat
      it_outtab       = gt_outtab.ENDFORM.                               "ALV_OUTPUT*&---------------------------------------------------------------------*
*&      Form  dropdown_table
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM dropdown_table.*Declarations for drop down lists in ALV.
  DATA: lt_dropdown TYPE lvc_t_drop,
        ls_dropdown TYPE lvc_s_drop.* First SLART listbox (handle '1').
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '01 Primary school'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '1'.
  ls_dropdown-value = '02 Lower Secondary'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '1'.
  ls_dropdown-value = '03 Upper Secondary'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '04 Professional School'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '05 College'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '06 University'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = '09 Other Establishment'.
  APPEND ls_dropdown TO lt_dropdown.* Second ABART listbox (handle '2').  ls_dropdown-handle = '2'.
  ls_dropdown-value = '10 Primary School certificate'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '2'.
  ls_dropdown-value = '20 Lower secondary/Junior high'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '30 High school diploma(B-levels)'.
  APPEND ls_dropdown TO lt_dropdown.
  ls_dropdown-handle = '2'.
  ls_dropdown-value = '31 Vocational'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '32 Matriculation'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '40 Specialist vocational certificate'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '50 College degree Level1'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '51 College degree Level2'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '52 Masters degree'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '60 Univ Degree level1'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '61 Bachelors degree'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '62 Masters degree'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '63 Licenciate'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '64 Doctors Degree Ph.D'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '89 None'.
  APPEND ls_dropdown TO lt_dropdown.  ls_dropdown-handle = '2'.
  ls_dropdown-value = '90 Unknown'.
  APPEND ls_dropdown TO lt_dropdown.*method to display the dropdown in ALV
  CALL METHOD g_grid->set_drop_down_table
    EXPORTING
      it_drop_down = lt_dropdown.ENDFORM.                               " dropdown_table
*&---------------------------------------------------------------------*
*&      Form  build_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*layout for ALV output
FORM build_layout .  gs_layout-cwidth_opt = 'X'.
  gs_layout-grid_title = 'ALV DROPDOWN LISTS'.
  gs_layout-no_toolbar = 'X'.ENDFORM.                    " build_layout
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.