Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV in Debugger OK in Program not

Former Member
0 Likes
464

Hi Experts,

I have following situation:

I build my ALV/Fieldcatalog as following:

IF rf_custom_container IS NOT BOUND.

      CREATE OBJECT rf_custom_container

        EXPORTING

          container_name = 'CUSTCONTROL'.

      CREATE OBJECT rf_alv

        EXPORTING

          i_parent = rf_custom_container.

      "Feldkatalog aufbauen

      CLEAR st_fieldcat.

      st_fieldcat-fieldname = 'MATNR'.

      st_fieldcat-HOTSPOT   = abap_true.

      st_fieldcat-outputlen   = 18.

      APPEND st_fieldcat TO ta_fieldcat.

      st_fieldcat-fieldname = 'MTEXT'.

      st_fieldcat-HOTSPOT   = abap_true.

      st_fieldcat-outputlen   = 48.

      APPEND st_fieldcat TO ta_fieldcat.

      st_fieldcat-fieldname = 'KWMENG'.

      st_fieldcat-HOTSPOT   = abap_false.

      st_fieldcat-edit      = abap_true.

      st_fieldcat-outputlen = 15.

      APPEND st_fieldcat TO ta_fieldcat.

      st_fieldcat-fieldname = 'VRKME'.

      st_fieldcat-HOTSPOT   = abap_false.

      st_fieldcat-edit      = abap_true.

      st_fieldcat-outputlen   = 3.

      APPEND st_fieldcat TO ta_fieldcat.

      st_layout-cwidth_opt = abap_true.

      "Ereignisbehandler

      CREATE OBJECT evt_handler.

      SET HANDLER evt_handler->handle_toolbar      FOR rf_alv.

      SET HANDLER evt_handler->handle_user_command FOR rf_alv.

      SET HANDLER evt_handler->handle_event_click  FOR rf_alv.

      "Bereite Darstellung von ALV

      CALL METHOD rf_alv->set_table_for_first_display

        EXPORTING

          i_structure_name = 'ZWH_RESERVIERUNG'

        CHANGING

          it_outtab        = ta_alv

          it_fieldcatalog  = ta_fieldcat.

       rf_alv->refresh_table_display( ).

And I would like to turn some filds to be

- editable

- and not hotspot

by pressing on an button in PF-Status in this way:

WHEN 'MENGE'.

      CALL METHOD rf_alv->get_frontend_fieldcatalog

        IMPORTING

          et_fieldcatalog = ta_fieldcat[].

      LOOP AT ta_fieldcat INTO st_fieldcat .

        IF st_fieldcat-fieldname = 'KWMENG' .

          st_fieldcat-HOTSPOT   = abap_true.

          st_fieldcat-edit      = abap_false.

          MODIFY ta_fieldcat FROM st_fieldcat .

        ENDIF.

        IF st_fieldcat-fieldname = 'VRKME'.

          st_fieldcat-HOTSPOT = abap_true.

          MODIFY ta_fieldcat FROM st_fieldcat.

        ENDIF .

      ENDLOOP .

      CALL METHOD rf_alv->set_frontend_fieldcatalog

        EXPORTING

          it_fieldcatalog = ta_fieldcat[].

      CALL METHOD rf_alv->get_frontend_layout

        IMPORTING

          es_layout = st_layout.

      st_layout-grid_title = 'Test DYU' .

      CALL METHOD rf_alv->set_frontend_layout

        EXPORTING

          is_layout = st_layout.

      "Sende gepufferten aut. queue zum Frontend

      CALL METHOD cl_gui_cfw=>flush.

      "Alv Grid aktualisieren

      rf_alv->refresh_table_display( ).

      "Erignisverteiler in Bezug auf ok_code

      CALL METHOD cl_gui_cfw=>dispatch.


Result: No Hotspot but still no edit....even in Debugger I do have 'X' in the ta_fieldcat....

What could be a reason for this?

Thank you in advance

Hi Experts,

I have following situation:

I build my ALV/Fieldcatalog as following:

IF rf_custom_container IS NOT BOUND.

      CREATE OBJECT rf_custom_container

        EXPORTING

          container_name = 'CUSTCONTROL'.

      CREATE OBJECT rf_alv

        EXPORTING

          i_parent = rf_custom_container.

      "Feldkatalog aufbauen

      CLEAR st_fieldcat.

      st_fieldcat-fieldname = 'MATNR'.

      st_fieldcat-HOTSPOT   = abap_true.

      st_fieldcat-outputlen   = 18.

      APPEND st_fieldcat TO ta_fieldcat.

      st_fieldcat-fieldname = 'MTEXT'.

      st_fieldcat-HOTSPOT   = abap_true.

      st_fieldcat-outputlen   = 48.

      APPEND st_fieldcat TO ta_fieldcat.

      st_fieldcat-fieldname = 'KWMENG'.

      st_fieldcat-HOTSPOT   = abap_false.

      st_fieldcat-edit      = abap_true.

      st_fieldcat-outputlen = 15.

      APPEND st_fieldcat TO ta_fieldcat.

      st_fieldcat-fieldname = 'VRKME'.

      st_fieldcat-HOTSPOT   = abap_false.

      st_fieldcat-edit      = abap_true.

      st_fieldcat-outputlen   = 3.

      APPEND st_fieldcat TO ta_fieldcat.

      st_layout-cwidth_opt = abap_true.

      "Ereignisbehandler

      CREATE OBJECT evt_handler.

      SET HANDLER evt_handler->handle_toolbar      FOR rf_alv.

      SET HANDLER evt_handler->handle_user_command FOR rf_alv.

      SET HANDLER evt_handler->handle_event_click  FOR rf_alv.

      "Bereite Darstellung von ALV

      CALL METHOD rf_alv->set_table_for_first_display

        EXPORTING

          i_structure_name = 'ZWH_RESERVIERUNG'

        CHANGING

          it_outtab        = ta_alv

          it_fieldcatalog  = ta_fieldcat.

       rf_alv->refresh_table_display( ).

And I would like to turn some filds to be

- editable

- and not hotspot

by pressing on an button in PF-Status in this way:

WHEN 'MENGE'.

      CALL METHOD rf_alv->get_frontend_fieldcatalog

        IMPORTING

          et_fieldcatalog = ta_fieldcat[].

      LOOP AT ta_fieldcat INTO st_fieldcat .

        IF st_fieldcat-fieldname = 'KWMENG' .

          st_fieldcat-HOTSPOT   = abap_true.

          st_fieldcat-edit      = abap_false.

          MODIFY ta_fieldcat FROM st_fieldcat .

        ENDIF.

        IF st_fieldcat-fieldname = 'VRKME'.

          st_fieldcat-HOTSPOT = abap_true.

          MODIFY ta_fieldcat FROM st_fieldcat.

        ENDIF .

      ENDLOOP .

      CALL METHOD rf_alv->set_frontend_fieldcatalog

        EXPORTING

          it_fieldcatalog = ta_fieldcat[].

      CALL METHOD rf_alv->get_frontend_layout

        IMPORTING

          es_layout = st_layout.

      st_layout-grid_title = 'Test DYU' .

      CALL METHOD rf_alv->set_frontend_layout

        EXPORTING

          is_layout = st_layout.

      "Sende gepufferten aut. queue zum Frontend

      CALL METHOD cl_gui_cfw=>flush.

      "Alv Grid aktualisieren

      rf_alv->refresh_table_display( ).

      "Erignisverteiler in Bezug auf ok_code

      CALL METHOD cl_gui_cfw=>dispatch.


Result: No Hotspot but still no edit....even in Debugger I do have 'X' in the ta_fieldcat....

What could be a reason for this?

Thank you in advance

2 REPLIES 2
Read only

Former Member
0 Likes
426

Hi Denis,

Try move 'CALL METHOD cl_gui_cfw=>dispatch.' this statement.

regards,

Archer

Read only

0 Likes
426

Hi Archer,

what do you mean? When I delete this method from the programm everything stays as it was, the field is still no editable.

BR

Denis