Example of lights in ALV LIST

Can you please provide me with an example to use Traffic lights in ALV list display?
Thanks,
Amit

Hi,
Description : Pick Status Report                                    
This is an ALV report using the heirarchical ALV list display. The  
report selects all deliveries that fulfil the selection criteria    
and displays a summary of all items in that delivery with reference 
to certain statuses: overall status, goods issue status, transfer   
order status, load to pallet status, pallet count status, loaded to 
van status, van manifest printed status and end of day manifest     
printed status. These statuses have been defined by the business.   
There is extra functionality required to trigger printing of the van
and end of day manifests from this report, and to set the loading   
end status of a shipment if the last handling unit of a particular  
shipment has been loaded onto a van for which the van manifest has  
been triggered.                                                     
REPORT  zwmr_pick_status_report NO STANDARD PAGE HEADING
                                MESSAGE-ID zw.
Type Pools                                                          
TYPE-POOLS: icon, slis.
Tables                                                              
TABLES: tvst,
        likp,
        t30b,
        vekp,
*{   INSERT         UKMK900355                                        4
        zhu_to_link,                                        "AS03
*}   INSERT
        zpallettr,
        vttk,                                               "MB01
        zvantr.
Types                                                               
TYPES:
  BEGIN OF ty_data,
     lgtor       LIKE likp-lgtor,             " door
     vbeln       LIKE likp-vbeln,             " delivery
     wbstk       LIKE vbuk-wbstk,             " Goods movement status
     kostk       LIKE vbuk-kostk,             " Picking status
     posnr       LIKE lips-posnr,             " item
     route       LIKE likp-route,             " route
     wadat       LIKE likp-wadat,             " goods issue date
     lvsta       LIKE vbup-lvsta,             " warehouse status
     packvorschr LIKE vekp-packvorschr,       " pack mnemonic
     exidv       LIKE vekp-exidv,             " handling unit
     zpallet_no(10),  "like zpallettr-zpallet_no,   " pallet no
     zdep_point  LIKE zpallettr-zdep_point,   "Departur Point "Jvdm01
     zcount_check LIKE zpallettr-zcount_check," count check flag
     zvan_no(10),     "like zvantr-zvan_no,         " van no
     zvan_print  LIKE zvantr-zvan_print,      " van manifest print
     tknum       LIKE vttk-tknum,             " Shipment No  "ANV 11523
     zeod_print  LIKE zvantr-zeod_print,      " eod manifest print
     zzpackclass LIKE vekp-zzpackclass,       " package class
     zzti        LIKE vekp-zzti,              " T.I. value
     vstel       LIKE likp-vstel,             "Shipping point RM050906
     anzpk       TYPE znopack,            "No of packages in dlv MB01+
  END OF ty_data.
TYPES:BEGIN OF x_likp ,
      vbeln LIKE likp-vbeln,
      vstel LIKE likp-vstel,                                "RM050906
      lgtor LIKE likp-lgtor,
      zzroute2lgtor LIKE likp-zzroute2lgtor,                "MB01
      route LIKE likp-route,
      wadat LIKE likp-wadat,
      zz2route LIKE likp-zz2route,                          "MB01+
      zzexproute LIKE likp-zzexproute,                      "MB01+
      zzroute2 LIKE likp-zzroute2,                          "MB01+
      anzpk    LIKE likp-anzpk,
      END OF x_likp.
TYPES: BEGIN OF x_vbuk,
       vbeln TYPE vbuk-vbeln,
       wbstk TYPE vbuk-wbstk,             " Goods movement status
       kostk TYPE vbuk-kostk,             " Picking status
       END OF x_vbuk.
TYPES: BEGIN OF x_lips,
      vbeln TYPE lips-vbeln,             " delivery
      posnr TYPE lips-posnr,             " item
      pstyv TYPE lips-pstyv,
      matnr TYPE lips-matnr,
      charg TYPE lips-charg,
      END OF x_lips.
TYPES: BEGIN OF x_vbup,
       vbeln TYPE vbup-vbeln,             " delivery
       posnr TYPE vbup-posnr,             " item
       lvsta TYPE vbup-lvsta,             " warehouse status
       END OF x_vbup.
TYPES: BEGIN OF x_vepo,
       venum TYPE vepo-venum,             "Internal Handling Unit
Number
       vepos TYPE vepo-vepos,             "Handling Unit Item
       vbeln TYPE vepo-vbeln,             " delivery
       posnr TYPE vepo-posnr,             " item
       exidv TYPE vekp-exidv,
       END OF x_vepo.
TYPES: BEGIN OF x_vepo1,
       venum TYPE vekp-venum,             "Internal Handling Unit
Number
       exidv TYPE vekp-exidv,
       END OF x_vepo1.
Start of changes by ANV SR#11523
TYPES: BEGIN OF x_vttp,
         tknum TYPE tknum,                  " Shipment No
         tpnum TYPE tpnum,                  " Item No
         vbeln TYPE vbup-vbeln,             " delivery
         laufk LIKE vttk-laufk,             " leg indicator MB01+
       END OF x_vttp.
End of changes by ANV SR#11523
Data                                                                
RANGES: r_del   FOR likp-vbeln,
        r_lgtor FOR likp-lgtor.
RANGES: r_vanno FOR zvantr-zvan_no,
        r_palno FOR zpallettr-zpallet_no.
DATA: BEGIN OF number_range OCCURS 0,
         mark(1),
         id(3),
         num(10) TYPE n,
         desc LIKE zpalletmd-zdesc,
      END OF number_range.
DATA: t_disp_tab  TYPE STANDARD TABLE OF zpickdisp,
      t_data_tab  TYPE ty_data  OCCURS 0 WITH HEADER LINE,
      it_likp TYPE x_likp OCCURS 0 WITH HEADER LINE,         "SUM
      it_vbuk TYPE x_vbuk OCCURS 0 WITH HEADER LINE,         "SUM
      it_lips TYPE x_lips OCCURS 0 WITH HEADER LINE,         "SUM
      it_vbup TYPE x_vbup OCCURS 0 WITH HEADER LINE,         "SUM
      it_vepo TYPE x_vepo OCCURS 0 WITH HEADER LINE,         "SUM
      it_vepo2 TYPE x_vepo OCCURS 0 WITH HEADER LINE,        "SUM
*{   INSERT         UKMK900355                                        3
      t_vepo_low TYPE x_vepo OCCURS 0 WITH HEADER LINE,     " AS01
*}   INSERT
      it_vepo1 TYPE x_vepo1 OCCURS 0 WITH HEADER LINE,       "SUM
      it_vttp TYPE x_vttp OCCURS 0 WITH HEADER LINE, "ANV SR#11523
t_disp_head TYPE STANDARD TABLE OF zpickhead.
DATA wa_item_tab TYPE zpickdisp OCCURS 0 WITH HEADER LINE.
"ANV SR#11113
DATA: w_numrnge LIKE number_range,
      w_number(10) TYPE n.
DATA: t_likp     LIKE likp      OCCURS 0 WITH HEADER LINE,
      t_lips     LIKE lips      OCCURS 0 WITH HEADER LINE,
      t_vbuk     LIKE vbuk      OCCURS 0 WITH HEADER LINE,
      t_vbup     LIKE vbup      OCCURS 0 WITH HEADER LINE,
      t_vepo     LIKE vepo      OCCURS 0 WITH HEADER LINE,
      t_vekp     LIKE vekp      OCCURS 0 WITH HEADER LINE,
      t_vantr    LIKE zvantr    OCCURS 0 WITH HEADER LINE,
      t_pallettr LIKE zpallettr OCCURS 0 WITH HEADER LINE,
     w_likp     like likp,
     w_lips     LIKE lips,
     w_vbuk     LIKE vbuk,
     w_vbup     LIKE vbup,
     w_vepo     LIKE vepo,
      w_vekp     LIKE vekp,
      w_vepo     TYPE x_vepo1,
      w_vbup     TYPE x_vbup,
      w_vttp     TYPE x_vttp,    " ANV SR#11523
      w_lips     TYPE x_lips,
      w_vbuk     TYPE x_vbuk,
      w_likp     TYPE x_likp,                               "MB01-+
      w_tplst    LIKE vttk-tplst.                           "MB01+
DATA: s_variant  LIKE disvariant,                           "MB01+
      def_variant LIKE disvariant.
ALV DATA *****
DATA:
     g_grid             TYPE REF TO cl_gui_alv_grid,
     g_sort             TYPE slis_t_sortinfo_alv,
     g_custom_container TYPE REF TO cl_gui_custom_container,
     g_layout           TYPE slis_layout_alv,
     gt_fieldcat        TYPE slis_t_fieldcat_alv,
     t_fldcat           LIKE LINE OF gt_fieldcat,
     g_keyinfo          TYPE slis_keyinfo_alv,
     gt_events          TYPE slis_t_event,
     gs_event           TYPE slis_alv_event,
     w_sy_repid         LIKE sy-repid.
DATA: BEGIN OF seltab OCCURS 0.
        INCLUDE STRUCTURE rsparams.
DATA: END OF seltab.
SYSTEM GENERATED TABLE CONTROL DATA ********
DECLARATION OF TABLECONTROL 'TC_TABCON' ITSELF
CONTROLS: tc_tabcon TYPE TABLEVIEW USING SCREEN 0100.
LINES OF TABLECONTROL 'TC_TABCON'
DATA:     g_tc_tabcon_lines  LIKE sy-loopc.
DATA:     ok_code LIKE sy-ucomm.
Constants                                                           
CONSTANTS: c_data_class LIKE klah-class VALUE 'DG_DATA',
           c_mat_class  LIKE rmclf-klart VALUE '001',
           c_pack       LIKE lips-mtart VALUE 'VERP',
           c_a(1)            VALUE 'A',
           c_b(1)            VALUE 'B',
           c_c(1)            VALUE 'C',
           c_yes(1)          VALUE 'X',
           c_no(1)           VALUE ' '.
Selection screen                                                    
standard report select options block
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-002.
SELECT-OPTIONS:
  s_wadat FOR likp-wadat NO-EXTENSION OBLIGATORY.  " Goods Issue Date
