Droplist in WD ALV Cell

Hi,
I have an editable ALV.I want to give an option in a cell with droplist (DAYS/Weeks)
How can we achieve this?
Do we have any sample WD in SAP for this requirement?
Rgds
vara

DATA:     lr_alv_usage       TYPE REF TO if_wd_component_usage,
                  lr_if_controller   TYPE REF TO iwci_salv_wd_table,
                  lr_config          TYPE REF TO cl_salv_wd_config_table,
                  lr_column_settings TYPE REF TO if_salv_wd_column_settings,
                  lt_columns         TYPE        salv_wd_t_column_ref,
                  lr_dropdown        TYPE REF TO CL_SALV_WD_UIE_DROPDOWN_BY_KEY.
  FIELD-SYMBOLS   <fs_column> LIKE LINE OF lt_columns.
" Write code to Instantiate the ALV Component
" Write code to get reference to the ALV model
" To get the dropdowns displayed you need to set the table to editable by using below statement
  lr_config->if_salv_wd_table_settings~set_read_only( abap_false ).
" Get reference to all the ALV's columns in the form of an internal table
  lr_column_settings ?= lr_config.
  lt_columns = lr_column_settings->get_columns( ).
" Loop through the columns & change the cell editors accordingly. In my code below
" I change the columns by name TEMP & TEMP_NEW to dropdowns
LOOP AT lt_columns ASSIGNING <fs_column>.
    IF <fs_column>-id = 'CARRID'.
      CREATE OBJECT lr_link.
      lr_link->set_text_fieldname( <fs_column>-id ).
      <fs_column>-r_column->set_cell_editor( lr_link ).
    ENDIF.
IF <fs_column>-id = 'TEMP'.
      CREATE OBJECT lr_dropdown
        EXPORTING
          selected_key_fieldname = 'TEMP'.
      <fs_column>-r_column->set_cell_editor( lr_dropdown ).
    ENDIF.
    IF <fs_column>-id = 'TEMP_NEW'.
      CREATE OBJECT lr_dropdown
        EXPORTING
          selected_key_fieldname = 'TEMP_NEW'.
      <fs_column>-r_column->set_cell_editor( lr_dropdown ).
    ENDIF.
  ENDLOOP.

