Zugriff auf int. Tabelle

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

Zugriff auf int. Tabelle

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
Hallo OO-Spezies,

ich hab ein Problem mit ALV. Und da ich das zum ersten mal mache, hab ich keine Ahnung, was ABAP da mit mir anstellt.

Folgendes ist der aktuelle Stand meines Problems:

1.) ich hab einen Funktionsbaustein der als Uebergabe eine gefuellte Tabelle und den DDIC-Strukturnamen erhaelt.
2.) zu diese Tabelle besorge ich mir mit REUSE_ALV_FIELDCATALOG_MERGE den Feldkatalog.
3.) Setze ich die Doppelklick- und Hotspotklick-Methoden.
4.) Rufe ich den Baustein REUSE_ALV_GRID_DISPLAY.

Code: Alles auswählen.

*-----------------------------------------------------------------------
* Feldkatalog besorgen
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name       = i_struktur
    CHANGING
      ct_fieldcat            = i_fieldcat
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.
  IF sy-subrc <> 0.
    RAISE kein_feldkatalog.
  ENDIF.
*-----------------------------------------------------------------------
* Reagieren auf Doppelklick
  SET HANDLER lcl_event_handler=>on_db_click
  FOR ALL INSTANCES.
*-----------------------------------------------------------------------
* Reagieren auf Hotspotklick
  SET HANDLER lcl_event_handler=>on_hs_click
  FOR ALL INSTANCES.
*-----------------------------------------------------------------------
* ALV_Grid darstellen
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
*   I_CALLBACK_PROGRAM                = ' '
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
     i_structure_name                  = i_struktur
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
     is_layout                         = i_layout
     it_fieldcat                       = i_fieldcat
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = i_values
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
            .
Soweit funktioniert das alles.
jetzt habe ich z.B. eine Tabelle mit einem Fi-Beleg irgendwo als Feldinhalt. Reihe und Spalte und so bekomme ich in der Methode vom Doppeklick zurueck. Jetzt muesste ich aber auf die Tabelle vom Baustein (I_VALUES) zurueckgreifen, damit ich den Wert bekomme. Meine Methode zum Doppeklick kennt aber die int. Tabelle vom Baustein nicht... :shock:
was mach ich nun???

Hier noch das Klassenzeug:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*&       Class LCL_EVENT_HANDLER
*&---------------------------------------------------------------------*
*        Text
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
*------------------*
* PUBLIC SECTION
  PUBLIC SECTION.

    CLASS-METHODS:
        on_db_click
        FOR EVENT double_click
        OF cl_gui_alv_grid
        IMPORTING es_row_no
              e_column.

    CLASS-METHODS:
        on_hs_click
        FOR EVENT hotspot_click
        OF cl_gui_alv_grid
        IMPORTING e_row_id
                  e_column_id
                  es_row_no.

*------------------*
* PROTECTED SECTION
  PROTECTED SECTION.
*------------------*
* PRIVATE SECTION
  PRIVATE SECTION.

ENDCLASS.               "LCL_EVENT_HANDLER

*---------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.

  METHOD on_db_click.
    MESSAGE 'DB-KLICK' TYPE 'S'.
    PERFORM double_click USING es_row_no e_column.
  ENDMETHOD.                    "on_db_click

  METHOD on_hs_click.
    MESSAGE 'HS-KLICK' TYPE 'S'.
  ENDMETHOD.                    "on_hs_click

ENDCLASS.                    "lcl_event_handler IMPLEMENTATION
Gruss
BesenWesen

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


Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
ok, das obige problem habe ich geloest.
jetzt hab ich was anderes:

ich habe den gesamten Inhalt meiner Tabelle einem <FS> zugewiesen.
aber wie kann ich den n-ten Eintrag da rauslesen?
Gruss
BesenWesen

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
BesenWesen hat geschrieben:ich habe den gesamten Inhalt meiner Tabelle einem <FS> zugewiesen.
aber wie kann ich den n-ten Eintrag da rauslesen?
Mit Read Table:

READ TABLE <fs> INDEX 2 INTO wa.

wobei du das Fieldsymbole als Tabelle anlegen mußt:
FIELD-SYMBOLS <fs> TYPE table.
Gruß Hendrik

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

oder noch schicker: statt Workarea ein Feldsymbol:

Code: Alles auswählen.

FIELD-SYMBOLS: <wa> TYPE LINE OF table.

READ TABLE <fs> ASSIGNING <wa> INDEX 2.
Gruß
babap

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
babap hat geschrieben:Hallo,

oder noch schicker: statt Workarea ein Feldsymbol:

Code: Alles auswählen.

FIELD-SYMBOLS: <wa> TYPE LINE OF table.

READ TABLE <fs> ASSIGNING <wa> INDEX 2.
Gruß
babap
Danke babap, genauso hab ich es auch geloest.
Vielen Dank fuer eure Hilfe!
Gruss
BesenWesen

Seite 1 von 1

Vergleichbare Themen

4
Antw.
4432
Views
Zugriff auf interne Tabelle
von LittleT » 23.10.2006 08:50 • Verfasst in ABAP Objects®
1
Antw.
1457
Views
Zugriff auf interne Tabelle
von Jan 2005 » 08.12.2005 11:57 • Verfasst in ABAP® Core
4
Antw.
4176
Views
Zugriff auf interne Tabelle Performance
von cut1 » 28.03.2007 11:23 • Verfasst in ABAP® für Anfänger
6
Antw.
2106
Views
Problem bei dynamischer Zugriff auf Z-Tabelle
von rmuc » 05.07.2007 14:16 • Verfasst in ABAP® für Anfänger
3
Antw.
2168
Views
Zugriff auf bestimmte Daten in Tabelle
von tech » 16.09.2008 08:49 • 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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 589
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2217
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8814