*parameters:                                           "TR01-
p_vstel like tvst-vstel obligatory. " Shipping Point "TR01-
SELECT-OPTIONS:                                             "TR01+
  p_vstel FOR tvst-vstel.            " Shipping Point  "TR01+
SELECT-OPTIONS:
  s_lfart FOR likp-lfart,            " Delivery type
  s_lgtor FOR t30b-lgtor,            " Door selection
  s_exidv FOR vekp-exidv,            " Handling Unit
  s_vbeln FOR likp-vbeln,            " Delivery            "MB01-+
  s_lfdat FOR likp-lfdat.            " Delivery date
PARAMETERS:
  p_exdata AS CHECKBOX.              " Show extra columns flag
SELECTION-SCREEN END OF BLOCK a.
van/pallet specific select options block
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-001.
SELECT-OPTIONS:
  s_palno FOR zpallettr-zpallet_no, " no-extension,
  s_vanno FOR zvantr-zvan_no.       " no-extension.
SELECT-OPTIONS:
  s_deppnt FOR zpallettr-zdep_point,                        "Jvdm01
  s_tplst  FOR vttk-tplst.                                  "MB01
SELECTION-SCREEN END OF BLOCK b.
MB01 - START - Display variant
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-019.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK c.
MB01 - END
Value Request Events                                                
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_palno-low.
  CLEAR: number_range, w_number .
  REFRESH number_range.
select numbers and display pop up screen for selection
  PERFORM select_pal_nos.
  s_palno-low = w_number.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_palno-high.
  CLEAR: number_range, w_number .
  REFRESH number_range.
select numbers and display pop up screen for selection
  PERFORM select_pal_nos.
  s_palno-high = w_number.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vanno-low.
  CLEAR: number_range, w_number .
  REFRESH number_range.
select numbers and display pop up screen for selection
  PERFORM select_van_nos.
  s_vanno-low = w_number.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vanno-high.
  CLEAR: number_range, w_number .
  REFRESH number_range.
select numbers and display pop up screen for selection
  PERFORM select_van_nos.
  s_vanno-high = w_number.
MB01 - START - display variant
F4-Help for variant
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
  PERFORM f4_for_variant.
MB01 - END
At Selection Screen                                                 
AT SELECTION-SCREEN.
  PERFORM validate_selections.
Initialization                                                      
INITIALIZATION.
MB01 - START INSERT
1.  Transportation planning point
Import transportation planning point from user parameters and
populate
select option.
  GET PARAMETER ID 'TDP' FIELD w_tplst.
  MOVE: 'I'      TO s_tplst-sign,
         'EQ'     TO s_tplst-option,
         w_tplst TO s_tplst-low.
  APPEND s_tplst.
2.  Display variant
  CLEAR s_variant.
  s_variant-report = sy-repid.
Get default variant
s_def_variante = s_variant.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            i_save     = 'A'
       CHANGING
            cs_variant = s_variant
       EXCEPTIONS
            not_found  = 2.
  IF sy-subrc = 0.
    p_vari = s_variant-variant.
  ENDIF.
MB01 - END INSERT
Start of selection                                                  
START-OF-SELECTION.
clear all data tables
  CLEAR: t_likp,
        it_likp,
         t_lips,
         t_vbuk,
         t_vbup,
         t_vepo,
         t_vantr,
         t_pallettr,
         w_likp,
         w_lips,
         w_vbuk,
         w_vbup,
         w_vepo,
         w_vekp.
  REFRESH: t_likp,
          it_likp,
           t_lips,
           t_vbuk,
           t_vbup,
           t_vepo,
           t_vantr,
           t_pallettr.
select data for ALV
due to different input parameters being used, to streamline the data
selection process, different selection methods are required
  IF NOT s_vanno IS INITIAL
  OR NOT s_palno IS INITIAL
  OR NOT s_deppnt IS INITIAL.                               "Jvdm01
  if selecting by van/pallet number, need to select the data from the
  handling unit upwards to delivery
    PERFORM select_data_up.
  ELSE.
  otherwise the data can be selected from the delivery downwards
    PERFORM select_data_down.
  ENDIF.
End of selection                                                    
END-OF-SELECTION.
call hierarchical ALV display function module
  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
       EXPORTING
            i_callback_program       = 'ZWMR_PICK_STATUS_REPORT'
            i_callback_pf_status_set = 'SET_STATUS'
            i_callback_user_command =
               'USER_COMMAND' "custom gui status form
            is_layout                = g_layout  "user command form
            it_fieldcat              = gt_fieldcat
            it_sort                  = g_sort
            i_save                   = 'X'                  "MB01+
            is_variant               = s_variant
            it_events                = gt_events
            i_tabname_header         = 't_disp_head'
            i_tabname_item           = 't_disp_tab'
            i_structure_name_header  = 'ZPICKHEAD'
            i_structure_name_item    = 'ZPICKDISP'
            is_keyinfo               = g_keyinfo
       TABLES
            t_outtab_header          = t_disp_head
            t_outtab_item            = t_disp_tab.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
                            FORMS                                   
Includes inserted by Screen Painter Wizard. DO NOT CHANGE THIS LINE!
INCLUDE zwmr_pick_o01.
  INCLUDE zwmr_pick_status_reporto01 .
INCLUDE zwmr_pick_i01.
  INCLUDE zwmr_pick_status_reporti01 .
INCLUDE zwmr_pick_f01.
  INCLUDE zwmr_pick_status_reportf01 .
*&      Form  select_pal_nos
      select pallet numbers for search help
FORM select_pal_nos.
  DATA: BEGIN OF t_palno OCCURS 0,
          zpallet_no LIKE zpallettr-zpallet_no,
        END OF t_palno.
select all available pallet numbers
  SELECT DISTINCT zpallet_no FROM zpallettr
                  INTO CORRESPONDING FIELDS OF TABLE t_palno.
  LOOP AT t_palno.
  get pallet id
    SELECT SINGLE zpallet_id FROM zpallettr
                  INTO number_range-id
                  WHERE zpallet_no = t_palno-zpallet_no.
  get pallet description
    SELECT SINGLE zdesc FROM zpalletmd
                  INTO number_range-desc
                  WHERE zpallet_id = number_range-id.
    number_range-num = t_palno-zpallet_no.
  append to search help table
    APPEND number_range.
  ENDLOOP.
call pop up dialog box
  CALL SCREEN 0100 STARTING AT 5 5.
ENDFORM.                    " select_pal_nos
*&      Form  select_van_nos
      select van numbers for search help
FORM select_van_nos.
  DATA: BEGIN OF t_vanno OCCURS 0,
          zvan_no LIKE zvantr-zvan_no,
        END OF t_vanno.
select available van numbers
  SELECT DISTINCT zvan_no FROM zvantr
                  INTO CORRESPONDING FIELDS OF TABLE t_vanno.
  LOOP AT t_vanno.
  select van id
    SELECT SINGLE zvan_id FROM zvantr
                  INTO number_range-id
                  WHERE zvan_no = t_vanno-zvan_no.
  select van description (maintained in pallet tables)
    SELECT SINGLE zdesc FROM zpalletmd
                  INTO number_range-desc
                  WHERE zpallet_id = number_range-id.
    number_range-num = t_vanno-zvan_no.
  append to search help table
    APPEND number_range.
  ENDLOOP.
call pop up dialog box
  CALL SCREEN 0100 STARTING AT 5 5.
ENDFORM.                    " select_van_nos
*&      Form  select_data_down
      select data if selecting from delivery down
FORM select_data_down.
select all deliveries from LIKP that fulfill selection criteria
Start SU01 optmization changes
SELECT vbeln vstel lgtor route wadat                      "RM050906
  SELECT vbeln vstel lgtor route wadat
         zzroute2lgtor zz2route zzexproute zzroute2 anzpk      "MB01-+
           FROM likp INTO CORRESPONDING FIELDS OF TABLE it_likp"MB01-+
                     WHERE vbeln IN s_vbeln
                     AND   vstel IN p_vstel
                     AND   lfart IN s_lfart
                     AND   wadat IN s_wadat
                     AND   lfdat IN s_lfdat                    "MB01+
                     AND
             ( lgtor IN s_lgtor OR zzroute2lgtor IN s_lgtor ) ."MB01+
  IF sy-subrc NE 0.
  no data found
    MESSAGE i007.
    EXIT.
  ENDIF.
IF NOT t_likp[] IS INITIAL.                             "SUM
  IF NOT it_likp[] IS INITIAL.
    SORT it_likp BY vbeln.                                  "SUM
  select sales document headers from VBUK
    SELECT vbeln wbstk kostk
                FROM vbuk INTO TABLE it_vbuk
                 FOR ALL ENTRIES IN it_likp                "SUM
                 WHERE vbeln EQ it_likp-vbeln.             "SUM
    SORT it_vbuk BY vbeln.
  select all relevant delivery items from LIPS
    SELECT vbeln posnr pstyv matnr charg
                FROM lips INTO TABLE it_lips
                  FOR ALL ENTRIES IN it_likp
                  WHERE vbeln EQ it_likp-vbeln
                  AND   pckpf NE 'B'           "cannot be packed  "AS05
                AND   pstyv NE 'ZPAC'                           "AS05
                AND   pstyv NE 'ZGDP'                    "TR02+ "AS05
                  AND   lfimg GT 0.                         "TR01+
  ENDIF.
  IF NOT it_lips[] IS INITIAL.
  select all sales document line items from VBUP
    SORT it_lips BY vbeln posnr.                      "SUM
    SELECT vbeln posnr lvsta
                FROM vbup INTO TABLE it_vbup
                  FOR ALL ENTRIES IN it_lips
                  WHERE vbeln EQ it_lips-vbeln
                  AND   posnr = it_lips-posnr.
    SORT it_vbup BY vbeln posnr.
  select corresponding handling unit ID's (venum)