Similar Messages

  • ALV cells as buttons

    Hello,
    I'm using attribute cl_gui_alv_grid=>mc_style_button to put some cells in my ALV as buttons. I need that when the user push those buttons an event is raised. Does someone have any example of buttons in ALV cells?
    Thank you and regards.

    Hello,
    I'm using attribute cl_gui_alv_grid=>mc_style_button to put some cells in my ALV as buttons. I need that when the user push those buttons an event is raised. Does someone have any example of buttons in ALV cells?
    Thank you and regards.

  • Alv cell color with FM

    hi ,
    can one send me program for alv cell color with help of function modules
    kiran

    Hi Kiran .
    <b>1.Cell Color.</b>
    While Building Fieldcatalog ,there is one field called
    EMPHASIZE.You have to set like this .
    i_field-emphasize = 'C26'.
    <b>2.ROW COLOR.</b>
    Have a look at this example .
    <b>a</b>.Define one variable COLOR in ur main ITAB.
    <b>b</b>.Fill it .
    <b>c</b>.Pass this info.
      w_layout-info_fieldname = 'COLOR'.
    <b>d</b>. display it .
    *& Report  ZGRID_COLOR                                                 *
    REPORT  zgrid_color                             .
    TYPE-POOLS slis.
    DATA: BEGIN OF i_pa0001 OCCURS 0,
    <b>        color(3) TYPE c,</b>
            pernr TYPE pa0001-pernr,
            subty TYPE pa0001-subty,
          END OF i_pa0001.
    DATA :i_field TYPE slis_t_fieldcat_alv,
          w_field LIKE LINE OF i_field,
          w_layout TYPE slis_layout_alv.
    START-OF-SELECTION .
      PERFORM get_data.
      PERFORM fieldcat.
      PERFORM layout_build.
      PERFORM dispaly .
    *&      Form  fieldcat
    FORM fieldcat .
      CLEAR :w_field,i_field[].
      w_field-fieldname = 'PERNR'.
      w_field-tabname   = 'I_PA0001'.
      w_field-seltext_m = 'PERNR'.
      APPEND w_field TO i_field.
      CLEAR w_field.
      w_field-fieldname = 'SUBTY'.
      w_field-tabname   = 'I_PA0001'.
      w_field-seltext_m = 'SUBTY'.
      APPEND w_field TO i_field.
      CLEAR w_field.
    ENDFORM.                    " fieldcat
    *&      Form  dispaly
    FORM dispaly .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       i_callback_program                = 'ZGRID_COLOR'
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
    <b>   is_layout                         = w_layout</b>
       it_fieldcat                       = i_field
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = i_pa0001
    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.                    " dispaly
    *&      Form  get_data
    FORM get_data .
      SELECT pernr subty
      FROM pa0001
      INTO CORRESPONDING FIELDS OF TABLE i_pa0001
      UP TO 10 ROWS.
    LOOP AT i_pa0001.
        IF sy-tabix GT 5.
      <b>    i_pa0001-color = 'C51'.</b>
          MODIFY i_pa0001 INDEX sy-tabix.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " get_data
    *&      Form  layout_build
    FORM layout_build .
    <b>  w_layout-info_fieldname = 'COLOR'.</b>
    ENDFORM.                    " layout_build
    I hope it helps u .
    <b>Thanks,
    Venkat.O</b>

  • Set ALV Cell visibility property

    Hi,
    I would have 2 tables for ALV. One table consists of the data to be bound to the ALV. The other table would have the read only property(boolean) filled for each of the ALV cells.
    I would want to set the property of each ALV cell using the second table. How do i do that?
    Currently i am just testing it for few attributes statically using the below code.
    DATA lo_nd_date_table TYPE REF TO if_wd_context_node.
    DATA lo_el_date_table TYPE REF TO if_wd_context_element.
    DATA: lt_ele_set TYPE wdr_context_element_set.
    navigate from <CONTEXT> to <DATE_TABLE> via lead selection
      lo_nd_date_table = wd_context->get_child_node( name = wd_this->wdctx_date_table ).
    lt_ele_set = lo_nd_date_table->get_elements( ).
      LOOP AT lt_ele_set INTO lo_el_date_table.
          lo_el_date_table->set_attribute_property(
               attribute_name = 'WK02'                                 -
    > Attribute Name (Column Name)
               property       = if_wd_context_element=>e_property-read_only
               value          =  'X' ).
    << Similarly for other attributes>>
    ENDLOOP.
    I have inserted this code at the end. Initially few other properties were set to the cells.
    This seems to be not working.
    Regards,
    Rekha
    Edited by: Rekha Gopinath on Sep 8, 2009 10:40 AM

    Hi Lekha,
    In my case, the columns represents dates. The rows represent projects. So, only those row cells are editable where the project is valid.
    1. I have created READ_ONLY attribute for the date node (table).
    2. I am filling the READ_ONLY to abap_true or abap_false based on the following condition.
       Even if one of the projects is not valid for a date, then READ_ONLY = ABAP_TRUE. This means, even if one cell is set to abap_true, then READ_ONLY is set to abap_true.
    3. I modify the date node and bind it with the READ_ONLY set row wise.
    Loop at the data and set read only
      navigate from <CONTEXT> to <DATE_TABLE> via lead selection
      lo_nd_date_table = wd_context->get_child_node( name = wd_this->wdctx_date_table ).
      CALL METHOD lo_nd_date_table->get_static_attributes_table
        IMPORTING
          table  = lt_date_table    .
      LOOP AT lt_date_table INTO ls_date_table.
        lv_tabix = sy-tabix.
          READ TABLE wd_this->gt_prop INTO ls_prop INDEX lv_tabix.
          IF sy-subrc EQ 0.
            IF ls_prop-wk01 = abap_true OR         
              ls_prop-wk02 = abap_true OR
              ls_prop-wk03 = abap_true OR
              ls_prop-wk04 = abap_true OR
              ls_prop-wk05 = abap_true OR
              ls_prop-wk06 = abap_true OR
              ls_prop-wk07 = abap_true OR
              ls_prop-wk08 = abap_true OR
              ls_prop-wk09 = abap_true OR
              ls_prop-wk10 = abap_true OR
              ls_prop-wk11 = abap_true OR
              ls_prop-wk12 = abap_true OR
              ls_prop-wk13 = abap_true OR
              ls_prop-wk14 = abap_true OR
              ls_prop-wk15 = abap_true.
              ls_date_table-read_only = abap_true.
            ELSE.
              ls_date_table-read_only = abap_false.
            ENDIF.
          ENDIF.
        MODIFY lt_date_table FROM ls_date_table INDEX lv_tabix TRANSPORTING read_only.
      ENDLOOP.
      CALL METHOD lo_nd_date_table->bind_table
        EXPORTING
          new_items            = lt_date_table
          set_initial_elements = abap_true.
    4. I loop through the column reference and use the code mentioned earlier.
              CREATE OBJECT lr_input
                EXPORTING
                  value_fieldname = lv_id.
              lo_column->set_cell_editor( value  = lr_input ).
              lr_input->set_read_only_fieldname( value = 'READ_ONLY' ).
    The expected output is different from the input i had mentioned earlier for Row 1, row 2, Row 3 and row 4. Here, i would get all the rows as non editable except for Row 3.
    I would want to set all columns based on condition.
    Regards,
    Rekha

  • Wrap text in ALV cell

    Hello,
    I have an ALV table, and some colums are of type text with quite long lengths.
    Initially the columns have a small length, but when the user writes long texts (for example 100 characters) the cell will is automatically enlarged to show the complete text on the screen. That's quite annoying because with two or three columns like this, storing long texts, the overall width of the table is really big.
    I know that there is a way to define fixed columns, but the problem with this is that then, when the long text is input in the table, you cannot scroll inside the cell to see the values, you can only see the beginning of the phrase.
    I would like to do something similar to the Excel. First I would like to allow the users to resize the columns (just like the Excel grid) and then I would like to wrap long texts in different rows (inside the cell) to reduce the cell width.
    Is this possible? What would you recommend in this case?
    Regards

    Hi Javier,
    The ALV resize functionality is there in 7.0 Enhp1. It works for standard tables and ALV. You only have to set the fixedTableLayout property to True.  You can use the below link to check out Thomas Jung's [demonstration |http://www.flickr.com/photos/tjung/2806011790/]in which he shows as to how we can resize the ALV columns.
    create an instance of ALV component
    DATA: LR_IF_CONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE,
    LR_CMP_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE,
    LR_CMDL TYPE REF TO CL_SALV_WD_CONFIG_TABLE,
    LR_TABLE_SETTING TYPE REF TO IF_SALV_WD_TABLE_SETTINGS.
    LR_CMP_USAGE = WD_THIS->WD_CPUSE_ALV( ).
    IF LR_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
    LR_CMP_USAGE->CREATE_COMPONENT( ).
    ENDIF.
    get reference to the ALV model
    LR_IF_CONTROLLER = WD_THIS->WD_CPIFC_ALV( ).
    LR_CMDL = LR_IF_CONTROLLER->GET_MODEL( ).
    LR_TABLE_SETTING ?= LR_CMDL.
    Set column width
    DATA LR_COL TYPE REF TO CL_SALV_WD_COLUMN.
    LR_COL = LR_CMDL->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'PERNR' ).
    LR_COL->SET_WIDTH( '70' ) .
    LR_COL = LR_CMDL->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'ENAME' ).
    LR_COL->SET_WIDTH( '100' ) .
    LR_TABLE_SETTING->SET_FIXED_TABLE_LAYOUT( ABAP_TRUE ).
    Regards,
    Uday

  • ALV cell attributes CHANGE during DATA_CHANGED event

    Hi,
    I am working with CL_GUI_ALV_GRID in a splitter control. I am trying to make separate cells (non)editable depending on user input in the ALV. In event DATA_CHANGED (refefined) I change the cellstyle-table and then use method REFRESH_TABLE_DISPLAY.
    My problem is: I can change contents of fields perfectly, but when I change a cell's editability, the cell is being showns as editable, but when I press F4 f.i. and look in debug, the cellstyles-table hasn't been updated and still reflects the old values.
    Could anybody help me out?
    Kind regards,
    Roy
    P.S. Obviously I will reward points to useful answers.

    Hi Nithya,
    I am not making the field edit or no-edit using fieldcatalog-edit. This makes an emtire column editable. I only want to make individual cells editable.
    I do this using a table that I have attached to the ALV's structure and linked using layout-stylefname. You gave me an idea though: I might have to use SET_SELECTED_CELLS or an equivalent.
    Any other ideas that might be helpful?
    Kind regards,
    Roy

  • OO ALV Cell Merge Problem when editable fields

    Hi there!
    I'm using OO ALV ( CL_GUI_ALV_GRID ) and experiencing a strange problem.
    I'm interested in the cells merging functionality of ALV, when i sort data for a specific field.
    It works fine but only if i do not set any field as editable ( lvc_s_fcat-edit = 'X' ).
    For some reason ALV loses some of its functionality when you set a field as editable.
    I've noticed it also with the functionality of expanding/supressing data when using subtotals.
    If any field is set as editable then subtotals come always expanded, you cannot supress them...
    Has anyone else experienced somethng like this before? Any help will be appreciated!
    BR
    George Zervas

    Hi,
    Check This [Thread|http://forums.sdn.sap.com/thread.jspa?threadID=928573]  to solve your issue.
    Check the  User Command, first line should be call method cl_gui->check_changed_data().
    Check this [url|http://wiki.sdn.sap.com/wiki/display/ABAP/InteractiveEditableOOALVgridwithdynamicitab,FCATandENTERkeyeventtrigger] for code to work on Interactive Editable OO ALV grid .
    Hope will solve your issue.
    Regards,
    Saravana.S
    Edited by: saravanasap on Feb 14, 2012 7:38 AM

  • How to avoid roundtrip to server on value select in dropdown box in ALV cel

    Dear Experts,
    I have WD ALV table where user edits values in the cels using dropdown by key element.
    Then after edit he saves whole table. When value is changed in dropdown box the roundtrip to server occurs and it takes noticable time for every cell. My dropdown lists are fixed and are the same for all rows. It is not pleasant user experience and is annoying for user.
    Is there a way to disable this roundtrip for each value selection for each cell and transfer all the data for whole ALV table only when I save whole table (separate button "Save")?
    Help very much appreciated.
    Dmitry

    A lot of enterprises, however, actively avoid systems which are locked down to a particular server for very legitimate reasons. If my data center dies in the middle of the night, I sure don't want to have to call your mobile phone so that you can get to a computer, log in to the office network, and get me a new key so that I can finish my emergency failover. If I've got dozens of applications, I absolutely don't want to do that with dozens of different vendors.
    It sounds like your problem, though, isn't that users are installing your software on multiple computers it's that they are accessing functionality they haven't licensed. That is generally a much easier problem to solve and doesn't require you to lock anything down to a particular machine. You can create a table LICENSED_CONTENT, for example,
    CREATE TABLE licensed_content (
      client_id    NUMBER,
      content_type VARCHAR2(30),
      key          RAW(128)
    )In this case, KEY is, say, a hash (using the DBMS_CRYPTO or DBMS_OBFUSCATION_TOOLKIT packages if you'd like) of the client_id, content_type, and a bit of salt (i.e. a fixed string that only you know). When you sell a license to manage diamond content, you provide a script that inserts the appropriate row in the LICENSED_CONTENT table. When your application starts up, it reads the LICENSED_CONTENT table and verifies the hash before allowing users to access that type of content. This allows legitimate customers to move the software from one system to another but prevents them from accessing new functionality without a new license.
    Justin

  • ALV cell alignment

    Hi,
    I want to make cell alignment in ALV.
    I could able to do left and center alignment but not right alignment.
    How to do the right alignment??
    I'm using the below code:
    data lr_salv_column      type ref to cl_salv_wd_column.
    lr_salv_column->SET_H_ALIGN( value = 1 ). "0 - right/ 1- center
    Thankx,
    Suba

    Jatra Riwayanto wrote:>
    > Hi,
    >
    > .....
    > * set h.alignment
    >   LR_COL->SET_H_ALIGN( '06' ).
    >  
    >    
    >
    > Notes:
    > '06' = FORCED RIGHT
    > '05' = END OF LINE
    >
    > Regards,{quote}
    Just a word of warning.  You should avoid coding the values directly.  SAP can change these values at any time and we won't applogize if that breaks your application. :)  You should always use the class constants.  This also makes your coding much more readable and maintainable.  It also makes it easy to forward navigate and find all the possible values.  For this example the class constants are CL_WD_TABLE_COLUMN=>E_H_ALIGN
    Type defintion from CL_WD_TABLE_COLUMN:
    begin of e_h_align,
          auto type wdy_uie_library_enum_type value '00', " TableColumnHAlign.auto
          center type wdy_uie_library_enum_type value '01', " TableColumnHAlign.center
          forced_left type wdy_uie_library_enum_type value '04', " TableColumnHAlign.forcedLeft
          end_of_line type wdy_uie_library_enum_type value '05', " TableColumnHAlign.endOfLine
          forced_right type wdy_uie_library_enum_type value '06', " TableColumnHAlign.forcedRight
          begin_of_line type wdy_uie_library_enum_type value '07', " TableColumnHAlign.beginOfLine
        end of e_h_align .
    So your coding should be:
    LR_COL->SET_H_ALIGN( CL_WD_TABLE_COLUMN=>E_H_ALIGN-FORCED_RIGHT ).

  • Fill colors to ALV cells

    Hi All,
    How can I display multiple colors to different cells in an ALV ?.
    Please help..
    Thanks in advance,
    sudeep v d..

    Hi Sudeep,
    In the below mentioned link a topic Color of ALV output, columns, and cells has been mentioned in the section '4.17.3 Appearance of ALV Output'.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/db22242d-0701-0010-28a2-aeaa1fefd706
    Best regards,
    Suresh

  • Freely-programmed value help for a single ALV cell

    Greetings everyone,
    I have a freely-programmed value help that works beautifully when attached to the context element of a single field, but now I'm needing to use it in an ALV for a specific cell.  Is there a way to shut off the dropdown for all of the rows (cells) in the column where I don't need it?  Or, is there an appropriate workaround that can deliver the same results?
    I've found several posts that address similar issues, but nothing for this exact problem.
    Thanks,
    Jason Block

    I take it from reading your description what you want is a little more complicated than just controlling the read-only property on the input field. If I read you properly you still want to have all the cells in a column to be open for input, just on some of them you want to disable the value help.  Is that correct?  See these screen shots for clarification:
    If you focus on the the input field in the first row, you get the value help:
    http://www.flickr.com/photos/tjung/2714133068/
    However if you go to the second row and focus on the same input field in this column, you don't get the value help:
    http://www.flickr.com/photos/tjung/2714133094/
    If this is what you want, then buckel up because this was a challenging one.  The problem is that the value help specification is not done at the UI element level, but instead at the context attribute level.  Therefore it can't be as simple as controlling a property on the inputField itself.  What you will need to do is extend the context node that you have bound to the ALV.  You need to add a second version of the attribute that is bound to your input field.  In this second version you can set the value help specification to Disabled:
    http://www.flickr.com/photos/tjung/2713320505
    Notice from the screen shot that I also added another attirbute called CVAR (type STRING).  We will need that later.  It will be used to store which cell variant show be used on a particular row.
    Now we must go to the place in your code where you fill the context node with data.  You will need to copy the data from your primary attribute to your secondary one.  In my case I was copying the values from CARRID to CARRID2.  Of course for update, you would need to merge the data back together before saving it back to the database.  I also set a simple odd/even pattern of controller in the cell variant.  I assume you will have some actual business logic that controls this:
    data odd type boolean value abap_true.
       loop at lt_f_r_sflight[] assigning <ls_f_r_sflight>.
        clear ls_c_r_sflight.
        move-corresponding <ls_f_r_sflight> to ls_c_r_sflight.
        move <ls_f_r_sflight>-carrid to ls_c_r_sflight-carrid2.
        if odd = abap_true.
          odd = abap_false.
        else.
          odd = abap_true.
          ls_c_r_sflight-cvar = 'NOVH'.
        endif.
        insert ls_c_r_sflight into table lt_c_r_sflight[].
      endloop.
      lo_r_sflight->bind_table( lt_c_r_sflight[] ).
    Next is the logic in the initialization of the ALV.  We will need to create two input fields - each bound to the different context attributes. We will make the one the primary cell editor.  The other will become the cell editor of the cell variant.  We then tell the column where it can get its cell variant value from:
    DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.
      lo_cmp_usage =   wd_this->wd_cpuse_alv( ).
      IF lo_cmp_usage->has_active_component( ) IS INITIAL.
        lo_cmp_usage->create_component( ).
      ENDIF.
      DATA l_salv_wd_table TYPE REF TO iwci_salv_wd_table.
      l_salv_wd_table = wd_this->wd_cpifc_alv( ).
      DATA l_table TYPE REF TO cl_salv_wd_config_table.
      l_table = l_salv_wd_table->get_model( ).
      l_table->if_salv_wd_table_settings~set_read_only( abap_false ).
      DATA input1 TYPE REF TO cl_salv_wd_uie_input_field.
      DATA l_column TYPE REF TO cl_salv_wd_column.
      l_column = l_table->if_salv_wd_column_settings~get_column( 'CARRID' ).
      CREATE OBJECT input1
        EXPORTING
          value_fieldname = 'CARRID'.
      l_column->set_cell_editor( input1 ).
      DATA input2 TYPE REF TO cl_salv_wd_uie_input_field.
      CREATE OBJECT input2
        EXPORTING
          value_fieldname = 'CARRID2'.
      DATA l_cv TYPE REF TO cl_salv_wd_cv_standard.
      CREATE OBJECT l_cv.
      l_cv->set_key( 'NOVH' ).
      l_cv->set_editor(  input2 ).
      l_column->add_cell_variant( l_cv ).
      l_column->set_sel_cell_variant_fieldname( 'CVAR' ).

  • Coloring an ALV Cell with DYNAMIC INTERNAL TABLES

    Hello Gurus,
    I need your help regarding coloring of a cell in my ALV Grid report with DYNAMIC tables.
    I have used the call method in calling my ALV. (CALL METHOD gr_alvgrid->set_table_for_first_display).
    Now my problem is, I can not bring out the cellcolor succesfully, I always ended up to dump (GETWA_NOT_ASSIGNED = You attempted to access an unassigned field symbol     
    (data segment 32807).                                  
    What I have done:
    I've created 2 internal tables:
    *1st table
    *After appended all of my columns to  gt_fieldcat
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = gt_fieldcat
        IMPORTING
          ep_table        = gp_both.
      ASSIGN gp_both->* TO <i_xtab1>.
    *2nd table
    Appended these column for CellColor
      CLEAR wa_gtfldcat.
      wa_gtfldcat-fieldname = 'CELLCOLOR'.
      wa_gtfldcat-ref_table = 'CALENDAR_TYPE'.
      wa_gtfldcat-ref_field = 'COLTAB'.
      APPEND wa_gtfldcat TO gt_fieldcat.
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = gt_fieldcat
        IMPORTING
          ep_table        = gp_alvgrid.
      ASSIGN gp_alvgrid->* TO <i_xtab2>.
    *Work Areas for tab1 and tab2
    CREATE DATA dref1 LIKE LINE OF <i_xtab1>.
      ASSIGN dref1->* TO <wa_xtab1>.
      CREATE DATA dref2 LIKE LINE OF <i_xtab2>.
      ASSIGN dref2->* TO <wa_xtab2>.
    *Move contents of table1 to table2 and modify cellcolor column
    LOOP AT <i_xtab1> ASSIGNING <wa_xtab1>.
    *-----Cell color assignment
        DESCRIBE TABLE gt_fieldcat.
        DO sy-tfill TIMES.
          READ TABLE gt_fieldcat INTO wa_gtfldcat INDEX sy-index.
          ASSIGN COMPONENT wa_gtfldcat-fieldname
            OF STRUCTURE <wa_xtab1> TO <fs4>.
          IF sy-subrc NE 0. EXIT .ENDIF.
          ASSIGN COMPONENT wa_gtfldcat-fieldname
            OF STRUCTURE <wa_xtab2> TO <fs3>.
          IF sy-subrc NE 0. EXIT .ENDIF.
            <fs3> = <fs4>.
        ENDDO.
        ASSIGN COMPONENT 'CELLCOLOR' OF STRUCTURE <wa_xtab2> TO <fs3>.
        IF sy-subrc = 0.
          PERFORM modify_cell_color USING 'ZZMATNR' <fs3>.
        ENDIF.
        APPEND <wa_xtab1> TO <i_xtab2>.
    ENDLOOP.
    *Call ALV
    gs_layout-ctab_fname = 'COLORCELL'
        CALL METHOD gr_alvgrid->set_table_for_first_display
          EXPORTING
            is_layout                     = gs_layout
          CHANGING
            it_outtab                     = <i_xtab2d>[]
            it_fieldcatalog               = gt_fieldcat
            it_sort                       = lt_sort
          EXCEPTIONS
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            OTHERS                        = 4.
        IF sy-subrc <> 0.
    *--->Exception handling
        ENDIF.
    FORM modify_cell_color  USING p_fieldname   TYPE lvc_fname
                                  pt_cellcolor  TYPE table.
      DATA l_cellcolor TYPE lvc_s_scol.
      CLEAR l_cellcolor.
      l_cellcolor-fname = p_fieldname.
      l_cellcolor-color-col = 6.       " Red.
      l_cellcolor-color-int = 0.
      l_cellcolor-color-inv = 0.
      INSERT l_cellcolor INTO TABLE pt_cellcolor.
    ENDFORM.                    " MODIFY_CELL_COLOR

    Hi,
    The internal tabl which you are using to display the output should have one column in the end.
    The cell in this column will contain an internal table of type 'lvc_s_scol'.
    The contents of this internal table will be the field names of all other columns of your main internal table in the field FNAME and the required color in the field COLOR.
    Please note that the field COLOR will have a hex value for different colors.
    In the stucture is_layout  whihc you pass to the method 'set_table_for_first_display'
    the name of this last column should be given to the field 'ctab_fname'.
    This will help you to give the colors to each cell.
    for example
    I have my data table as follows:-
    ITAB1
    MATNR  MAKTX        COLOR_TAB
    1           ABC            FNAME  COLOR  NOKEYCOL
                                    MATNR 8000
                                    MAKTX 8000
    2          XYZ             MATNR 10000
                                  MAKTX  10000
    So my internal table ITAB1 had 3 columns MATNR MAKTX and COLOR_TAB.
    And COLOR_TAB will contain an internal table with 3 columns FNAME COLOR and NOKEYCOL.
    The value to importing parameter IS_LAYOUT-CTAB_FNAME will be COLOR_TAB.
    This will help you to assign various colors to the cell of the internal table ITAB.
    When you have to change any color, then you will have to just change the entries in cell COLOR_TAB for the particular row and cell.
    Regards,
    Ankur Parab

  • ABAP WD ALV  set cursor /focus to ALV cell

    G'day guys,
    We have a requirement to position/focus the cursor to a cell in the WD ALV.
    example: the user inserts a new line into the ALV and wants to immediately start typing in the first cell (column) of the new row in the ALV. Currently, the user must use the mouse and click, or tab, to that first cell before typing.
    Any help/suggestions is appreciated
    Cheers,
    Mick.

    I need a solution for this too.... Can anyone help?

  • Highlight ALV cells conditionally?

    Good afternoon
    Iu2019ve been introduced to the following way of ALV generation by some colleagues, but would like to know if there is a way to highlight certain cells conditionally?
    The highlighting could be anything from a different font to a different background color for instance. Thanks.
    *&      Form  output_alv
    form output_alv.
      data gr_table     type ref to cl_salv_table.
      data gr_display   type ref to cl_salv_display_settings.
      data gr_functions type ref to cl_salv_functions.
      data gr_sorts     type ref to cl_salv_sorts.
      try.
          cl_salv_table=>factory( importing r_salv_table = gr_table changing t_table = gt_data ).
        Set zebra layout
          gr_display = gr_table->get_display_settings( ).
          gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
        Display all standard function
          gr_functions = gr_table->get_functions( ).
          gr_functions->set_all( abap_true ).
          gr_table->display( ).
        catch cx_salv_msg.
          write: / 'Exception CX_SALV_MSG'.
        catch cx_salv_not_found.
          write: / 'Exception CX_SALV_NOT_FOUND'.
        catch cx_salv_data_error.
          write: / 'Exception CX_SALV_DATA_ERROR'.
        catch cx_salv_existing.
          write: / 'Exception CX_SALV_EXISTING'.
      endtry.
    endform.                    " output_alv

    >
    Adrian Bruwer wrote:
    > If I could find a relevant post regarding the specific class and factory I would not post a question... have a nice day
    Well, although you will probably never find a specific answer to your specific problem by searching, you should be able to find enough to work it out on your own.
    So as indicated by the answer you marked as solving your question, the answer really was RTFM.
    Rob

  • IMAGE IN ALV CELL

    Hi Guys,
    I have inserted image element as cell editor in alv column. But image is not coming. Check the below code and let me know where i did mistake.
         DATA: LR_IMG3 TYPE REF TO CL_SALV_WD_UIE_IMAGE.
        DATA: LO_COLUMN3 TYPE REF TO CL_SALV_WD_COLUMN.
        LO_COLUMN3 = LO_VALUE->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'PINFO' ).
        CREATE OBJECT LR_IMG3.
        LR_IMG3->SET_SOURCE_FIELDNAME( 'PINFO' ).
       LR_IMG3->SET_HEIGHT_FIELDNAME( '20' ).
        LO_COLUMN3->SET_CELL_EDITOR( LR_IMG3 ).
    And what parameter i should pass to set_height_fieldname. ? I tried with 20px also, error saying 20px unknown.
    Regards
    Srinivas

    Hi Srinivas,
    Try this...
    data lo_cmp_usage type ref to if_wd_component_usage.
      lo_cmp_usage =   wd_this->wd_cpuse_alv( ).
      if lo_cmp_usage->has_active_component( ) is initial.
        lo_cmp_usage->create_component( ).
      endif.
      DATA lo_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
      lo_INTERFACECONTROLLER =   wd_this->wd_cpifc_alv( ).
        DATA lo_value TYPE ref to cl_salv_wd_config_table.
        lo_value = lo_interfacecontroller->get_model(    ).
    data col type ref to  CL_SALV_WD_COLUMN.
    col = lo_value->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'IMAGE' ).
    data image type ref to cl_salv_wd_uie_image.
    CREATE OBJECT image.
    image->SET_SOURCE_FIELDNAME( 'IMAGE' ).
    COL->SET_CELL_EDITOR( image  ).
    Cheers,
    Kris.

Maybe you are looking for

  • Help with problem connecting to itunes

    My son's Ipod touch is not showing up as being recognized by Itunes. We did and reset on it and now all that comes up on his screen are the icons that show to plug your ipod into the USB port so it can link with Itunes. When we plug it in nothing hap

  • Update to Version 7.1.0 not working

    I am currently running Acrobat 7.0.9 and the updater has repeatedly advised me that there is a critical update 7.1.0 available. I s elect the update from the Current Updates list, select Add to move it to the Selected Updates list. Then I select the

  • Restart to factory settings HELP!

    So I want to restart my macbook pro early 2011 back to original factory setting i have the snow leopard disk but when i click on it to install it says i cant because i installed Lion on it. the part i need help in is that i purchased Lion from the ap

  • MacBook Pro Power Management Issues and "Broken" Bootcamp

    This is not a question but rather a solution I have discovered to a problem I have experienced many times now. My Core 2 Duo 15" MacBook Pro (non-LED version) has exhibited several issues with the systems power management hardware. Firstly: Occasiona

  • Grant permission to both FBA and WA account

    We have a site(SP 2007) using both FBA and WA. I see both accounts in the peoplpicker: ldapmembershipprovider\user and domain\user. We have to grant permissions to both accounts.  Is there way I can only grant to one account and user can login with b