ALV wrong row_id in  METHOD handle_data_changed when grid is sorted

Hi everybody,
we've made a small data maintenance report with the ALV grid using the class CL_GUI_ALV_GRID.
My problem is the behaviour of ALV, when the grid is autosorted on a field, which is changed by a user. Within the hanlde method of the event data_changed I get the internal table er_data_changed->mt_good_cells containing entries (of the type lvc_s_modi) for every field which was changed.  The field ROW_ID containes the row id of the internal table of the grid, in which the change was made by the user. This ROW_ID can be wrong, when the change the user made leads to an autosort of the table, which sorts the table in a different order. When you then access the ALV-table by the row-id you get the wrong, not changed row back.
Here a short extract of the code:
METHOD handle_data_changed.
    LOOP AT er_data_changed->mt_good_cells INTO ls_good.
       READ TABLE gt_alv INDEX ls_good-row_id ASSIGNING <l_line_of_alv>.
<i>*      wrong line of the ALV grid is in <l_line_of_alv></i>
    ENDLOOP.
ENDMETHOD.
Have you any idea, how this can be avoided?
Is it possible to disable the autosort <b>before</b> handle_changed is triggert and to enable it afterwards again?
I'm thankful for any idea.
Regards,
Horst

I don't do it this way myself.
I use  a "generalized"  ALV class using a dynamic table --then the latest state of the GRID data is always in your dynamic table <dyn_table>. I have a copy of the original as well in <orig_table>.
This means at either event ON DATA CHANGED or ON DATA CHANGED FINISHED I've got the latest state of the table even if sorted and the last cell(s) / row(s) selected
Here's the code
INCLUDE ZZJIMBOXX_INCL.
Generic ALV class etc  for use as INCLUDE  Jimbo 2007.
DEFINE col_name.
READ TABLE it_fldcat INTO wa_it_fldcat INDEX &1.
      wa_it_fldcat-coltext = &2.
      wa_it_fldcat-outputlen = &3.
      modify it_fldcat from wa_it_fldcat index &1.
END-OF-DEFINITION.
DEFINE toolbar_funcs.
   CLEAR ls_toolbar.
    MOVE 0 TO ls_toolbar-butn_TYPE.
    MOVE &1 TO ls_toolbar-function.
    MOVE SPACE TO ls_toolbar-disabled.
    MOVE &2 TO ls_toolbar-icon.
    MOVE &3 TO ls_toolbar-quickinfo.
    APPEND ls_toolbar TO e_object->mt_toolbar.
END-OF-DEFINITION.
INCLUDE  <icon>.
FIELD-SYMBOLS :
   <fs1>          TYPE STANDARD TABLE,
   <fs0>          TYPE STANDARD TABLE,
   <dyn_table>    TYPE STANDARD TABLE,
   <orig_table>   TYPE STANDARD TABLE,
   <dyn_wa>      TYPE ANY.
CLASS  zcl_alv_test DEFINITION DEFERRED.
DATA:
   z_object           TYPE REF TO zcl_alv_test.  "Instantiate our class
Attributes
DATA:
        it_fldcat          TYPE lvc_t_fcat,
        i_gridtitle        TYPE lvc_title,
        wa_it_fldcat       TYPE lvc_s_fcat,
        new_table          TYPE REF TO DATA,
        dy_table           TYPE REF TO DATA,
        inserted_tab       TYPE lvc_t_moce,
        deleted_tab        TYPE LVC_T_MOCE,
        changed_tab        TYPE REF TO DATA,
        is_layout          TYPE LVC_S_LAYO,
        modified_cells_tab TYPE LVC_T_MODI,
        dy_line            TYPE REF TO DATA.
CLASS zcl_alv_test DEFINITION.
  PUBLIC SECTION.
    METHODS:
     constructor
        IMPORTING
          z_object TYPE REF TO zcl_alv_test,
     display_grid
      IMPORTING
         g_outtab TYPE STANDARD TABLE
         g_fldcat TYPE lvc_t_fcat
       CHANGING
         it_fldcat TYPE lvc_t_fcat
         GT_OUTTAB TYPE STANDARD TABLE,
      change_title
       IMPORTING
         i_gridtitle TYPE lvc_title,
      refresh_grid,
      set_cursor
       IMPORTING
         row_id      TYPE lvc_s_row
         column_id   TYPE lvc_s_col
         row_no      TYPE lvc_s_roid,
      build_dynamic_structures
       IMPORTING
         my_line TYPE ANY
         calling_program TYPE sy-repid
       EXPORTING
         dy_table TYPE REF TO DATA
       CHANGING
         it_fldcat TYPE lvc_t_fcat .
  PRIVATE SECTION.
Attributes
    DATA:
     lr_rtti_struc           TYPE REF TO cl_abap_structdescr,
     zog                     LIKE LINE OF lr_rtti_struc->components,
     zogt                    LIKE table of zog,
     struct_grid_lset        TYPE lvc_s_layo,
     e_row                   TYPE lvc_s_row,
     e1_row                  TYPE i,
     e_value                 TYPE c,
     e1_col                  TYPE i,
     e_column                TYPE lvc_s_col,
     es_rowid                TYPE lvc_s_roid,
     es_row_id               TYPE LVC_S_ROW,
     es_col_id               TYPE LVC_S_COL,
     es_row_no               TYPE lvc_s_roid,
     grid_container1         TYPE REF TO cl_gui_custom_container,
     grid1                   TYPE REF TO cl_gui_alv_grid,
     ls_layout               TYPE kkblo_layout,
     lt_fieldcat_wa          TYPE kkblo_fieldcat,
     gt_outtab               TYPE REF TO DATA,
     l_mode                  TYPE raw4,
     celltab                 TYPE lvc_t_styl,
     wa_celltab              TYPE lvc_s_styl,
     lt_fieldcat             TYPE kkblo_t_fieldcat,
     l_tabname               TYPE slis_tabname,
     ls_toolbar              TYPE stb_button,
     caller                  TYPE sy-repid,
     g_outtab1               TYPE REF TO DATA,
     g_fldcat1                TYPE REF TO DATA.
Event Receivers - These methods are entered
when the specified event occurs
    EVENTS: before_user_command.
    METHODS:
     on_user_command
        FOR EVENT before_user_command OF cl_gui_alv_grid
        IMPORTING
          e_ucomm
          sender,
     on_toolbar
        FOR EVENT toolbar OF cl_gui_alv_grid
        IMPORTING
          e_object
          e_interactive,
     on_dubbelklik
        FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING
           e_row
           e_column
           es_row_no,
    handle_data_changed
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING
          er_data_changed,
     handle_data_changed_finished
        FOR EVENT data_changed_finished OF cl_gui_alv_grid
        IMPORTING
          e_modified
          et_good_cells,