TR03 Replace
start
   select * from vepo appending corresponding fields of table t_vepo
                 for all entries in t_lips
                 where vbeln = t_lips-vbeln
                 and   posnr = t_lips-posnr
                 and   matnr = t_lips-matnr
                 and   charg = t_lips-charg.
   SELECT vepoVENUM vepoVEPOS vepovbeln vepoposnr
                 FROM vepo as vepo
                 INNER JOIN vekp as vekp ON vepovenum = vekpvenum
                 APPENDING corresponding fields of table it_vepo
                 FOR ALL ENTRIES IN it_lips
                 WHERE vepo~vbeln = it_lips-vbeln
                 AND   vepo~posnr = it_lips-posnr
                 AND   vepo~matnr = it_lips-matnr
                 AND   vepo~charg = it_lips-charg
                 AND   vekp~exidv IN s_exidv.
    SELECT venum vepos vbeln posnr
                  FROM vepo INTO TABLE it_vepo2
                  FOR ALL ENTRIES IN it_lips
                  WHERE vbeln = it_lips-vbeln
                  AND   posnr = it_lips-posnr
                  AND   matnr = it_lips-matnr
                  AND   charg = it_lips-charg.
    SORT it_vepo2 BY venum vepos.
*{   INSERT         UKMK900355                                        1
  Ice-multis: replace lower-level HUs with highest level       " AS01
    PERFORM replace_highest_hu.                             " AS01
*}   INSERT
Start of changes by ANV SR#11523
MB01 - extract shipment header as well to populate leg indicator
Therefore, join vttp with vttk
Limit as well by transportation planning point
    SELECT vttptknum vttptpnum vttpvbeln vttklaufk
                  FROM vttp INNER JOIN vttk
                  ON vttptknum = vttktknum
                  INTO  TABLE it_vttp
                  FOR ALL ENTRIES IN it_lips
                  WHERE vttp~vbeln = it_lips-vbeln
                  AND   vttk~tplst IN s_tplst.
MB01 - END
End of changes by ANV SR#11523
    IF NOT it_vepo2[] IS INITIAL.
      SELECT venum exidv
                    FROM vekp INTO TABLE it_vepo1
                    FOR ALL ENTRIES IN it_vepo2
                    WHERE venum = it_vepo2-venum
                    AND   exidv IN s_exidv.
    ENDIF.
    SORT it_vepo1 BY venum.
    CLEAR: w_vepo, it_vepo.
    LOOP AT it_vepo1.
      READ TABLE it_vepo2 WITH KEY venum = it_vepo1-venum.
      IF sy-subrc = 0.
        it_vepo2-exidv = it_vepo1-exidv.
        MODIFY it_vepo2 TRANSPORTING exidv
           WHERE venum = it_vepo1-venum .
      ENDIF.
    ENDLOOP.
    DELETE it_vepo2 WHERE exidv IS initial.
    it_vepo[] = it_vepo2[].
TR03 Replace end
  ENDIF.
build process table
  PERFORM move_to_table.
ENDFORM.   "select_data_down
*&      Form  select_data_up
      select data if selecting from van/pallet up
FORM select_data_up.
  IF NOT s_vanno IS INITIAL.
  if van then select van numbers and hence pallet numbers
    SELECT * FROM zvantr INTO TABLE t_vantr
                          WHERE zvan_no IN s_vanno.
                        and   vstel   eq p_vstel."TR01-
    IF NOT t_vantr[] IS INITIAL.
      SORT t_vantr BY zvan_id zvan_no vstel zpallet_no.  "SUM
      SELECT * FROM zpallettr INTO TABLE t_pallettr
                              FOR ALL ENTRIES IN t_vantr
                              WHERE zpallet_no EQ t_vantr-zpallet_no
                                AND zdep_point IN s_deppnt. "Jvdm01
                            and   vstel      eq p_vstel."TR01-
    ENDIF.
  ELSE.
  otherwise can get pallet numbers directly
    SELECT * FROM zpallettr INTO TABLE t_pallettr
                            WHERE zpallet_no IN s_palno
                              AND zdep_point IN s_deppnt.   "Jvdm01
                          and   vstel      eq p_vstel."TR01-
  ENDIF.
  IF NOT t_pallettr[] IS INITIAL.
  from the pallet nos. we can select the handling units
    SORT t_pallettr BY zpallet_id zpallet_no vstel exidv.   "SUM
    SELECT * FROM vekp INTO TABLE t_vekp
                       FOR ALL ENTRIES IN t_pallettr
                       WHERE exidv EQ t_pallettr-exidv
                       AND   exidv NE space
                       AND   exidv IN s_exidv               "TR03+
                       AND ( exida = 'E'                    "TR01+
                       OR    exida = 'F' ).                 "TR01+
  ENDIF.
  SORT t_vekp BY venum.                                    "SUM
  IF NOT t_vekp[] IS INITIAL.
  build vbeln range from t_vekp.
    LOOP AT t_vekp.
      r_del-sign = 'I'.
      r_del-option = 'EQ'.
      r_del-low = t_vekp-vpobjkey.
      APPEND r_del.
    ENDLOOP.
  select all deliveries from LIKP that correspond to HU's
   SELECT * FROM likp INTO TABLE t_likp
                      WHERE vbeln IN r_del
                      AND   wadat IN s_wadat
                      AND   lfart IN s_lfart.
ENDIF.
MB01- START
   SELECT vbeln lgtor route wadat
                FROM likp INTO TABLE it_likp
                    WHERE vbeln IN r_del
                    AND   wadat IN s_wadat
                    AND   lfart IN s_lfart.
    SELECT vbeln vstel lgtor route wadat
           zzroute2lgtor zz2route zzexproute zzroute2 anzpk "MB01-+
             FROM likp INTO CORRESPONDING FIELDS OF TABLE it_likp
                       WHERE vbeln IN r_del
                       AND   lfart IN s_lfart
                       AND   wadat IN s_wadat               "MB01-+
                       AND   lfdat IN s_lfdat.              "MB01+
MB01- END
  ENDIF.
  IF NOT it_likp[] IS INITIAL.
    SORT it_likp BY vbeln .                                   "SUM
  select sales document headers from VBUK
   SELECT * FROM vbuk INTO TABLE t_vbuk
                 FOR ALL ENTRIES IN t_likp
                 WHERE vbeln EQ t_likp-vbeln.
    SELECT vbeln wbstk kostk
              FROM vbuk INTO TABLE it_vbuk
                 FOR ALL ENTRIES IN it_likp
                 WHERE vbeln EQ it_likp-vbeln.
    SORT it_vbuk BY vbeln.                                   "SUM
  select all relevant delivery items from LIPS
   SELECT * FROM lips INTO TABLE t_lips
                 FOR ALL ENTRIES IN t_likp
                 WHERE vbeln EQ t_likp-vbeln
                 AND   pstyv NE 'ZPAC'
                 AND   pstyv NE 'ZGDP'                     "TR02+
                 AND   lfimg GT 0.                         "TR01+
    SELECT vbeln posnr pstyv matnr charg
                      FROM lips INTO TABLE it_lips
                      FOR ALL ENTRIES IN it_likp
                      WHERE vbeln EQ it_likp-vbeln
                      AND   pckpf NE 'B'       "cannot be packed  "AS05
                    AND   pstyv NE 'ZPAC'                       "AS05
                    AND   pstyv NE 'ZGDP'                "TR02+ "AS05
                      AND   lfimg GT 0.                     "TR01+
  ENDIF.
  IF NOT it_lips[] IS INITIAL.
    SORT it_lips BY vbeln posnr.                              "SUM
  select all sales document line items from VBUP
   SELECT * FROM vbup INTO TABLE t_vbup
                 FOR ALL ENTRIES IN t_lips
                 WHERE vbeln EQ t_lips-vbeln
                 AND   posnr = t_lips-posnr.
Start of changes by ANV SR#11523
MB01 - START
join vttp with vttk to obtain leg indicator
   SELECT tknum tpnum vbeln
                 FROM vttp INTO TABLE it_vttp
                 FOR ALL ENTRIES IN it_lips
                 WHERE vbeln = it_lips-vbeln.
    SELECT vttptknum vttptpnum vttpvbeln vttklaufk
                  FROM vttp INNER JOIN vttk
                  ON vttptknum = vttktknum
                  INTO  TABLE it_vttp
                  FOR ALL ENTRIES IN it_lips
                  WHERE vttp~vbeln = it_lips-vbeln
                  AND   vttk~tplst IN s_tplst.
MB01 - END
End of changes by ANV SR#11523
    SELECT vbeln posnr lvsta
                FROM vbup INTO TABLE it_vbup
                FOR ALL ENTRIES IN it_lips
                  WHERE vbeln EQ it_lips-vbeln
                  AND   posnr = it_lips-posnr.
    SORT t_vbup BY vbeln posnr.                                "SUM
  select corresponding handling unit ID's (venum)
   SELECT * FROM vepo APPENDING CORRESPONDING FIELDS OF TABLE t_vepo
                 FOR ALL ENTRIES IN t_lips
                 WHERE vbeln = t_lips-vbeln
                 AND   posnr = t_lips-posnr
                 AND   matnr = t_lips-matnr
                 AND   charg = t_lips-charg.
    SELECT venum vepos vbeln posnr
    FROM vepo APPENDING CORRESPONDING FIELDS OF TABLE it_vepo
                     FOR ALL ENTRIES IN it_lips
                     WHERE vbeln = it_lips-vbeln
                     AND   posnr = it_lips-posnr
                     AND   matnr = it_lips-matnr
                     AND   charg = it_lips-charg.
*{   INSERT         UKMK900355                                        1
    it_vepo2[] = it_vepo[].                                 " DS01
    PERFORM replace_highest_hu.                             " DS01
    it_vepo[] = it_vepo2[].                                 " DS01
*}   INSERT
  ENDIF.
build process table
  PERFORM move_to_table.
ENDFORM.   "select_data_up
*&      Form  move_to_table
      move data to processing table
