Tengo una instancia de CL_GUI_ALV_GRID que hace referencia la variable mo_alv_grid.

Tengo un botón de la columna en esta red, que después de algunos lógica, las actualizaciones de la tabla de mt_alv_grid (copia de mo_alv_grid).

Tengo que ser capaz de activar el evento DATA_CHANGED en este punto.

He intentado muchos métodos de CL_GUI_ALV_GRID, como CHECK_DATA_CHANGED y REFRESH_TABLE_DISPLAY
e incluso CL_GUI_CFW=>FLUSH y CL_GUI_CFW=>SET_NEW_OK_CODE( 'ENTER' ). pero nada de esto ha funcionado.

Hay una manera de activar la DATA_CHANGED evento, o debo estar haciendo las cosas de manera completamente diferente ?

  • Solo para aclarar – tiene un botón en el ALV grid que desencadena código ABAP que los cambios de los datos en el back-end tabla interna y desea que la pantalla se actualiza?
  • todo eso, pero la pantalla SE actualiza, y la necesito para activar DATA_CHANGED evento de forma automática (no incluso golpear ENTER después lo hace)
  • DATA_CHANGED no se supone que se llama si se actualizan los datos mediante programación, sólo cuando el USUARIO cambia los datos.
  • Con el tiempo me ha rediseñado toda la cosa 😐 de todos modos thx

2 Comentarios

  1. 2

    No sé si esto resuelve tu problema, pero con el fin de actualizar el ALV tabla interna en el PAI, se podría usar el siguiente método:

    DATA lv_entries_are_consisted TYPE abap_bool.
    mo_grid->check_changed_data(
      IMPORTING
        e_valid = lv_entries_are_consisted
    ).
    
  2. 1

    bueno, es posible.

    1) no cambiar los valores en la tabla interna del programa
    2) crear un cambio en el protocolo de tipo LVC_T_MODI con nuevos valores para las líneas necesarias

    a continuación, llamar a

    CALL METHOD lo_grid->change_data_from_inside
      EXPORTING
        it_style_cells = lt_cells.
    

    donde lo_grid es ejemplo de cl_gui_alv_grid y lt_cells tipo de tabla LVC_T_MODI. por favor, tenga en cuenta que usted tendrá que establecer campo VAL_DATA de diseño de la estructura (LVC_S_LAYO) a » X » cuando se llama a ALV grid para la primera vez para hacer este trabajo.

    después de esto, la clase cambiará automáticamente una tabla interna para ustedes y los invito a DATA_CHANGE evento

Dejar respuesta

Please enter your comment!
Please enter your name here