OO ALV Toolbar -> Function

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

OO ALV Toolbar -> Function

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Hallo zusammen,

ich versuche einen Button in die Toolbar des OO-ALV korrekt einzubinden.
Leider bekomme ich einen inkorrekten ok_code zurück.
ok_code = '%_GC 102 11'
Erwartet habe ich allerdings 'EDIT'.

Hat da jemand einen Tipp, an welcher Schraube ich drehen muss?

Code: Alles auswählen.

  DATA button  TYPE stb_button.
  CLEAR: e_object->mt_toolbar.
  CLEAR button.
  button-butn_type = 3. "Separator
  APPEND button TO e_object->mt_toolbar.

  " Einfügen Edit Button
  CLEAR button.
  button-function  = 'EDIT'.
  button-icon      = icon_toggle_display_change.
  button-quickinfo = 'Edit'.
  button-butn_type = '2' ."normaler Btn.
  button-disabled  = ' '.
  button-text      = 'Edit'.
  APPEND button TO e_object->mt_toolbar.

  CLEAR button.
  button-butn_type = 3. "Separator
  APPEND button TO e_object->mt_toolbar.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

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


Re: OO ALV Toolbar -> Function

Beitrag von ewx (Top Expert / 4842 / 310 / 638 ) »
Der Ok-Code "%_GC..." ist das Resultat eines gefeuerten Events, wenn es als "Applikationsevent" (APPL_EVENT = abap_true) definiert wurde.
Normalerweise wird es intern verarbeitet. Es wird aber vorher der PAI durchlaufen. Da der PAI diesen OK-Code aber nicht abfragt, gelangt er sozusagen wieder zurück in die Tiefen der ABAP-Steuerung und wird dort entsprechend verarbeitet.

Re: OO ALV Toolbar -> Function

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Hallo Enno,

so ganz werde ich daraus noch nicht schlau. Die ganze ALV Geschichte hatte ich schon lange nicht mehr angefasst.
Ob ich APPL_EVENT = abap_true oder false setze, ist dabei egal. Der ok_code bleibt so.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: OO ALV Toolbar -> Function

Beitrag von ewx (Top Expert / 4842 / 310 / 638 ) »
Dann kommen wir mit dem Codeschnipsel nicht weiter, denke ich...
Poste mal dein Programm bzw. eine abgespeckte Version davon. Häufig hilft es, die grundlegenden Dinge heraus zu kopieren und sozusagen separat zu testen.

Re: OO ALV Toolbar -> Function

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Report

Code: Alles auswählen.

PARAMETERS: pa_filt TYPE ppe_filter_name.

INITIALIZATION.
  PERFORM init.
START-OF-SELECTION.

AT SELECTION-SCREEN ON pa_filt.
  gv_filt = pa_filt.
  go_appl->get_data(
    EXPORTING
      iv_flt_name    = gv_filt
    CHANGING
      o_appl_message = go_appl_msg ).
  CALL SCREEN 2000.
PBO

Code: Alles auswählen.

  SET PF-STATUS 'STATUS_2000'.
*  SET TITLEBAR 'xxx'.
  PERFORM init_dock.
  PERFORM init_alv.
  PERFORM set_handler.

  " output display
  IF go_alv IS BOUND.
    CALL METHOD go_alv->set_table_for_first_display
      EXPORTING
        is_layout                     = go_appl->gs_layout
        it_toolbar_excluding          = go_appl->gt_toolbar_exclude
        i_save                        = 'A'
      CHANGING
        it_outtab                     = go_appl->gt_alv
        it_fieldcatalog               = go_appl->gt_fieldcat
      EXCEPTIONS
        invalid_parameter_combination = 1
        program_error                 = 2
        too_many_lines                = 3
        OTHERS                        = 4.
    IF sy-subrc <> 0.
      MESSAGE e001(zplm_cc_change_txt).
      " Error in ALV generation
    ENDIF.

    CALL METHOD go_alv->set_ready_for_input
      EXPORTING
        i_ready_for_input = 1.


    CALL METHOD go_alv->refresh_table_display
      EXCEPTIONS
        finished = 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.
  ENDIF.

Init

Code: Alles auswählen.

  " Create a docking control at bottom
  CHECK go_dock IS INITIAL.
  CREATE OBJECT go_dock
    EXPORTING
      repid = sy-cprog
      dynnr = sy-dynnr
      ratio = 80
      side  = cl_gui_docking_container=>dock_at_bottom
      name  = 'DOCK_CONT'.
  IF sy-subrc <> 0.
    MESSAGE 'Error in the Docking control' TYPE 'S'.
  ENDIF.

  " Init a OO-ALV-Grid for output
  CHECK go_alv IS INITIAL.
  CREATE OBJECT go_alv
    EXPORTING
      i_parent          = go_dock
*      i_appl_events     = abap_true
    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.

  SET HANDLER go_appl->on_hotspot_click     FOR go_alv.
  SET HANDLER go_appl->handle_data_changed  FOR go_alv.
  SET HANDLER go_appl->handle_user_command  FOR go_alv.
  SET HANDLER go_appl->handle_toolbar       FOR go_alv.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: OO ALV Toolbar -> Function

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Die Verarbeitung deines Funktionscodes musst du in der HANDLE_USER_COMMAND-Methode implementieren. Da kommt dann auch der korrekte Funktionscode an. OK_CODE schaut mir sehr nach PAI-Modul aus. Auch der Code %_GC wirkt sehr nach PAI-Modul. Der Parameter dafür im Handler zu CL_GUI_ALV_GRID=>USER_COMMAND lautet E_UCOMM.

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

Re: OO ALV Toolbar -> Function

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
a-dead-trousers hat geschrieben:Die Verarbeitung deines Funktionscodes musst du in der handle_user_command-Methode implementieren. Da kommt dann auch der korrekte Funktionscode an.
Da springt er gar nicht rein.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: OO ALV Toolbar -> Function

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
ooh, ok, es war der Button-type = 2
Mit Type = 0 gehts.
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: OO ALV Toolbar -> Function

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Icke0801 hat geschrieben:ooh, ok, es war der Button-type = 2
Mit Type = 0 gehts.
CNTB_BTYPE_MENU oder 2 (siehe Typgruppe CNTB) ist für DropDown-Listen reserviert.
(Hab ich leider in deinem ersten Posting auch übersehen :oops: )
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

Re: OO ALV Toolbar -> Function

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Frag bitte nicht, wie oft ich da drüber geschaut habe, ohne es zu bemerken :)
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2386
Views
ALV Toolbar
von SAP_ENTWICKLER » 04.12.2017 09:54 • Verfasst in ABAP® Core
5
Antw.
2456
Views
function
von kostonstyle » 29.11.2007 09:29 • Verfasst in ABAP® für Anfänger
6
Antw.
4092
Views
ALV Toolbar
von Gast » 23.09.2005 09:21 • Verfasst in ABAP Objects®
1
Antw.
1732
Views
Eingabefeld in ALV-Toolbar?
von ralf.wenzel » 29.11.2013 14:54 • Verfasst in ABAP Objects®
0
Antw.
955
Views
FUNCTION DEFINIEREN
von vvursT » 25.01.2006 13:08 • Verfasst in Web-Dynpro, BSP + BHTML

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1556
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8166