FORM move_to_table.
  LOOP AT it_vepo.
    CLEAR t_data_tab.
  delivery lines.
    CLEAR w_lips.
    READ TABLE it_lips WITH KEY vbeln = it_vepo-vbeln
                               posnr = it_vepo-posnr
                               INTO w_lips BINARY SEARCH.     "SUM
    MOVE-CORRESPONDING w_lips TO t_data_tab.
  sales document line items
    CLEAR w_vbup.
    READ TABLE it_vbup WITH KEY vbeln = it_vepo-vbeln
                               posnr = it_vepo-posnr
                               INTO w_vbup BINARY SEARCH.     "SUM
  if w_vbup-kosta = space.                   "TR01-
    not relevant for picking
    delete t_vepo.                           "TR01-
    continue.                                "TR01-
  else.                                      "TR01-
    MOVE-CORRESPONDING w_vbup TO t_data_tab.
  endif.                                     "TR01-
  sales doc header
    CLEAR w_vbuk.
    READ TABLE it_vbuk WITH KEY vbeln = it_vepo-vbeln
                           INTO w_vbuk   BINARY SEARCH.       "SUM
    MOVE-CORRESPONDING w_vbuk TO t_data_tab.
  delivery header
    CLEAR w_likp.
    READ TABLE it_likp WITH KEY vbeln = it_vepo-vbeln
                           INTO w_likp BINARY SEARCH.         "SUM
    MOVE-CORRESPONDING w_likp TO t_data_tab.
MB01 - START
  DATA: w_routetype TYPE i. "0=non-global,1=1st route,2=2nd
route,3=both
At this point move DOOR2 if it falls within the global route scenario
and the door2 is satisfies the selection criteria for door
1.   Does delivery fall within global route scenario
    CLEAR w_routetype.
    IF  w_likp-zz2route = 'Y' .
1.a. First route - does door1 satisfy the selection criteria
      IF w_likp-lgtor IN s_lgtor.
        w_routetype = 1.
        MOVE w_likp-zzexproute TO t_data_tab-route.
1.b. Second route - does door2 satisfy the selection criteria
      ELSEIF w_likp-zzroute2lgtor IN s_lgtor.
  here we need to move door2 to lgtor
        w_routetype = 2.
        MOVE w_likp-zzroute2lgtor TO t_data_tab-lgtor.
        MOVE w_likp-zzroute2 TO t_data_tab-route.
      ENDIF.
If both routes satsify the criteria, append for 2nd leg  ***REVISIT!
      IF w_likp-lgtor IN s_lgtor AND w_likp-zzroute2lgtor IN s_lgtor.
        w_routetype = 3.
      ENDIF.
    ENDIF.
MB01 - END
Start of changes by ANV SR#11523
MB01 - If the delivery falls within the global route scenario... need
to select either preliminary shipment leg OR subsequent leg
when laufk= 1 (prelim) and linked to route1, if laufk = 2 (subseq) &
linked to route2
  Shipment Number
    SORT it_vttp BY vbeln laufk.
    CLEAR w_vttp.
    CASE w_routetype.
      WHEN 0.
        READ TABLE it_vttp WITH KEY vbeln = it_vepo-vbeln
                               INTO w_vttp BINARY SEARCH.
      WHEN 1.
        READ TABLE it_vttp WITH KEY vbeln = it_vepo-vbeln
                                    laufk  = '1'
                               INTO w_vttp BINARY SEARCH.
      WHEN 2.
        READ TABLE it_vttp WITH KEY vbeln = it_vepo-vbeln
                                    laufk  = '3'
                               INTO w_vttp BINARY SEARCH.
      WHEN 3.  "REVISIT
    ENDCASE.
    MOVE w_vttp-tknum TO t_data_tab-tknum.
MB01 - END
End of changes by ANV SR#11523
  select handling unit info using vepo entry
    CLEAR w_vekp.
    IF t_vekp[] IS INITIAL.
      SELECT SINGLE * FROM vekp INTO w_vekp
                                WHERE venum = it_vepo-venum.
    ELSE.
      READ TABLE t_vekp WITH KEY venum = it_vepo-venum
                                 INTO w_vekp  BINARY SEARCH.     "SUM
      IF sy-subrc NE 0.
        SELECT SINGLE * FROM vekp INTO w_vekp
                        WHERE venum = t_vepo-venum.
      ENDIF.
    ENDIF.
    MOVE-CORRESPONDING w_vekp TO t_data_tab.
