ALV: F4-Hilfe

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
18 Beiträge • Vorherige Seite 2 von 2 (current)
18 Beiträge Vorherige Seite 2 von 2 (current)

Re: ALV: F4-Hilfe

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
Debuggen ;)
Ich vermute, dass der Event bzw. die Form-Routine zweimal aufgerufen wird.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ALV: F4-Hilfe

Beitrag von Margolwes (ForumUser / 83 / 2 / 0 ) »
a-dead-trousers hat geschrieben:Debuggen ;)
Um mit Loriot zu antworten: Ach! :)

Nein, der Event wird nur einmal durchlaufen, ich vermute daher, dass ich irgendeinen Parameter übersehen habe. Deshalb auch das Coding in meinem vorigen Beitrag, dass ich nun etwas erweitere.

Hier die Implementierung des Events

Code: Alles auswählen.

class lcl_handler_2002 definition.
  public section.
    methods: (...)
           , on_f4_2002
             for event onf4 of cl_gui_alv_grid
             importing es_row_no
           .
endclass.                    "LCL_ALV_HANDLER DEFINITION

class lcl_handler_2002 implementation.
  (...)
  method on_f4_2002.
    perform handle_f4_2002 using  es_row_no.
  endmethod.                                                "on_f4_2002
endclass.                    "lcl_handler_2002 IMPLEMENTATION
Die Form handle_f4_2002 hatte ich im vorigen Beitrag eingefügt.

Im PBO zum Dynpro wird dann der ALV aufgebaut

Code: Alles auswählen.

form pbo_2002 .
  data: ls_layout    type lvc_s_layo
      , lt_excl_func type ui_functions
      , lt_fieldcat  type lvc_t_fcat
      , ls_fieldcat  type lvc_s_fcat
      , lt_f4        type lvc_t_f4
      , ls_f4        type lvc_s_f4
      .

  perform produktid_ermitteln.

************************************************************************
* Custom-Container für Dynpro aufbauen
************************************************************************
  if g_gpcontainer is initial.
    perform: fieldcat_2002         changing lt_fieldcat
           , toolbar_function_2002 changing lt_excl_func
           .

    create object g_gpcontainer
      exporting
        container_name = 'GPCONTAINER'.

    create object g_gpgrid
      exporting
        i_parent = g_gpcontainer.

************************************************************************
*   ALV-Layout definieren
************************************************************************
    move: 'X'     to ls_layout-zebra
        , 'X'     to ls_layout-col_opt
        , 'FARBE' to ls_layout-ctab_fname
        , 'ZEILE' to ls_layout-stylefname
        .

************************************************************************
*   Eingabeevent registrieren
************************************************************************
    call method g_gpgrid->register_edit_event
      exporting
        i_event_id = cl_gui_alv_grid=>mc_evt_enter
      exceptions
        others     = 0.

    call method g_gpgrid->register_edit_event
      exporting
        i_event_id = cl_gui_alv_grid=>mc_evt_modified
      exceptions
        others     = 0.

************************************************************************
*   F4-Hilfe definieren
************************************************************************
    move: 'ROLE' to ls_f4-fieldname
        , 'X'    to ls_f4-register
        , 'X'    to ls_f4-chngeafter
        .

    append ls_f4 to lt_f4.

    call method g_gpgrid->register_f4_for_fields
      exporting
        it_f4 = lt_f4.

************************************************************************
*   * ALV ausgeben
************************************************************************
    call method g_gpgrid->set_table_for_first_display
      exporting
        i_structure_name     = 'ZCRT_GPZUORD_T'
        is_layout            = ls_layout
        it_toolbar_excluding = lt_excl_func
      changing
        it_outtab            = gt_gpzuord
        it_fieldcatalog      = lt_fieldcat.

************************************************************************
*   ALV auf eingabebereit setzen
************************************************************************
    call method g_gpgrid->set_ready_for_input
      exporting
        i_ready_for_input = 1.

    create object g_gphandler.

    set handler: g_gphandler->on_toolbar_2002      for g_gpgrid
               , g_gphandler->on_user_command_2002 for g_gpgrid
               , g_gphandler->on_f4_2002           for g_gpgrid
               .

    call method g_gpgrid->set_toolbar_interactive.
  else.
    refresh lt_fieldcat.
    perform fieldcat_2002 changing lt_fieldcat.

    call method g_gpgrid->set_frontend_fieldcatalog
      exporting
        it_fieldcatalog = lt_fieldcat.

    call method g_gpgrid->refresh_table_display
      exceptions
        finished = 1
        others   = 2.
  endif.
endform.                                                    " pbo_2002
Grüße, Margolwes

Re: ALV: F4-Hilfe

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
Wie gesagt in dem sepziellen Fall wird dir wirklich nur das Debugging weiterhelfen.
Du musst herausfinden an welcher Stelle der zweite Aufruf der Wertehilfe erfolgt.
Dazu musst du im Debugger das Systemdebugging aktivieren und einen Break-Point am Anfang von F4IF_START_VALUE_REQUEST einfügen.
Damit solltest du den verantwortlichen Übeltäter indentifizieren können.

Vielleicht wird ja auch nachdem du deine Hilfe aufgerufen hast, die Standardverarbeitung aufgerufen.
Schau dazu auch mal im Feldkatalog nach, ob da eine Suchhilfe hinterlegt ist.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Vergleichbare Themen

0
Antw.
2398
Views
Hilfe...
von SAPDIDI2 » 13.07.2007 08:13 • Verfasst in ABAP® Core
3
Antw.
3839
Views
F4 Hilfe
von bohne » 29.11.2006 13:20 • Verfasst in ABAP® für Anfänger
0
Antw.
1711
Views
Hilfe für Übungsaufgabe
von Goldwing » 04.01.2011 13:21 • Verfasst in ABAP® für Anfänger
4
Antw.
16569
Views
F4 Hilfe Werteliste
von herr mb » 26.01.2011 10:14 • Verfasst in ABAP® für Anfänger
3
Antw.
2226
Views
F4-Hilfe positionieren
von TakerOne » 28.07.2014 10:06 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.