Rest of the methods
     process,
     dubbelklik
        IMPORTING
           e_row       TYPE lvc_s_row
           e_column    TYPE lvc_s_col
           es_row_no   TYPE lvc_s_roid,
     return_structure
        IMPORTING
          my_line      TYPE ANY,
     create_dynamic_fcat
        EXPORTING
          it_fldcat    TYPE lvc_t_fcat,
     create_dynamic_table
        IMPORTING
           it_fldcat   TYPE lvc_t_fcat
        EXPORTING
          dy_table     TYPE REF TO DATA,
     download_to_excel,
     refresh.
ENDCLASS.                    "zcl_alv_test DEFINITION
Implementation definition
CLASS zcl_alv_test IMPLEMENTATION.
Constructor
create our reference / instance to cl_gui_alv_grid
  METHOD constructor.
    CREATE OBJECT grid_container1
        EXPORTING
           container_name = 'CCONTAINER1'.
    CREATE OBJECT  grid1
       EXPORTING
          i_parent = grid_container1.
Set event handlers
    SET HANDLER z_object->on_user_command for grid1.
    SET HANDLER z_object->on_toolbar for grid1.
    SET HANDLER Z_OBJECT->handle_data_changed FOR grid1.
    SET HANDLER Z_OBJECT->handle_data_changed_finished FOR grid1.
    SET HANDLER Z_OBJECT->on_dubbelklik FOR grid1.
    CALL METHOD grid1->register_edit_event
      EXPORTING
        i_event_id = cl_gui_alv_grid=>mc_evt_enter.
  ENDMETHOD.                    "constructor
Rest of the methods
  METHOD on_dubbelklik.
    CALL METHOD me->dubbelklik
      EXPORTING
        e_row     = e_row
        e_column  = e_column
        es_row_no = es_row_no.
  ENDMETHOD.                       "on_dubbelklik
  METHOD set_cursor.
    CALL METHOD grid1->set_current_cell_via_id
    EXPORTING
        is_row_id     = row_id
        is_column_id  = column_id
        is_row_no  =    row_no.
  ENDMETHOD.
  METHOD  handle_data_changed.
    call method grid1->get_current_cell
      IMPORTING
        e_row     = e1_row
        e_value   = e_value
        e_col     = e1_col
        es_row_id = es_row_id
        es_col_id = es_col_id
        es_row_no = es_row_no.
    changed_tab  = er_data_changed->mp_mod_rows.
    inserted_tab = er_data_changed->mt_inserted_rows.
    deleted_tab  = er_data_changed->mt_deleted_rows.
    modified_cells_tab = er_data_changed->mt_mod_cells.
    PERFORM data_changed  IN PROGRAM (caller) IF FOUND
       USING changed_tab
             inserted_tab
             deleted_tab
             modified_cells_tab.
  ENDMETHOD.                    "handle_data_changed
  METHOD handle_data_changed_finished.
  ENDMETHOD.                    "handle_data_changed_finished
  METHOD return_structure.
    lr_rtti_struc ?= cl_abap_structdescr=>DESCRIBE_BY_DATA( my_line ).
    zogt[]  = lr_rtti_struc->components.
  ENDMETHOD.                    "return_structure
  METHOD create_dynamic_fcat.
    LOOP AT zogt INTO zog.
      CLEAR wa_it_fldcat.
      wa_it_fldcat-fieldname = zog-name .
      wa_it_fldcat-dataTYPE = zog-TYPE_kind.
      wa_it_fldcat-intTYPE = zog-TYPE_kind.
      wa_it_fldcat-intlen = zog-length.
      wa_it_fldcat-decimals = zog-decimals.
      wa_it_fldcat-coltext = zog-name.
      wa_it_fldcat-lowercase = 'X'.
      APPEND wa_it_fldcat TO it_fldcat .
    ENDLOOP.
  ENDMETHOD.                    "create_dynamic_fcat
  METHOD  download_to_excel.
    assign g_outtab1->* to <fs0>.
    assign g_fldcat1->* to <fs1>.
    CALL FUNCTION  'LVC_TRANSFER_TO_KKBLO'
     EXPORTING
       it_fieldcat_lvc   = <fs1>
    is_layout_lvc     = m_cl_variant->ms_layout
        is_tech_complete  = ' '
     IMPORTING
       es_layout_kkblo   = ls_layout
       et_fieldcat_kkblo = lt_fieldcat.
    LOOP AT lt_fieldcat INTO lt_fieldcat_wa.
      CLEAR lt_fieldcat_wa-tech_complete.
      IF lt_fieldcat_wa-tabname IS initial.
        lt_fieldcat_wa-tabname = '1'.
        MODIFY lt_fieldcat FROM lt_fieldcat_wa.
      ENDIF.
      l_tabname = lt_fieldcat_wa-tabname.
    ENDLOOP.
    CALL FUNCTION 'ALV_XXL_CALL'
      EXPORTING
        i_tabname           = l_tabname
        is_layout           = ls_layout
        it_fieldcat         = lt_fieldcat
        i_title             = sy-title
      TABLES
        it_outtab           = <fs0>
      EXCEPTIONS
        fatal_error         = 1
        no_display_possible = 2
        others              = 3.
    IF  sy-subrc <> 0.
      message id sy-msgid TYPE 'S' number sy-msgno
             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDMETHOD.                    "download_to_excel
  METHOD change_title.
    CALL METHOD grid1->set_gridtitle
      EXPORTING
        i_gridtitle = i_gridtitle.
  ENDMETHOD.                    "CHANGE_TITLE
  METHOD create_dynamic_table.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
        it_fieldcatalog = it_fldcat
      IMPORTING
        ep_table        = dy_table.
  ENDMETHOD.                    "create_dynamic_table
  METHOD build_dynamic_structures.
    caller = calling_program.
    CALL METHOD me->return_structure
      EXPORTING
        my_line = my_line.
    CALL METHOD me->create_dynamic_fcat
      IMPORTING
        it_fldcat = it_fldcat.
    CALL METHOD me->create_dynamic_table
      EXPORTING
        it_fldcat = it_fldcat
      IMPORTING
        dy_table  = dy_table.
  ENDMETHOD.                    "build_dynamic_structures
  METHOD display_grid.
    GET REFERENCE OF g_outtab INTO g_outtab1.
    GET REFERENCE OF g_fldcat INTO g_fldcat1.
    struct_grid_lset-edit = 'X'. "To enable editing in ALV
    struct_grid_lset-grid_title = 'TEST ALV USE generic class'.
    struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.
    struct_grid_lset-stylefname = 'CELLTAB'.
    CALL METHOD grid1->set_ready_for_input
      EXPORTING
        i_ready_for_input = '1'.
    CALL METHOD grid1->set_table_for_first_display
      EXPORTING
        is_layout       = struct_grid_lset
      CHANGING
        it_outtab       = gt_outtab
        it_fieldcatalog = it_fldcat.
  ENDMETHOD.                    "display_grid
  METHOD on_user_command.
    CASE e_ucomm.
      WHEN 'EXIT'.
        LEAVE PROGRAM.
      WHEN 'EXCEL'.
        CALL METHOD me->download_to_excel.
      WHEN 'SAVE'.
      WHEN 'PROC'.
        CALL METHOD me->process.
      WHEN 'REFR'.
        CALL METHOD me->refresh.
    ENDCASE.
  ENDMETHOD.  "on_user_command
  METHOD on_toolbar.