*{   INSERT         UKMK900355                                        2
  WM status for HU                                              "AS03
    SELECT SINGLE * FROM zhu_to_link WHERE lgnum EQ w_vekp-lgnum"AS03
                                     AND   exidv EQ w_vekp-exidv."AS03
    IF  sy-subrc EQ 0.                                      "AS03
      IF zhu_to_link-zpick_comp EQ space.                   "AS03
        t_data_tab-lvsta = 'B'.                             "AS03

Similar Messages

  • How to read green light from ALV list display during BDC

    Hi,
    I am currently writing a BDC on CK11 transaction, after the user enters all the data he has to check log for any errors. The log is shown using ALV LIST DISPLAY and the errors are identified by RED lights on ALV LIST DISPLAY. At this point in BDC i have to either save or exit depending the status lights shown on the screen.
    Does anybody has any idea on how to read these lights from the screen ?
    thanks
    Udai

    Hi,
    I agree with Rich here. Never seen this done before (and I'm pretty sure you can't do it), but if someone has a funky way of doing it please share!
    Cheers,
    Pat.

  • Traffic lights in ALV list header

    how do i display traffic lights as icons in ALV list header. for example, in the code below, i want to display a green icon at the end of closed items and a red icon at the end of the open items:
                closed : 4 [green-icon]
                open   : 2  [red-icon]
    CLEAR header_alv_wa-info.
      header_alv_wa-key  = 'closed:'.
      header_alv_wa-info = gv_closed.
      header_alv_wa-typ  = 'S'.
      APPEND header_alv_wa TO headeralv.
      CLEAR header_alv_wa-info.
      header_alv_wa-typ  = 'S'.
      header_alv_wa-key  = 'open:'.
      header_alv_wa-info = gv_open.
      APPEND header_alv_wa TO headeralv.

    Hi,
    http://www.sapfans.com/forums/viewtopic.php?t=79424
    http://www.sapfans.com/forums/viewtopic.php?t=24512
    the above links will give u the code for the same..
    Regards,
    Aparna

  • Icons as light in ALV list

    hi ,
    I have one issue. After executing one transaciton the alv list will be displayed. in that list the 1st column is status field which contains the value either green light or yellow or red.
    now i have to read this column for taking which color it shows.
    this shd be done without interfering the original pgm.
    can anyone pls let me know.
    thanks and regards,
    vel

    you just need to check that what is value of
    wa_layout-lights
    if its 3 then green light then u display whatever icon do you want to.
    for better answer elaborate further

  • Need help in interactive alv list

    hi,
    i  need document and simple Example prog for interactive alv list.If anybody have it kindly help me..
    thanks in advance,
    Kavitha.

    hi,
    Jus copy and paste the following code in SE38.
    *& This is an Interactive ALV report, where on line slection we can see
    *&  the secondry list
    REPORT  ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
    MESSAGE-ID ZZ_9838                      .
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
           EBELN LIKE EKKO-EBELN,
           AEDAT LIKE EKKO-AEDAT,
           BUKRS LIKE EKKO-BUKRS,
           BSART LIKE EKKO-BSART,
           LIFNR LIKE EKKO-LIFNR,
           END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
          WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
           EBELN LIKE EKPO-EBELN,
           EBELP LIKE EKPO-EBELP,
           MATNR LIKE EKPO-MATNR,
           MENGE LIKE EKPO-MENGE,
           MEINS LIKE EKPO-MEINS,
           NETPR LIKE EKPO-NETPR,
           END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
          WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
          I_VARIANT1 TYPE DISVARIANT,
          I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
      V_REPID = SY-REPID.
      PERFORM BUILD_FIELDCATLOG.
      PERFORM EVENT_CALL.
      PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
      PERFORM DATA_RETRIEVAL.
      PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  BUILD_FIELDCATLOG
          Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'AEDAT'.
      WA_FIELDCAT-SELTEXT_M = 'DATE.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'LIFNR'.
      WA_FIELDCAT-NO_OUT    = 'X'.
      WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  EVENT_CALL
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "EVENT_CALL
    *&      Form  POPULATE_EVENT
         Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'USER_COMMAND'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
      ENDIF.
    ENDFORM.                    "POPULATE_EVENT
    *&      Form  data_retrieval
      retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
      SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM.                    "data_retrieval
    *&      Form  bUild_listheader
          text
         -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
      DATA HLINE TYPE SLIS_LISTHEADER.
      HLINE-INFO = 'this is my first alv pgm'.
      HLINE-TYP = 'H'.
    ENDFORM.                    "build_listheader
    *&      Form  display_alv_report
          text
    FORM DISPLAY_ALV_REPORT.
      V_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         I_CALLBACK_PROGRAM                = V_REPID
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
         I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_GRID_TITLE                      = I_TITLE_EKKO
         IT_FIELDCAT                       = I_FIELDCAT[]
         I_SAVE                            = 'A'
         IT_EVENTS                         = V_EVENTS
        TABLES
          T_OUTTAB                          = IT_EKKO
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "display_alv_report
    *&      Form  TOP_OF_PAGE
          text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
          PERFORM BUILD_FIELDCATLOG_EKPO.
          PERFORM EVENT_CALL_EKPO.
          PERFORM POPULATE_EVENT_EKPO.
          PERFORM DATA_RETRIEVAL_EKPO.
          PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
          PERFORM DISPLAY_ALV_EKPO.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  BUILD_FIELDCATLOG_EKPO
          text
    FORM BUILD_FIELDCATLOG_EKPO.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELP'.
      WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MENGE'.
      WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MEINS'.
      WA_FIELDCAT-SELTEXT_M = 'UOM'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'NETPR'.
      WA_FIELDCAT-SELTEXT_M = 'PRICE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG_EKPO
    *&      Form  event_call_ekpo
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "event_call_ekpo
    *&      Form  POPULATE_EVENT
           Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT_EKPO.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      ENDFORM.                    "POPULATE_EVENT
    *&      Form  TOP_OF_PAGE
          text
    FORM F_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    *retreiving values from the database table ekko
    FORM DATA_RETRIEVAL_EKPO.
    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
    ENDFORM.
    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: HLINE1 TYPE SLIS_LISTHEADER.
    HLINE1-TYP = 'H'.
    HLINE1-INFO = 'CHECKING PGM'.
    ENDFORM.
    FORM DISPLAY_ALV_EKPO.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = V_REPID
       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
       I_GRID_TITLE                      = I_TITLE_EKPO
       IT_FIELDCAT                       = I_FIELDCAT[]
       I_SAVE                            = 'A'
       IT_EVENTS                         = V_EVENTS
      TABLES
        T_OUTTAB                          = IT_EKPO
    EXCEPTIONS
       PROGRAM_ERROR                     = 1
       OTHERS                            = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.
    Another program..............
    TABLES : LFA1,KNA1.
    DATA ITAB LIKE LFA1 OCCURS 0 WITH HEADER LINE.
    DATA ITAB1 LIKE KNA1 OCCURS 0 WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE T.
    SELECT-OPTIONS LIFNR FOR LFA1-LIFNR.
    SELECTION-SCREEN END OF BLOCK B.
    INITIALIZATION .
    T = 'VENDOR DETAILS'.
    AT SELECTION-SCREEN OUTPUT.
    LIFNR-LOW = '1000'.
    LIFNR-HIGH = '4000'.
    APPEND LIFNR.
    START-OF-SELECTION.
    SELECT * FROM LFA1 INTO ITAB WHERE LIFNR IN LIFNR.
    APPEND ITAB.
    ENDSELECT.
    LOOP AT ITAB.
    FORMAT COLOR 6 INVERSE ON.
    WRITE : /2 SY-VLINE,4 ITAB-LAND1,7 SY-VLINE,9 ITAB-NAME1,44 SY-VLINE,46
    ITAB-ORT01,60 SY-VLINE.
    HIDE ITAB-ORT01.
    ENDLOOP.
    FORMAT COLOR OFF.
    TOP-OF-PAGE.
    WRITE : / 'VENDOR DETAILS'.
    ULINE AT /(70).
    SKIP.
    END-OF-PAGE.
    AT LINE-SELECTION.
    CASE SY-LSIND.
    WHEN 1.
    SELECT * FROM KNA1 INTO TABLE ITAB1 WHERE ORT01 = ITAB-ORT01.
    LOOP AT ITAB1.
    FORMAT COLOR 6 INVERSE ON.
    WRITE : /2 SY-VLINE,4 ITAB1-LAND1,7 SY-VLINE,9 ITAB1-NAME1,44 SY-VLINE,
    46 ITAB1-ORT01,60 SY-VLINE.
    FORMAT COLOR OFF.
    ENDLOOP.
    ENDCASE.
    TOP-OF-PAGE DURING LINE-SELECTION.
    CASE SY-LSIND.
    WHEN 1.
    WRITE : / 'VENDOR DETAILS'.
    ULINE AT /(70).
    SKIP.
    FORMAT COLOR 6 INVERSE ON.
    WRITE : /2 SY-VLINE,4 'LAND',7 SY-VLINE,9 'NAME',44 SY-VLINE,46
    'CITY',60 SY-VLINE.
    FORMAT COLOR OFF.
    WHEN 2.
    WRITE : / 'ANOTHER VENDOR DETAILS'.
    FORMAT COLOR 6 INVERSE ON.
    WRITE : /2 SY-VLINE,4 'LAND',7 SY-VLINE,9 'NAME',44 SY-VLINE,46
    'CITY',60 SY-VLINE.
    FORMAT COLOR OFF.
    endcase.
    END-OF-SELECTION.
    feel free to ask your clarifications.
    Senthil kumar

  • Alv list ..records with green ,red, yellow,grey lights

    Hello Experts,
    I have one requirement,
    in my alv list if the records match the recors should be displayed with GREEN light,
    similarly for other mmatches it should display with red, yellw, grey lights.
    please help me by sending the coding ,its an urgent requirement.
    thanks ,
    shaik.

    Zameera,
    *& Report ZMDEMO_ALV_04
    *&Make an Exception field ( = Traffic lights)
    *&There can be defined a column in the grid for display of traffic lights. This field is of type Char 1, and can contain the following values:
    *& 1 Red
    *& 2 Yellow
    *& 3 Green
    *&The name of the traffic light field is supplied inh the gs_layout-excp_fname used by method set_table_for_first_display.
    report zmdemo_alv_04.
    tables: sflight.
    type-pools: icon.
    types: begin of ty_sflight.
    include structure sflight.
    types: traffic_light type c,
    lights LIKE icon_xml_doc,
    lights(4),
    icon type icon-id.
    types: end of ty_sflight.
    G L O B A L I N T E R N A L T A B L E S
    data: t_sflight type standard table of ty_sflight.
    G L O B A L D A T A
    data: ok_code like sy-ucomm,
    wa_sflight type ty_sflight.
    Declare reference variables to the ALV grid and the container
    data:
    go_grid type ref to cl_gui_alv_grid,
    go_custom_container type ref to cl_gui_custom_container.
    data:
    t_fcat type lvc_t_fcat,
    wa_layout type lvc_s_layo.
    S T A R T - O F - S E L E C T I O N.
    start-of-selection.
    perform build_fieldcat.
    perform build_layout.
    set screen '100'.
    *& Module USER_COMMAND_0100 INPUT
    module user_command_0100 input.
    case ok_code.
    when 'EXIT'.
    leave to screen 0.
    endcase.
    endmodule. " USER_COMMAND_0100 INPUT
    *& Module STATUS_0100 OUTPUT
    module status_0100 output.
    Create objects
    if go_custom_container is initial.
    create object go_custom_container
    exporting container_name = 'ALV_CONTAINER'.
    create object go_grid
    exporting
    i_parent = go_custom_container.
    perform load_data_into_grid.
    endif.
    endmodule. " STATUS_0100 OUTPUT
    *& Form load_data_into_grid
    form load_data_into_grid.
    data l_light type c value '1'.
    Read data from table SFLIGHT
    select *
    from sflight
    into table t_sflight.
    Condition placing to the traffic_light Field
    LOOP AT t_sflight INTO wa_sflight.
    wa_sflight-traffic_light = l_light.
    MODIFY t_sflight FROM wa_sflight.
    IF l_light = '3'.
    l_light = '1'.
    ELSE.
    l_light = l_light + 1.
    ENDIF.
    ENDLOOP.
    Setting the Icon based on the traffic_light field value.
    LOOP AT t_sflight INTO wa_sflight.
    CASE wa_sflight-traffic_light.
    WHEN '1'.
    wa_sflight-lights = icon_red_light.
    WHEN '2'.
    wa_sflight-lights = icon_yellow_light.
    WHEN '3'.
    wa_sflight-lights = icon_green_light.
    ENDCASE.
    MODIFY t_sflight FROM wa_sflight.
    ENDLOOP.
    loop at t_sflight into wa_sflight.
    case l_light.
    when '1'.
    wa_sflight-lights = icon_red_light.
    when '2'.
    wa_sflight-lights = icon_yellow_light.
    when '3'.
    wa_sflight-lights = icon_green_light.
    endcase.
    if l_light = '3'.
    l_light = '1'.
    else.
    l_light = l_light + 1.
    endif.
    modify t_sflight from wa_sflight.
    endloop.
    Load data into the grid and display them
    call method go_grid->set_table_for_first_display
    exporting
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK =
    i_structure_name = 'SFLIGHT'
    IS_VARIANT =
    i_save = 'A'
    I_DEFAULT = 'X'
    is_layout = wa_layout
    IS_PRINT =
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING =
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    IR_SALV_ADAPTER =
    changing
    it_outtab = t_sflight[]
    it_fieldcatalog = t_fcat
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR = 2
    TOO_MANY_LINES = 3
    others = 4
    endform. " load_data_into_grid
    *& Form build_fieldcat
    text
    --> p1 text
    <-- p2 text
    form build_fieldcat .
    data: w_fcat type lvc_s_fcat.
    define macro_fcat.
    w_fcat-fieldname = &1.
    w_fcat-col_pos = &2.
    w_fcat-coltext = &3.
    append w_fcat to t_fcat.
    clear w_fcat.
    end-of-definition.
    macro_fcat 'CARRID' 1 text-c01 .
    macro_fcat 'CONNID' 2 text-c02 .
    macro_fcat 'FLDATE' 3 text-c03 .
    macro_fcat 'PRICE' 4 text-c04 .
    macro_fcat 'SEATSMAX' 5 text-c05 .
    macro_fcat 'SEATSOCC' 6 text-c06 .
    macro_fcat 'LIGHTS' 7 text-c07 .
    endform. " build_fieldcat
    *& Form build_layout
    text
    --> p1 text
    <-- p2 text
    form build_layout .
    wa_layout-cwidth_opt = 'X'.
    wa_layout-excp_fname = 'TRAFFIC_LIGHT'.
    wa_layout-excp_group = '1'.
    endform. " build_layout
    Pls. Reward if useful.

  • ABAP OO: traffic lights in ALV

    Hello,
    Instead of going the easy way, I decided to practise a bit of ABAP OO (which I am still quite unfamiliar with), and do ALV list to my new report by using CL_SALV_TABLE class.
    This seems to be quite clear if I just follow Rich's great instructions:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/eac1fa0b-0e01-0010-0990-8530de4908a6
    The only thing that is not so clear is that how can I add traffic (or led) lights to my ALV list when using  class CL_SALV_TABLE. Does someone has an example?
    Another bonus question: Do I always have to define the field catalog (with CL_SALV_TABLE) when using internal table of my own type?

    Hello
    Have a look at the sample report
    SALV_DEMO_TABLE_COLUMNS.Following is the in-line documentation of the report:
    *& Report  SALV_DEMO_TABLE_COLUMNS
    report salv_demo_table_columns no standard page heading.
    *... This report demonstrates the settings for the columns.
    *    The demonstration uses the new ALV API
    *      - cl_salv_table (Fullscreen Grid, Fullscreen List, Grid)
    *      - cl_salv_hierseq_table (hierseq. lists)
    *    If the table ALV_T_T2 is empty, please create data for the demo
    *    by running report BCALV_GENERATE_ALV_T_T2
    * §1   select data into global output table
    * §2   create ALV Table
    *      create instance of cl_salv_table for displaying a list of your
    *      output table
    * §2.1 create a ALV List by setting the parameter LIST_DISPLAY of the
    *      constructor cl_salv_table to 'X'
    * §2.2 create a ALV Fullscreen Grid by not setting the parameter
    *      LIST_DISPLAY of the constructor cl_salv_table to 'X'
    * §2.3 create a Grid by creating a Dynpro with a container in it. In
    *      PBO check if the container has been instantiated. If the
    *      container has not yet been instantiated then this is the first
    *      call:
    *            (1) create the container
    *            (2) create an instance of cl_salv_table
    * §3   Functions
    * §3.1 activate ALV generic Functions
    * §3.2 include own functions
    * §4   Cell Types
    * §4.1 Exception Column
    * §4.2 Icon Column
    * §4.3 Symbol Column
    * §4.4 Checkbox Column
    * §4.5 Hotspot Column
    * §4.6 Button Column
    * §4.7 Hyperlink Column
    * §4.8 Dropdown Column
    * §4.9 Tooltip Information for Exceptions, Icons and Symbols
    * §5   Color
    * §5.1 set the color of a complete column by calling the method
    *      set_color of cl_salv_column of the column
    * §5.2 set the color of a complete row
    *      note: by setting the columnname information the same
    *            technique can be used for setting the color of cells
    *      (1) register the column in which the color information
    *          for the row is held
    *      (2) set the color information to the row in the output
    *          table
    *          note: do not fill the parameter FNAME for setting the
    *                color of the complete row
    *                fill the parameter FNAME for setting the color
    *                of a cell (Row and Column are definied)
    * §6   Event Handler
    *      define a handler for the events of cl_salv_table
    * §6.1 define a local class for handling events of cl_salv_table
    *      define methods for the events which are to be handled
    * §6.2 implement the defined methods for handling the events of
    *      cl_salv_table
    * §7   Events
    *      register to events of cl_salv_table
    * §7.1 register to the event USER_COMMAND of cl_salv_table
    *      for receiving information when own functions has been selected
    * §7.2 register to the event DOUBLE_CLICK of cl_salv table
    *      for receiving information when user has double clicked on a line
    * §7.3 register to the event LINK_CLICK of cl_salv_table
    *      for receiving information when user has initiated a hotspot click
    * §8   Display
    *      display the configurated ALV Table by calling the method
    *      display of cl_salv_table.
    Regards
      Uwe

  • RE; ALV List

    Hi Friends,
    Can anyone provide me link for alv List examples,ex- adition of fields to alv list etc--
    i would be thankfull for ur favour and award points
    Thanks&Regards
    sunilchand

    hi Sunil
    check the below links
    ALV
    1. Please give me general info on ALV.
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    2. How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    3. How do I add subtotals (I have problem to add them)...
    http://www.sapfans.com/forums/viewtopic.php?t=20386
    http://www.sapfans.com/forums/viewtopic.php?t=85191
    http://www.sapfans.com/forums/viewtopic.php?t=88401
    http://www.sapfans.com/forums/viewtopic.php?t=17335
    4. How to add list heading like top-of-page in ABAP lists?
    http://www.sapfans.com/forums/viewtopic.php?t=58775
    http://www.sapfans.com/forums/viewtopic.php?t=60550
    http://www.sapfans.com/forums/viewtopic.php?t=16629
    5. How to print page number / total number of pages X/XX in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
    6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
    http://www.sapfans.com/forums/viewtopic.php?t=64320
    http://www.sapfans.com/forums/viewtopic.php?t=44477
    7. How can I set the cell color in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    8. How do I print a logo/graphics in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=81149
    http://www.sapfans.com/forums/viewtopic.php?t=35498
    http://www.sapfans.com/forums/viewtopic.php?t=5013
    9. How do I create and use input-enabled fields in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=84933
    http://www.sapfans.com/forums/viewtopic.php?t=69878
    10. How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    11. How can I display an icon in ALV? (Common requirement is traffic light icon).
    http://www.sapfans.com/forums/viewtopic.php?t=79424
    http://www.sapfans.com/forums/viewtopic.php?t=24512
    12. How can I display a checkbox in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=88376
    http://www.sapfans.com/forums/viewtopic.php?t=40968
    http://www.sapfans.com/forums/viewtopic.php?t=6919
    Regards,
    Naveen

  • Extract from ALV List

    Hello All,
    Please suggest me is there any way to extract the data from ALV LIST.
    For example:
    SUBMIT  XXX WITH SELECTION-TABLE rspar_tab AND RETURN.
    This XXX  program gives the result in alv list.Once it returns back to original program i want to fetch the results.
    Thanks and Best Regards,
    Vinoth

    Hi Vinoth...
    SUBMIT XXX WITH SELECTION-TABLE rspar_tab AND RETURN.
    Whether ur submit program (XXX) is standard or Zreport?
    1, If it is standard means u need to copy the program  in to ZXXX..
        And now change the ZXXX.
        Fetch where the final Internal table is populating for output display..
    There u need to Export that internal table ..
    eg:
    export g_t_belege1 to memory id 'ZSARA'.
    export bestand1 to memory id 'ZSARA1'.
    1,g_t_belege1
    2,bestand1
    these are internal tables in the Submit program (ZXXX)..
    Now u may come to ur original program..
    and import this..
      import g_t_belege1 from memory id 'ZSARA'.
      import bestand1 from memory id 'ZSARA1'.
    g_t_belege1,bestand1 these internal table structures sholud be same as Submit program structures..
    Else.. it may give Dump ..
    Now u may process the internal tables  g_t_belege1,bestand1 by ur wish..
    2,
    If it Zreport means no need to copy ..
    Just export into one id and import in ur original program.
    Hope it will helps..
    Reward if it is useful means.
    Regards
    Bala..
    Message was edited by:
            S Balasubramanian

  • How to edit particular field in alv list display-urgent

    HI ALL,
    my requirement is i am displaying output using alv list display. now my rewuirement :
    i am displaying out in edit mode only. when user clicks one particular field
    for example record is like
    runrate a01 maheed  -> if user clicks on a01 this field should be editable. i have a following code
      w_field-edit = w_edit.
      w_field-input = 'X'.    -> using this code i can able to display entire colomn in edit mode. this not suits my requirement.anybody can send me the sample code please.
    thanks,
    maheedhar.t

    Can you please send me the sample code plz.
    i am sending my code below.
    type-pools : slis.
    tables : zuser_secobjects.
    data : t_header1 like zuser_secobjects.
    data : begin of it_secobjects occurs 0.
            include structure t_header1.
    data :   checkbox type c value 'X',
            action type c,
          end of it_secobjects.
    data : begin of it_secobjects1 occurs 0.
            include structure ZUSER_SECOBJECTS.
    data :   checkbox type c VALUE 'X',
          end of it_secobjects1.
    data : wa_ita like line of it_secobjects.
    data : i_field type slis_t_fieldcat_alv with header line.
    data : w_field like line of i_field.
    data : i_sort type slis_t_sortinfo_alv.
    data : w_sort like line of i_sort.
    data : it_filt1 type slis_t_filter_alv with header line.
    data:
    i_tabname type tabname,
    i_repid like sy-repid,
    is_lout type slis_layout_alv.
    data :   it_filt type slis_t_filter_alv   with header line,
             it_evts type slis_t_event        with header line.
    DATA : is_vari type disvariant.
    constants :   c_default_vari value 'X',
                  c_save_vari    value 'U',
                   c_checkfield type slis_fieldname     value 'ACTION',
                   c_f2code     type sy-ucomm           value '&ETA'.
    data : chk_box type slis_fieldname.
    selection-screen: begin of block b1 with frame title text-t01.
    parameters : p_appln type zuser_secobjects-appln.
    parameters : p_user type usr02-bname, "zuser_secobjects-appln_user,
    p_partnr type zuser_secobjects-appln_partner,
    p_ptype type zuser_secobjects-partner_type default '02',
    p_upostn type zuser_secobjects-user_position,
    p_sdate like likp-erdat default sy-datum,
    p_edate(10) default '12/31/9999',
    p_revnum type zuser_secobjects-revnum,
    p_cted type zuser_secobjects-created_by,
    p_cdate type zuser_secobjects-creation_date,
    p_ctime type zuser_secobjects-creation_time,
    p_chnby type zuser_secobjects-changed_by,
    p_cdate1 type zuser_secobjects-changed_date,
    p_ctime1 type zuser_secobjects-changed_time.
    selection-screen: end of block b1.
    form user_command using p_ucomm like sy-ucomm
    rs_selfield type slis_selfield.
      case p_ucomm.
        when 'SELECT_ALL'. " SELALL is the FCODE of ur push button
          loop at it_secobjects into wa_ita.
            wa_ita-checkbox = 'X'.
            modify it_secobjects from wa_ita.
          endloop.
      rs_selfield-refresh = 'X'.   "<-  ADD THIS
      when 'DESLCT_ALL'.
        loop at it_secobjects into wa_ita.
            wa_ita-checkbox = ' '.
            modify it_secobjects from wa_ita.
          endloop.
    rs_selfield-refresh = 'X'.   "<-  ADD THIS
       is_lout-f2code               = c_f2code.
       is_lout-box_fieldname        = c_checkfield.
       is_lout-get_selinfos         = 'X'.
       is_lout-detail_popup         = 'X'.
       is_lout-detail_initial_lines = 'X'.
    maheed-start.
    *when 'SAVE'.
    *LOOP AT IT_SECOBJECTS WHERE CHECKBOX = 'X'.
    MOVE-CORRESPONDING IT_SECOBJECTS TO IT_SECOBJECTS1.
    APPEND IT_SECOBJECTS1.
    CLEAR IT_SECOBJECTS1.
    DELETE IT_SECOBJECTS.
    *ENDLOOP.
    *DELETE ZUSER_SECOBJECTS FROM TABLE IT_SECOBJECTS1.
    WHEN 'DELETE'.
        loop at it_SECOBJECTS where checkbox eq 'X'.
            delete it_SECOBJECTS.
        endloop.
    *RS_SELFIELD-REFRESH = 'X'.
    maheed-end.
    maheed-start.  apr 13
    WHEN 'DELETE'.
    loop at it_SECOBJECTS where checkbox eq 'X'.
    MOVE-CORRESPONDING IT_SECOBJECTS TO IT_SECOBJECTS1.
    APPEND IT_SECOBJECTS1.
    delete it_SECOBJECTS.
    endloop.
    RS_SELFIELD-REFRESH = 'X'.
    when 'SAVE'.
    DELETE ZUSER_SECOBJECTS FROM TABLE IT_SECOBJECTS1.
    commit work.
    refresh :IT_SECOBJECTS1.
    maheed-end.    apr 13
    *when 'SAVE'.
    *LOOP AT IT_SECOBJECTS WHERE CHECKBOX = 'X'.
    MOVE-CORRESPONDING IT_SECOBJECTS TO IT_SECOBJECTS1.
    APPEND IT_SECOBJECTS1.
    CLEAR IT_SECOBJECTS1.
    DELETE IT_SECOBJECTS.
    *ENDLOOP.
    *DELETE ZUSER_SECOBJECTS FROM TABLE IT_SECOBJECTS1.
    ENDCASE.
    endform.
    *&      Form  delete
    form delete.
      data : begin of is_secobjects occurs 0.
              include structure zuser_secobjects.
      data : checkbox type c.
      data : end of is_secobjects.
      is_secobjects-checkbox = 'X'.
      modify is_secobjects
        from it_secobjects
        transporting checkbox
      where checkbox = 'X'.
    endform.
    *&      Form  get_data
    form get_data.
      select * from zuser_secobjects
      into table it_secobjects.
    endform.                    " get_data
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form prepare_fieldcatalog." USING w_edit TYPE any.
    data : w_edit type c.
    clear w_edit.
      clear: w_field,i_field.
      refresh:i_field.
      i_field-key = 'X'.
      i_field-col_pos = 1.
      i_field-ddictxt = 'S'.
      i_field-seltext_s = '@11@'.
    i_field-checkbox = 'X'.
      i_field-input = 'X'.
      i_field-fieldname = 'HEADER'.
      i_field-outputlen = 0.
      append i_field.
      clear i_field.
      w_field-fieldname = 'APPLN'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-seltext_l = text-m01.
      w_field-outputlen = '10'.
      w_field-EDIT = 'X'.      "maheed
      w_field-col_pos = 1.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'APPLN_USER'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m02.
      w_field-outputlen = '7'.
      w_field-col_pos = 2.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'APPLN_PARTNER'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m03.
      w_field-edit = w_edit.
      w_field-input = 'X'.
      w_field-outputlen = '7'.
      w_field-col_pos = 2.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'INACTIVE'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m02.
      w_field-outputlen = '7'.
      w_field-col_pos = 3.
      append w_field to i_field.
      clear w_field.
    endform.                    " prepare_fieldcatalog
    *&      Form  ALV_LIST_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    form alv_list_display.
    DATA : LC_GLAY TYPE LVC_S_GLAY.
    LC_GLAY-EDT_CLL_CB = 'X'.
      i_repid = sy-repid.
      is_lout-box_fieldname = 'CHECKBOX'.
      it_filt-fieldname = 'ACTION'.
      call function 'REUSE_ALV_LIST_DISPLAY'
           exporting
                i_callback_program       = i_repid
                i_callback_pf_status_set = 'PF_STATUS_SET'
                i_callback_user_command  = 'USER_COMMAND'
                is_layout                = is_lout
                it_fieldcat              = i_field[]
                it_filter                = it_filt[]
                 it_events                = it_evts[]
                i_default                = c_default_vari
                i_save                   = c_save_vari
                is_variant               = is_vari
           tables
                t_outtab                 = it_secobjects.
    endform.                    " ALV_LIST_DISPLAY
    *&      Form  display
          text
         -->P_I_OBJECT  text
    form display using    object.
      case object.
    ENDCASE.
    endform.                    " display
    thanks,
    maheedhar.t

  • Time field in alv list

    Hi all ,
    i want to display alv list with time field . if no data exists in that field its showing 00:00:00 , i have to show it blank. if i change time field as type c in my internal table its showing like this 121314, i need to display it 12:13:14 . if no data it should display balnk . can any one help me out to reslove this issue?

    Hi priya,
    do this:
    declare in your itab a field like sy-uzeit.
    as example.
    move sy-uzeit to itab-uzeit.
    In fieldcat do this:
        MOVE  'X'                        TO   WA_FIELDCAT-NO_ZERO.
    Hope it helps.
    regards, Dieter

  • Can we display ICONS in ALV list?

    Hi,
       Is it possible to display icons (ICON_GREEN_LIGHT) in the ALV list using the function module REUSE_ALV_LIST_DISPLAY.
       Is there any possibility of displaying a list using object oriented ALV?
    Thanks and Regards,
    Lakshmi.

    Hi Lakshmi,
    Just check this once.
    REPORT  Zxxx  MESSAGE-ID ZZ                       .
    *& TABLES DECLARATION                                                  *
    TABLES: VBAK.
    *& TYPE POOLS DECLARATION                                              *
    TYPE-POOLS: SLIS.
    *& INTERNAL TABLE DECLARATION                                          *
    DATA: BEGIN OF ITAB OCCURS 0,
           ICON TYPE ICON-ID,
           VBELN LIKE VBAK-VBELN,
           AUDAT LIKE VBAK-AUDAT,
           VBTYP LIKE VBAK-VBTYP,
           AUART LIKE VBAK-AUART,
           AUGRU LIKE VBAK-AUGRU,
           NETWR LIKE VBAK-NETWR,
           WAERK LIKE VBAK-WAERK,
        END OF ITAB.
    *INTERNAL TABLE FOR FIELD CATALOG
    DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
        IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV
               WITH HEADER LINE,
    *INTERNAL TABLE FOR EVENTS
    DATA:    IT_EVENT TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT,
    *INTERNAL TABLE FOR SORTING
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          WA_SORT TYPE SLIS_SORTINFO_ALV,
    *INTERNAL TABLE FOR LAYOUT
          WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    *& VARIABLE DECLARATION                                                *
    DATA : V_REPID TYPE SY-REPID,
           V_PAGNO(4) TYPE N,
           V_DATE(8)  TYPE C.
    *& CONSTANTS                                                           *
    CONSTANTS: C_X TYPE C VALUE 'X'.
    *& SELECTION SCREEN                                                    *
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
                    S_VBTYP FOR VBAK-VBTYP DEFAULT 'C'.
    SELECTION-SCREEN: END OF BLOCK B1.
    SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN  COMMENT 1(20) TEXT-003.
    PARAMETERS: P_LIST RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-004.
    PARAMETERS: P_GRID RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN: END OF BLOCK B2.
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_SCREEN.
    *& START OF SELECTION                                               *
    START-OF-SELECTION.
      CLEAR: ITAB, ITAB[].
    V_REPID = SY-REPID.
      PERFORM GET_DATA.
      PERFORM DISPLAY_DATA.
    *& END OF SELECTION                                                    *
    END-OF-SELECTION.
    *--DO ALV Process
      V_REPID = SY-REPID.
    *--Sort the Output Fields
      PERFORM SORT_FIELDS.
    *--Build Field catalog for the Output fields
    PERFORM BUILD_FIELDCAT.
    *--Set the Layout for ALV
      PERFORM SET_LAYOUT.
    *&      Form  GET_DATA
          text
    TO GET THE DATA FROM TABLES INTO ITAB
    FORM GET_DATA .
      SELECT VBELN
             AUDAT
             VBTYP
             AUART
             AUGRU
             NETWR
             WAERK
             INTO CORRESPONDING FIELDS OF TABLE ITAB
             FROM VBAK
             WHERE VBELN IN S_VBELN AND
             AUDAT > '04.04.2005'
             AND NETWR > 0.
      LOOP AT ITAB.
        IF ITAB-NETWR < 10000.
          ITAB-ICON = '@08@'.
        ELSEIF ITAB-NETWR > 10000 AND ITAB-NETWR < 100000.
          ITAB-ICON = '@09@'.
        ELSEIF ITAB-NETWR > 100000.
          ITAB-ICON = '@0A@'.
        ENDIF.
        MODIFY ITAB INDEX SY-TABIX.
      ENDLOOP.
    ENDFORM.                    " GET_DATA
    *&      Form  sort_fields
    FORM SORT_FIELDS .
      CLEAR WA_SORT.
      WA_SORT-FIELDNAME = 'VBTYP'.
      WA_SORT-SPOS = '1'.
      WA_SORT-UP = 'X'.
      APPEND WA_SORT TO IT_SORT.
      CLEAR WA_SORT.
      WA_SORT-FIELDNAME = 'NETWR'.
      WA_SORT-SPOS = '2'.
      WA_SORT-UP = 'X'.
      WA_SORT-SUBTOT = 'X'.
      APPEND WA_SORT TO IT_SORT.
    ENDFORM.                    " sort_fields
    *&      Form  build_fieldcat
    *FORM BUILD_FIELDCAT .
    IT_FIELDCAT-COL_POS    = '1'.
    IT_FIELDCAT-FIELDNAME  = 'ICON'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '10'.
    IT_FIELDCAT-SELTEXT_L  = 'LIGHT'.
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '2'.
    IT_FIELDCAT-FIELDNAME  = 'VBELN'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '10'.
    IT_FIELDCAT-SELTEXT_L  = 'SALES DOC NUMBER'(009).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '3'.
    IT_FIELDCAT-FIELDNAME  = 'AUDAT'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '4'.
    IT_FIELDCAT-SELTEXT_L  = 'DOCUMENT DATE'(010).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '4'.
    IT_FIELDCAT-FIELDNAME  = 'VBTYP'.
    IT_FIELDCAT-KEY        = 'X'.
    IT_FIELDCAT-OUTPUTLEN  = '4'.
    IT_FIELDCAT-SELTEXT_L  = 'CATEGORY'(011).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '5'.
    IT_FIELDCAT-FIELDNAME  = 'AUART'.
    IT_FIELDCAT-OUTPUTLEN  = '4'.
    IT_FIELDCAT-SELTEXT_L  = 'DOCUMENT TYPE'(012).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '6'.
    IT_FIELDCAT-FIELDNAME  = 'AUGRU'.
    IT_FIELDCAT-OUTPUTLEN  = '12'.
    IT_FIELDCAT-SELTEXT_L  = 'Order reason'(013).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '7'.
    IT_FIELDCAT-FIELDNAME  = 'NETWR'.
    IT_FIELDCAT-OUTPUTLEN  = '12'.
    IT_FIELDCAT-SELTEXT_L  = 'NET VALUE'(014).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    IT_FIELDCAT-COL_POS    = '8'.
    IT_FIELDCAT-FIELDNAME  = 'WAERK'.
    IT_FIELDCAT-OUTPUTLEN  = '12'.
    IT_FIELDCAT-SELTEXT_L  = 'SD DOC CURR'(015).
    APPEND IT_FIELDCAT.
    CLEAR  IT_FIELDCAT.
    *ENDFORM.                    " build_fieldcat
    *&      Form  set_layout
    FORM SET_LAYOUT .
      IF P_LIST = C_X .
        WA_LAYOUT-WINDOW_TITLEBAR = 'LIST DISPLAY'(016).
        WA_LAYOUT-ZEBRA = 'X'.
    *-- ALV LIST DISPLAY
        PERFORM LIST_DISPLAY TABLES ITAB.
    *-- ALV GRID DISPLAY
      ELSEIF P_GRID = C_X.
        WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'(017).
        WA_LAYOUT-ZEBRA = 'X'.
        PERFORM GRID_DISPLAY TABLES ITAB.
      ENDIF.
    ENDFORM.                    " set_layout
    *&      Form  list_display
    FORM LIST_DISPLAY  TABLES   P_ITAB .
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = V_REPID
          IS_LAYOUT          = WA_LAYOUT
          IT_FIELDCAT        = IT_FIELDCAT[]
          IT_SORT            = IT_SORT[]
          I_SAVE             = 'U'
        TABLES
          T_OUTTAB           = ITAB
        EXCEPTIONS
          PROGRAM_ERROR      = 1
          OTHERS             = 2.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " list_display
    *&      Form  GRID_DISPLAY
    FORM GRID_DISPLAY  TABLES   P_ITAB .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = V_REPID
          IS_LAYOUT          = WA_LAYOUT
          IT_FIELDCAT        = IT_FIELDCAT[]
          IT_SORT            = IT_SORT[]
          IT_EVENTS          = IT_EVENT
        TABLES
          T_OUTTAB           = ITAB
        EXCEPTIONS
          PROGRAM_ERROR      = 1
          OTHERS             = 2.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " GRID_DISPLAY
    *&      Form  VALIDATE_SCREEN
          text
    -->  p1        text
    <--  p2        text
    FORM VALIDATE_SCREEN .
      DATA: LV_VBELN LIKE VBAK-VBELN.
      IF NOT S_VBELN IS INITIAL.
        SELECT VBELN
        INTO LV_VBELN
        UP TO 1 ROWS
        FROM VBAK
        WHERE VBELN IN S_VBELN.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC'.
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_SCREEN
    *&      Form  display_data
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_DATA .
      DEFINE M_FIELDCAT.
        ADD 1 TO WA_FIELDCAT-COL_POS.
        WA_FIELDCAT-FIELDNAME   = &1.
        WA_FIELDCAT-REF_TABNAME = 'VBAK'.
        WA_FIELDCAT-DO_SUM      = &2.
        WA_FIELDCAT-CFIELDNAME  = &3.
        APPEND WA_FIELDCAT TO IT_FIELDCAT.
      END-OF-DEFINITION.
    DATA:
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv.
      m_fieldcat 'ICON' ''  ''.
      m_fieldcat 'VBELN' ''  ''.
      m_fieldcat 'AUDAT' ''  ''.
      m_fieldcat 'VBTYP' ''  ''.
      m_fieldcat 'AUART' ''  ''.
      m_fieldcat 'AUGRU' ''  ''.
      m_fieldcat 'NETWR' 'C' 'WAERK'.
      m_fieldcat 'WAERK' ''  ''.
    ENDFORM.                    " display_data
    hope it helps u
    regards
    laxmi

  • Display Logo in ALV LIST header

    Hi Experts!!
    I need the logo to be displayed in the header of ALV LIST but not the grid display. I searched for this, and got the results for ALV grid display. Kindly let me know if there's any way of printing the logo in the ALV List display. I hope that's possible with oops.
    Please help me out.
    Thanks and Regards,
    Seenu

    hello srinivas,
    Check the Examples in LIBS trxn,
    see the example One-Line List with Top of Page
    regards,
    Shweta

  • Writing selections in  alv list header

    Hi,
    in alv list header i have to show the values entered in selection screen.
    ex.
    Current year    : 2008
    current period  : 03
    report ID          : R_123
    company code : I BT  AA to BB
                            I BT  CC to DD
                            I EQ  FF
    in the above example first three are parameters and  company code is select-option, for parameters i can display what i want, but for company code( which is select option) it is showing only first line and not showing other lines.
    at the time of filling list header table for select-option, i am looping the select-option, first i am filling with  typ, key and info and for other i am filling only info, if i fill typ, key also for other recoreds also it is showing the  company code in all lines  as below ....
    company code  : I BT  AA to BB
    company code : I BT  CC to DD
    company code : I EQ  FF
    can any one suggest to get the list header as shown at the begining....
    thanks,
    bhushan

    Hi,
    Check this sample code. Here plant and date are selection screen paramters.
    Plant
      lwa_header-typ  = 'S'.
      lwa_header-key  = text-t47.
    If the select option for plant is 'EQ'
      LOOP AT s_werks.                                       "#EC *
        IF s_werks-option = 'EQ'.
          lwa_plant-werks = s_werks-low.
          APPEND lwa_plant TO lt_plant.
          CLEAR lwa_plant.
    If the select option for plant is 'BT'
        ELSEIF s_werks-option = 'BT'.
          CONCATENATE s_werks-low
                      text-t50
                      s_werks-high
            INTO lf_plant.
          lwa_header-info = lf_plant.
          APPEND lwa_header TO gt_header.
          CLEAR lwa_header.
        ENDIF.
      ENDLOOP.
      IF s_werks-option = 'EQ'.
        READ TABLE lt_plant INTO lwa_plant INDEX 1.
        lwa_header-info = lwa_plant-werks.
        APPEND lwa_header TO gt_header.
        CLEAR lwa_header.
        LOOP AT lt_plant INTO lwa_plant FROM 2.
          lwa_header-typ   = 'S'.
          lwa_header-key   = ''.
          lwa_header-info  =  lwa_plant-werks.
          APPEND lwa_header TO gt_header.
          CLEAR: lwa_header.
        ENDLOOP.
      ENDIF.
    Post date Range
      lwa_header-typ   = 'S'.
      lwa_header-key   = text-t33.
    If the select option for post date is 'EQ'
      LOOP AT s_budat.                                      "#EC *
        IF s_budat-option = 'EQ'.
          CONCATENATE s_budat-low+6(2) '.'
                      s_budat-low+4(2) '.'
                      s_budat-low(4) INTO lf_range.
        For multiple values
          IF lf_date_tmp IS INITIAL.
            lwa_date-date = lf_range.
            APPEND lwa_date TO lt_date.
          ELSE.
            lwa_date-date = lf_range.
            APPEND lwa_date TO lt_date.
          ENDIF.
      If the select option for post date is 'BT'
        ELSEIF s_budat-option = 'BT'.
          CONCATENATE s_budat-low+6(2) '.'
                      s_budat-low+4(2) '.'
                      s_budat-low(4) text-t49
                      s_budat-high+6(2) '.'
                      s_budat-high+4(2) '.'
                      s_budat-high(4) INTO lf_range .
          lwa_header-info  =  lf_range.
          CLEAR lf_range.
        ENDIF.
      ENDLOOP.
      IF s_budat-option = 'EQ'.
        READ TABLE lt_date INTO lwa_date INDEX 1.
        lwa_header-info  =  lwa_date-date.
        APPEND lwa_header TO gt_header.
        CLEAR: lwa_header.
        LOOP AT lt_date INTO lwa_date FROM 2.
          lwa_header-typ   = 'S'.
          lwa_header-key   = ''.
          lwa_header-info  =  lwa_date-date.
          APPEND lwa_header TO gt_header.
          CLEAR: lwa_header.
        ENDLOOP.
      ENDIF.
    Appending work area to the header table
      APPEND lwa_header TO gt_header.
      CLEAR lwa_header.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_header.
    <REMOVED BY MODERATOR>
    Regards,
    Ramya
    Edited by: Alvaro Tejada Galindo on Apr 8, 2008 4:30 PM

  • Traffic Lights in ALV Tree

    Hi Experts ,
    Could you suggest if we can use traffic lights in ALV tree Display and if possible  program(T-code ) you have gone thorugh.
    I already checked BCALV_TREE_06 , its totally different just showing icons .
    Regards,
    Karan
    Edited by: Karan_Chowdary on Dec 24, 2011 7:28 AM

    First in your output table for ALV.. add the light coloum.
    for example:
    DATA: BEGIN OF IMARA OCCURS 0,
    LIGHT(4) TYPE C,
    MATNR TYPE MARA-MATNR,
    MTART TYPE MARA-MTART,
    MAKTX TYPE MAKT-MAKTX,
    COLOR_LINE(4) TYPE C,
    TCOLOR TYPE SLIS_T_SPECIALCOL_ALV, "cell
    END OF IMARA.
    Then in the get data section, you have to put if-else class and upate that column as follows
    WRITE ICON_GREEN_LIGHT AS ICON TO IMARA-LIGHT.
    The use that light column in the catalog section
    Regards,
    Venkat

Maybe you are looking for