Traffic light  signal to indiacate exception in WAD

Hi,
Can someone explaine me how to display traffic light signals( red and green ) in WAD  to indiacte the exceptions.  my client wants something like this:  adverse spending  red light  image and  less spending green light image.
thanks and regards
dhana

Michael,
I am not sure if you can have icons outside the query that can be controlled by the query values. You could do one thing ...
1. have a query with an extra Key figure.
2. Have your validation formulae on this key figure and have an exception on the same
3. Now your exception column would have three colors.
4. Now execute the report in IE and go to view source.
5. Look for the stylesheet classes for the exceptions , they would be something like SAPBexGood1... etc
6. Go to the table interface ( I assume that you would have figured out how to inherit the class and modify the same from the how to paper...)
7. Go to c_cell_data
8. if cell_style="SAPBeXGood1" then replace c_cell_content with <img src="/sap/bw/mime/icons/icon1.gif" /img>
9. Go to the css and find out your stylesheet class.
10. Remove the background color attribute from the required style.
for checking through JavaScript.
1. The query should have a separate stylesheet class attached to it.
2. It should have one cell only
3. You can replace the value by using style.innerHTML=whatever you want.
Hope this helps...
Arun
Assign points if found helpful
Message was edited by: Arun Varadarajan

Similar Messages

  • Traffic lights - MRP

    Can I change default traffic lights setting?
    How?

    Traffic Lights can be defined.
    You can use the exception groups to define under which conditions materials are indicated by red, yellow, or green traffic lights. Example: You want all materials, whose dates lie in the past, to be indicated by a red traffic light.
    The definition of traffic lights applies to both types of list.
    Prerequisites-
    You have accessed the material list in collective access, or the MRP list or stock/requirements list for a material.
    In case of individual lists: you have displayed the material tree.
    Procedure
    1. Choose Green Dot
    The system displays the Define traffic light dialog box.
    2. Enter the number of workdays for the parameters Days' supply, 1st receipt days' supply and 2nd receipt days' supply, and under which circumstances the materials are to be displayed with red, yellow, and green traffic lights.
    You want the traffic light to be red when the days' supply for a material is <= 0, yellow when the days' supply is > 0 and <= 10 days, and green when the days' supply is > 10 days.
    Enter:      
    Color     Days’ supply
      Red        0
    Yellow     10
    Green      999,9
    4. Use the exception groups to define under which conditions materials are indicated by red, yellow, or green traffic lights.
    You want materials with exception messages in exception group 4 to be indicated by a yellow traffic light and materials with exception messages in exception group 5 to be indicated by a red traffic light.
    Choose:
                     Exception group 5          Exception group 5 
      Red                 X
    Yellow                                                  X
    Green
    6. Save
    Reward if cleared and close the thread.

  • In MD06, how to define Traffic lights

    Hi to All,
    We are having more than one plants and every one are using MRP.
    After MRP run, we are using MD06 in order to evaluate numerous materials based on same controller.
    I would like to define or set traffic lights based on Supply & exception groups which will be applicable for users who
    would using this MD06 tcode.
    How to define this?
    Thanks & Regards
    Nitin

    please check whether this helps...
    https://forums.sdn.sap.com/click.jspa?searchID=31913209&messageID=4081312

  • How to ... Traffic Lights from Exceptions or CellValue in WAD

    Hi all,
    I need to create traffic lights in the WAD. They should occur either depending on exceptions of a certain query/view or on a special cell value (which I suppose to be quite complex ... table interface(?)).
    I tried the alert monitor element, but that doesnt suite the "traffic light" expectations as it seems.
    Does anybody of you have a manual for creating fancy traffic lights in the WAD? Is there a way without hardcoding this table interface? (I am unexperienced with stuff like that / ABAP coding - if you could guide me through to having a suitable interface I could use with JavaScript then, I would be delighted)
    Best regards and thanks very much in advance for some answers,
    Michael

    Michael,
    I am not sure if you can have icons outside the query that can be controlled by the query values. You could do one thing ...
    1. have a query with an extra Key figure.
    2. Have your validation formulae on this key figure and have an exception on the same
    3. Now your exception column would have three colors.
    4. Now execute the report in IE and go to view source.
    5. Look for the stylesheet classes for the exceptions , they would be something like SAPBexGood1... etc
    6. Go to the table interface ( I assume that you would have figured out how to inherit the class and modify the same from the how to paper...)
    7. Go to c_cell_data
    8. if cell_style="SAPBeXGood1" then replace c_cell_content with <img src="/sap/bw/mime/icons/icon1.gif" /img>
    9. Go to the css and find out your stylesheet class.
    10. Remove the background color attribute from the required style.
    for checking through JavaScript.
    1. The query should have a separate stylesheet class attached to it.
    2. It should have one cell only
    3. You can replace the value by using style.innerHTML=whatever you want.
    Hope this helps...
    Arun
    Assign points if found helpful
    Message was edited by: Arun Varadarajan

  • Display Exception as Traffic Lights

    Dear All,
    is there any possibility to display exceptions per default as traffic lights in a BI 7.0 Web Application? We want to use the same functionality a local status exception is offering. Setting EXCEPTION_RENDERING to Symbol offers the arrow as symbol.  Also the command set_exception in the is using the trend exception symbol as default.
    Thanks for any input
    jens

    Hi ,
    You can display the traffic light symbols for exceptions in BI 7.0.
    You need to create a Status Exception at WAD level by using List of Exceptions Web Item.
    Then you save the executed result as Queryview.
    Use this Queryview as the DataProvider for the Analysis Web Item.
    Hope this helps.

  • Exception field traffic light

    Hi
    any one can help me how to display the details in exceptions field traffic light . i am facing the problem in execption field. ALV lisst  is displaying in all other field but not showing in exception field.

    Dear Chandan,
    If you are using the functionalities of the class CL_SALV_TABLE, try to have a look at this program: SALV_DEMO_TABLE_COLUMNS
    and if the class is CL_GUI_ALV_GRID, have a look at this program: BCALV_GRID_04
    Just try to compare and analyze what is that you are missing...:)
    You can fiund a lot of demo programs in the package: SALV_OBJECTS and SLIS
    Hop you find this helpful..:)
    Regards
    s@k

  • Exception groups & Traffic Lights for MRP run shortage quantities

    Hi Guys:
    How to define Traffic Lights and Exception groups in MD04/Mdo5 transaction?
    Or any literature available ?
    Thanks
    kodali

    Kodali,
    You can customize the exception message and grouping in configuration.
    Please follow below mentioned path and do necessary config.
    SPRO -> Production --> Materials Requirement Planning --> Evaluation --> Exception Messages.
    Regards,
    Himanshu

  • Traffic lights Vs day's supply

    Hi,
    In MRP collective lists, system is showing red signal lights to all the materials and showing the message "3.0- days is less than limiting value of 0.1-"
    In the day's supply,1stRDS and 2nd columns system is showing the value 3.0-.
    In this case, how to change the signal light from red to green?
    Can any body please explain the concept behind this?
    Thanks in advance.
    Sekhar.

    hi
    traffic light depends upon the day's supply and exception messages.
    in md04 collective access , display all materials with MRP controller wise. Press the Tab " define traffic lights" there u can put ur own criterion of days supply and R days supply.
    Example how system calculates days supply.
    Calculation of the range of coverage: Starting from the current plant stock, the requirements are deducted one after the other along the time axis. This is done until there is a shortage (requirement > stock). The range of coverage is then the number of workdays between todays date and the date of the requirement that causes the shortage minus one day. The value after the decimal point is the ratio between the opening stock on the day of the shortage and the requirement on the day of the shortage.
    Stock = 240 pcs
    1st day: Requirement for 90  pcs => Stock = 150 pcs
    2nd day: Requirement for 70  pcs => Stock = 80  pcs
    3rd day: Requirement for 100 pcs => Shortage
    Range of coverage = 3 workdays minus 1 + 80/100
                      = 2 + 0,8
                      = 2,8
    Reward if useful
    Amit

  • Traffic lights on reports disappears

    Hi Experts,
    I have made the traffic lights settings in WAD exceptions and saved that by Personalising it.Now this report is integrated in portal and it working fine with traffic light since its saved as an View,but in the report I have many fields in Free Chars as drag n drop functionality when I drag n drop anything from free chars column the trafffic lights disappears.
    Can anyone guide me on this issue ASAP.
    Regards,
    Preethi

    Hi Danny,
    Yes after drill drop also my Keyfigure values show between exception ranges only,but traffic light disappears,
    Can you guide me on this.
    Regards,
    Preethi

  • How to add Traffic Lights to a Report?

    Hi,
    How do U create a Traffic Light? and how to you change the Light? That's all I need.
    Thanks,
    Kishan

    hi dude,
    This is the way u add lights to ur alv report.
    I'm following this method and i'm getting lights. This will work for sure.
    In data declaration along with your alv display structure as a field named lights(any name).
    DATA : BEGIN OF wa_srr,
    vbeln LIKE vbak-vbeln, "Sales Order number
    posnr LIKE vbap-posnr, "Item nunmber
    matnr LIKE makt-matnr, "Material number Desc
    maktx LIKE makt-maktx, "Material Description
    gbstk LIKE vbuk-gbstk, "Completion status
    bukrs LIKE knb1-bukrs, "Company Code
    butxt LIKE t001-butxt, "Company Code description
    vkorg LIKE vbak-vkorg, "Sales organization
    vtext LIKE tvkot-vtext, "Sales Org description
    vtweg LIKE vbak-vtweg, "Distribution Channel
    dtext LIKE tvtwt-vtext, "Dist Channel description
    spart LIKE vbak-spart, "Division
    dvtxt LIKE tspat-vtext, "Division Description
    kunnr LIKE vbak-kunnr, "Customer Number
    name1 LIKE kna1-name1, "Customer Name
    land1 LIKE kna1-land1, "Country
    regio LIKE kna1-regio, "State
    ort01 LIKE kna1-ort01, "City
    erdat LIKE vbak-erdat, "Creation Date
    vdatu LIKE vbak-vdatu, "Due date
    kwmeng LIKE vbap-kwmeng, "Material Quantity
    netpr LIKE vbap-netpr, "unit net price
    netwr LIKE vbap-netwr, "Price
    wavwr LIKE vbap-wavwr, "Cost price
    bzirk LIKE vbkd-bzirk, "Sales District
    bztxt LIKE t171t-bztxt, "Sales District Discription
    lights, "Diplaying Status
    END OF wa_srr.
    While you are building the field cat do as follows
    FORM build_layout CHANGING l_wa_layout TYPE slis_layout_alv.
    l_wa_layout-zebra = cb_zebr. "Set alterante colored line
    l_wa_layout-colwidth_optimize = cb_colop. "Optimize column width
    l_wa_layout-no_vline = cb_novli. "No vertical line
    l_wa_layout-no_colhead = cb_nocol. "no column Header
    l_wa_layout-lights_fieldname = 'LIGHTS'. "Set light field
    (assigning the field u have added in ur structure here as light field in alv report)
    ENDFORM. " BUILD_LAYOUT
    Then as per the logic, u make green, yellow or red light
    Example,
    FORM build_light .
    LOOP AT it_srr INTO wa_srr. "for all entries in the table
    IF wa_srr-gbstk = 'C'. "If status is 'completed',
    wa_srr-lights = '3'. "Show green signal light
    ELSEIF wa_srr-gbstk = 'B'. "If status is 'Partial'
    wa_srr-lights = '2'. "Show yellow signal light
    ELSE. "If status is 'incomplete'
    wa_srr-lights = '1'. "Show red signal light
    ENDIF.
    MODIFY it_srr FROM wa_srr. "Update to table
    ENDLOOP.
    ENDFORM. " build_light
    after building ur layout, Pass it to ur alv function module like this.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    i_callback_top_of_page = 'TOP_OF_PAGE'
    i_background_id = 'ALV_BACKGROUND'
    i_grid_title = text-011
    pass ur layout structure here********
    is_layout = wa_layout
    it_fieldcat = it_fcat
    it_sort = it_sort
    i_save = v_save
    is_variant = wa_variant
    is_print = wa_print
    TABLES
    t_outtab = it_srr
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    MESSAGE i001. "List cannot be displayed
    ENDIF.
    wat all i did to add light is,
    1) adding an extra field in the main structure.
    2)create internal table with this structure as data table for alv report
    3) add 'field name' field in layout
    4) I have passed values(3, 2, 1) for green, yellow and red light resp, to the field(LIGHTS) in the internal table that is passed to alv function module.(Based on some condition)
    5) pass the layout structure layout to alv function module
    Thats it. If u do all this teps, u r done with it.
    Lemme know u solved it by giving points.
    with regards,
    praveen.

  • Web item analysis Modification -- Traffic lights

    Hi all,
    I am using BI 7.0 WAD and I would like to display traffic lights icons in the data of web template.
    I was able to do this in 3.5 by using a super class CL_RSR_WWW_MODIFY_ TABLE and modifying the CHARACTERISTIC_CELL field.
    Then i used to add <param name="MODIFY_CLASS" value="myclass"/> into the table item object tag.
    But this was using table interfaces.
    In BI 7.0, the table interfaces are replaced by Web Interfaces and hardly find any help documentation as it is very very limited.
    I am trying to display images (traffic lights) for specific characteristic values
    zstatus = g then display green
    zstatus = y then display yellow
    zstatus = r then display red
    Could some one please help me resolve this issue.
    Thanks a lot
    Phani.
    Edited by: Phani Kothwali on Oct 27, 2008 3:21 AM

    Hi
    Table Interface Class was a wonderful thing wasn't it ... such a pity they took that functionality away from us ... maybe one day they'll bring it back.
    Back to your question ... you could use exception reporting in the query. In the query you should be able to specify that when a certain value is encountered, then show that cell in a certain colour, or show a symbol.
    Alternately, the best way I have found to date to replicate table interface functionality, is to write some JavaScript that will process the HTML once it has loaded. There is no reason why you couldn't have some script to go through your table and check the values in a certain column. I have written JavaScript to perform custom calculations  in a certain column, so you could use a similar approach to simply check the value of the cell, and then change the contents to an image instead of a value.
    Hope this helps you .
    Cheers,
    Andrew

  • Traffic light on the basis of last month

    Hi guys,
    I have a question about the traffic light in the model Visual Composer. I would like to have a traffic light besids a table or graphic that wil be shown the status ( Green, red, yellow!) on the basis of the last month. In the table or in a graphic wil be shown several data of several months. But the traffic light have to respond on the basis of last month. That means that, if the last month exception( in the query) is green, the traffic light also wil be green.
    Can anybody help me please?
    Another question.
    How can i get only two types of order as example in a pie chart? I have seen that in a pie chart you can only add one formula, not two.So!!
    Thanks,
    Regards,
    Esrat

    In the VC model create an Expression Box. Double click on this box to open up its Properties.
    In the control properties window there is tab "Styles", here give Green color to the column 'Style' and in the next column 'Condition' select 'Enter Formula...'
    Select the field and enter the condition.
    Like
    Style      Condition
    Style 1   @CITY == 'Frankfurt'
    Style2    @BANK_CTRY == 'DE'

  • Displaying traffic lights in alv grid report?

    Hi everyone,
    I have an alv grid report.I m using the FM reuse_alv_grod_display to display my alv report.I am passing the fieldcatalogue automatically.I m getting the output perfectly.Now i have to add traffic lights to that alv report.
    Since i m passing the fieldcatalogue automatically i m confused to display the traffic lights?
    any suggestions please?
    Thank you.

    hi dp,
    look at the program i made... se the bold part you will be able to impelment lights easily,
    DECLARING TYPES POOL *
    All the definitions of internal tables, structures and constants
    are declared in a type-pool called SLIS.
    type-pools: slis.
    TABLES *
    tables: vbak,vbap,kna1.
    TYPES *
    *&--defining types for TABLE VBAK
    types: begin of t_vbak,
    vbeln type vbeln_va, "sales document
    kunnr type kunag,
    erdat type erdat,
    auart type auart,
    netwr type netwr_ak,
    waerk type waerk,
    vkorg type vkorg,
    vtweg type vtweg,
    spart type spart,
    name1 type name1_gp,
    stras type stras_gp,
    ort01 type ort01_gp,
    pstlz type pstlz,
    regio type regio,
    land1 type land1_gp,
    telf1 type telf1,
    end of t_vbak.
    *&--Defining types for TABLE VBAP
    types: begin of t_vbap,
    vbeln type vbeln_va,
    posnr type posnr_va,
    matnr type matnr,
    maktx type maktx,
    end of t_vbap.
    *&--MERGED FINAL SALES TABLE
    types: begin of t_sales_final,
    vbeln type vbeln_va,
    kunnr type kunag,
    posnr type posnr_va,
    erdat type erdat, "date of creation
    auart type auart,
    netwr type netwr_ak,
    waerk type waerk,
    vkorg type vkorg,
    vtweg type vtweg,
    spart type spart,
    name1 type name1_gp,
    v_lights type c,
    stras type stras_gp,
    ort01 type ort01_gp,
    pstlz type pstlz,
    regio type regio,
    land1 type land1_gp,
    telf1 type telf1,
    matnr type matnr,
    maktx type maktx,
    end of t_sales_final.
    defining wrokarea and IT.
    WORK AREA DECLARATION *
    *&---work area for Internal Tables
    data: wa_vbak type t_vbak.
    data: wa_vbap type t_vbap.
    data: wa_sales_final type t_sales_final.
    *&--work area for layout
    data: wa_layout type slis_layout_alv.
    INTERNAL TABLES DECLARATION *
    *&---Internal tables without Header Line.
    data : i_vbak type standard table of t_vbak,
    i_vbap type standard table of t_vbap,
    i_sales_final type standard table of t_sales_final.
    *&---Internal table for field catalog
    data : i_fieldcat type slis_t_fieldcat_alv,
    *&---Internal table for the sorting sequence.
    i_sortinfo type slis_t_sortinfo_alv,
    *&---Internal table for the event catalog.
    i_eventcat type slis_t_event,
    *&---Internal table for the top of page event
    i_listheader type slis_t_listheader.
    VARIABLE DECLARATION *
    data : v_progname like sy-repid, "Program name(system defined)
    v_gridtitle type lvc_title. "Grid Title
    INITIALIZATION EVENT *
    initialization.
    v_progname = sy-repid.
    refresh:i_vbak,
    i_vbap,
    i_sales_final,
    i_fieldcat,
    i_sortinfo,
    i_eventcat,
    i_listheader.
    clear: wa_vbak,
    wa_vbap,
    wa_sales_final,
    wa_layout.
    SELECTION SCREEN *
    SCREEN FOR ENTERING INFORMATION
    selection-screen begin of block b1 with frame title text-001.
    select-options: r_vbeln for wa_vbak-vbeln obligatory.
    select-options: r_erdat for wa_vbak-erdat obligatory.
    selection-screen end of block b1 .
    AT SELECTION SCREEN *
    at selection-screen.
    perform zf_validate_sales_doc_no.
    perform zf_validate_date.
    START OF SELECTION EVENT
    start-of-selection.
    perform zf_populate_header.
    perform zf_populate_detail.
    perform zf_append_sales_final.
    END OF SELECTION EVENT
    end-of-selection.
    *If Internal Table Is Populated Then Only Display Alv Report.
    if i_sales_final is not initial.
    Prepare fieldcatalog .
    perform zf_build_fieldcat using i_fieldcat.
    MODIFY the records IN the internal TABLE for the traffic lights.
    perform zf_modify_final.
    build event catalogue
    perform zf_eventcat using i_eventcat.
    build sorting
    perform zf_sorting using i_sortinfo.
    &---Build Listheader for TOP OF PAGE EVENT.
    perform zf_build_listheader using i_listheader.
    &---Build layout.
    perform zf_layout.
    &---Initializating Grid Title
    perform zf_build_grid_title.
    &---Display alv grid.
    perform zf_display_alv_grid.
    else.
    *If Table is not Populated ie Records Does not exist
    message 'Record Does Not Exist' type 'S'.
    endif.
    *& Form zf_validate_sales_doc_no
    text
    --> p1 text
    <-- p2 text
    form zf_validate_sales_doc_no .
    select single vbeln into wa_vbak-vbeln from vbak where vbeln in r_vbeln .
    if sy-subrc <> 0.
    message i101.
    endif.
    endform. " zf_validate_sales_doc_no
    *& Form zf_validate_date
    text
    --> p1 text
    <-- p2 text
    form zf_validate_date .
    if date is future
    if r_erdat-low >= sy-datum.
    message e102.
    elseif r_erdat-high >= sy-datum.
    message e103.
    endif.
    endform. " zf_validate_date
    *& Form zf_populate_header
    text
    --> p1 text
    <-- p2 text
    form zf_populate_header .
    select vbeln
    kunnr
    erdat
    auart
    netwr
    waerk
    vkorg
    vtweg
    spart
    into table i_vbak from vbak where vbeln in r_vbeln.
    if sy-subrc <> 0.
    message 'RECORD DOES NOT EXIST' type 'E'.
    endif.
    sort i_vbak by vbeln.
    *&--LOGIC TO GET FIELDS FROM TABLE KNA1 INTO INTERNAL TABLE I_VBAK
    loop at i_vbak into wa_vbak.
    select single name1 stras ort01 pstlz regio land1 telf1 into (wa_vbak-name1,
    wa_vbak-stras,
    wa_vbak-ort01,
    wa_vbak-pstlz,
    wa_vbak-regio,
    wa_vbak-land1,
    wa_vbak-telf1)
    from kna1
    where kunnr = wa_vbak-kunnr.
    modifying it_header.
    modify i_vbak from wa_vbak.
    clear wa_vbak.
    endloop.
    endform. " zf_populate_header
    *& Form zf_populate_detail
    text
    --> p1 text
    <-- p2 text
    form zf_populate_detail .
    if i_vbak[] is not initial.
    select vbeln
    posnr
    matnr
    into table i_vbap from vbap
    for all entries in i_vbak where vbeln = i_vbak-vbeln.
    endif.
    sort i_vbap by vbeln.
    sort i_vbap by posnr.
    *&--LOGIC TO GET FIELDS FROM TABLE MAKT INTO INTERNAL TABLE I_VBAP
    loop at i_vbap into wa_vbap.
    select single maktx into (wa_vbap-maktx)
    from makt where matnr = wa_vbap-matnr and spras = sy-langu.
    modifying it_header.
    modify i_vbap from wa_vbap.
    clear wa_vbap.
    endloop.
    endform. " zf_populate_detail
    *& Form zf_append_sales_final
    text
    --> p1 text
    <-- p2 text
    form zf_append_sales_final .
    sort i_vbak by vbeln.
    sort i_vbap by vbeln posnr.
    loop at i_vbak into wa_vbak.
    move-corresponding wa_vbak to wa_sales_final.
    read table i_vbap with key vbeln = wa_vbak-vbeln
    binary search transporting no fields.
    loop at i_vbap into wa_vbap from sy-tabix.
    if wa_vbap-vbeln <> wa_vbak-vbeln.
    exit.
    endif.
    move-corresponding wa_vbap to wa_sales_final.
    append wa_sales_final to i_sales_final.
    endloop.
    endloop.
    endform. " zf_append_sales_final
    *& Form zf_build_fieldcat
    text
    -->P_I_FIELDCAT text
    form zf_build_fieldcat using p_i_fieldcat type slis_t_fieldcat_alv.
    data: l_fieldcat type slis_fieldcat_alv. "local Workarea used
    clear l_fieldcat.
    FOR LIGHT IN COLUMN
    clear l_fieldcat.
    l_fieldcat-col_pos = '1'. " POSITION OF THE COLUMN.
    l_fieldcat-fieldname = 'V_LIGHTS'.
    " FIELD FOR WHICH CATALOG ID FILLED.
    *We are passing final internal table 'I_FINAL' to l_fieldcat(local
    *variable
    l_fieldcat-tabname = 'I_SALES_FINAL'.
    " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
    l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
    l_fieldcat-outputlen = 20.
    " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
    append l_fieldcat to p_i_fieldcat.
    FIRST COLUMN ********************************
    l_fieldcat-col_pos = '2'. " POSITION OF THE COLUMN
    l_fieldcat-fieldname = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED
    l_fieldcat-tabname = 'I_SALES_FINAL'. " INTERNAL TABLE BELONGS TO
    l_fieldcat-key = 'X'. " SO THAT this field is not scrollable hiddable.
    l_fieldcat-just = 'L'. " FOR JUSTIFICATION
    *l_fieldcat-hotspot = 'X'. " MARK THIS field as hotsopt
    l_fieldcat-lzero = 'X'. " OUTPUT WITH leading zeros.
    l_fieldcat-seltext_l = 'Sales Document'. " long text for header.
    l_fieldcat-seltext_m = 'Sales Doc'. " medium text for header.
    l_fieldcat-seltext_s = 'Sales Doc'. " sort text for header.
    l_fieldcat-outputlen = 20. " SET THE output length.
    l_fieldcat-ref_tabname = 'VBAK'. " FOR F1 & F4 help as
    append l_fieldcat to p_i_fieldcat.
    clear l_fieldcat.
    **************************SECOND COLUMN ********************************
    *l_fieldcat-col_pos = '3'. " POSITION OF THE COLUMN
    l_fieldcat-row_pos = '2'. " POSITION OF THE COLUMN
    l_fieldcat-fieldname = 'POSNR'. " FIELD FOR WHICH CATALOG ID FILLED
    l_fieldcat-tabname = 'I_SALES_FINAL'. " INTERNAL TABLE BELONGS TO
    l_fieldcat-key = 'X'. " SO THAT this field is not scrollable hiddable.
    l_fieldcat-just = 'L'. " FOR JUSTIFICATION
    l_fieldcat-hotspot = 'X'. " MARK THIS field as hotsopt
    l_fieldcat-lzero = 'x'. " OUTPUT WITH leading zeros.
    l_fieldcat-seltext_l = 'Sales Document Item'. " long text for header.
    l_fieldcat-seltext_m = 'Sales Document Item'. " medium text for header.
    l_fieldcat-seltext_s = 'Sales Document Item'. " sort text for header.
    l_fieldcat-outputlen = 20. " SET THE output length.
    l_fieldcat-ref_tabname = 'VBAP'. " FOR F1 & F4 help as
    append l_fieldcat to p_i_fieldcat.
    clear l_fieldcat.
    endform. " zf_build_fieldcat
    *& Form zf_eventcat
    text
    -->P_I_EVENTCAT text
    form zf_eventcat using p_i_eventcat type slis_t_event.
    data: l_eventcat type slis_alv_event.
    clear l_eventcat.
    call function 'REUSE_ALV_EVENTS_GET'
    exporting
    i_list_type = 0
    importing
    et_events = p_i_eventcat
    exceptions
    list_type_wrong = 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.
    TOP OF PAGE FORM
    clear l_eventcat.
    read table p_i_eventcat into l_eventcat with key
    name = slis_ev_top_of_page.
    "(COMPONENT "NAME"of structure)
    if sy-subrc = 0. "if success
    move 'ZF_TOP_OF_PAGE' to l_eventcat-form.
    "matches name and moves form to workarea and modifies table
    modify p_i_eventcat from l_eventcat index sy-tabix
    transporting form.
    endif.
    PF_STATUS_SET FORM
    clear l_eventcat.
    read table p_i_eventcat into l_eventcat with key
    name = slis_ev_pf_status_set.
    if sy-subrc = 0.
    move 'ZF_PF_STATUS_SET' to l_eventcat-form.
    modify p_i_eventcat from l_eventcat index sy-tabix
    transporting form.
    endif.
    USER_COMMAND FORM
    clear l_eventcat.
    read table p_i_eventcat into l_eventcat with key
    name = slis_ev_user_command.
    if sy-subrc = 0.
    move 'ZF_USER_COMMAND' to l_eventcat-form.
    modify p_i_eventcat from l_eventcat index sy-tabix
    transporting form.
    endif.
    endform. " zf_eventcat
    *& Form zf_sorting
    text
    -->P_I_SORTINFO text
    form zf_sorting using p_i_sortinfo.
    endform. " zf_sorting
    *& Form zf_build_listheader
    text
    -->P_I_LISTHEADER text
    form zf_build_listheader using p_i_listheader type slis_t_listheader.
    data: l_listheader type slis_listheader.
    refresh p_i_listheader.
    clear l_listheader.
    HEADER
    l_listheader-typ = 'H'.
    l_listheader-info = 'FUJITSU CONSULTING INDIA LTD.'.
    append l_listheader to p_i_listheader.
    SELECTION
    l_listheader-typ = 'S'.
    l_listheader-key = 'Date:'.
    l_listheader-info = sy-datum.
    append l_listheader to p_i_listheader.
    ACTION
    l_listheader-typ = 'A'.
    *l_listheader-key =
    l_listheader-info = 'SALES ORDER ALV REPORT By Rohan Malik'.
    append l_listheader to p_i_listheader.
    endform. " zf_build_listheader
    *& Form zf_build_grid_title
    text
    --> p1 text
    <-- p2 text
    form zf_build_grid_title .
    v_gridtitle = 'List of Purchase Order'.
    endform. " zf_build_grid_title
    *& Form zf_display_alv_grid
    text
    --> p1 text
    <-- p2 text
    form zf_display_alv_grid .
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
    i_callback_program = v_progname
    i_grid_title = v_gridtitle
    is_layout = wa_layout
    it_fieldcat = i_fieldcat
    it_sort = i_sortinfo
    it_events = i_eventcat
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    tables
    t_outtab = i_sales_final
    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. " zf_display_alv_grid
    *& Form zf_top_of_page
    text
    --> p1 text
    <-- p2 text
    form zf_top_of_page .
    call function 'REUSE_ALV_COMMENTARY_WRITE'
    exporting
    it_list_commentary = i_listheader
    i_logo = 'ENJOYSAP_LOGO'
    I_END_OF_LIST_GRID =
    endform. " zf_top_of_page
    *& Form zf_user_command
    text
    --> p1 text
    <-- p2 text
    form zf_user_command using r_ucomm like sy-ucomm
    rs_selfield type slis_selfield .
    case r_ucomm. "FCODE
    when 'VA03'.
    read table i_sales_final into wa_sales_final index rs_selfield-tabindex.
    set parameter id 'AUN' field rs_selfield-value.
    call transaction 'VA03' and skip first screen .
    message i102 with rs_selfield-value .
    when '&IC1'. "for hotspot with VBELN, POSNR, MATNR, KUNNR.
    if rs_selfield-fieldname = 'MATNR'.
    set parameter id 'MAT' field rs_selfield-value.
    call transaction 'MM03' and skip first screen.
    return.
    message i103 with rs_selfield-value .
    endif.
    if rs_selfield-fieldname = 'VBELN'.
    set parameter id 'AUN' field rs_selfield-value.
    call transaction 'VA03' and skip first screen.
    return.
    message i104 with rs_selfield-value .
    endif.
    endcase.
    endform. " zf_user_command
    *& Form ZF_PF_STATUS_SET
    text
    --> p1 text
    <-- p2 text
    form zf_pf_status_set using rt_extab type slis_t_extab.
    set pf-status 'Z11_RM_ALV_SO'.
    endform. " ZF_PF_STATUS_SET
    *& Form zf_layout
    text
    --> p1 text
    <-- p2 text
    form zf_layout .
    wa_layout-zebra = 'X'.
    wa_layout-lights_fieldname = 'V_LIGHTS'.
    wa_layout-lights_tabname = 'I_SALES_FINAL'.
    " 1, 2 or 3 for red, yellow and green respectively.
    endform. " zf_layout
    *& Form zf_modify_final
    text
    --> p1 text
    <-- p2 text
    form zf_modify_final .
    CODE TO EXECUTE LIGHTS
    *start of loop
    loop at i_sales_final into wa_sales_final.
    *giving conditions and modifying as we want to change many rows
    if wa_sales_final-netwr <= 10000.
    wa_sales_final-v_lights = '1'.
    modify i_sales_final from wa_sales_final transporting v_lights.
    elseif wa_sales_final-netwr > 10000 and wa_sales_final-netwr <= 100000.
    wa_sales_final-v_lights = '2'. " Exception.
    modify i_sales_final from wa_sales_final transporting v_lights.
    else.
    wa_sales_final-v_lights = '3'. " Exception.
    modify i_sales_final from wa_sales_final transporting v_lights.
    endif.
    endloop.
    reward point s if helpful
    rohan malik

  • Display Traffic Lights in ALV TREE

    Hi,
    I have to display traffic light in ALV tree but i am not able to find out what parameter i should pass like in ALV grid where we can set is_layout (BCALV_GRID_04).
    Thanks in advance.
    Regards,
    Harsh

    Hi,
    Please take a look at my code below. Hope it suits your requirement.
    P.S. Please award points if it helps...
    *& Report ZMM_R_PO_TO_IPURCH_XI
    *& PROGRAM TYPE  : Report
    *& RICEF ID      :
    *& TITLE         : ZMM_R_PO_TO_IPURCH_XI
    *& SAP Module    : MM
    *& CREATION DATE : 02/06/2008
    *& AUTHOR        : Aris Hidalgo
    *& DESIGNER      : Aris Hidalgo
    *& DESCRIPTION   :
    *$**********************************************************************
    *$     CHANGE HISTORY
    *$----------------------------------------------------------------------
    *$   DATE        | T-Num      | Description                  | Reference
    **               |            |                              |
    *$**********************************************************************
    REPORT  zmm_r_po_to_ipurch_xi
            NO STANDARD PAGE HEADING
            MESSAGE-ID zmm.
    * Data Dictionary Table/s                      *
    TABLES: edidc.
    * SELECTION-SCREEN                             *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_credat FOR edidc-credat OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: rb_sum RADIOBUTTON GROUP grp1,
                rb_det RADIOBUTTON GROUP grp1.
    SELECTION-SCREEN END OF BLOCK b2.
    */ CLASS DEFINITION/S /*
    *       CLASS lcl_data_def DEFINITION
    CLASS lcl_data_def DEFINITION ABSTRACT.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_edidc,
                docnum TYPE edidc-docnum,
                docrel TYPE edidc-docrel,
                status TYPE edidc-status,
                doctyp TYPE edidc-doctyp,
                direct TYPE edidc-direct,
                rcvpor TYPE edidc-rcvpor,
                rcvprt TYPE edidc-rcvprt,
                rcvprn TYPE edidc-rcvprn,
                rcvsad TYPE edidc-rcvsad,
                sndpor TYPE edidc-sndpor,
                sndprt TYPE edidc-sndprt,
                sndprn TYPE edidc-sndprn,
                sndsad TYPE edidc-sndsad,
                credat TYPE edidc-credat,
                cretim TYPE edidc-cretim,
                mestyp TYPE edidc-mestyp,
                idoctp TYPE edidc-idoctp,
               END OF t_edidc.
        TYPES: BEGIN OF t_output,
                exception TYPE char1,
                ebeln     TYPE ekko-ebeln,
                lifnr     TYPE lfa1-lifnr,
                name1     TYPE lfa1-name1,
                credat    TYPE edidc-credat,
                cretim    TYPE edidc-cretim,
               END OF t_output.
        TYPES: BEGIN OF t_ekko,
                ebeln TYPE ekko-ebeln,
                lifnr TYPE ekko-lifnr,
               END OF t_ekko.
        TYPES: BEGIN OF t_lfa1,
                lifnr TYPE lfa1-lifnr,
                name1 TYPE lfa1-name1,
               END OF t_lfa1.
        DATA: gt_edidc  TYPE STANDARD TABLE OF t_edidc,
              gt_output TYPE STANDARD TABLE OF t_output,
              wa_output LIKE LINE OF gt_output,
              gt_ekko   TYPE HASHED TABLE OF t_ekko
                        WITH UNIQUE KEY ebeln,
              gt_lfa1   TYPE HASHED TABLE OF t_lfa1
                        WITH UNIQUE KEY lifnr.
    ENDCLASS.                    "lcl_data_def DEFINITION
    CLASS lcl_alv_routines  DEFINITION DEFERRED.
    CLASS lcl_handle_events DEFINITION DEFERRED.
    *       CLASS lcl_get_data DEFINITION
    CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.
      PUBLIC SECTION.
        METHODS: get_idocs,
                 read_idocs,
                 process_data
                   IMPORTING
                     im_docnum TYPE edidc-docnum.
      PRIVATE SECTION.
        CONSTANTS: lc_mestyp     TYPE edidc-mestyp VALUE 'ZMARKETSITE_PURCHASE_ORDER',
                   lc_idoctp     TYPE edidc-idoctp VALUE 'ZMARKETSITE_PURCHASE_ORDER01',
                   lc_segnam     TYPE edid4-segnam VALUE 'ZMARKETSITE_ORDER_HEADER1'.
        CONSTANTS: lc_red        TYPE i VALUE 1,
                   lc_yellow     TYPE i VALUE 2,
                   lc_green      TYPE i VALUE 3.
        DATA: lv_stat_message    TYPE bdidocattr-message,
              o_lcl_alv_routines TYPE REF TO lcl_alv_routines.
        DATA: ls_idoc_control    TYPE edidc,
              lv_tot_data_recs   TYPE sy-dbcnt,                 "#EC NEEDED
              lv_tot_status_recs TYPE sy-dbcnt.                 "#EC NEEDED
        DATA: lt_edids TYPE STANDARD TABLE OF edids,
              lt_edidd TYPE STANDARD TABLE OF edidd.
    ENDCLASS.                    "lcl_get_data DEFINITION
    *       CLASS lcl_alv_routines DEFINITION
    CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_get_data.
      PUBLIC SECTION.
        DATA: lcl_table            TYPE REF TO cl_salv_table,
              lcl_container        TYPE REF TO cl_gui_custom_container,
              lcl_handle_events    TYPE REF TO lcl_handle_events,
              lcl_columns          TYPE REF TO cl_salv_columns_table,
              lcl_column           TYPE REF TO cl_salv_column_table,
              lcl_events2          TYPE REF TO cl_salv_events_table,
              lcl_display_settings TYPE REF TO cl_salv_display_settings,
              lcl_functions        TYPE REF TO cl_salv_functions_list,
              lcl_display          TYPE REF TO cl_salv_display_settings,
              lcl_aggregations     TYPE REF TO cl_salv_aggregations,
              lcl_sorts            TYPE REF TO cl_salv_sorts,
              lcl_content          TYPE REF TO cl_salv_form_element,
              lcl_header           TYPE REF TO cl_salv_form_header_info,
              ls_color             TYPE lvc_s_colo.
        DATA: lcl_grid            TYPE REF TO cl_salv_form_layout_grid,
              lcl_grid_1          TYPE REF TO cl_salv_form_layout_grid,
              lcl_grid_2          TYPE REF TO cl_salv_form_layout_grid,
              lcl_label           TYPE REF TO cl_salv_form_label,"#EC NEEDED
              lcl_text            TYPE REF TO cl_salv_form_text,
              gt_t247             TYPE STANDARD TABLE OF t247,
              wa_t247             LIKE LINE OF gt_t247,
              lv_text             TYPE string.
        METHODS: display_data
                   IMPORTING
                     im_output LIKE gt_output,
                 display_top_of_page.
      PRIVATE SECTION.
        DATA: lv_string TYPE string,
              lv_date1  TYPE c LENGTH 10,
              lv_time   TYPE c LENGTH 10,
              lv_title  TYPE string.
    ENDCLASS.                    "lcl_alv_routines DEFINITION
    *       CLASS lcl_handle_events DEFINITION
    CLASS lcl_handle_events DEFINITION.
      PUBLIC SECTION.
        METHODS:
          on_link_click FOR EVENT link_click OF cl_salv_events_table
            IMPORTING row column.
    ENDCLASS.                    "lcl_handle_events DEFINITION
    */ IMPLEMENTATION/S /*
    *       CLASS lcl_get_data IMPLEMENTATION
    CLASS lcl_get_data IMPLEMENTATION.
    * METHOD get_idocs
      METHOD get_idocs.
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
    *       PERCENTAGE       = 0
            text             = text-p01.
        SELECT docnum docrel status doctyp
               direct rcvpor rcvprt rcvprn
               rcvsad sndpor sndprt sndprn
               sndsad credat cretim mestyp
               idoctp
          FROM edidc
          INTO TABLE gt_edidc
         WHERE mestyp = lc_mestyp
           AND idoctp = lc_idoctp
           AND credat IN s_credat.
        IF gt_edidc[] IS NOT INITIAL.
    *     Get IDOC details
          CALL METHOD me->read_idocs.
        ENDIF.
      ENDMETHOD.                    "get_idocs
    * METHOD read_idocs
      METHOD read_idocs.
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
    *       PERCENTAGE       = 0
            text             = text-p02.
        FIELD-SYMBOLS: <fs_edidc>  LIKE LINE OF gt_edidc,
                       <fs_output> LIKE LINE OF gt_output,
                       <fs_ekko>   LIKE LINE OF gt_ekko,
                       <fs_lfa1>   LIKE LINE OF gt_lfa1.
        LOOP AT gt_edidc ASSIGNING <fs_edidc>.
          CLEAR ls_idoc_control.
          REFRESH: lt_edids, lt_edidd.
    *     Get status text of IDOC
          CALL FUNCTION 'IDOC_GET_MESSAGE_ATTRIBUTE'
            EXPORTING
              idoc_number  = <fs_edidc>-docnum
            IMPORTING
              idoc_message = lv_stat_message.
    *     Get IDOC details
          CALL FUNCTION 'IDOC_READ_COMPLETELY'
            EXPORTING
              document_number          = <fs_edidc>-docnum
            IMPORTING
              idoc_control             = ls_idoc_control
              number_of_data_records   = lv_tot_data_recs
              number_of_status_records = lv_tot_status_recs
            TABLES
              int_edids                = lt_edids
              int_edidd                = lt_edidd
            EXCEPTIONS
              document_not_exist       = 1
              document_number_invalid  = 2
              OTHERS                   = 3.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    *     Pass data to output table
          CALL METHOD me->process_data
            EXPORTING
              im_docnum = <fs_edidc>-docnum.
        ENDLOOP.
        DELETE gt_output WHERE ebeln IS INITIAL.
        IF gt_output[] IS NOT INITIAL.
    *     Get vendor for fetched POs
          SELECT ebeln lifnr
            FROM ekko
            INTO TABLE gt_ekko
             FOR ALL ENTRIES IN gt_output
           WHERE ebeln = gt_output-ebeln.
          IF gt_ekko[] IS NOT INITIAL.
    *       Get name of vendors
            SELECT lifnr name1
              FROM lfa1
              INTO TABLE gt_lfa1
               FOR ALL ENTRIES IN gt_ekko
             WHERE lifnr = gt_ekko-lifnr.
          ENDIF.
    *     Pass vendor details to output table
          LOOP AT gt_output ASSIGNING <fs_output>.
            READ TABLE gt_ekko ASSIGNING <fs_ekko>
                               WITH TABLE KEY ebeln = <fs_output>-ebeln.
            IF sy-subrc = 0.
              READ TABLE gt_lfa1 ASSIGNING <fs_lfa1>
                                 WITH TABLE KEY lifnr = <fs_ekko>-lifnr.
              IF sy-subrc = 0.
                <fs_output>-lifnr = <fs_lfa1>-lifnr.
                <fs_output>-name1 = <fs_lfa1>-name1.
              ENDIF.
            ENDIF.
          ENDLOOP.
          CREATE OBJECT o_lcl_alv_routines.
          CALL METHOD o_lcl_alv_routines->display_data
            EXPORTING
              im_output = gt_output[].
        ENDIF.
      ENDMETHOD.                    "read_idocs
    * METHOD process_data
      METHOD process_data.
        FIELD-SYMBOLS: <fs_edidd> LIKE LINE OF lt_edidd.
        IF lv_stat_message CP 'ok' OR
           lv_stat_message CP 'positive'.
          wa_output-exception = lc_green.
        ELSEIF lv_stat_message CP 'error' OR
               lv_stat_message CP 'negative'.
          wa_output-exception = lc_red.
        ELSE.
          wa_output-exception = lc_yellow.
        ENDIF.
        READ TABLE lt_edidd ASSIGNING <fs_edidd>
                            WITH KEY docnum = im_docnum
                                     segnam = lc_segnam.
        IF sy-subrc = 0.
          wa_output-ebeln = <fs_edidd>-sdata+0(10).
        ENDIF.
        wa_output-credat = ls_idoc_control-credat.
        wa_output-cretim = ls_idoc_control-cretim.
        APPEND wa_output TO gt_output.
        CLEAR wa_output.
      ENDMETHOD.                    "process_data
    ENDCLASS.                    "lcl_get_data IMPLEMENTATION
    *       CLASS lcl_alv_routines IMPLEMENTATION
    CLASS lcl_alv_routines IMPLEMENTATION.
    * METHOD display_data
      METHOD display_data.
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
            percentage = 0
            text       = text-p03.
        gt_output[] = im_output[].
        TRY.
            cl_salv_table=>factory(
              EXPORTING
                list_display = ''
              IMPORTING
                r_salv_table = lcl_table
              CHANGING
                t_table      = gt_output ).
          CATCH cx_salv_msg.                                "#EC NO_HANDLER
        ENDTRY.
        lcl_functions = lcl_table->get_functions( ).
    *   Set all standard ALV functions
        lcl_functions->set_all( abap_true ).
        lcl_columns = lcl_table->get_columns( ).
        lcl_columns->set_optimize( '' ).
    *   Set display to striped pattern
        lcl_display = lcl_table->get_display_settings( ).
        lcl_display->set_striped_pattern( cl_salv_display_settings=>true ).
    */Sort columns
        TRY.
            lcl_sorts = lcl_table->get_sorts( ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
        lcl_sorts->set_group_active( ).
        TRY.
            lcl_sorts->add_sort(
              columnname = 'EBELN'
              subtotal   = '' ).
          CATCH cx_salv_not_found cx_salv_existing cx_salv_data_error."#EC NO_HANDLER
        ENDTRY.
    */Set column names
        TRY.
            lcl_columns->set_exception_column( 'EXCEPTION' ).
          CATCH cx_salv_data_error.                         "#EC NO_HANDLER
        ENDTRY.
        TRY.
            lcl_column ?= lcl_columns->get_column( 'EXCEPTION' ).
            lcl_column->set_short_text( text-h01 ).
            lcl_column->set_medium_text( text-h01 ).
            lcl_column->set_long_text( text-h01 ).
            lcl_column->set_output_length( '6' ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
        TRY.
            lcl_column ?= lcl_columns->get_column( 'EBELN' ).
            lcl_column->set_short_text( text-h02 ).
            lcl_column->set_medium_text( text-h02 ).
            lcl_column->set_long_text( text-h02 ).
            lcl_column->set_output_length( '9' ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
        TRY.
            lcl_column ?= lcl_columns->get_column( 'LIFNR' ).
    *        lcl_column->set_short_text( text-h03 ).
            lcl_column->set_medium_text( text-h03 ).
            lcl_column->set_long_text( text-h03 ).
            lcl_column->set_output_length( '11' ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
        TRY.
            lcl_column ?= lcl_columns->get_column( 'NAME1' ).
    *        lcl_column->set_short_text( text-h04 ).
    *        lcl_column->set_medium_text( text-h04 ).
            lcl_column->set_long_text( text-h04 ).
            lcl_column->set_output_length( '30' ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
        TRY.
            lcl_column ?= lcl_columns->get_column( 'CREDAT' ).
    *        lcl_column->set_short_text( text-h05 ).
    *        lcl_column->set_medium_text( text-h05 ).
            lcl_column->set_long_text( text-h05 ).
            lcl_column->set_output_length( '13' ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
        TRY.
            lcl_column ?= lcl_columns->get_column( 'CRETIM' ).
    *        lcl_column->set_short_text( text-h06 ).
    *        lcl_column->set_medium_text( text-h06 ).
            lcl_column->set_long_text( text-h06 ).
            lcl_column->set_output_length( '13' ).
          CATCH cx_salv_not_found.                          "#EC NO_HANDLER
        ENDTRY.
    */Set aggregations
    *    TRY.
    *        lcl_aggregations = lcl_table->get_aggregations( ).
    *      CATCH cx_salv_not_found.                          "#EC NO_HANDLER
    *    ENDTRY.
    *    TRY.
    *        lcl_aggregations->add_aggregation( '' ).
    *      CATCH cx_salv_not_found cx_salv_data_error cx_salv_existing."#EC NO_HANDLER
    *    ENDTRY.
    */Hide columns
    *    TRY.
    *        lcl_column ?= lcl_columns->get_column( 'DESCRIPT' ).
    *        lcl_column->set_visible( if_salv_c_bool_sap=>false ).
    *      CATCH cx_salv_not_found.                          "#EC NO_HANDLER
    *    ENDTRY.
    */Display top of page
        CALL METHOD me->display_top_of_page.
        lcl_table->set_top_of_list( lcl_content ).
    */Handle ALV events
        lcl_events2 = lcl_table->get_event( ).
        CREATE OBJECT lcl_handle_events.
        SET HANDLER lcl_handle_events->on_link_click FOR lcl_events2.
        lcl_display_settings = lcl_table->get_display_settings( ).
        lcl_table->display( ).
      ENDMETHOD.                    "display_data
    * METHOD display_top_of_page
      METHOD display_top_of_page.
        CREATE OBJECT lcl_grid.
        lv_title = text-t01.
        lcl_grid->create_header_information(
                    row     = 1
                    column  = 1
                    text    = lv_title
                    tooltip = lv_title ).
        lcl_grid->add_row( ).
        lcl_grid_1 = lcl_grid->create_grid(
                       row    = 3
                       column = 1 ).
        CLEAR lv_string.
        CONCATENATE: sy-datum+4(2) '/' sy-datum+6(2) '/' sy-datum+0(4)
               INTO lv_date1.
        CONCATENATE: text-t02 lv_date1
               INTO lv_string
          SEPARATED BY space.
        lcl_label = lcl_grid_1->create_label(
                      row     = 1
                      column  = 1
                      text    = lv_string
                      tooltip = lv_string ).
        CLEAR lv_string.
        CONCATENATE: sy-uzeit+0(2) ':' sy-uzeit+2(2) ':' sy-uzeit+4(2)
               INTO lv_time.
        CONCATENATE: text-t03 lv_time
               INTO lv_string
          SEPARATED BY space.
        lcl_label = lcl_grid_1->create_label(
                      row     = 2
                      column  = 1
                      text    = lv_string
                      tooltip = lv_string ).
        lcl_content = lcl_grid.
      ENDMETHOD.                    "display_top_of_page
    ENDCLASS.                    "lcl_alv_routines IMPLEMENTATION
    *       CLASS lcl_handle_events IMPLEMENTATION
    CLASS lcl_handle_events IMPLEMENTATION.
    * METHOD on_link_click
      METHOD on_link_click.
      ENDMETHOD.                    "on_link_click
    ENDCLASS.                    "lcl_handle_events IMPLEMENTATION
    * START-OF-SELECTION                           *
    START-OF-SELECTION.
      DATA: o_lcl_get_data TYPE REF TO lcl_get_data.
      CREATE OBJECT o_lcl_get_data.
      CALL METHOD o_lcl_get_data->get_idocs.

  • Traffic Lights in ALV

    Hi experts,
    I am using below code to generate the traffic lights but in column header i am getting one button i want to replace that as Traffic lights. how to do this can any body tell me
    "Includes
    INCLUDE <icon>.
    INCLUDE <symbol>.
    *& Declaration part
    "Types
    TYPES:
         BEGIN OF t_lights,
           matnr  TYPE mard-matnr,
           werks  TYPE mard-werks,
           lgort  TYPE mard-lgort,
           lights TYPE char4,       "Variable is needs to be declared with length 4 char
          END OF t_lights.
    "Work Areas
    DATA:
        w_lights TYPE t_lights.
    "Internal tables
    DATA:
        i_lights TYPE STANDARD TABLE OF t_lights.
    ALV Declarations
    Types Pools
    TYPE-POOLS:
       slis.
    Types
    TYPES:
       t_fieldcat         TYPE slis_fieldcat_alv,
       t_events           TYPE slis_alv_event,
       t_layout           TYPE slis_layout_alv.
    Workareas
    DATA:
       w_fieldcat         TYPE t_fieldcat,
       w_events           TYPE t_events,
       w_layout           TYPE t_layout.
    Internal Tables
    DATA:
       i_fieldcat         TYPE STANDARD TABLE OF t_fieldcat,
       i_events           TYPE STANDARD TABLE OF t_events.
    *&    start of selection
    START-OF-SELECTION.
      PERFORM get_data.
    *&    end-of-selection.
    END-OF-SELECTION.
      PERFORM build_fieldcatlog.
      PERFORM build_layout.
      PERFORM list_display.
    *&      Form  get_data
    FORM get_data .
      SELECT matnr
             werks
             lgort
        FROM mard
        INTO CORRESPONDING FIELDS OF TABLE i_lights
        UP TO 10 ROWS.
      IF i_lights[] IS INITIAL.
        "Dummy data
        DO 10 TIMES.
          w_lights-matnr = sy-index.
          w_lights-werks = sy-index + 1.
          w_lights-lgort = sy-index + 2.
          APPEND w_lights TO i_lights.
          CLEAR  w_lights.
        ENDDO.
      ENDIF.
      "Just pass 1=red or 2=yellow or 3=green to lights fields
      LOOP AT i_lights INTO w_lights .
        IF sy-tabix BETWEEN 1 AND 3.
          w_lights-lights = '1'.
        ELSEIF sy-tabix BETWEEN 4 AND 7.
          w_lights-lights = '2'.
        ELSEIF sy-tabix BETWEEN 8 AND 10.
          w_lights-lights = '3'.
        ENDIF.
        MODIFY i_lights FROM w_lights INDEX sy-tabix TRANSPORTING lights.
      ENDLOOP.
    ENDFORM.                    " get_data
    *&      Form  build_fieldcatlog
    FORM build_fieldcatlog .
      CLEAR:w_fieldcat,i_fieldcat[].
      w_fieldcat-fieldname     = 'MATNR'.
      w_fieldcat-seltext_m     = 'MATNR'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
      w_fieldcat-fieldname     = 'WERKS'.
      w_fieldcat-seltext_m     = 'WERKS'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
      w_fieldcat-fieldname     = 'LGORT'.
      w_fieldcat-seltext_m     = 'LGORT'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
    ENDFORM.                    " build_fieldcatlog
    *&      Form  build_layout
    FORM build_layout .
      w_layout-colwidth_optimize = 'X'.
      w_layout-zebra             = 'X'.
      w_layout-lights_fieldname  = 'LIGHTS'.
      w_layout-lights_tabname    = 'I_LIGHTS'.
    ENDFORM.                    " build_layout
    *&      Form  list_display
    FORM list_display .
      DATA:
            l_program TYPE sy-repid.
      l_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program = l_program
          is_layout          = w_layout
          it_fieldcat        = i_fieldcat
        TABLES
          t_outtab           = i_lights
        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
    Thanks,
    Tharangini

    Hi!
    Try this code.I have removed the previous code where you specify Lights in layout.I specified the lights column in fieldcatalog as Icon and passed the icon value instead of the no.s which you specified earlier.
    "Includes
    INCLUDE <icon>.
    INCLUDE <symbol>.
    *& Declaration part
    "Types
    TYPES:
    BEGIN OF t_lights,
    matnr TYPE mard-matnr,
    werks TYPE mard-werks,
    lgort TYPE mard-lgort,
    lights(4),
    END OF t_lights.
    "Work Areas
    DATA:
    w_lights TYPE t_lights.
    "Internal tables
    DATA:
    i_lights TYPE STANDARD TABLE OF t_lights.
    TYPE-POOLS:
    slis.
    TYPES:
    t_fieldcat TYPE slis_fieldcat_alv,
    t_events TYPE slis_alv_event,
    t_layout TYPE slis_layout_alv.
    DATA:
    w_fieldcat TYPE t_fieldcat,
    w_events TYPE t_events,
    w_layout TYPE t_layout.
    DATA:
    i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
    i_events TYPE STANDARD TABLE OF t_events.
    *& start of selection
    START-OF-SELECTION.
      PERFORM get_data.
    *& end-of-selection.
    END-OF-SELECTION.
      PERFORM build_fieldcatlog.
      PERFORM build_layout.
      PERFORM list_display.
    *& Form get_data
    FORM get_data .
      SELECT matnr
      werks
      lgort
      FROM mard
      INTO CORRESPONDING FIELDS OF TABLE i_lights
      UP TO 10 ROWS.
      IF i_lights[] IS INITIAL.
        "Dummy data
        DO 10 TIMES.
          w_lights-matnr = sy-index.
          w_lights-werks = sy-index + 1.
          w_lights-lgort = sy-index + 2.
          APPEND w_lights TO i_lights.
          CLEAR w_lights.
        ENDDO.
      ENDIF.
      "Just pass @0A@=red or @09@=yellow or @08@=green to lights fields
      LOOP AT i_lights INTO w_lights .
        IF sy-tabix BETWEEN 1 AND 3.
          w_lights-lights = '@0A@'.
        ELSEIF sy-tabix BETWEEN 4 AND 7.
          w_lights-lights = '@09@'.
        ELSEIF sy-tabix BETWEEN 8 AND 10.
          w_lights-lights = '@08@'.
        ENDIF.
        MODIFY i_lights FROM w_lights INDEX sy-tabix TRANSPORTING lights.
      ENDLOOP.
    ENDFORM. " get_data
    *& Form build_fieldcatlog
    FORM build_fieldcatlog .
      CLEAR:w_fieldcat,i_fieldcat[].
      w_fieldcat-fieldname = 'MATNR'.
      w_fieldcat-seltext_m = 'MATNR'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
      w_fieldcat-fieldname = 'WERKS'.
      w_fieldcat-seltext_m = 'WERKS'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
      w_fieldcat-fieldname = 'LGORT'.
      w_fieldcat-seltext_m = 'LGORT'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
      w_fieldcat-fieldname = 'LIGHTS'.
      w_fieldcat-icon = 'X'.
      w_fieldcat-outputlen = 14.
      w_fieldcat-seltext_l = 'Traffic Lights'.
      w_fieldcat-seltext_s = 'Traffic Lights'.
      w_fieldcat-seltext_m = 'Traffic Lights'.
      APPEND w_fieldcat TO i_fieldcat.
      CLEAR w_fieldcat.
    ENDFORM. " build_fieldcatlog
    *& Form build_layout
    FORM build_layout .
      w_layout-colwidth_optimize = 'X'.
      w_layout-zebra = 'X'.
    ENDFORM. " build_layout
    *& Form list_display
    FORM list_display .
      DATA:
      l_program TYPE sy-repid.
      l_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = l_program
          is_layout          = w_layout
          it_fieldcat        = i_fieldcat
        TABLES
          t_outtab           = i_lights
        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

Maybe you are looking for

  • How to connect 2 ethernet cables to 1 port? Help me please.

    My computer has one ethernet port, but I need to be able to connect two ethernet cables to it. I am about to get satellite internet which requires an ethernet port and also about to sign up to a VoIP (Voice over IP) service which also requires an eth

  • Adf bc project little bug

    When creating a new adf bc project the name for the project is wrong displayed, a "0" is added to the name. Model0 is displayed instead of Model or model depending on the location

  • Inclusion of 0recordmode in transfer rules

    Dear All,          I am pulling data from a Ztable through a data source (Delta) into BW from R/3.I am pulling delta data into ODS through infosource. I have made an ODS but while making update rules , it gives warning "0recordmode is not present in

  • HTML5 development in Eclipse

    Hi all, I'm developing HCP HTML5 applications based on UI5. While the RDE looks really great, I'd still like to use the good old Eclipse to launch my project locally. To do so, I've created an HTML5 application from the cockpit, generated a sample UI

  • Mountain Lion/Illustrator creating large PDF files

    I have an iMac [Snow Leopard] that runs Adobe Illustrator, and also a Macbook Pro [Mid 2012, Mountain Lion] that also runs the software. Both are set up identically, but using the same image files, the iMac produces PDFs of about 1.6MB, whereas the M