customize this section with your own Buttons
When a button is pressed method ON_USER_COMMAND is entered
   toolbar_funcs 'EXIT'  icon_system_end            'Click2exit'.
   toolbar_funcs 'SAVE'  icon_system_save           'Savedata'.
   toolbar_funcs 'EDIT'  icon_toggle_display_change 'Edit data'.
   toolbar_funcs 'PROC'  icon_businav_process       'Process'.
   toolbar_funcs 'EXCEL' icon_xxl                   'Excel'.
   toolbar_funcs 'REFR'  icon_refresh               'Refresh'.
   ENDMETHOD.                    "on_toolbar
  METHOD refresh_grid.
    CALL METHOD cl_gui_cfw=>flush.
    CALL METHOD grid1->refresh_table_display.
  ENDMETHOD.                    "refresh_grid
  METHOD refresh.
    PERFORM refresh IN PROGRAM (caller) IF FOUND.
  ENDMETHOD.                    "refresh
  METHOD process.
    PERFORM process IN PROGRAM (caller) IF FOUND.
  ENDMETHOD.                    "process
  METHOD dubbelklik.
    perform dubbelklik IN PROGRAM (caller) IF FOUND
       USING e_row
             e_column
             es_row_no.
  ENDMETHOD.                    "dubbelklik
ENDCLASS.                    "zcl_alv_test IMPLEMENTATION
Now for example I can use this program to fill a grid
Program  ZJIMBOTESTX.
INCLUDE ZZJIMBOXX_INCL.  "Code is above
TABLES : SPFLI.
TYPES:  BEGIN OF s_elements.
        INCLUDE  STRUCTURE spfli..
TYPES: END OF    s_elements.
DATA:
       t_elements         TYPE TABLE OF s_elements,  "refers to our ITAB
       my_line            TYPE s_elements.
START-OF-SELECTION.
CALL SCREEN 100.
END-OF-SELECTION.
MODULE status_0100 OUTPUT.
CREATE OBJECT z_object
      EXPORTING z_object = z_object.
CALL METHOD z_object->build_dynamic_structures
     EXPORTING
       my_line = my_line
       calling_program = sy-repid
     IMPORTING
       dy_table = dy_table
     CHANGING
       it_fldcat = it_fldcat.
Here before displaying you can change the field catalog to
adjust your own column names.
*col_name  col-nr 'your name' output length.
   col_name 2 'Carrier' 5.
   col_name 3 'Flt' 4.
   col_name 4 'Dep Ctry' 8.
   col_name 5 'Dep City'  8.
   col_name 6 'Airport'  6.
fill dynmic table and display
PERFORM populate_dynamic_itab.
is_layout-zebra = 'X'.
CALL METHOD z_object->display_grid
    EXPORTING
      g_outtab = <dyn_table>
      g_fldcat = it_fldcat
     CHANGING
      it_fldcat = it_fldcat
      gt_outtab = <dyn_table>.
  SET PF-STATUS '0001'.
  SET TITLEBAR '000'.
ENDMODULE.
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN 'RETURN'.
      LEAVE PROGRAM.
    WHEN OTHERS.
  ENDCASE.
ENDMODULE.
FORM populate_dynamic_itab.
ASSIGN dy_table->* TO <dyn_table>.
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
SELECT *
       UP TO 200 rows
       FROM SPFLI
       INTO  CORRESPONDING FIELDS OF TABLE <dyn_table>.
save a copy (original table). Use same fcat as ist table.
create 2nd Dyn table to hold original data
CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
         it_fieldcatalog = it_fldcat
      IMPORTING
         ep_table = dy_table.
ASSIGN dy_table->* TO <orig_table>.
CREATE DATA dy_line LIKE LINE OF <orig_table>.
ASSIGN dy_line->* TO <dyn_wa>.
  <orig_table> = <dyn_table>.
ENDFORM.
FORM DATA_CHANGED
   USING
     changed_tab
     inserted_tab
     deleted_tab
     modified_cells_tab.
ENDFORM.
FORM process.
Orig table is in dynamic table <orig_table>
ALV GRID changed table is in <dyn_table>.
Loop AT <orig_table>  INTO  <dyn_wa>.
  Do what you want
end
ENDLOOP.
ENDFORM.
FORM refresh.
change data for example delete some lines.
*DELETE  <dyn_table> from 1 to 16.
CALL METHOD z_object->refresh_grid.
ENDFORM.
FORM dubbelklik
     USING
        e_row       TYPE lvc_s_row
        e_column    TYPE lvc_s_col
        es_row_no   TYPE  lvc_s_roid.
     SET TITLEBAR '001'.
     i_gridtitle = 'Grid Title Changed'.
     CALL METHOD  z_object->change_title
         EXPORTING
         i_gridtitle = i_gridtitle.
    PERFORM refresh.
CALL METHOD z_object->set_cursor
   EXPORTING
       row_id     = e_row
       column_id  = e_column
        row_no  = es_row_no.
