Zugriff auf die Controls der SALV Models

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Zugriff auf die Controls der SALV Models

Beitrag von a-dead-trousers (Top Expert / 4287 / 214 / 1142 ) »
Die meisten Funktionen, welche die alten ALV Controls zur Verfügung gestellt haben, haben es Gott sei Dank auch in das SALV Model geschafft (wenn auch teilweise etwas kreativer im Framework verteilt als man das erwarten würde) aber leider eben nicht alle. Für all jene die nicht auf den vollen Funktionsumfang verzichten wollen oder können, hier ein kleiner Code-Schnippsel um trotzdem alles im Zugriff zu haben.

Code: Alles auswählen.

CLASS zcl_salv_model_base DEFINITION
  PUBLIC
  INHERITING FROM cl_salv_model_base
  CREATE PUBLIC .

  PUBLIC SECTION.

    CLASS-METHODS get_control
      IMPORTING
        !ir_model         TYPE REF TO cl_salv_model_base
      RETURNING
        VALUE(rr_control) TYPE REF TO cl_gui_control .
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS zcl_salv_model_base IMPLEMENTATION.

  METHOD get_control.

    CLEAR rr_control.

    IF   ir_model IS NOT BOUND
      OR ir_model->r_controller IS NOT BOUND
      OR ir_model->r_controller->r_adapter IS NOT BOUND.
      RETURN.
    ENDIF.

    CASE TYPE OF ir_model->r_controller->r_adapter.
      WHEN TYPE cl_salv_fullscreen_adapter INTO DATA(lr_fullscreen).
        rr_control = lr_fullscreen->get_grid( ).
      WHEN TYPE cl_salv_grid_adapter INTO DATA(lr_grid).
        rr_control = lr_grid->get_grid( ).
      WHEN TYPE cl_salv_tree_adapter_base INTO DATA(lr_tree).
        rr_control = lr_tree->r_tree.
      WHEN TYPE cl_salv_hierseq_adapter INTO DATA(lr_hierseq).
* Kein Control vorhanden
      WHEN TYPE cl_salv_list_adapter INTO DATA(lr_list).
* Kein Control vorhanden
    ENDCASE.

  ENDMETHOD.
ENDCLASS.
Die Klasse kann man entweder direkt lokal oder global im Repository ablegen. Der Aufruf ist ganz simpel:

Code: Alles auswählen.

DATA: lr_salv_table TYPE REF TO cl_salv_table.
*... Instanzieren etc.
CASE TYPE OF zcl_salv_model_base=>get_control( ir_model = lr_salv_table).
  THEN TYPE cl_gui_alv_grid INTO DATA(lr_alv_grid).
* ... Voller Zugriff auf das Grid-Control
ENDCASE.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
ewx

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: Zugriff auf die Controls der SALV Models

Beitrag von black_adept (Top Expert / 3950 / 105 / 886 ) »
Es ist allerdings zu bedenken, dass SAP in sehr neuen Releases das SALV Objektmodell umgestellt hat, so dass das obige Coding dann leider wegen fehlerhafter Syntax nicht mehr funktioniert.

Siehe Ennos Beitrag im Tricktresor: https://tricktresor.de/blog/alv-grid-au ... ease-7-55/

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
a-dead-trousers

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zugriff auf die Controls der SALV Models

Beitrag von black_adept (Top Expert / 3950 / 105 / 886 ) »
a-dead-trousers hat geschrieben:
24.01.2024 11:46
Die meisten Funktionen, welche die alten ALV Controls zur Verfügung gestellt haben, haben es Gott sei Dank auch in das SALV Model geschafft (wenn auch teilweise etwas kreativer im Framework verteilt als man das erwarten würde) aber leider eben nicht alle.
Und noch ein Nachtrag: In ebendiesen recht neuen Releases hat SAP tatsächlich weitere fehlende Features nachgeliefert. Dazu gibt es eine neue Methode "EXTENDED_GRID_API" welche eine Klasse zurückliefert, die diverse Zusatzfunktionen anbietet wie editierbare Felder und Kontextmenüanbindung. Das mit den editierbaren Feldern ist in diesem Blog beschrieben ( falls die Seite - im Gegensatz zu jetzt - erreichbar ist ): https://blogs.sap.com/2022/08/01/editab ... lease-756/

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
a-dead-trousersewx

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2513
Views
Web Dynpro - Fehlermeldung bzgl. des Models
von ostpower » 09.12.2009 12:25 • Verfasst in Web Application Server
2
Antw.
4358
Views
ZPL II Print Controls
von EmrahKilic » 08.11.2012 12:08 • Verfasst in ABAP® für Anfänger
1
Antw.
1001
Views
ALV Custom Controls
von Besi » 02.07.2006 23:04 • Verfasst in ABAP® Core
5
Antw.
3447
Views
Probleme mit Controls auf Dynpro!!!!!
von Jürg » 14.09.2004 11:46 • Verfasst in Dialogprogrammierung
1
Antw.
1216
Views
TabStrip Controls in Selektionsbildschirmen
von Gast » 25.01.2006 14:50 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Artikel automatisch in va01
vor 2 Tagen von wreichelt 2 / 53
langtexte beim Fertigungsauftrag
vor 2 Tagen von ByteMeBaby 7 / 6423
Updates der Daten, Fehlermeldung
vor 3 Tagen von Egzon gelöst 1 / 73

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.

Aktuelle Forenbeiträge

Artikel automatisch in va01
vor 2 Tagen von wreichelt 2 / 53
langtexte beim Fertigungsauftrag
vor 2 Tagen von ByteMeBaby 7 / 6423
Updates der Daten, Fehlermeldung
vor 3 Tagen von Egzon gelöst 1 / 73

Unbeantwortete Forenbeiträge

Updates der Daten, Fehlermeldung
vor 3 Tagen von Egzon 1 / 73