ENDFORM.
Now yoy can sort / delete / insert / or wahtever.
The code is pretty general so it should cover all your needs.
All your application ever needs to do is simply define a structure and fill it.The class will generate the dynamic table and FCAT.
Modify the class to rmeove toolbar buttons wuou don't use or need.
This class aslo includes a download to EXCEL  with column headings which I often find useful.
I don't bother with mt_good cells etc etc as you can manipulate the <dyn_table> directly.
Cheers
Jimbo

Similar Messages

  • ALV Summation button is not working when GRID layout is specified

    Hi,
    I have created a report with Field: ALV Grid Layout. When i dont select anything in ALV GRID Layout. and execute the report. The outout is displayed in ALV Grid. and if i select amt column and PRESS SUMMATION button. im getting the total. Thats fine.
    When i select any of the saved layout in ALV Grid Layout field.and run the report, the output is geeting displayed. and if i select amt column and press SUMMATION Button, im getting info message in the popup saying "Desired operation cant be performed for Column 'amt'"
    Whts te problem ?
    Thanks in Advance.
    Jhovee.

    PART-II
    FORM f_display_data.
      TYPE-POOLS: slis.                    " ALV Global types
    DEFINE m_fieldcat.
        add 1 to ls_fieldcat-col_pos.
        ls_fieldcat-fieldname   = &1.
        ls_fieldcat-ref_tabname = 'VBAK'.
        ls_fieldcat-do_sum      = &2.
        ls_fieldcat-cfieldname  = &3.
        append ls_fieldcat to lt_fieldcat.
      END-OF-DEFINITION.
      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        ls_sort-up        = 'X'.
        ls_sort-subtot    = &2.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv,
        lt_sort     TYPE slis_t_sortinfo_alv,
        ls_sort     TYPE slis_sortinfo_alv,
        ls_layout   TYPE slis_layout_alv.
      m_fieldcat 'VKORG' ''  ''.
      m_fieldcat 'KUNNR' ''  ''.
      m_fieldcat 'VBELN' ''  ''.
      m_fieldcat 'NETWR' 'X' 'WAERK'.
      m_fieldcat 'WAERK' ''  ''.
      m_sort 'VKORG' 'X'.                  " Sort by vkorg and subtotal
      m_sort 'KUNNR' 'X'.                  " Sort by kunnr and subtotal
      m_sort 'VBELN' ''.                   " Sort by vbeln
      ls_layout-cell_merge = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                is_layout   = ls_layout
                it_fieldcat = lt_fieldcat
                it_sort     = lt_sort
           TABLES
               t_outtab    = gt_vbak.
    ENDFORM.                               " F_DISPLAY_DATA

  • ALV - access to protected method

    Hello,
    I have a object from class "CL_GUI_ALV_GRID" and want to change the protected attribute "EVT_DELAYED_CHANGE_SELECTION     Constant     Protected" with the method
        CALL METHOD alv_grid->SET_DELAY_CHANGE_SELECTION
          EXPORTING
            time = lv_delay.
    How can I access this protected attribute?
    Thanks in advance,
    Holger

    This will do what you want
    Trick is to define a sub class inheriting the super class where the protected attributes and methods exist in - then you can access the protected methods and attributes.
    If you do this don't forget to call  the SUPER CONSTRUCTOR (of the class you are inheriting from) in your constructor method. Code example shown below.
    Here I want the original and modified table of an alv grid but you can adapt this code to whatever you need.
    Hope it helps.
    create blank screen (100) with a custom container CCONTAINER1 and the following scren logic in it
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    now look at the code here. Note text in Bold
    PROGRAM zdynfieldcat.
    class zcltest definition  deferred.  "For field symbol reference.
    Simple test of dynamic ITAB with user defined (not ddic) fields
    Build dynamic fcat
    Table structure obtained via new RTTI functionality
    use ALV grid to display and edit.
    Create a blank screen 100 with a custom container called CCONTAINER1.
    James Hawthorne
    Define field symbols as these can't be defined in classes
    field-symbols: <dyn_table> type standard table,
                   <g2> type ref to zcltest,
                   <g1> type ref to cl_gui_custom_container,
                   <actual_tab> type standard table,
                   <outtab> type table,
                   <fs1> type ANY,
                   <FS2> TYPE TABLE,
                   <fs3> type table,
                   <fs4> type table,
                   <fs5> type  table.
    <b>class zcltest definition inheriting from cl_gui_alv_grid.
    define this as a subclass so we can access the protected attributes
    of the superclass cl_gui_alv_grid</b>
      public section.
        types:  g4 type ref to cl_gui_custom_container.
        types:  g3  type ref to cl_alv_changed_data_protocol.
        data:   i_parent type g4,
                lr_rtti_struc TYPE REF TO cl_abap_structdescr, "RTTI
        zog like line of lr_rtti_struc->components. "RTTI
        types: struc like zog.
        types: struc1 type table of struc.
        methods:
           constructor
               importing i_parent type g4,
           disp_tab
               importing  p_er_data_changed type g3,
           create_dynamic_fcat
               importing zogt type struc1
               exporting it_fldcat type lvc_t_fcat.
    Protected section.
       data: stab type ref to data,
            wa_it_fldcat type lvc_s_fcat,
            c_index type sy-index.
    endclass.
    <b>class zcltest implementation.
      METHOD constructor.
        CALL METHOD super->constructor
          EXPORTING
            i_appl_events = 'X'
            i_parent      = i_parent.
          endmethod
    method disp_tab.
    *mt_outtab is the data table held as a protected attribute
    in class cl_gui_alv_grid.
        assign me->mt_outtab->* TO <outtab>. "Original data
        assign p_er_data_changed->mp_mod_rows TO <FS1>.
        stab = p_er_data_changed->mp_mod_rows.
        assign p_er_data_changed->mt_inserted_rows to <fs3>.
        assign p_er_data_changed->mt_deleted_rows to <fs4>.
        assign p_er_data_changed->mt_mod_cells to <fs5>.
        assign stab->* TO <fs2>.
    do whatever you want with <outtab>
    contains data BEFORE changes each time.
    Note that NEW (Changed) table has been obtained already by
    call to form check_data USING P_ER_DATA_CHANGED
    TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL.
    Entered data is in table defined by <fs2>
    In this method you can compare original and changed data.
    Easier than messing around with individual cells.
    do what you want with data in <fs2> validate / update / merge etc
      endmethod.</b>
      method create_dynamic_fcat.
        loop at zogt into zog.
          c_index = c_index + 1.
          clear wa_it_fldcat.
          wa_it_fldcat-fieldname = zog-name .
          wa_it_fldcat-datatype = zog-type_kind.
          wa_it_fldcat-inttype = zog-type_kind.
          wa_it_fldcat-intlen = zog-length.
          wa_it_fldcat-decimals = zog-decimals.
          wa_it_fldcat-coltext = zog-name.
          wa_it_fldcat-lowercase = 'X'.
          if c_index eq 2.
            wa_it_fldcat-emphasize = 'C411'.
          endif.
          if c_index eq 3.
            wa_it_fldcat-emphasize = 'C511'.
          endif.
          append wa_it_fldcat to it_fldcat .
        endloop.
      endmethod.                    "create_dynamic_fcat
    endclass.                    "zcltest IMPLEMENTATION
    class lcl_grid_event_receiver definition.
      public section.
    methods:
        handle_data_changed
             for event data_changed of zcltest
            for event data_changed of cl_gui_alv_grid
             importing  er_data_changed,
        toolbar
             for event toolbar of zcltest
             importing e_object
             e_interactive,
        user_command
             for event user_command of zcltest
             importing e_ucomm.
    endclass.
    class lcl_grid_event_receiver implementation.
      method handle_data_changed.
    code whatever required after data entry.
    various possibilites here as you can get back Cell(s) changed
    columns or the entire updated table.
    Data validation is also possible here.
        call method <g2>->disp_tab
          EXPORTING
            p_er_data_changed = er_data_changed.
      endmethod.                    "handle_data_changed
      method toolbar.
        data : ls_toolbar type stb_button.
        clear ls_toolbar.
        move 0 to ls_toolbar-butn_type.
        move 'EDIT' to ls_toolbar-function.
        move space to ls_toolbar-disabled.
        move 'Edit' to ls_toolbar-text.
        move icon_change_text to ls_toolbar-icon.
        move 'Click2Edit' to ls_toolbar-quickinfo.
        append ls_toolbar to e_object->mt_toolbar.
        clear ls_toolbar.
        move 0 to ls_toolbar-butn_type.
        move 'UPDA' to ls_toolbar-function.
        move space to ls_toolbar-disabled.
        move 'Update' to ls_toolbar-text.
        move icon_system_save to ls_toolbar-icon.
        move 'Click2Update' to ls_toolbar-quickinfo.
        append ls_toolbar to e_object->mt_toolbar.
        clear ls_toolbar.
        move 0 to ls_toolbar-butn_type.
        move 'EXIT' to ls_toolbar-function.
        move space to ls_toolbar-disabled.
        move 'Exit' to ls_toolbar-text.
        move icon_system_end to ls_toolbar-icon.
        move 'Click2Exit' to ls_toolbar-quickinfo.
        append ls_toolbar to e_object->mt_toolbar.
      endmethod.                    "toolbar
      method user_command.
        case e_ucomm .
          when 'EDIT'. "From Tool bar
            perform set_input.
            perform init_grid.
          when 'UPDA'. "From Tool bar
            perform refresh_disp.
            perform update_table.
          when 'EXIT'. "From Tool bar
            leave program.
        endcase.
      endmethod.                    "user_command
    endclass.                    "lcl_grid_event_receiver IMPLEMENTATION
    program data
    include <icon>.
    define any old internal structure NOT in DDIC
    types: begin of s_elements,
    anyfield1(20) type c,
    anyfield2(20) type c,
    anyfield3(20) type c,
    anyfield4(20) type c,
    anyfield5(11) type n,
    end of s_elements.
    data: wa_element type s_elements,
    wa_data type s_elements.
    Note new RTTI functionality allows field detail retrieval
    at runtime for dynamic tables.
    data:
            grid1 type ref to zcltest,
            grid_handler type ref to lcl_grid_event_receiver,
            c_dec2 type s_elements-anyfield5,
            wa_it_fldcat type lvc_s_fcat,
            it_fldcat type lvc_t_fcat,
            lr_rtti_struc TYPE REF TO cl_abap_structdescr, "RTTI
            lt_comp TYPE cl_abap_structdescr=>component_table,"RTTI
            ls_comp LIKE LINE OF lt_comp, "RTTI
            zog like line of lr_rtti_struc->components,  "RTTI
            struct_grid_lset type lvc_s_layo,
            l_valid type c,
            new_table type ref to data.
            types: struc like zog.
    data:  zogt type table of struc,
            grid_container1 type ref to cl_gui_custom_container,
            g_event_receiver type ref to lcl_grid_event_receiver,
            ok_code like sy-ucomm,
            i4 type int4.
    start-of-selection.
      call screen 100.
    module status_0100 output.
      if grid_container1 is initial.
        create object grid_container1
        exporting
        container_name = 'CCONTAINER1'.
        assign grid_container1 to <g1>.
        create object grid1
         exporting i_parent = grid_container1.
    we need reference to this instance so we can use
    Methods etc of zcltest class and alv (superclass)
    in our event receiver class.
         assign grid1 to <g2>.
        create object grid_handler.
        set handler:
        grid_handler->user_command for grid1,
        grid_handler->toolbar for grid1,
        grid_handler->handle_data_changed for grid1.
    Get the Internal table structure
        lr_rtti_struc ?= cl_abap_structdescr=>describe_by_data( wa_data ).
    Build field catalog just use basic data here
    colour specific columns as well
        zogt[] = lr_rtti_struc->components.
          call method grid1->create_dynamic_fcat
          EXPORTING
            zogt      = zogt
          IMPORTING
            it_fldcat = it_fldcat.
    Create dynamic internal table and assign to field symbol.
    Use dynamic field catalog just built.
      call method cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fldcat
        IMPORTING
          ep_table        = new_table.
      assign new_table->* to <dyn_table>.
        perform populate_dynamic_itab.
        perform init_grid.
        perform register_enter_event.
    set off ready for input initially
        i4 = 0.
        call method grid1->set_ready_for_input
          EXPORTING
            i_ready_for_input = i4.
      endif.
    endmodule.                    "status_0100 OUTPUT
    module user_command_0100 input.
    *PAI not needed in OO ALV anymore as User Commands are handled as events
    *in method user_command.
    *we can also get control if the Data entered and the ENTER is pressed by
    *raising an event.
    Control then returns to method handle_data_changed.
    endmodule.                    "user_command_0100 INPUT
    form populate_dynamic_itab.
    load up a line of the dynamic table
      c_dec2 = c_dec2 + 11.
      wa_element-anyfield1 = 'Tabbies'.
      wa_element-anyfield2 = 'ger.shepards'.
      wa_element-anyfield3 = 'White mice'.
      wa_element-anyfield4 = 'Any old text'.
      wa_element-anyfield5 = c_dec2.
      append wa_element to <dyn_table>.
    endform.                    "populate_dynamic_itab
    form exit_program.
      call method grid_container1->free.
      call method cl_gui_cfw=>flush.
      leave program.
    endform.                    "exit_program
    form refresh_disp.
      call method grid1->refresh_table_display.
    endform.                    "refresh_disp
    form update_table.
    The dynamic table here is the changed table read from the grid
    after user has changed it
    Data can be saved to DB or whatever.
      loop at <dyn_table> into wa_element.
    do what you want with the data here
      endloop.
    switch off edit mode again for next function
      i4 = 0.
      call method grid1->set_ready_for_input
        EXPORTING
          i_ready_for_input = i4.
    endform.                    "update_table
    form set_input.
      i4 = 1.
      call method grid1->set_ready_for_input
        EXPORTING
          i_ready_for_input = i4.
    endform.                    "set_input
    form switch_input.
      if i4 = 1.
        i4 = 0.
      else.
        i4 = 1.
      endif.
      call method grid1->set_ready_for_input
        EXPORTING
          i_ready_for_input = i4.
    endform.                    "switch_input
    form init_grid.
    Enabling the grid to edit mode,
      struct_grid_lset-edit = 'X'. "To enable editing in ALV
      struct_grid_lset-grid_title = 'Jimbos Test'.
       call method grid1->set_table_for_first_display
        EXPORTING
          is_layout       = struct_grid_lset
        CHANGING
          it_outtab       = <dyn_table>
          it_fieldcatalog = it_fldcat.
    endform.                    "init_grid
    form register_enter_event.
      call method grid1->register_edit_event
        EXPORTING
          i_event_id = cl_gui_alv_grid=>mc_evt_enter.
    Instantiate the event or it won't work.
      create object g_event_receiver.
      set handler g_event_receiver->handle_data_changed for grid1.
    endform.                    "register_enter_event

  • List display for ALV using class and methods

    Hi friends
    I want the list display for the ALV using Class and methods
    which class and methods i can use.
    Here we can't use the REUSE_ALV_LIST_DISPLAY and also GRID
    I was done GRID display using class and methods but i want only list display for using class.
    plz Give me sample code of list display not for grid.
    Thanks
    Nani.

    hi
    please check with this code...
    declare grid and container.
    DATA : o_alvgrid TYPE REF TO cl_gui_alv_grid,
    o_dockingcontainer TYPE REF TO cl_gui_docking_container,
    i_fieldcat TYPE lvc_t_fcat,"fieldcatalogue
    w_layout TYPE lvc_s_layo."layout
    If any events like double click,etc., are needed we have to add additional functionality.
    call the screen in program.
    Then , create the container as follows
    IF cl_gui_alv_grid=>offline( ) IS INITIAL.
    CREATE OBJECT o_dockingcontainer
    EXPORTING
    ratio = '95'
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    create_error = 3
    lifetime_error = 4
    lifetime_dynpro_dynpro_link = 5
    others = 6.
    ENDIF.
    CREATE OBJECT o_alvgrid
    EXPORTING
    i_parent = o_dockingcontainer.
    Build the fieldcatalog
    create a output structure in SEll for the ALV output
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    i_structure_name = <alv output>
    CHANGING
    ct_fieldcat = i_fieldcat[]
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    MESSAGE i030."Error in building the field catalogue
    LEAVE LIST-PROCESSING.
    ENDIF.
    *If you need to modify the field catalog,modify it using field sysmbols
    *setting the layout
    w_layout-grid_title = title.
    w_layout-zebra = 'X'.
    then displaying the output
    CALL METHOD o_alvgrid->set_table_for_first_display
    EXPORTING
    i_save = 'A'
    is_layout = w_layout
    CHANGING
    it_outtab = i_output[]
    it_fieldcatalog = i_fieldcat[]
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4.
    IF sy-subrc <> 0.
    MESSAGE i032 ."Error in Displaying
    LEAVE LIST-PROCESSING.
    ENDIF.
    *After that in PAI of the screen, you need to free the *object while going back from the screen(according to *your requirement)
    MODULE user_command_9001 INPUT.
    CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC'.
    PERFORM f9600_free_objects:
    USING o_alvgrid 'ALV' text-e02,
    USING o_dockingcontainer 'DOCKING'
    text-e01.
    LEAVE PROGRAM.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_9001 INPUT
    *in the program, write the follwoing code
    FORM f9600_free_objects USING pobject
    value(ptype)
    value(ptext).
    DATA: l_objectalv TYPE REF TO cl_gui_alv_grid.
    CASE ptype.
    WHEN 'ALV'.
    l_objectalv = pobject.
    IF NOT ( l_objectalv IS INITIAL ).
    CALL METHOD l_objectalv->free
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    OTHERS = 3.
    CLEAR: pobject, l_objectalv.
    PERFORM f9700_error_handle USING ptext.
    ENDIF.
    WHEN 'DOCKING'.
    DATA: lobjectdock TYPE REF TO cl_gui_docking_container.
    lobjectdock = pobject.
    IF NOT ( lobjectdock IS INITIAL ).
    CALL METHOD lobjectdock->free
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    OTHERS = 3.
    CLEAR: pobject, lobjectdock.
    PERFORM f9700_error_handle USING ptext.
    ENDIF.
    WHEN 'CONTAINER'.
    DATA: lobjectcontainer TYPE REF TO cl_gui_container.
    lobjectcontainer = pobject.
    IF NOT ( lobjectcontainer IS INITIAL ).
    CALL METHOD lobjectcontainer->free
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    OTHERS = 3.
    CLEAR: pobject, lobjectcontainer.
    PERFORM f9700_error_handle USING ptext.
    ENDIF.
    WHEN OTHERS.
    sy-subrc = 1.
    PERFORM f9700_error_handle USING
    text-e04.
    ENDCASE.
    ENDFORM. " f9600_free_objects
    FORM f9700_error_handle USING value(ptext).
    IF sy-subrc NE 0.
    CALL FUNCTION 'POPUP_TO_INFORM'
    EXPORTING
    titel = text-e03
    txt2 = sy-subrc
    txt1 = ptext.
    ENDIF.
    endform.
    also check with this
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf
    Hope this helps
    if it helped, you can acknowledge the same by rewarding
    regards
    dinesh

  • ALV Edit Mask isn't applied when exporting as "Spread Sheet".

    Hi all,
    One of our program has "Edit Mask" as XXXXX____ for displaying data in ALV (Mask first 5 numbers as X, display last 4 numbers as it is).  However, when data is exported as "Spread Sheet", the edit mask is not applied.  Does anyone know how to force edit mask when data is exported as SpreadSheet (MHTML)?  If you export as "local File" and then do "SpreadSheet", the edit mask works.. it is just when the direct "SpreadSheet" done, it doesn't work. 
    (i.e. CL_GUI_ALV_GRID->EXPORT_TO_SPREAD_SHEET doesn't apply EDIT Masks set in Field Catalog.)
    Here is more technical info.  We are on ECC 6.
    Field Catalog is of type LVC_T_FCAT.
    for a specific field, "EDIT_MASK" is set to XXXXX____.
    The ALV is called using
    My_ALV_CLASS->SET_TABLE_FOR_FIRST_DISPLAY
    exporting
    is_layout = My_layout
    is_toolbar_excluding = my_toolbar_exclude
    changing
    it_outtab = My_data_table
    it_fieldcatalog = MY_FIELD_CATALOG_DEFINATION_WHERE_EDIT_MASK_IS_SET
    exceptions...
    Thanks in advance!

    Hello,
    This is first time I am giving an answer.
    Instead of using a function module to merge the field catalog, try doing it one by one.
    for example,
    pt_fieldcat-col_pos = 01.
    pt_fieldcat-fieldname = 'KUNNR'.
    APPEND pt_fieldcat.
    pt_fieldcat-col_pos = 02.
    pt_fieldcat-fieldname = 'IP'.
    pt_fieldcat-edit = 'X'.
    pt_fieldcat-edit_mask = '-.-.-.-'.
    APPEND pt_fieldcat.
    and use the structure Z_IPADDR in method parameters instead of a function.
    CALL METHOD go_grid_ip->set_table_for_first_display
    EXPORTING
         i_structure_name = 'Z_IPADDR'
         it_toolbar_excluding = lt_exclude
         is_layout = ls_layout
    CHANGING
         it_fieldcatalog = pt_fieldcat
         it_outtab = p_t_auth_ip.
    CALL METHOD go_grid_ip->set_ready_for_input
    EXPORTING
    i_ready_for_input = 1.
    and also you can use following function module to check if the edited value is still in ALV or not
    CALL METHOD grid->check_changed_data
        IMPORTING
          e_valid = l_valid.
      IF l_valid IS NOT INITIAL.
    then the edited data in alv is successfully changed in internal table behind that.
    Debugging may find you an answer.
    Kind Regards,
    Manisha

  • A simple ALV report using classes & methods ...

    i want a  simple ALV report using classes & methods ...
    my requirement : i have to use classes & methods instead  of calling a function module to display in grid or list format.
               plz send me with explanation ASAP...it's very urgent..
               Thanks in advance .

    Hi
    Please refer
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
    U can use methods for vreating ALVs.
    There is a method named set_table_for_first_display in OOP Concepts.
    Use this Object Oriented Approach for ALV Creation
    Calling the method set_table_for_first_display
    CALL METHOD cust_alv->set_table_for_first_display
    EXPORTING
    is_layout = gst_layout
    CHANGING
    it_outtab = gt_list
    it_fieldcatalog = gt_fcat
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Object Creation and all
    Creation of Object for Container
    CREATE OBJECT cust_container
    EXPORTING
    container_name = 'ALV_CONTAINER'
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    create_error = 3
    lifetime_error = 4
    lifetime_dynpro_dynpro_link = 5
    others = 6
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Creation of Object for ALV Grid
    CREATE OBJECT cust_alv
    EXPORTING
    i_parent = cust_container
    EXCEPTIONS
    error_cntl_create = 1
    error_cntl_init = 2
    error_cntl_link = 3
    error_dp_create = 4
    others = 5
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Layout settings
    gst_layout-zebra ='X'.
    gst_layout-cwidth_opt = 'X'.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    I_BUFFER_ACTIVE =
    I_STRUCTURE_NAME = 'ZCS_INACTV_CUST'
    I_CLIENT_NEVER_DISPLAY = 'X'
    I_BYPASSING_BUFFER =
    CHANGING
    ct_fieldcat = gt_fcat
    EXCEPTIONS
    INCONSISTENT_INTERFACE = 1
    PROGRAM_ERROR = 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.
    Calling the method set_table_for_first_display
    CALL METHOD cust_alv->set_table_for_first_display
    EXPORTING
    is_layout = gst_layout
    CHANGING
    it_outtab = gt_list
    it_fieldcatalog = gt_fcat
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    For object oriented concepts refer this link https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b6cae890-0201-0010-ef8b-f970a9c41d47
    Reaward if helpful

  • How can I reset my iPad YouTube password? I can't sign into youtube on iPad. It says Username or password is wrong although both are correct when I log into YouTube account via Google.

    how can I reset my iPad YouTube password? I can't sign into youtube on iPad. It says Username or password is wrong although both are correct when I log into YouTube account via Google. I also tried my husbands youtube login and password and the same outcome. Now I cant log into YouTube via the iPad account. I can log into Youtube via Google however my subscriptions and favorites are all gone. Can I reset the YouTube account located on the iPad? I cant seem to reset the password or delete the app and re-add. I dont want to reset the iPad since I have alot of videos and pictures on it.

    Do you have Google 2 stage authentication turned on?
    If so, you wont't be able to use your normal google password, but will have to instead generate an "application specific" password for the iPad YouTube app in the google security settings section.

  • HT203905 I have changed my family sharing organizer payment method but when asked to add members it keeps asking for information for a card I no longer have so I do not have the security code.

    I have changed my family sharing organizer payment method but when asked to add members it keeps asking for information for a card I no longer have so I do not have the security code.  My current shows in all the correct places but when asked to verify, the old card is referenced.  I changed the card in itunes and on my phone and ipad.

    I have changed my family sharing organizer payment method but when asked to add members it keeps asking for information for a card I no longer have so I do not have the security code.  My current shows in all the correct places but when asked to verify, the old card is referenced.  I changed the card in itunes and on my phone and ipad.

  • What is wrong with my Iphone 4s when it won't alert me by sound when text is received

    What is wrong with my Iphone 4s when it wont alert me by sound when text is received?

    You use the side control and make sure your phone isn't on vibrate.  Up is for ringer down is for vibrate.

  • I must have a setting wrong on PSE 10.  When I use selection tool and select color, it is always blue.  What am I doing wrong?

    I must have a setting wrong on PSE 10.  When I want to fill a selection with color, I choose the color but it always comes up blue.  What am I doing wrong?

    What IP address does the TC have and what IP does the computer have?
    We need more info as we really have no idea what your network looks like.
    Modem router, model, type of broadband?
    TC setup as bridge or router?
    Is the computer getting internet via the TC?
    Are you using wireless or ethernet?
    Have you set IPv6 correctly to local link in the computer on whichever network client is doing the connection?
    Did this work the first time for backup and has now failed? If so simply reboot the TC. It is a constant bug that the TC is lost to the network.

  • HT1212 Someone else has put a password on my phone. I have read all the restoring or backing up methods but when I go to do those it says to turn off find my iPhone in my setting. If I cant unlock my phone I obviously can't turn this off. Help

    Someone else has put a password on my phone. I have read all the restoring or backing up methods but when I go to do those it says to turn off find my iPhone in my setting. If I cant unlock my phone I obviously can't turn this off. Help

    If you have a lock code, how did someone change the apple ID for "find my phone?"   You should go by the apple store and let them help you.

  • Wrong number of parameters exception when using PreparedStatement

    Hi,
    I'm getting Wrong number of parameters exception when using a prepared statement. It's very weird. The code is:
    sqlstmt="update blah1 set blah2=? where blah3=?";
    myps = Conn.prepareStatement(sqlstmt);
    myps.setString(1, p1);
    myps.setInt(2, p2);
    myps.executeUpdate(sqlstmt);
    The error is:
    SQLException: [IBM][CLI Driver] CLI0100E Wrong number of parameters. SQLSTATE=07001:07001
    Could someone please help? Thanks
    Mahdad

    Hi and thanks for the reply.
    Actually this is the try block...
    The variable's defintions are correct.
    PreparedStatement myps;
    try {
    sqlstmt="update blah1 set blah2=? where blah3=?";
    myps = Conn.prepareStatement(sqlstmt);
    myps.setString(1, blah4);
    myps.setInt(2, blah5);
    myps.executeUpdate(sqlstmt);
    catch (SQLException e) {
    System.out.println("SQLException: " + e.getMessage() + ":" + e.getSQLState());
    blah6++;

  • HT1212 ipad is locked as my daughter locked putting in the password wrong too many times. When I try and do a restore it seems to be doing it until the end and it say it can't do anything as it's locked, go to itunes to unlock.. It's driving me mental

    My ipad 4 wif is ocked as my daughter locked putting in the password wrong too many times. When I try and do a restore it seems to be doing it until the end and then it say it can't do anything as it's locked, go to itunes to unlock.. It's driving me mental. tried twice now ...
    I haven't synced with a password, I don't mind losing all the data I just want to be able to use it again !! I'm not sure what IOS it is, not sure it's the most recent, I have a feeling I'm not on IO7.
    Thanks for all your help.

    Force iPad into Recovery Mode. Follow step 1 to 6 very closely.
    http://support.apple.com/kb/HT1808
    Note: You may have to repeat the above a few times.

  • Why do I get "Select Input Method" dialog when trying to open tabs on some sites?

    This is what I'm experiencing with Firefox mobile on an Android tablet.
    On some sites, when I click a button which should open a new tab, I get the "Select Input Method" dialog box. First, I don't know why this dialog is popping up. Second, it is an empty dialog; there is nothing to select, only a heading that says "Select Input Method". When I touch the heading, I get another "Select Input Method" dialog, this time with "Android Keyboard" as the sole item to be selected. It is already selected. Touching it or backing up to dismiss it leaves me on the page I started on. Touching the original button which should open a new tab simply repeats the entire dialog sequence. Backing up from the original, empty dialog, does the same thing.
    Once or twice, by magic or something, I was able to get the page to open the new tab. But I cannot confirm what sequence of selecting or backing up out of the dialogs may have led to the correct behavior.
    Any help would be appreciated.

    kbrosnan,
    Thanks for the reply. Sorry it took so long to get back to you.
    My wife is working on a project so I'm a little light on details. Apparently she figured out that her Javascript is calling ShowModalDialog and this was what was causing the Select Input Method dialog to open. I don't fully understand the details but she's looking for a different way to do this. I believe she said she subsequently found out that the Firefiox mobile browser doesn't support ShowModalDialog.
    She's new to mobile web development (and I know nothing about it) so she's kind of feeling her way. If you have a good resource for how the FF Android mobile browser differs from the normal desktop browser, that wouldbe a big help, I think. Otherwise, thanks for you reply and she'll keep plugging away discovering what she needs to change in her program to make it work for mobile.
    Thanks.

  • The wrong user name pops up when I try to update apps on Iphone. Unable to update or change incorrect user name.

    The wrong user name pops up when I try to update apps on Iphone. Unable to update or change incorrect user name.

    It is popping up because you have apps installed that you bought with the old AppleID, you can either delete those apps or buy the apps again using your new Apple ID, if they were free apps then not a big deal, paid apps obviously means you would have to buy them twice.

Maybe you are looking for

  • PAN validation for creating vendor in userexit

    Hi experts, I am validating few fields like name,address,city,PAN etc. while creating a vendor using Tcode XK01.The PAN field and tables are J_1IPANNO  and J_1IMOVEND respectively. Now I need to check the screen-input of PAN already exists in the dat

  • Connecting to separate monitor

    I bought a monitor, which I connected to the Powerbook. It seems to work in that I gett the desktop pattern on the big monitor, but no icons nor windows show up on it, though I see them on my Powerbook screen. The technician from Viewsonic, told me t

  • What are the limitations of mail for mac?

    I need to know which is the limit of space you can use mac mail and how many emails in the mail can be stored

  • Need Help w/ Playlist

    I cannot make playlists for some reason. When I drag a song from my library to one of my playlists there is a circle sign with a diagonal slash through it and it won't copy into the folder. Right clicking on a song does not give me to option to add i

  • Javascript for onchange of a selectlist.

    Hi, I have a requirement. There is a selectlist in my form. Once user selects a value in this, I have to display 6 or 7 fields. How can I write a javascript to do this and attach to the selectlist ? I am new to javascript. Can anyone point me to some