ALV Grid Control (BC-SRV-ALV)

Transcrição

ALV Grid Control (BC-SRV-ALV)
HELP.BCSRVALV
ALV Grid Control
(BC-SRV-ALV)
Release 4.6C
ALV Grid Control (BC-SRV-ALV)
SAP AG
Copyright
© Copyright 2001 SAP AG. Alle Rechte vorbehalten.
Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem
Zweck und in welcher Form
auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In
dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert
werden.
Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte können SoftwareKomponenten auch anderer Software-Hersteller enthalten.
®
®
®
®
®
®
®
Microsoft , WINDOWS , NT , EXCEL , Word , PowerPoint und SQL Server sind eingetragene
Marken der
Microsoft Corporation.
®
®
®
®
®
®
®
®
®
IBM , DB2 , OS/2 , DB2/6000 , Parallel Sysplex , MVS/ESA , RS/6000 , AIX , S/390 ,
®
®
®
AS/400 , OS/390 und OS/400 sind eingetragene Marken der IBM Corporation.
®
ORACLE ist eine eingetragene Marke der ORACLE Corporation.
®
®
INFORMIX -OnLine for SAP und Informix Dynamic Server
Informix Software Incorporated.
®
®
®
TM
sind eingetragene Marken der
®
UNIX , X/Open , OSF/1 und Motif sind eingetragene Marken der Open Group.
®
HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C , World Wide
Web Consortium,
Massachusetts Institute of Technology.
®
JAVA ist eine eingetragene Marke der Sun Microsystems, Inc.
®
JAVASCRIPT ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der
Lizenz der von Netscape entwickelten und implementierten Technologie.
SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow, WebFlow,
SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo und mySAP.com
sind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen Ländern
weltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen.
2
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Symbole
Symbol
Bedeutung
Achtung
Beispiel
Hinweis
Empfehlung
Syntax
April 2001
3
ALV Grid Control (BC-SRV-ALV)
SAP AG
Inhalt
ALV Grid Control (BC-SRV-ALV) ....................................................................... 8
Instanz für das ALV Grid Control................................................................................................ 11
Arbeiten mit dem ALV Grid Control............................................................................................ 12
Erste Schritte ................................................................................................................................ 14
Anwendungsspezifisches Programmieren................................................................................ 16
Layouts.......................................................................................................................................... 17
Abspeichern eines Layouts ....................................................................................................... 18
Integration eigener Funktionen................................................................................................... 20
Ändern von Standardfunktionen................................................................................................ 21
Definition von GUI-Elementen in der Toolbar ........................................................................... 22
Definition eines Kontext-Menüs ................................................................................................ 23
Definition eines Menüs in der Toolbar ...................................................................................... 24
Drag&Drop mit dem ALV Control ............................................................................................... 25
D&D-Verhalten für alle Zeilen/Spalten ...................................................................................... 26
D&D-Verhalten für spezielle Spalten ........................................................................................ 27
D&D-Verhalten für spezielle Zeilen/Zellen ................................................................................ 28
Ausgabe von Exceptions............................................................................................................. 30
Einfärben von Zeilen .................................................................................................................... 32
Einfärben von Zellen .................................................................................................................... 33
Darstellung von Drucktasten ...................................................................................................... 35
Einbinden von Hyperlinks ........................................................................................................... 37
Gruppierung von Feldern zur Feldauswahl ............................................................................... 39
Verwendung des Konvertierungsexit......................................................................................... 41
Das ALV Grid Control bei WAN-Anmeldungen ......................................................................... 43
Das ALV Grid Control im Web..................................................................................................... 44
Darstellung im SAP GUI for HTML.............................................................................................. 45
Definition eines statischen Menüs ............................................................................................ 47
Darstellung im Workplace ........................................................................................................... 49
Voraussetzungen ...................................................................................................................... 50
Der MiniALV .............................................................................................................................. 51
Als MiniApp .......................................................................................................................... 53
Als Erweiterung einer MiniApp............................................................................................. 54
Als interaktives Web Control................................................................................................ 55
Service-Parameter ............................................................................................................... 56
Ausgabe auf kleinen Bildschirmen....................................................................................... 58
Fehleranalyse....................................................................................................................... 60
Der MidiALV .............................................................................................................................. 61
Den MidiALV aufrufen.......................................................................................................... 62
Service-Parameter ............................................................................................................... 63
Aufruf des Internet-Service ....................................................................................................... 65
Methoden der Klasse CL_GUI_ALV_GRID................................................................................. 67
activate_reprep_interface............................................................................................................ 70
CONSTRUCTOR ........................................................................................................................... 71
4
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_current_cell............................................................................................................................ 72
get_filtered_entries ...................................................................................................................... 73
get_filter_criteria .......................................................................................................................... 74
get_frontend_fieldcatalog ........................................................................................................... 75
get_frontend_layout ..................................................................................................................... 76
get_scroll_info_via_id.................................................................................................................. 77
get_selected_cells........................................................................................................................ 78
get_selected_cells_id .................................................................................................................. 79
get_selected_columns................................................................................................................. 80
get_selected_rows ....................................................................................................................... 81
get_sort_criteria ........................................................................................................................... 82
get_subtotals ................................................................................................................................ 83
get_variant .................................................................................................................................... 86
offline............................................................................................................................................. 87
refresh_table_display .................................................................................................................. 88
register_delayed_event ............................................................................................................... 89
set_3d_border............................................................................................................................... 90
save_variant_dark ........................................................................................................................ 91
set_current_cell_via_id................................................................................................................ 92
set_filter_criteria .......................................................................................................................... 93
set_frontend_fieldcatalog............................................................................................................ 94
set_frontend_layout ..................................................................................................................... 95
set_scroll_info_via_id.................................................................................................................. 96
set_graphics_container ............................................................................................................... 97
set_selected_cells........................................................................................................................ 98
set_selected_cells_id................................................................................................................... 99
set_selected_columns ............................................................................................................... 100
set_selected_rows ..................................................................................................................... 101
set_sort_criteria ......................................................................................................................... 102
set_table_for_first_display........................................................................................................ 103
set_toolbar_interactive .............................................................................................................. 107
set_user_command.................................................................................................................... 108
Ereignisse der Klasse CL_GUI_ALV_GRID ............................................................................. 109
after_user_command ................................................................................................................. 111
before_user_command.............................................................................................................. 112
button_click ................................................................................................................................ 113
context_menu_request .............................................................................................................. 114
delayed_callback........................................................................................................................ 115
delayed_changed_sel_callback ................................................................................................ 116
double_click................................................................................................................................ 117
hotspot_click .............................................................................................................................. 118
menu_button............................................................................................................................... 119
onDrag ......................................................................................................................................... 120
onDrop......................................................................................................................................... 121
onDropComplete ........................................................................................................................ 122
April 2001
5
ALV Grid Control (BC-SRV-ALV)
SAP AG
onDropGetFlavor........................................................................................................................ 123
onf1 .............................................................................................................................................. 124
print_end_of_list ........................................................................................................................ 125
print_end_of_page ..................................................................................................................... 126
print_top_of_list ......................................................................................................................... 127
print_top_of_page ...................................................................................................................... 128
subtotal_text ............................................................................................................................... 129
toolbar ......................................................................................................................................... 131
user_command ........................................................................................................................... 132
Der Feldkatalog........................................................................................................................... 133
Aufbau des Feldkatalogs........................................................................................................... 134
Automatischer Aufbau............................................................................................................. 135
Manueller Aufbau .................................................................................................................... 137
Halbautomatischer Aufbau...................................................................................................... 139
Felder des Feldkatalogs ............................................................................................................ 140
Bezug zur Ausgabetabelle ...................................................................................................... 144
Bezug zum Data Dictionary..................................................................................................... 145
Darstellung von Werten mit Währungs-/Mengeneinheit ......................................................... 146
Ausgabeoptionen einer Spalte ................................................................................................ 149
Formatierung von Spalteninhalten .......................................................................................... 153
Texte ....................................................................................................................................... 156
Parameter für Felder ohne DDIC-Bezug................................................................................. 159
Sonstige Felder ....................................................................................................................... 161
Die Layout-Struktur.................................................................................................................... 163
Eigenschaften des Grid Controls ............................................................................................. 166
Exceptions .................................................................................................................................. 168
Farben.......................................................................................................................................... 169
Summenoptionen ....................................................................................................................... 170
Interaktionssteuerung................................................................................................................ 171
Die Print-Struktur ....................................................................................................................... 172
Methoden des OO Control Frameworks .................................................................................. 174
Methoden der Klasse CL_GUI_CFW......................................................................................... 175
dispatch ................................................................................................................................... 176
flush......................................................................................................................................... 177
get_living_dynpro_controls .....................................................................................................178
set_new_ok_code ................................................................................................................... 179
update_view ............................................................................................................................ 180
Methoden der Klasse CL_GUI_OBJECT .................................................................................. 181
free .......................................................................................................................................... 182
is_valid .................................................................................................................................... 183
Methoden der Klasse CL_GUI_CONTROL ............................................................................... 184
constructor............................................................................................................................... 185
finalize ..................................................................................................................................... 187
get_focus................................................................................................................................. 188
get_height................................................................................................................................ 189
get_registered_events............................................................................................................. 190
get_width ................................................................................................................................. 191
is_alive .................................................................................................................................... 192
set_alignment.......................................................................................................................... 193
6
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_focus ................................................................................................................................. 194
set_position ............................................................................................................................. 195
set_visible................................................................................................................................ 196
April 2001
7
ALV Grid Control (BC-SRV-ALV)
SAP AG
ALV Grid Control (BC-SRV-ALV)
ALV Grid Control (BC-SRV-ALV)
Einsatzmöglichkeiten
Das ALV Grid Control (ALV = SAP List Viewer) ist ein flexibles Werkzeug zur Listendarstellung.
Es bietet typische Listenoperationen als generische Funktionen an und ist um eigene Funktionen
erweiterbar. Diese Eigenschaft ermöglicht den Einsatz des ALV Grid Controls in einer breiten
Palette von Anwendungsprogrammen.
In SAP-eigenen Entwicklungen wird das ALV Grid Control auch als Werkzeug zum
Ändern und Erstellen von Tabellen genutzt. Diese Funktionalität wird bisher
allerdings nur in Pilot-Projekten eingesetzt und ist nicht für Kunden freigegeben.
Das folgende Bild zeigt die Darstellung einer Liste mit dem ALV Grid Control in einem PopupFenster:
Titel
Titel
Generische
Generische
Funktionen
Funktionen
der
der Toolbar
Toolbar
Ausgabetabelle
Ausgabetabelle
im
im Grid
Grid Control
Control
Aus Benutzersicht besteht das ALV Grid Control aus einer Toolbar, einem Titel und der
Ausgabetabelle, die in einem Grid Control dargestellt wird. Der Titel und die Standardfunktionen
der Toolbar lassen sich ausblenden.
8
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
ALV Grid Control (BC-SRV-ALV)
Einführungshinweise
Das ALV Grid Control verwendet die Control-Technologie für eine moderne Darstellung am
Bildschirm. Es bietet - wie alle Control-Verschalungen - Methoden für die Steuerung des
Controls über eine globale Klasse im System an.
SAP kann nicht garantieren, daß Methoden, Ereignisse und Attribute dieser Klasse,
die nicht öffentlich sind, unverändert bleiben oder in Zukunft noch existieren. Daher
sollten Sie die Klasse nicht ableiten, um auf geschützten Objekte der Klasse
zugreifen zu können. Die Verwendung dieser Objekte erschwert den Upgrade auf ein
Folgerelease.
Die Verwendung von ABAP Objects hat zur Folge, daß eine Liste über eine ALV Instanz
angezeigt wird und der Programmierer sich der Ereignisverwaltung von ABAP Objects bedient.
Integration
Controls sind Software-Komponenten, die auf dem lokalen PC installiert sind. Um mit diesen
Komponenten zu kommunizieren, nutzen alle Control-Verschalungen Methoden des Control
Framework. Das ALV Grid Control stellt insofern einen Sonderfall dar, als daß es ein bereits
verschaltes Control benutzt: Das Grid Control. Bestimmte Schritte in der Ereignisverwaltung von
Controls können so dem Programmierer abgenommen werden.
Das ALV Grid Control verwendet das SAP Kontext Menü, um Standardfunktionen zu integrieren.
Dieses Menü läßt sich auf eigene Bedürfnisse anpassen.
Diese Dokumentation ist auf die Verwendung des ALV Grid Controls im SAP GUI for the
Windowsä Enviroment beziehungsweise im SAP GUI for the Javaä Enviroment ausgerichtet.
Außerdem gibt es die Möglichkeit das ALV Grid Control im Web [Seite 44] darzustellen.
Funktionsumfang
Zusammengefaßt bietet das ALV Grid Control folgende Möglichkeiten:
·
Einheitliche Darstellung von nicht-hierarchischen Listen in modernem Design.
·
Bereitstellung von typischen Listfunktionen - zum Beispiel Sortieren und Filtern - ohne
zusätzlichen Programmieraufwand.
·
Anpassung von vorgegebenen Listfunktionen sowie deren Erweiterung.
·
Reagieren auf Benutzeraktionen (zum Beispiel Doppelklicken auf eine Zeile) individuell
programmierbar.
·
Anbindung an die Report-Report Schnittstelle möglich.
Anwendungsbeispiele zum ALV Grid Control finden Sie in der Entwicklungsklasse
SLIS.
April 2001
9
ALV Grid Control (BC-SRV-ALV)
SAP AG
ALV Grid Control (BC-SRV-ALV)
Einschränkungen
Es ist nicht möglich, Block- oder hierarchische Listen mit dem ALV Grid Control darzustellen.
Einfache Listen kann das ALV Grid Control zur Zeit nur einzeilig darstellen. Der Benutzer kann
die Liste aber über die Druckvorschau mehrzeilig definieren und ausdrucken.
10
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Instanz für das ALV Grid Control
Instanz für das ALV Grid Control
Definition
Diese Instanz wird mit einer Referenz auf die Klasse cl_gui_alv_grid definiert:
data <Name der Referenzvariablen> type ref to cl_gui_alv_grid.
Verwendung
Eine Instanz für das ALV Grid Control verwaltet alle Informationen bezüglich einer Liste auf
Ihrem Dynpro. Auf diese Instanz können Sie Methoden aufrufen, mit denen Sie die
Eigenschaften dieses Controls definieren und ändern können.
Leiten Sie diese Klasse nicht ab, um auf geschützte Bereiche der Klasse zugreifen
zu können. Dies ist für die Verwendung des ALV Grid Controls nicht notwendig.
Vererbungshierarchie
CL_GUI_OBJECT
CL_GUI_CONTROL
CL_GUI_ALV_GRID_BASE
CL_GUI_ALV_GRID
Integration
Die Klasse cl_gui_alv_grid beinhaltet sowohl controlspezifische Methoden [Seite 67] als
auch Methoden des OO Control Frameworks [Seite 174].
April 2001
11
ALV Grid Control (BC-SRV-ALV)
SAP AG
Arbeiten mit dem ALV Grid Control
Arbeiten mit dem ALV Grid Control
Grundlagen
Die folgende Grafik zeigt die nötigen Schritte, um eine Liste mit dem ALV Grid Control
darzustellen:
A B C
Daten
DDIC
DDIC
Struktur
Struktur
a1 b 1 c1
a2 b 2 c2
a3 b 3 c3
Select * from <name>
Anzeige
Anzeige der
der Daten
Daten
auf
auf dem
dem Control
Control
Angezeigte
Liste:
Dynpro
grid
FLUSH
<name>
CREATE OBJECT grid
parent = container.
oder
CREATE OBJECT container
container_name = 'MYCONT‘.
C TypC ...
DATA container TYPE REF TO
cl_gui_custom_container.
B TypB ...
CALL METHOD
grid->Set_table_for_first_display.
Instanziierung
Instanziierung und
und
Dynpro-Integration
Dynpro-Integration
A TypA ...
Interne
Interne
Tabelle
Tabelle
Ausgabetabelle
Deklaration
Deklaration von
von
Referenzvariablen
Referenzvariablen
DATA grid TYPE REF
TO cl_gui_alv_grid.
Datenbeschreibung
Feldkatalog
Feldkatalog
A B C
(über
Container
mit dem
Dynpro
verlinkt)
a1 b 1 c1
a2 b 2 c2
a3 b 3 c3
Container
Containermit
mit
integriertem
integriertem
ALV
ALVControl
Control
Für die Anzeige der Daten müssen Sie mindestens zweierlei Informationen bereitstellen:
·
Eine interne Tabelle mit den darzustellenden Daten, die Ausgabetabelle.
·
Eine Beschreibung über die Struktur dieser Daten, die entweder über den Feldkatalog oder
über die entsprechende Struktur des Data Dictionary dem ALV Grid Control bekannt
gemacht wird.
Die Ausgabetabelle besteht im allgemeinen aus Daten, die Sie vorher aus Datenbanktabellen
selektiert haben.
Die Referenz auf die Ausgabetabelle, die Sie an das ALV Grid Control übergeben,
sollte so lange gültig sein wie das ALV Grid Control darauf operiert. Neben der
Definition dieser Referenz als globale Tabelle ist es auch möglich, die Referenz über
ein öffentliches Attribut in einer ABAP Objects Instanz zu halten.
Der Feldkatalog [Seite 133] ist eine Tabelle mit Informationen über die darzustellenden Felder.
Mit Hilfe dieser Tabelle erkennt ALV zum Beispiel den Typ eines Feldes. Sie können aber auch
über spezielle Felder des Katalogs die Formatierung von Zahlenausgaben und
Spalteneigenschaften der auszugebenen Liste beeinflussen.
12
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Arbeiten mit dem ALV Grid Control
Arbeiten mit Controls
Mit der Verwendung von ABAP Objects zu Release 4.6A wurde die Programmierung von
Controls in vielen Punkten vereinheitlicht:
·
Erzeugen eines Controls und dessen Integration auf dem Dynpro
·
Übermittlung von Methoden vom Backend zum Frontend
·
Behandlung von Ereignissen, die das Control am Frontend auslöst
·
Abbau des Controls (Lifetime Management)
Für Basis Controls (wie z.B. das TextEdit Control, das HTML Viewer Control oder das Picture
Control) gilt für die oben genannten Punkte das gleiche Programmiermodell.
Mit Einschränkungen im Bereich der Ereignisbehandlung gilt dieses Programmiermodell auch für
das ALV Grid Control (siehe nächsten Abschnitt). Lesen sie Anlegen eines Controls [Extern]
(inklusive Querverweise), um sich mit diesem allgemeinen Modell vertraut zu machen und
beachten Sie unbedingt die im nächsten Abschnitt beschriebenen Unterschiede.
Besonderheiten des ALV Grid Control in der
Ereignisbehandlung
Das ALV Grid Control benutzt das Grid Control für die Anzeige der Ausgabetabelle. Das ALV
Grid Control ist also eine Verschalung, die die Verschalung eines Basis Controls verwendet. Als
'äußere Hülle' nimmt diese Verschalung dem Anwendungsprogrammierer die Registrierung der
Ereignisse am Frontend ab, um die Ereignisbehandlung zu vereinfachen. Beachten Sie folgende
Unterschiede zu den Basis Controls:
·
Alle Ereignisse werden beim Instanziieren des Controls als System-Ereignisse registriert.
Wenn Sie alle Ereignisse als Anwendungs-Ereignis registrieren wollen, können Sie
dies mit dem Parameter I_APPL_EVENTS (Siehe auch: CONSTRUCTOR [Seite
71]). Dann müssen Sie wie üblich die Methode CL_GUI_CFW=>DISPATCH im PAI
aufrufen.
·
Die Ereignisse DELAYED_CALLBACK oder DELAYED_CHANGED_SEL_CALLBACK werden
über die Methode register_delayed_event [Seite 89] registriert.
·
Für Drag und Drop mit dem ALV Control [Seite 25] ist kein Aufruf von DISPATCH nötig.
April 2001
13
ALV Grid Control (BC-SRV-ALV)
SAP AG
Erste Schritte
Erste Schritte
Dieses Kapitel beschreibt, wie Sie im einfachsten Fall eine Liste mit selektierten Daten im ALV
Grid Control anzeigen. Dazu müssen Sie:
1. Eine Instanz des ALV Grid Control erzeugen und auf einem Dynpro integrieren.
2. Die anzuzeigenden Daten selektieren und diese zusammen mit einer Beschreibung der
Felder der Instanz übergeben.
Siehe auch Beispielreport BCALV_GRID_DEMO in der Entwicklungsklasse SLIS.
Ein ALV Grid Control anlegen
Ein ALV Grid Control wird auf die gleiche Weise instanziiert wie andere Controls:
1. Deklarieren Sie Referenzvariablen für das ALV Grid Control und den Container. Deklarieren
Sie außerdem eine interne Tabelle, die Sie später mit selektierten Daten füllen werden:
DATA: grid TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container
gt_sflight TYPE TABLE OF sflight.
Um ein Control auf einem Dynpro zu integrieren, stehen Ihnen fünf verschiedene
Container Controls [Extern] zur Verfügung (in diesem Beispiel wird das Custom
Container Control verwendet).
2. Legen Sie ein normales Dynpro an und markieren Sie im grafischen Screen Painter einen
Bereich für das Custom Container Control (Icon mit Buchstaben 'C'). Vergeben Sie für diesen
Bereich den Namen CCCONTAINER.
In Übung 1: Einen Bereich für ein Control reservieren [Extern] des Controls Tutorials
ist das Markieren eines Bereichs im alphanumerischen Screen Painter erklärt.
3. Im PBO-Modul des Dynpro müssen Sie nun noch das Container- und ALV Grid Control
instanziieren. Dabei binden Sie das Container Control an das Dynpro über den im Screen
Painter angelegten Container. Über den Parameter parent legen sie das Container Control
als Vater des ALV Control fest:
IF g_custom_container IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING
CONTAINER_NAME = 'CCCONTAINER'.
CREATE OBJECT GRID1
EXPORTING
I_PARENT = g_custom_container.
ENDIF.
14
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Erste Schritte
Die IF-Abfrage der Referenzvariable g_custom_container stellt sicher, daß die
Instanzen nur beim ersten Durchlauf des PBO erzeugt werden.
In der Regel müssen Sie mit der Methode cl_gui_cfw=>flush die aufgerufenen
Methoden zum Frontend übertragen. Da das Control Framework am Ende des PBO
den Flush automatisch durchführt, ist er hier nicht nötig.
Wenn Sie das Programm starten, werden die beiden Instanzen (das Container- und das ALV
Grid Control) zwar erzeugt, sind aber nicht sichtbar.
Eine Liste im ALV Control anzeigen
Nachdem Sie ein ALV Grid Control erzeugt haben und es über ein Container Control auf einem
Dynpro integriert haben, müssen Sie noch die Daten und deren Struktur an das ALV Grid Control
übergeben:
1. Füllen Sie die interne Tabelle mit Daten:
SELECT * FROM sflight INTO TABLE gt_sflight.
2. Übergeben Sie die Ausgabetabelle und die Strukturdaten an das ALV Grid Control. Achten
Sie wiederum darauf, diese Methode nur einmal nach der Erzeugung des ALV Grid Control
aufzurufen:
CALL METHOD grid->set_table_for_first_display
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING IT_OUTTAB
= gt_sflight.
In diesem Fall werden die Strukturdaten über das Data Dictionary bereitgestellt. Das
ALV Control holt sich die Feldinformationen über die Tabelle SFLIGHT und stellt alle
Felder der Tabelle dar.
April 2001
15
ALV Grid Control (BC-SRV-ALV)
SAP AG
Anwendungsspezifisches Programmieren
Anwendungsspezifisches Programmieren
Folgende Eigenschaften des ALV Grid Controls begünstigen den Einsatz dieses Werkzeuges in
einer breiten Palette von Anwendungen:
·
Layouts bieten dem Benutzer die Möglichkeit, die Listausgabe seinen Bedürfnissen
anzupassen. Die Anwendungsentwicklung bestimmt, welche Speicheroptionen der Benutzer
für das Layout einer Liste hat.
·
Eigene Funktionen der Anwendungsentwicklung lassen sich in der Toolbar integrieren. Der
Anwendungsentwickler kann außerdem Standardfunktionen an die jeweilige Anwendung
anpassen oder ganz ausblenden.
·
Drag&Drop-Funktionen sind programmierbar. Das ALV Grid Control ermöglicht die
Verwendung des Drag&Drop-Controls, mit dem sich anwendungsspezifische Funktionen
zwischen dem ALV Grid Control und anderen Custom Controls realisieren lassen.
·
Formatierungs-, Ausgabe- und Steuerungsoptionen werden über drei Strukturen angeboten:
-
Der Feldkatalog [Seite 133]
-
Die Layout-Struktur [Seite 163]
-
Die Print-Struktur [Seite 172]
Die wichtigsten Szenarien sind in diesem Abschnitt beschrieben. Weitere Informationen
entnehmen Sie bitte den Beschreibungen der Methoden, Ereignisse und Strukturen.
16
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Layouts
Layouts
Mit Hilfe von Layouts kann der Benutzer die ausgegebene Liste seinen eigenen Bedürfnissen
anpassen.
Der Anwendungsentwickler steuert die Berechtigungen des Benutzers bezüglich eines Layout
über die Parameter I_SAVE, IS_VARIANT und I_DEFAULT der Methode
set_table_for_first_display [Seite 103]. Es stehen drei Modi zur Verfügung:
Modus
Effekt
Ausschließliches
Ändern des
aktuellen Layout
Ausschließliches
Laden von
mitausgelieferten
Layouts
Laden und
Speichern eines
Layout
Das ALV Grid Control zeigt in der
Toolbar nur das Layout-Icon ( ),
aber kein Menü an. Über das Icon
kann der Benutzer das aktuelle Menü
ändern (im Wesentlichen die Auswahl
und Reihenfolge der angezeigten
Spalten, Filter, Sortierkriterien).
Belegung von I_SAVE und
IS_VARIANT beim Aufruf von
set_table_for_first_dis
play
IS_VARIANT = SPACE.
I_SAVE = SPACE.
(Voreinstellung)
Das ALV Grid Control zeigt in der
Toolbar sowohl ein Layout-Icon als
auch ein zugehöriges Menü an. Im
Menü befinden sich nur die
Funktionen Layout auswählen und
Layout ändern.
IS_VARIANT = <Struktur für
ein Layout>
Das ALV Grid Control zeigt in der
Toolbar sowohl das Layout-Icon als
auch ein zugehöriges Menü an. Über
das Layout-Icon kann der Benutzer
eine schon existierendes Layout
auswählen. Im Menü befinden sich
die Funktionen Layout auswählen,
Layout ändern, Layout sichern
und Layout verwalten.
IS_VARIANT = <Struktur für
ein Layout>
I_SAVE = SPACE.
(oder IS_VARIANT gleich
SPACE und I_SAVE ungleich
SPACE)
I_SAVE = <'X', 'U' oder 'A'>
Siehe auch: Abspeichern
eines Layout [Seite 18]
Zusätzlich können Sie über das Setzen des Parameters I_DEFAULT dem Benutzer das
Speichern von Layoutvoreinstellungen erlauben (in der Voreinstellung gesetzt).
Falls der Benutzer die Berechtigung hat, transportiert er Layouts in der LayoutVerwaltung über den Menüpunkt Layout->Transportieren....
April 2001
17
ALV Grid Control (BC-SRV-ALV)
SAP AG
Abspeichern eines Layouts
Abspeichern eines Layouts
Einsatzmöglichkeiten
Die Standard-Funktion Layout ändern steht dem Benutzer über ein Icon der Toolbar zur
Verfügung. Sie ermöglicht ihm, das aktuelle Layout für die Lebensdauer der Control-Instanz
seinen Bedürfnissen anzupassen.
Der Anwendungsprogrammierer bestimmt, ob der Benutzer Layouts speichern darf und wenn ja,
mit welchen Speicheroptionen.
Siehe auch den Report BCALV_GRID_09 in der Entwicklungsklasse SLIS.
Voraussetzungen
In der Voreinstellung kann der Benutzer eine Layoutvoreinstellung abspeichern. Existiert bereits
so ein Layout, so wird diese beim Aufruf der Methode set_table_for_first_display [Seite 103]
geladen. Falls Sie keine Layoutvoreinstellungen zulassen wollen, setzen Sie den Parameter
I_DEFAULT dieser Methode auf SPACE.
Ablauf
1. Deklarieren Sie eine Variable, um die Speichermöglichkeiten des Benutzers zu bestimmen,
und eine Struktur zum Identifizieren eines Layouts:
DATA: X_SAVE,
"for Parameter I_SAVE
GS_variant TYPE DISVARIANT. "for parameter IS_VARIANT
2. Die Struktur vom Typ DISVARIANT muß mindestens die Report-ID enthalten:
G_REPID = SY-REPID.
GS_variant-REPORT = G_REPID.
3. Bestimmen Sie, welche Speicheroptionen der Benutzer haben soll:
X_SAVE = 'U'.
"layouts can only be saved as user specific ones
4. Übergeben Sie die beiden Variablen mit dem Aufruf set_table_for_first_display:
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
IS_VARIANT
= GS_variant
I_SAVE
= X_SAVE
CHANGING IT_OUTTAB
= GT_SFLIGHT.
Wenn Sie nur den Aktualparameter für IS_VARIANT übergeben, ist es zwar
möglich, Layouts zu laden, aber nicht, neue zu speichern. Bei Verwendung des
Parameters I_SAVE ist die Übergabe einer Struktur für das Layout mit IS_VARIANT
obligatorisch.
18
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Abspeichern eines Layouts
Ergebnis
In der Toolbar läßt sich nun neben dem Layout-Icon ein Menü aufklappen, das ein Speichern und
Laden eines Layouts erlaubt. Je nach Belegung des Parameters I_SAVE hat der Benutzer beim
Speichern folgende Möglichkeiten:
Speichermodi von Layouts
I_SAVE = SPACE
Kein Speichern von Layouts möglich.
I_SAVE = 'U'
Der Benutzer kann nur benutzerspezifische Layouts speichern.
I_SAVE = 'X'
Der Benutzer kann nur übergreifende Layouts speichern.
I_SAVE = 'A'
Der Benutzer kann sowohl benutzerspezifische als auch übergreifende
Layouts speichern.
April 2001
19
ALV Grid Control (BC-SRV-ALV)
SAP AG
Integration eigener Funktionen
Integration eigener Funktionen
Das ALV Control stellt Ihnen Standard-Funktionen für die Bearbeitung von Listen zur Verfügung.
Der Benutzer kann auf diese Funktionen über die Toolbar oder das Kontext-Menü zugreifen. Um
eigene Funktionen zu integrieren, können Sie:
·
Bestehende Funktionen mit eigenen Funktionen belegen sowie
·
weitere Funktionen in der Toolbar und im Kontext-Menü einbinden.
Außerdem ist es möglich Funktionen auszublenden oder zu deaktivieren, die in einem speziellen
Kontext nicht benötigt werden.
20
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Ändern von Standardfunktionen
Ändern von Standardfunktionen
Einsatzmöglichkeiten
Die Standardfunktionen sind auf keinen speziellen Anwendungsfall zugeschnitten. Spezielles
Wissen über die angezeigten Daten können also nicht berücksichtigt werden. Im Einzelfall ist es
möglich, daß eine Standardfunktion - wie das Sortieren nach einer bestimmten Spalte - in einer
Anwendung effizienter programmiert werden kann.
Ablauf
1. Definieren Sie eine Ereignisbehandlermethode zum Ereignis before_user_command [Seite
112]. Dieses Ereignis wird ausgelöst, wenn der Benutzer eine Funktion ausgewählt hat. Das
ALV Control übergibt also die Kontrolle an die Anwendung bevor die Funktion ausgeführt
wird. Über den Parameter I_UCOMM des Ereignisses können Sie den Funktionscode auf die
Funktion, die Sie ändern möchten, eingrenzen.
2. Implementieren Sie Ihren eigenen Algorithmus für die Funktion innerhalb der
Ereignisbehandlermethode. Sie können dabei Methoden des ALV Control aufrufen.
3. Setzen Sie abschließend den Funktionscode zurück, damit die Standardfunktion nicht mehr
ausgeführt wird:
CALL METHOD <Instanz des ALV Control>->set_user_command
exporting I_UCOMM = SPACE.
Wenn Sie bestimmte Funktionen der Toolbar überhaupt nicht brauchen, können Sie
diese auch für die gesamte Lebensdauer des Control ausblenden. Übergeben Sie
dazu mit Hilfe des Parameters IT_TOOLBAR_EXCLUDING der Methode
set_table_for_first_display [Seite 103] eine Tabelle mit den auszublendenden
Funktionskodes.
April 2001
21
ALV Grid Control (BC-SRV-ALV)
SAP AG
Definition von GUI-Elementen in der Toolbar
Definition von GUI-Elementen in der Toolbar
Ablauf
1. Definieren Sie eine Ereignisbehandlermethode zum Ereignis TOOLBAR.
2. Deklarieren Sie eine Struktur für die Definition eines Elements der Toolbar:
data: ls_toolbar TYPE stb_button.
3. Für eine Drucktaste füllen Sie zum Beispiel folgende Felder:
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'BOOKINGS' TO ls_toolbar-function.
MOVE icon_employee TO ls_toolbar-icon.
MOVE 'Show Bookings'(111) TO ls_toolbar-quickinfo.
MOVE SPACE TO ls_toolbar-disabled.
Mit dem Feld butn_type teilen Sie dem ALV Control den Typ des GUI-Elements
mit. Mögliche Werte entnehmen Sie bitte dem Wertebereich der Domäne TB_BTYPE.
4. Mit Hilfe des Ereignisparameters E_OBJECT hängen Sie die neue Definition an die Tabelle
mt_toolbar:
APPEND ls_toolbar TO e_object->mt_toolbar.
5. Für die Definition weiterer Elemente gehen Sie zurück zu Schritt 3.
6. Rufen Sie die Methode set_toolbar_interactive [Seite 107] auf, wenn Sie die Toolbar neu
aufbauen wollen.
Ergebnis
Den jeweiligen Funktionskode, den Sie im Feld function festgelegt haben, können Sie in der
Ereignisbehandlermethode zum Ereignis USER_COMMAND abfragen und so die zugehörige
Funktion implementieren.
Siehe auch den Report BCALV_GRID_05 in der Entwicklungsklasse SLIS.
22
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Definition eines Kontext-Menüs
Definition eines Kontext-Menüs
Verwendung
Das ALV Grid Control benutzt das Kontext Menü [Extern] und belegt es mit Standardfunktionen.
Sie können es kontextsensitiv um eigene Funktionen erweitern und gegebene Funktionen
ausblenden oder deaktivieren.
Integration
Das Kontext-Menü ist eine Instanz der Klasse CL_CTMENU. Wird das Ereignis
CONTEXT_MENU_REQUEST vom Benutzer ausgelöst, so enthält der Ereignisparameter
E_OBJECT eine Referenz auf das Standard-Kontextmenü.
Siehe auch den Report BCALV_GRID_06 in der Entwicklungsklasse SLIS.
Funktionsumfang
Sie können dieses Menü folgendermaßen verändern:
·
Um eine Zeile im Menü hinzuzufügen, rufen Sie die Methode add_function auf:
CALL METHOD E_OBJECT->ADD_FUNCTION
EXPORTING FCODE = 'DELE'
TEXT = TEXT-003. "Löschen
·
Um schon vorhandene Funktionen zu deaktivieren (Anzeige in Ghost-Schrift), übergeben Sie
alle entsprechenden Funktionscodes der Methode disable_functions in einer Tabelle:
DATA: LT_FCODES TYPE UI_FUNCTIONS,
CLEAR LT_FCODES.
APPEND CL_GUI_ALV_GRID=>MC_FC_COL_OPTIMIZE TO LT_FCODES.
APPEND CL_GUI_ALV_GRID=>MC_FC_HELP TO LT_FCODES.
CALL METHOD E_OBJECT->DISABLE_FUNCTIONS
EXPORTING FCODES = LT_FCODES.
·
Um schon vorhandene Funktionen auszublenden, gehen Sie genauso vor und rufen statt der
Methode disable_functions die Methode hide_functions auf.
Mit den Methoden enable_functions und show_functions können Sie die jeweiligen
Funktionen wieder aktivieren beziehungsweise anzeigen.
Die Funktionskodes zu eigenen Funktionen fragen Sie beim Ereignis user_command
[Seite 132] ab.
April 2001
23
ALV Grid Control (BC-SRV-ALV)
SAP AG
Definition eines Menüs in der Toolbar
Definition eines Menüs in der Toolbar
Einsatzmöglichkeiten
Ein Menü der Toolbar ist - genau wie ein Kontext-Menü - eine Instanz der Klasse CL_CTMENU.
Sie können mehrere Menüs frei definieren und sie in der Toolbar aufhängen.
Ablauf
1. Definieren Sie in der Toolbar ein GUI-Element vom Typ 1 (Menü mit Defaultbutton) oder Typ
2 (Menü ohne Defaultbutton). Die Vorgehensweise hierzu ist in Definition von GUIElementen in der Toolbar [Seite 22] beschrieben.
Siehe auch: Besonderheiten bei Menüs mit Defaultbutton [Extern]
2. Fragen Sie den Funktionskode, den Sie im Schritt 1 für das Menü vergeben haben, in der
Ereignisbehandlermethode zum Ereignis MENU_BUTTON ab (über den Ereignisparameter
E_UCOMM). Auf diese Weise können Sie die verschiedenen Menüs der Toolbar
unterscheiden.
3. Definieren Sie pro Funktionscode ein Menü, wie in Definition eines Kontext-Menüs [Seite 23]
beschrieben.
Für die einzelnen Funktionen eines Menüs vergeben Sie im dritten Schritt weitere
Funktionskodes, die Sie beim Ereignis user_command [Seite 132] abfragen können.
Siehe auch den Report BCALV_GRID_07 in der Entwicklungsklasse SLIS.
24
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Drag&Drop mit dem ALV Control
Drag&Drop mit dem ALV Control
Das ALV Grid Control ermöglicht die Verwendung des Drag&Drop Controls. Für dieses Control
müssen Sie zunächst ein Drag&Drop-Verhalten beschreiben und dieses Verhalten über ein
Handle für Elemente der betroffenen Controls setzen. Das Drag&Drop Control erkennt anhand
der Handles, welche Operationen der Benutzer durchführen darf und verändert beim Klicken den
Mauszeiger.
Um mit dem gesetzten Drag&Drop Verhalten Aktionen zu verbinden stellt das ALV Control die
Ereignisse OnDrag, OnDrop, OnDropComplete und OnDropGetFlavor zur Verfügung.
Dieser Abschnitt beschreibt, wie Sie die Handles für das Drag&Drop-Verhalten mit Elementen
des ALV Grid Controls verknüpfen. Die Dokumentation zum Control Framework [Extern] erklärt
die Programmierung von Drag&Drop [Extern] (Ablauf einer Drag&Drop Operation [Extern],
Ereignisse bei Drag&Drop [Extern]).
Beispiele
Zu Drag&Drop mit dem ALV Grid Control gibt es Demoreports in der Entwicklungsklasse SLIS:
·
BCALV_DND_01 (Zeilen vom Grid Control in Knoten vom Tree Control ziehen)
·
BCALV_DND_02 (Funktionsikonen vom Tree Control auf Zeilen des Grid Controls ziehen)
·
BCALV_DND_03 (Definition eines Drag&Drop-Verhaltens auf Zellen des Grid Controls)
·
BCALV_DND_04 (Verschieben oder Kopieren von Zeilen innerhalb eines ALV Grid Controls)
April 2001
25
ALV Grid Control (BC-SRV-ALV)
SAP AG
D&D-Verhalten für alle Zeilen/Spalten
D&D-Verhalten für alle Zeilen/Spalten
Einsatzmöglichkeiten
Dieser Prozeß bietet sich an, wenn Sie ein einheitliches Drag&Drop-Verhalten für alle Zeilen
oder Spalten definieren wollen. Ist im Verhalten zum Beispiel das Attribut dragsource gesetzt,
lassen sich alle Zeilen bzw. Spalten mit Objekten verbinden, die das Attribut droptarget
gesetzt haben und den gleichen Flavor benutzen.
Es macht keinen Unterschied, ob Sie ein Verhalten für alle Zeilen oder alle Spalten
definieren.
Obwohl Sie mit dieser Methode für alle Zeilen das gleiche Verhalten beschreiben, können Sie in
den Ereignissen OnDrop bzw. OnDropGetFlavor entscheiden, ob Sie die Drag&DropOperation abbrechen wollen. Sie treffen diese Entscheidung anhand des übergebenen
Datenobjekts und des Flavors. Im Datenobjekt haben Sie üblicherweise die Daten der
gezogenen Zeile gespeichert.
Ablauf
1. Definieren Sie die Layout-Struktur vom Typ LVC_S_LAYO.
2. Definieren Sie Ihr Drag&Drop-Verhalten und beschaffen Sie sich dessen Handle mit der
Methode get_handle der Klasse cl_dragdrop.
3. Weisen Sie das Handle dem Feld s_dragdrop-row_ddid oder s_dragdrop-col_ddid
der Layout-Struktur zu.
4. Übergeben Sie die Layout-Struktur mit der Methode set_table_for_first_display [Seite 103].
Sie können die Layout-Struktur mit dem Drag&Drop-Verhalten auch nachträglich mit
der Methode set_frontend_layout [Seite 95] übergeben.
Ergebnis
Jede Zeile bzw. Spalte läßt sich vom Benutzer ziehen bzw. erscheint als Ziel für eine
Drag&Drop-Operation.
Die Definition eines Drag&Drop-Verhaltens läßt sich erst dann am Bildschirm
nachvollziehen, wenn es wenigstens eine Dragsource und ein Droptarget mit
gleichem Flavor gibt.
26
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
D&D-Verhalten für spezielle Spalten
D&D-Verhalten für spezielle Spalten
Einsatzmöglichkeiten
Sie können mit dieser Möglichkeit für spezielle Spalten des Grid Controls ein Drag&DropVerhalten definieren. Jede Spalte kann dabei ein anderes Drag&Drop-Verhalten haben.
Ablauf
5. Definieren Sie eine interne Tabelle vom Typ LVC_T_FCAT für den Feldkatalog.
6. Definieren Sie ein oder verschiedene Drag&Drop-Verhalten und beschaffen Sie sich deren
Handles mit der Methode get_handle der Klasse cl_dragdrop.
7. Erstellen Sie den Feldkatalog manuell [Seite 137] oder halbautomatisch [Seite 139]. Weisen
Sie dem Feld dragdropid für ausgewählte Spalten das entsprechende Handle zu (mit dem
Feld fieldname können sie die gewünschte Spalte referenzieren).
8. Übergeben Sie den Feldkatalog mit der Methode set_table_for_first_display [Seite 103].
Sie können den Feldkatalog mit dem Drag&Drop-Verhalten auch nachträglich mit der
Methode set_frontend_fieldcatalog [Seite 94] übergeben.
Ergebnis
Die Spalten zeigen ein Drag&Drop-Verhalten gemäß dem übergebenen Handle.
Die Definition eines Drag&Drop-Verhaltens läßt sich erst dann am Bildschirm
nachvollziehen, wenn es wenigstens eine Dragsource und ein Droptarget mit
gleichem Flavor gibt.
April 2001
27
ALV Grid Control (BC-SRV-ALV)
SAP AG
D&D-Verhalten für spezielle Zeilen/Zellen
D&D-Verhalten für spezielle Zeilen/Zellen
Einsatzmöglichkeiten
Sie können mit dieser Möglichkeit für spezielle Zeilen oder Zellen des Grid Controls ein
Drag&Drop-Verhalten definieren. Jede Zeile bzw. Zelle kann dabei ein anderes Drag&DropVerhalten haben.
Ablauf
1. Definieren Sie die Layout-Struktur vom Typ LVC_S_LAYO.
2. Erweitern Sie Ihre Ausgabetabelle um eine Drag&Drop-Tabelle vom Typ LVC_T_DRDR wie
im folgenden Beispiel:
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE <DDIC-Struktur>.
DATA: CT TYPE LVC_T_DRDR. "Table for d&d cell behaviour
DATA: END OF GT_OUTTAB.
3. Definieren Sie Ihr Drag&Drop-Verhalten und beschaffen Sie sich dessen Handle mit der
Methode get_handle der Klasse cl_dragdrop.
4. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle.
5. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Eine Zeile der Drag&DropTabelle hat zwei Felder. Belegen Sie diese Felder folgendermaßen (siehe auch die Grafik im
nächsten Abschnitt):
-
Wenn die ganze Zeile ein Drag&Drop-Verhalten haben soll, weisen Sie dem Feld
dragdropid das entsprechende Handle zu. Das Feld fieldname bleibt in diesem Fall
leer.
-
Wenn nur bestimmte Spalten der Zeile ein Drag&Drop-Verhalten haben sollen, müssen
Sie für solche Spalten jeweils eine Zeile in der Drag&Drop-Tabelle anhängen. Dem Feld
fieldname weisen Sie den Namen der gewünschten Spalte und dem Feld
dragdropid das entsprechende Handle zu.
6. Weisen Sie den Namen der internen Tabelle dem Feld s_dragdrop-fieldname der
Layout-Struktur zu (in unserem Fall 'CT', siehe Schritt 2).
7. Übergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode
set_table_for_first_display [Seite 103].
Sie können die Layout-Struktur mit dem Drag&Drop-Verhalten auch nachträglich mit
der Methode set_frontend_layout [Seite 95] übergeben. Das ALV Grid Control frischt
sie beim Aufruf der Methode refresh_table_display [Seite 88] auf. Die Instanz des
ALV Grid Control und die zugehörige Ausgabetabelle müssen die gleiche
Lebensdauer haben.
28
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
D&D-Verhalten für spezielle Zeilen/Zellen
Beispiel
Die folgende Grafik zeigt eine Ausgabetabelle, bei denen die Zellen b1 und c1 zwei verschiedene
und die gesamte zweite Zeile das gleiche Drag&Drop-Verhalten wie Zelle c1 hat:
Interne Tabelle vom Typ
LVC_T_DRDR
A
B
C
Drag&Dropsensitive Zellen
im Grid Control:
CT
a1 b1 c1
a2 b2 c2
a3 b3 c3
1
B 2
C 1
dragdropid
A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3
fieldname
Ausgabetabelle
April 2001
29
ALV Grid Control (BC-SRV-ALV)
SAP AG
Ausgabe von Exceptions
Ausgabe von Exceptions
Einsatzmöglichkeiten
Mit Exceptions kennzeichnen Sie grafisch, daß ein Schwellenwert in einer Zeile der Liste
überschritten ist. Im Bezug auf das Flugmodell würde man zum Beispiel die rote Ampel
benutzen, um zu signalisieren, daß ein Flug ausgebucht ist. Der Benutzer kann anhand der
verwendeten Farbe die angezeigten Daten schneller interpretieren. Es lassen sich drei Zustände
anzeigen:
Anzeige
Interner Wert
Signalisiert zum Beispiel
3
(Fast) volle Kapazität verfügbar
2
Mittlere bis volle Ausschöpfung der Kapazität
1
Keine Kapazität mehr vorhanden
Eine Exception kann auch als LED angezeigt werden (siehe Exceptions [Seite 168]).
Der Anwendungs-Entwickler muß sowohl die Schwellenwerte festlegen, als auch den Wert einer
Exception an diesen anpassen.
Siehe auch: Beispielreport BCALV_GRID_04 der Entwicklungsklasse SLIS.
Ablauf
6. Definieren Sie die Layout-Struktur vom Typ LVC_S_LAYO:
DATA gs_layout TYPE LVC_S_LAYO.
7. Erweitern Sie Ihre Ausgabetabelle um eine Variable vom Typ C wie im folgenden Beispiel:
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE <DDIC-Struktur>.
DATA: light TYPE C. "to display exceptions
DATA: END OF GT_OUTTAB.
8. Setzen Sie das Feld EXCP_FNAME der Layout-Struktur auf den Feldnamen für die Exception:
gs_layout-excp_fname = 'LIGHT'.
9. Wenn Sie die Exception als LED darstellen möchten, setzen Sie das Feld EXCP_LED der
Layout-Struktur.
10. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle und fragen Sie die Felder ab,
die zu der Exception in Beziehung stehen. Setzen Sie Ihre Variable für die Exception-
30
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Ausgabe von Exceptions
Anzeige (in unserem Beispiel LIGHT) je nach dem von Ihnen gewählten Schwellenwert auf
'1', '2' oder '3' (siehe oben).
8. Übergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode
set_table_for_first_display [Seite 103].
Wenn Sie die Werte für eine Exception in der Ausgabetabelle geändert haben,
frischen Sie die Ausgabe mit der Methode refresh_table_display [Seite 88] auf.
Ergebnis
Das ALV Grid Control enthält am Beginn der Liste eine Spalte mit Exceptions:
April 2001
31
ALV Grid Control (BC-SRV-ALV)
SAP AG
Einfärben von Zeilen
Einfärben von Zeilen
Einsatzmöglichkeiten
Sie können Zeilen im Grid Control anders einfärben und auf diese Weise Daten der Liste
hervorheben.
Spalten lassen sich über das Feld EMPHASIZE des Feldkatalogs einfärben (siehe:
Ausgabeoptionen einer Spalte [Seite 149]).
Ablauf
11. Definieren Sie die Layout-Struktur [Seite 163] vom Typ LVC_S_LAYO.
12. Erweitern Sie Ihre Ausgabetabelle um ein vierstelliges Character-Feld wie im folgenden
Beispiel:
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE <DDIC-Struktur>.
DATA: linecolor(4) type c. "Color for corresponding line
DATA: END OF GT_OUTTAB.
13. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle.
14. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Um die Farbe einer Zeile zu
ändern, weisen Sie dem Character-Feld eine vierstellige Farbkodierung zu.
Mehr über die Farbkodierung finden Sie beim Feld EMPHASIZE des Feldkatalogs
(siehe Ausgabeoptionen einer Spalte [Seite 149]).
9. Weisen Sie den Namen der internen Tabelle dem Feld INFO_FNAME der Layout-Struktur zu
(in unserem Fall 'LINECOLOR', siehe Schritt 2).
10. Übergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode
set_table_for_first_display [Seite 103].
Wenn Sie Zellen nicht bei der ersten Anzeige einfärben wollen, führen Sie Schritt 4
später aus und frischen die Ausgabetabelle mit der Methode refresh_table_display
[Seite 88] auf.
32
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Einfärben von Zellen
Einfärben von Zellen
Einsatzmöglichkeiten
Sie können Zellen im Grid Control anders einfärben und auf diese Weise Daten der Liste
hervorheben. Es ist über diesen Prozeß zwar auch möglich, ganze Zeilen einzufärben, dies ist
aber aufwendiger als unter Einfärben von Zeilen [Seite 32] beschrieben.
Der Prozeß D&D-Verhalten für spezielle Zeilen/Zellen [Seite 28] ist analog im Bezug
auf die Methode zur Auswahl der Zellen.
Ablauf
15. Definieren Sie die Layout-Struktur [Seite 163] vom Typ LVC_S_LAYO.
16. Erweitern Sie Ihre Ausgabetabelle um eine Farb-Tabelle vom Typ LVC_T_SCOL wie im
folgenden Beispiel:
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE <DDIC-Struktur>.
DATA: CT TYPE LVC_T_SCOL. "Table for colors
DATA: END OF GT_OUTTAB.
17. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle.
18. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Eine Zeile der Farb-Tabelle
hat drei Felder. Ist das Feld NOKEYCOL gesetzt, können Sie die Farbe von Schlüsselfeldern
ändern. Belegen Sie die restlichen Felder folgendermaßen:
-
Wenn Sie die ganze Zeile einfärben wollen, weisen Sie den Feldern der Struktur COLOR
die entsprechenden Werte zu. Das Feld fname bleibt in diesem Fall leer.
-
Wenn Sie nur bestimmte Spalten der Zeile einfärben wollen, müssen Sie für solche
Spalten jeweils eine Zeile in der Farb-Tabelle anhängen. Dem Feld fname weisen Sie
den Namen der gewünschten Spalte und den Feldern der Struktur COLOR die
entsprechenden Werte zu.
Die Bedeutung der Farbeinstellungen finden Sie in der F1-Hilfe zum Format-Befehl.
Die Klasse CL_GUI_RESOURCES enthält Konstantenattribute für die Felder INT und
INV der Struktur COLOR.
11. Weisen Sie den Namen der internen Tabelle dem Feld CTAB_FNAME der Layout-Struktur zu
(in unserem Fall 'CT', siehe Schritt 2).
12. Übergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode
set_table_for_first_display [Seite 103].
April 2001
33
ALV Grid Control (BC-SRV-ALV)
SAP AG
Einfärben von Zellen
Wenn Sie Zellen nicht bei der ersten Anzeige einfärben wollen, führen Sie Schritt 4
später aus und frischen die Ausgabetabelle mit der Methode refresh_table_display
[Seite 88] auf.
34
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Darstellung von Drucktasten
Darstellung von Drucktasten
Einsatzmöglichkeiten
Wenn Sie Zellen, Zeilen oder Spalten den Style mc_style_button zuweisen, stellt das ALV
Grid Control die zugehörigen Zellen als Drucktaste dar. Der Benutzer sieht dann unmittelbar, daß
er weiter Informationen zur Zelle erhält, indem er auf sie klickt. Das ALV Grid Control löst dann
das Ereignis button_click [Seite 113] aus.
Ablauf
Um alle Zellen einer Spalte als Drucktaste darzustellen, verwenden Sie das Feld
STYLE des Feldkatalogs [Seite 149].
Um Zeilen oder einzelne Zellen als Drucktaste darzustellen, gehen Sie folgendermaßen vor:
19. Definieren Sie die Layout-Struktur [Seite 163] vom Typ LVC_S_LAYO.
20. Erweitern Sie Ihre Ausgabetabelle um eine Zellentabelle vom Typ LVC_T_STYL wie im
folgenden Beispiel:
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE <DDIC-Struktur>.
DATA: CT TYPE LVC_T_DRDR. "Table buttons
DATA: END OF GT_OUTTAB.
21. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle.
22. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Eine Zeile der Zellentabelle
hat die Felder FIELDNAME und STYLE. Belegen Sie diese Felder folgendermaßen:
-
Wenn alle Zellen einer Zeile als Drucktaste dargestellt werden sollen, weisen Sie dem
Feld style das Attribut cl_gui_alv_grid=>mc_style_button zu. Das Feld
fieldname bleibt in diesem Fall leer.
-
Wenn nur bestimmte Spalten der Zeile wie eine Drucktaste aussehen sollen, hängen Sie
pro Spalte eine Zeile an die Zellentabelle an. Dem Feld fieldname weisen Sie den
Namen der gewünschten Spalte und dem Feld style das Attribut
cl_gui_alv_grid=>mc_style_button zu.
13. Weisen Sie den Namen der internen Tabelle dem Feld stylefname der Layout-Struktur zu
(in unserem Fall 'CT', siehe Schritt 2).
14. Übergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode
set_table_for_first_display [Seite 103].
Ergebnis
Das ALV Grid Control gibt die mit dem Attribut gekennzeichneten Zellen als Drucktaste aus.
April 2001
35
ALV Grid Control (BC-SRV-ALV)
SAP AG
Darstellung von Drucktasten
36
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Einbinden von Hyperlinks
Einbinden von Hyperlinks
Einsatzmöglichkeiten
Mit dem Feld HREF_HNDL [Seite 149] des Feldkatalogs weisen Sie allen Zellen einer Spalte ein
Handle für eine Hyperlink-Adresse zu.
In diesem Abschnitt ist beschrieben, wie Sie die Zellen einer Spalte mit unterschiedlichen
Hyperlink-Adressen verknüpfen.
Ablauf
23. Definieren Sie eine interne Tabelle für den Feldkatalog vom Typ LVC_T_FCAT und eine
Hyperlink-Tabelle vom Typ LVC_T_HYPE:
data: gt_fieldcat type lvc_t_fcat,
gt_hypetab type lvc_t_hype.
24. Um nur in einer Zelle einer Spalte einen Hyperlink darzustellen, benötigen Sie ein
zusätzliches Feld in der Ausgabetabelle. Erweitern Sie dazu Ihre Ausgabetabelle um ein Feld
vom Typ INT4 wie im folgenden Beispiel:
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE <DDIC-Struktur>.
DATA: HL_FNAME TYPE INT4. "hyperlink handle for field FNAME
DATA: END OF GT_OUTTAB.
Pro Spalte der Ausgabetabelle, die Hyperlinks auf Zellenebene enthalten soll, muß
ein zusätzliches Feld für das Handle definiert werden. In diesem Beispiel sollen nur
in einer Spalte Hyperlinks dargestellt werden.
25. Bauen Sie den Feldkatalog für Ihre Ausgabetabelle manuell [Seite 137]oder
halbautomatisch [Seite 139] auf. Im Feldkatalog weisen Sie dem Feld WEB_FIELD den
Namen des Feldes für das Hyperlink-Handle zu (im Beispiel: HL_FNAME, s.o.). Das ALV Grid
Control kann so das zusätzliche Feld richtig interpretieren.
26. Bauen Sie Ihre Hyperlink-Tabelle mit allen gewünschten Sprungzielen auf, zum Beispiel:
data: ls_hype type lvc_s_hype.
ls_hype-handle = '1'.
ls_hype-href = 'http://www.sap.com'.
append ls_hype to gt_hypetab.
ls_hype-handle = '2'.
ls_hype-href = 'http://www.mysap.com'.
append ls_hype to gt_hypetab.
27. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle.
28. Lesen Sie in einer Schleife jeweils eine Zeile der Ausgabetabelle. Weisen Sie nun dem Feld
für das Hyperlink-Handle (im Beispiel: HL_FNAME), das gewünschte Handle zu. Bleibt das
Handle für eine Zeile initial, wird kein Hyperlink dargestellt.
April 2001
37
ALV Grid Control (BC-SRV-ALV)
SAP AG
Einbinden von Hyperlinks
15. Übergeben Sie den Feldkatalog, die Hyperlink-Tabelle und die Ausgabetabelle mit der
Methode set_table_for_first_display [Seite 103].
Ergebnis
Alle Zellen der Spalte, denen über das zusätzliche Feld ein Handle zugewiesen wurde, werden
als Hyperlink dargestellt. Gibt es für das zugewiesene Handle keinen Eintrag in der HyperlinkTabelle, so wird der Inhalt der Zelle normal ausgegeben.
38
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Gruppierung von Feldern zur Feldauswahl
Gruppierung von Feldern zur Feldauswahl
Einsatzmöglichkeiten
Bei einer großen Anzahl von Ausgabefeldern wird die Feldauswahl im Auswahlfenster für das
aktuelle Layout unübersichtlich. Über eine Gruppierung der Ausgabefelder kann der Benutzer
über ein Listenfeld die angezeigten Felder in dem Auswahlfenster einschränken.
Das Listenfeld bezieht sich nur auf die ausgeblendeten Felder.
Ablauf
1. Definieren Sie eine interne Tabelle vom Typ LVC_T_SGRP für die Feldgruppentexte und eine
interne Tabelle LVC_T_FCAT für den Feldkatalog.
2. Bauen Sie den Feldkatalog manuell [Seite 137] oder halbautomatisch [Seite 139] auf.
3. Vergeben Sie über das Feld sp_group des Feldkatalogs für jedes Feld der Ausgabetabelle
einen Gruppenschlüssel.
4. Definieren Sie für jede Gruppe einen Gruppentext in Ihrer Feldgruppentabelle.
5. Übergeben Sie die Feldgruppentabelle und den Feldkatalog mit der Methode
set_table_for_first_display [Seite 103] (über den Parameter IT_SPECIAL_GROUPS bzw.
IT_FIELDCATALOG).
Ergebnis
Im Auswahlfenster für das aktuelle Layout wird ein Listenfeld angezeigt, über die man die
jeweilige Gruppe auswählen kann:
April 2001
39
ALV Grid Control (BC-SRV-ALV)
SAP AG
Gruppierung von Feldern zur Feldauswahl
40
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Verwendung des Konvertierungsexit
Verwendung des Konvertierungsexit
Einsatzmöglichkeiten
Über einen Konvertierungsexit definieren Sie einen Absprung in eine Konvertierungsroutine für
eine Spalte Ihrer Ausgabetabelle. Als Exit geben Sie dabei den Teilstring <conv> eines
Funktionsbausteins mit dem Namen CONVERSION_EXIT_<conv>_OUTPUT an. So können Sie
zum Beispiel mit dem Konvertierungsexit ALPHA (siehe Funktionsbaustein
CONVERSION_EXIT_ALPHA_OUTPUT) führende Nullen von Kontonummern eliminieren.
Der Konvertierungsexit wird über den WRITE-Zusatz USING EDIT MASK realisiert.
Voraussetzungen
Damit das ALV Grid Control die Konvertierung durchführen kann, muß die interne und die
externe Länge des Feldes bekannt sein. Dies entspricht der Länge vor und nach der
Konvertierung.
Zur Veranschaulichung dieser Längenangaben ein Beispiel zur
Aufbereitungsschablone EDIT MASK beim WRITE-Befehl:
DATA TIME TYPE T VALUE '154633'.
WRITE (8) TIME USING EDIT MASK '__:__:__'. "Ausgabe: 15:46:33
In diesem Fall ist die interne Läge (des Typs T) sechs Zeichen lang und die
Ausgabelänge acht.
Die Spaltenbreite (über das aktuelle Layout einzustellen) ist eine von diesen Größen
unabhängige Größe und braucht nicht angepaßt zu werden.
Ablauf
1. Machen Sie dem ALV Grid Control die interne und externe Länge des Feldes bekannt:
·
Bei Feldern mit DDIC-Bezug übernimmt das ALV Grid Control die interne und externe Länge
automatisch.
·
Für Felder ohne DDIC-Bezug müssen Sie die interne Länge über das Feld INTLEN und die
externe Länge über das Feld DD_OUTLEN des Feldkatalogs angeben (siehe Parameter für
Felder ohne DDIC-Bezug [Seite 159]).
2. Geben Sie den Konvertierungsexit über das Feld EDIT_MASK des Feldkatalogs an (siehe
Formatierung von Spalteninhalten [Seite 153]).
3. Übergeben Sie den Feldkatalog vor der ersten Anzeige der Liste mit der Methode
set_table_for_first_display [Seite 103].
April 2001
41
ALV Grid Control (BC-SRV-ALV)
SAP AG
Verwendung des Konvertierungsexit
Ergebnis
Die Werte der Spalte durchlaufen vor der Anzeige die Konvertierungsroutine.
42
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Das ALV Grid Control bei WAN-Anmeldungen
Das ALV Grid Control bei WAN-Anmeldungen
Das ALV GridControl trägt innerhalb seines Kommunikationsprotokolls zwischen
Applikationsserver und Frontend selbst dafür sorge, daß es im WAN eingesetzt werden kann.
Dieses Protokoll regelt den Datentransport von Applikationsserver zum Frontend.
Es werden zunächst nur so viele Daten zum Control transportiert, wie zum Anzeigen der aktuell
sichtbaren Zeilen notwendig sind. Nachfolgende Daten werden erst dann zum Control
transportiert, wenn der Benutzer dort hin scrollt. Im WAN ist die Paketgröße entsprechend klein,
so daß jedes einzelne Paket innerhalb kurzer Zeit übertragen werden kann.
Einschränkungen
Für den Programmierer, der das ALV - GridControl verwendet, gibt es im WAN dennoch einen
Punkt zu beachten. Die Ereignisse DELAYED_CALLBACK und
DELAYED_CHANGED_SEL_CALLBACK sollten im WAN nur in begründeten Ausnahmefällen
eingesetzt werden. Der Grund hierfür ist nicht primär im Ereignis selbst zu sehen, als in dem
Szenario, daß oft als Reaktion auf diese Ereignisse andere Controls mit Daten gefüllt werden. Da
dies im WAN meist eine deutlich merkliche Verzögerung (>3 Sekunden) zur Folge hat, wird dies
von den Anwender als extrem hinderlich empfunden.
April 2001
43
ALV Grid Control (BC-SRV-ALV)
SAP AG
Das ALV Grid Control im Web
Das ALV Grid Control im Web
Für die Darstellung von ALV-Listen im Web, wird Funktionalität des ALV Grid Control [Extern] am
Backend verwendet. Grundsätzlich gibt es zwei Möglichkeiten der Darstellung:
·
Im SAPGUI for HTML [Seite 45]. Dies entspricht - mit Einschränkungen - einer 1:1 Abbildung
der Transaktion im SAP-System.
·
Im Workplace [Seite 49]. Hier werden stark vereinfachte Versionen des ALV Grid Controls
verwendet (Mini-ALV, Midi-ALV), um Listen in Anwendungen des Workplace einzubauen.
Es ist allerdings möglich, eine SAP-Transaktion mit einem ALV Grid Control im
Workplace anzuzeigen. In dem Fall ist der SAPGUI for HTML im Workplace
integriert.
44
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Darstellung im SAP GUI for HTML
Darstellung im SAP GUI for HTML
Einsatzmöglichkeiten
Der SAP GUI for HTML ermöglicht es SAP-Transaktionen im Web-Browser darzustellen.
Anwendungen, die die Klasse CL_GUI_ALV_GRID für die Darstellung von Tabellendaten nutzen,
sind so automatisch über diesen SAP GUI im Web sichtbar.
Einführungshinweise
Die Darstellung des ALV Grid Controls im SAP GUI for HTML unterscheidet sich von der im SAP
GUI for Windows. So stehen im SAP GUI for HTML zum Beispiel weniger Farben zur Verfügung.
Außerdem ist die Interaktion durch den Benutzer teilweise anders gelöst oder eingeschränkt.
Funktionsumfang
In den meisten Fällen funktionieren Methoden, Ereignisse und Attribute der Klasse
CL_GUI_ALV_GRID auch im SAP GUI for HTML.
Tastaturkommandos sind im SAP GUI for HTML nicht verfügbar. Der Zugriff auf Funktionen
erfolgt meistens per Mausklick. Darum gibt es für die F1-Hilfe ein Fragezeichen-Icon in der
Toolbar.
Der Benutzer muß Zeilen, Spalten oder Zellen einzeln markieren und wieder einzeln
demarkieren. (Dies ist zudem abhängig vom Selektionsmodus [Seite 166]).
Einschränkungen
Um eine gute Performance zu gewährleisten sind bestimmte Funktionen nur eingeschränkt
verfügbar. Im folgenden werden die wichtigsten Einschränkungen beschrieben:
Wichtigste Einschränkungen im SAP GUI for HTML
Einschränkung
Klassifizierung
(S: Schnittstelle
V: Visuell
I: Interaktion)
Das Kontext Menü ist nicht verfügbar. In der Toolbar definieren Sie die
Menüs nicht mehr dynamisch, sondern statisch [Seite 47].
S/I
Die Position der Scrollbar kann nicht gesetzt werden (siehe
set_scroll_info_via_id [Seite 96])
S
Symbole können auf Grund fehlender Schriften nicht dargestellt werden
S/V
Es kann jeweils nur ein Tabellenelement-Typ (Zeile, Spalte, Zelle) markiert
werden. Kombinationen sind nicht möglich.
S/I
Die Ereignisse delayed_callback [Seite 115] und
delayed_changed_sel_callback [Seite 116] können nicht verwendet
werden (siehe auch: Das ALV Grid Control bei WAN-Anmeldungen [Seite
43])
S/I
Der Benutzer kann keine Spalten über Drag und Drop vertauschen
S/I
April 2001
45
ALV Grid Control (BC-SRV-ALV)
SAP AG
Darstellung im SAP GUI for HTML
Es gibt keine Autoscroll-Funktion (das heißt kein automatisches Scrollen
bei gedrückter Maustaste)
I
Zwischensummenzeilen lassen sich nicht komprimieren
I
Wenn die Anzahl der Funktionen in der Toolbar nicht in eine Zeile passen,
wird die Toolbar nicht umgebrochen
V/I
Es werden nur 8 Hintergrundfarben verwendet. Andere Farbwerte (zum
Beispiel Intensified) werden auf andere Farbwerte abgebildet.
V
46
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Definition eines statischen Menüs
Definition eines statischen Menüs
Verwendung
Im SAP GUI for Windowsä werden Menüs in der Toolbar über die Ereignisse toolbar [Seite 131],
menu_button [Seite 119] und context_menu_request [Seite 114] dynamisch aufgebaut. Im SAP
GUI for HTML ist diese Vorgehensweise aus Performance-Gründen nicht zu empfehlen. Statt
dessen sollten Sie alle Menüs der Toolbar (Kontext-Menüs funktionieren generell nicht) wie hier
beschrieben als statische Menüs definieren. Diese definieren Sie beim Ereignis toolbar vor der
Anzeige des ALV Grid Controls.
Ablauf
7. Definieren Sie eine Ereignisbehandlermethode zum Ereignis TOOLBAR.
8. Deklarieren Sie eine Struktur für die Definition eines Elements der Toolbar, eine MenüStruktur und eine Referenzvariable auf die Kontext-Menü-Klasse:
data: ls_toolbar TYPE stb_button,
ls_menu TYPE stb_btnmnu,
lc_menu TYPE REF TO cl_ctmenu.
9. Definieren Sie zuerst eine Drucktaste vom Typ Menü in der Toolbar an:
CLEAR ls_toolbar.
ls_toolbar-function = 'STATIC_MENU1'.
ls_toolbar-icon
= icon_led_interactive.
ls_toolbar-butn_type = '2'.
ls_toolbar-text
= 'first static menu'.
Mit dem Feld butn_type teilen Sie dem ALV Grid Control den Typ des GUIElements mit. Für Menüs mit einem Defaultbutton verwenden Sie Typ '1'.
10. Mit Hilfe des Ereignisparameters E_OBJECT hängen Sie die neue Definition an die Tabelle
mt_toolbar:
APPEND ls_toolbar TO e_object->mt_toolbar.
11. Erzeugen Sie eine Instanz der Kontext-Menü-Klasse und fügen Sie dem Menü Funktionen
mit der Methode ADD_FUNCTION hinzu (hier nur eine als Beispiel):
create object lc_menu.
call method lc_menu->add_function
exporting fcode = 'STATIC_MENU1_FUNC1'
text
= 'first menu entry'.
12. Um den Menüeintrag mit dem Menü zu verknüpfen, füllen Sie die Menü-Struktur
entsprechend:
ls_menu-ctmenu = lc_menu.
ls_menu-function = 'STATIC_MENU1'.
13. Übergeben Sie dem Ereignisparameter E_OBJECT die Menü-Struktur:
append ls_menu to e_object->mt_btnmnu.
April 2001
47
ALV Grid Control (BC-SRV-ALV)
SAP AG
Definition eines statischen Menüs
14. Rufen Sie die statische Methode set_focus für Ihre Instanz auf:
call method cl_gui_control=>set_focus
exporting control = sender.
Ergebnis
Den jeweiligen Funktionskode, den Sie im Feld function festgelegt haben, können Sie in der
Ereignisbehandlermethode zum Ereignis USER_COMMAND abfragen und so die zugehörige
Funktion implementieren.
48
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Darstellung im Workplace
Darstellung im Workplace
Über die Technologie des Workplace ist es möglich, die Zusammenstellung von Anwendungen
auf einen bestimmten Benutzertyp abzustimmen. Da diese Anwendungen im Web-Browser
laufen, ist deren Bedienung einfacher gestaltet und auf andere Benutzer zugeschnitten als im
SAP-System.
Weitere Informationen zum Workplace finden Sie im SAPnet mit Hilfe des Alias
workplace.
Für Web-Anwendungen, die Listen im Workplace darstellen, gibt es zwei Ausprägungen des ALV
Grid Controls. Je nach Komplexität beziehungsweise Länge einer Liste setzt man entweder den
MiniALV [Seite 51] oder den MidiALV [Seite 61] ein.
Integration
Sowohl Mini- als auch MidiALV bauen auf Funktionalität des ALV Grid Controls [Extern] am
Backend auf. Um einen Report im Web darzustellen, brauchen Sie einen Report oder eine Query
(die ja einen Report erzeugt) im SAP-System. Für das Web-Reporting werden die Ausgaben
dieses Reports genommen und an den Web-Browser übermittelt.
Dieser Report wird im folgenden Proxy-Report genannt.
Bevor ein Report über den Midi- oder MiniALV im Workplace angezeigt
werden kann, muß er bestimmte Voraussetzungen [Seite 50] erfüllen.
April 2001
49
ALV Grid Control (BC-SRV-ALV)
SAP AG
Voraussetzungen
Voraussetzungen
Die hier beschriebenen Voraussetzungen gelten sowohl für Mini- als auch für MidiALV.
Voraussetzungen für den Report
Im Web-Reporting werden die Listen im Web-Browser angezeigt. Daher darf der Proxy-Report
keine Frontend-Objekte erzeugen.
Gibt der Proxy-Report Listen über den Fullscreen-Modus aus (Anwendungsfunktionen befinden
sich in der Anwendungsfunktionsleiste), muß die Anwendung das ABAP-Programm zum ProxyReport nicht anpassen.
Benutzt der Proxy-Report die Klasse CL_GUI_ALV_GRID, muß der Report unterscheiden, ob er
im SAP GUI läuft oder im Web. Dazu steht die statische Methode offline() [Seite 87] zur
Verfügung, deren Aufruf Sie an Stelle von Abfragen des Systemfeldes SY-BATCH einsetzen.
Läuft der Proxy-Report dann im Batch durch und schreibt das Ergebnis in die Spool, so ist dieser
Report automatisch auch für die Ausgabe als Mini- beziehungsweise MidiALV geeignet. Falls er
dennoch nicht im Web zur Anzeige kommt, prüfen Sie zunächst, ob der Report und gegebenfalls
die angegebene Selektionsvarianten oder Layouts im System existieren (im Fall der Query muß
die Benutzergruppe vorhanden sein).
Berechtigungen
Damit der Report beziehungsweise die Query im Web dargestellt werden kann, müssen Sie
außerdem zwei Einstellungen vornehmen:
·
Der Report muß über das Web-Repository (Transaktion SMW0) freigegeben werden (Siehe
Objekte für das Web Reporting freigeben [Extern])
·
Der Report muß einer Berechtigungsgruppe zugeordnet sein. Kunden verwenden den Report
RSCSAUTH, um eigene Berechtigungsgruppen modifikationsfrei zu verwenden.
50
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Der MiniALV
Der MiniALV
Verwendung
Der MiniALV ist für die Ausgabe von Listen auf einem kleinen Ausgabebereich des Bildschirms
gedacht (zum Beispiel: Übersicht über Systemprozesse). Aus diesem Grund sollten in diesen
Listen zum Beispiel keine Zwischensummen ausgegeben werden. Der MiniALV kann sowohl als
eigenständige MiniApp, als auch als Teil einer MiniApp verwendet werden. Mögliche
Interaktionen des Benutzers sind dabei auf die wesentlichsten Funktionen beschränkt:
Der Bildschirmabgriff zeigt den MiniALV in der Seitendarstellung (weitere Seiten sind durch
Blättern erreichbar). Es wird ein Report aus dem SAP-System im Web-Browser angezeigt, der
zur Flugtabelle SFLIGHT die Felder Airline, Flight no., Pl.type, Capacity, Occupied
und Total ausgibt. Wenn zu diesem Report Layouts oder Selektionsvarianten gespeichert sind,
stellt der MiniALV zusätzlich eine Listbox über der Liste dar, mit der der Benutzer gespeicherte
Varianten der Liste ausgeben kann.
Voraussetzungen
Der Funktionsbaustein FLOW_LOGIC_ALV_CALL muß im System vorhanden sein. Zur
Darstellung im Browser werden diese Bausteine über WebRFC gerufen.
Siehe auch: Voraussetzungen [Seite 50]und Fehleranalyse [Seite 60].
Funktionsumfang
Der MiniALV wird mit Hilfe der Flow-Logik Technologie realisiert. Das Tutorial InternetAnwendungen entwickeln mit Flow-Dateien [Extern] geht speziell darauf ein, wie Sie das
SAP@Web Studio dazu verwenden, während die Dokumentation Integration von InternetServices [Extern] behandelt, wie Sie ein MiniApp mit Hilfe des Web Application Builder
implementieren.
April 2001
51
ALV Grid Control (BC-SRV-ALV)
SAP AG
Der MiniALV
Um den MiniALV in den Workplace zu integrieren, gibt es folgende Möglichkeiten:
·
Sie starten den MiniALV Service als eigenständige MiniApp [Seite 53] über eine
parametrisierte URL
·
Sie binden den MiniALV Service in eine eigene MiniApp ein [Seite 54] und brauchen keine
Flow-Datei
·
Sie nutzen den MiniALV als interaktives Web Control [Seite 55], brauchen also eine FlowDatei, um auf Flow-Ereignisse reagieren zu können
Der Benutzer kann gespeicherte Selektionsvarianten oder Layouts über eine Listbox im MiniALV
auswählen. Außerdem sind in der Liste eingebundene Hyperlinks [Seite 37] im MiniALV aktiv.
Über einen Service-Parameter [Seite 63] (ma_style=wap1) läßt sich die ALV-Tabelle für die
Ausgabe auf kleinen Bildschirmen [Seite 58] serialisieren. Auf diese Weise können die Daten auf
sehr kleinen Bildschirmen für mobile Geräte ausgegeben werden (Pervasive Computing).
Einschränkungen
Der ITS kann Flow-Ereignisse von inkludierten Services nicht verarbeiten. Wenn Sie eigene
Flow-Ereignisse verarbeiten wollen, müssen Sie den MiniALV als interaktives Web-Control
einbinden (s.o.).
52
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Als MiniApp
Als MiniApp
Verwendung
Sie wollen einen Report aus dem SAP-System im Web-Browser darstellen und einer Rolle
zuordnen. Der Report soll also nicht in eine eigene MiniApp integriert, sondern direkt als MiniApp
gestartet werden.
Vorgehensweise
1. Sie starten den MiniALV über eine URL für Ihren Report. Die URL hat die Form:
<WEBSERVER> [Seite 65]/minialv/!?report=<Reportname>&<p1>=<w1>&...&<pn>=<wn>
Sie geben den Proxy-Report [Seite 51] und weitere Service-Parameter [Seite 56] (<p1> bis <pn>)
in dieser URL an.
2. Die URL geben Sie bei der Beschreibung der Rolle in der Transaktion PFCG an. Näheres
zum Anlegen einer Rolle finden Sie in der Dokumentation Benutzer und Rollen (BC-CCMUSR) [Extern].
Für den Pfad des Web-Servers muß ein Platzhalter in der URL angegeben werden.
Beachten Sie dazu den Abschnitt Die URL im Workplace in Aufruf des InternetService [Seite 65].
Ergebnis
Der der Rolle zugeordnete Benutzer kann den Report im Workplace aufrufen.
April 2001
53
ALV Grid Control (BC-SRV-ALV)
SAP AG
Als Erweiterung einer MiniApp
Als Erweiterung einer MiniApp
Verwendung
Sie zeigen einen Report über den MiniALV in einer eigenen MiniApp an. Auf diese Weise können
Sie in der MiniApp weitere Funktionen implementieren und das Aussehen der MiniApp, in der der
MiniALV angezeigt wird, beeinflussen.
Voraussetzungen
Sie dürfen keine eigene Flow-Datei verwenden.
Vorgehensweise
Sie inkludieren den MiniALV-Service in Ihr Template und setzen vorher globale variablen, um
dem MiniALV den Namen des Proxy-Reports [Seite 51] und weitere Parameter [Seite 56] (<p1>
bis <pn) zu übergeben:
`include(~service="system",~theme="dm",~name="templateLibraryDHTML.html")`
...
`report = "<Reportname>"`
`<p1> = "<w1>"`
...
`<pn> = "<wn>"`
`include(~service="minialv", "minialv")`
Ergebnis
Wenn die MiniApp gestartet wird, zeigt der MiniALV den Proxy-Report an.
54
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Als interaktives Web Control
Als interaktives Web Control
Verwendung
Sie zeigen einen Report über den MiniALV in einer eigenen MiniApp an. Auf diese Weise können
Sie in der MiniApp weitere Funktionen implementieren und das Aussehen der MiniApp, in der der
MiniALV angezeigt wird, beeinflussen. Bei der Verwendung des MiniALV als interaktives Web
Control können Sie Flow-Ereignisse in der MiniApp verarbeiten.
Vorgehensweise
1. Sie inkludieren den MiniALV-Service in Ihr Template und setzen vorher globale variablen, um
dem MiniALV den Namen des Proxy-Reports [Seite 51] und weitere Parameter [Seite 56]
(<p1> bis <pn) zu übergeben:
`include(~service="system",~theme="dm",~name="templateLibraryDHTML.html")`
...
`report = "<Reportname>"`
`<p1> = "<w1>"`
...
`<pn> = "<wn>"`
`include(~service="minialv", "webcontrol")`
2. Um auf Flow-Ereignisse zu reagieren, definieren Sie in ihrer Flow-Datei, in welcher der
MiniALV verwendet wird, einen Zustand, zum Beispiel loadList. Kopieren Sie den ModulAufruf des MiniALV aus dessen Flow-Datei in diesen Zustand. Die Flow-Datei des MiniALV
finden Sie im MiniALV-Service im SAP-System.
Sobald der ITS Flow-Ereignisse von Includes verarbeiten kann, ist die hier
beschriebene Vorgehensweise obsolet.
3. Beenden Sie die anderen Zustände Ihrer Rahmen-MiniApp durch folgende Anweisung:
<default next_state="loadList"/>
Dadurch wird der Zustand loadList zusätzlich ausgeführt, und der Tabelleninhalt neu geladen.
Ergebnis
Ihre MiniApp kann nun eigene Flow-Ereignisse definieren und mit dem MiniALV verarbeiten.
April 2001
55
ALV Grid Control (BC-SRV-ALV)
SAP AG
Service-Parameter
Service-Parameter
Inhalt
Parameter
Bedeutung
report
Name des Proxy-Reports [Seite 51]
query
Name einer Query (alternativ zum Proxy-Report)
usergroup
Bei Query: Benutzergruppe
workspace
Bei Query: Arbeitsbereich
Personalisierung
Parameter (Defaultwert)
Bedeutung
variant
Selektionsvariante, mit der der Report gestartet werden soll
emptyvariant (on|off)
Erlaubt es, den MiniALV mit leerer Selektionsvariante zu starten
layout
Den MiniALV mit einem vorhandenen Layout [Seite 17] starten
selectiontype (V|P)
userfb
Bestimmt, welche Auswahl in der Listbox erscheint:
·
V: In der Listbox werden gespeicherte Selektionsvarianten
und/oder gespeicherte Layouts angezeigt (alle dem Report
zugeordneten)
·
P: Die Anwendung ordnet der Listbox eigene Werte zu (über
User-Exit, siehe userfb). Sehen Sie sich dazu den Service
CCMS_ALVIEWER und den Funktionsbaustein
SALWP_AL_VIEW_GET_SHUFF_INFO an.
Funktionsbaustein als User-Exit um:
·
MiniALV Parameter zu customizen
·
Einstellungen benutzerspezifisch zu sichern
Visuelle Eigenschaften
Parameter (Defaultwert)
ma_title (on|off)
Bedeutung
Titel ein-/abschalten
ma_header (short|medium|long|off)
Beeinflußt den Text der Spaltenüberschriften
ma_shuffler (on|off)
Anzeige der Listbox ein-/abschalten
ma_style (scroller|pages|text|wap1)
Stil des graphischen Designs in Web-Browser ändern
ma_lines (10)
ma_height (150)
Anzahl der Zeilen, die auf einmal sichtbar sind
Höhe der Scrollbartabelle
Eigenschaften für 'ma_style=wap1' (siehe Ausgabe auf kleinen Bildschirmen [Seite 58])
56
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Service-Parameter
Parameter (Defaultwert)
Bedeutung
maw_columns
Mit diesem Parameter kann ausgewählt werden, welche Spalten
angezeigt werden sollen und welche Beschriftung für den jeweiligen
Zellen verwendet werden
maw_sparse
Bewirkt eine Verdichtung der Tabelle. Sich wiederholende
Spaltenwerte werden nicht nochmals ausgegeben.
April 2001
57
ALV Grid Control (BC-SRV-ALV)
SAP AG
Ausgabe auf kleinen Bildschirmen
Ausgabe auf kleinen Bildschirmen
Eine Verwendung des MiniALV ist die Ausgabe von ALV-Listen auf sehr kleinen Bildschirmen.
Dazu müssen die Spalten der Liste serialisiert werden, um sie auf der kleinen Ausgabefläche
unterbringen zu können. Um den MiniALV zu diesem Zweck zu verwenden, müssen Sie den
Service-Parameter ma_style auf wap1 setzen.
In der Regel wird der Benutzer nur an der Ausgabe bestimmter Spalten der ALV-Liste interessiert
sein. Der MiniALV stellt dazu weitere Service-Parameter [Seite 56] zur Verfügung, die nur für den
Ausgabestil wap1 gedacht sind. Sie beginnen mit dem Präfix maw_.
Aufbereitung der Anzeige
Mit dem Parameter maw_columns kann ausgewählt werden, welche Spalten angezeigt werden
sollen und welche Beschriftung für den jeweiligen Zellen verwendet werden sollen. Der
Parameterwert ist ein String mit einer komma-separierten Liste, in der jede Position einer Spalte
entspricht. In einer Position steht die Beschriftung, die für den Wert gestellt wird. Zusätzlich
stehen Steuerbefehle zur Verfügung, mit denen die Darstellung beeinflußt werden kann:
Steuerbefehl
Bedeutung
^
Am Ende einer Position bewirkt dieses Zeichen, daß der nächste Spaltenwert
ohne Zeilenwechsel in derselben Zeile dargestellt wird
,,
Zwei Kommas hintereinander bewirken, daß die entsprechende Postion nicht
dargestellt wird
_
Die entsprechende Position wird angezeigt, jedoch ohne irgendwelche
Beschriftung
*0
Der normale Spalten-Header wird für die Position verwendet
*n
Die ersten n Buchstaben des normalen Spalten-Headers werden für die
Position verwendet
Beispiel
Das folgende Beispiel zeigt eine ALV-Liste, die verwendeten Steuerparameter und darunter die
dazugehörige Ausgabe:
58
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Ausgabe auf kleinen Bildschirmen
Short
Airline
#
Date
Capacity
Occupied
AA
American
17
03.02.00
660
97
AA
American
18
04.02.00
660
130
LH
Lufthansa
907
03.02.00
660
30
LH
Lufthansa
908
05.02.00
660
60
maw_columns=
>^,,^,; ,Kapazität=,
Belegt=
maw_columns=
>^,,^,;,*3=,*3=
>AA 17; 03.02.00
Kapazität= 660
Belegt= 97
>AA 18; 04.02.00
Kapazität= 660
Belegt= 130
...
>AA 17; 03.02.00
Cap= 660, Occ= 97
>AA 18; 04.02.00
Cap= 660; Occ= 130
...
April 2001
maw_columns=
,>,#^,; ,*3=,*3=
maw_sparse=2
>American
>>#17; 03.02.00
Cap= 660; Occ= 97
>>#18, 04.02.00
Cap= 660; Occ= 130
>Lufthansa
...
59
ALV Grid Control (BC-SRV-ALV)
SAP AG
Fehleranalyse
Fehleranalyse
Hinweise
·
Benutzen Sie statt des Funktionsbausteins ITS_PING den Baustein GUI_IS_ITS oder die
statische Methode CL_GUI_OBJECT=>WWW_ACTIVE.
·
Überprüfen Sie beim Fehlercode E00 (siehe unten) zunächst die Voraussetzungen für die
Verwendung des MiniALV [Seite 51]. Sie können zusätzlich Testen, ob der
Funktionsbaustein FLOW_LOGIN_ALV_CALL Daten des Reports zurückgibt.
·
Falls Sie den MiniALV zusammen mit einem SAP-System eines älteren Releasestandes
verwenden, wird möglicherweise beim Reportnamen (und bei den Selektionsvarianten, etc.)
noch zwischen Groß-/Kleinschreibung unterschieden.
Fehlermeldungen
Der MiniALV gibt im Fehlerfall Meldungen aus. Der Fehlerkode kann im Webcontrol [Seite 55]Modus im Flow-File behandelt werden:
Fehlerkode
E00
E01
Meldung
RFC lieferte keine Daten
Variante ist nicht vorhanden
E02
Fehler beim Ermitteln der benutzerspezifischen Einstellungen
E03
Fehler beim Aufruf des ALV
E04
Fehler beim Ermitteln der Varianten
E05
Report ist nicht vorhanden
E06
Fehler im Selektionsstring; prüfen Sie die Syntax
E08
Funktionsbaustein zur Ermittlung der benutzterspezifischen Varianten ist nicht
vorhanden
E09
Report ist ohne Variante nicht ausführbar; geben Sie eine Variante an
E10
Benutzergruppe ist nicht vorhanden
E11
Query ist nicht vorhanden
E12
Query ist gesperrt
E13
Reportgenerierung für die Query wurde abgebrochen
E14
Fehler bei der Reportgenerierung für die Query
E15
Geben Sie einen Report oder eine Query an
60
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Der MidiALV
Der MidiALV
Verwendung
Der MidiALV ist für längere Listen im Web einzusetzen. Die Liste wird im kompletten
Ausgabebereich des Workplace ausgegeben. Außerdem übernimmt der MidiALV
Selektionsbilder aus dem SAP-System.
Voraussetzungen
Der MidiALV kann nur Reports im Web anzeigen, die als Ausgabe ein ALV Grid Control
verwenden. Die Funktionsbausteine WWW_ALV_CALL beziehungsweise WWW_ALV_SELSCREEN
müssen im verwendeten SAP-System vorhanden sein. Zur Darstellung im Browser werden (je
nach Anwendung) diese Bausteine über WebRFC gerufen.
Siehe auch Voraussetzungen [Seite 50].
Funktionsumfang
Über einen Parameter wählen Sie, ob Sie ein Selektionsbild (falls vorhanden) im MidiALV
darstellen wollen (WWW_ALV_SELSCREEN) oder ob lediglich die Ergebnisliste zu einer Selektion
angezeigt werden soll (WWW_ALV_CALL).
Der Benutzer kann gespeicherte Selektionsvarianten oder Layouts über eine Listbox im MiniALV
auswählen. Außerdem sind in der Liste eingebundene Hyperlinks [Seite 37] im MidiALV aktiv.
Besonderheiten zum MidiALV-Selektionsbild
Auf der Ergebnisliste erscheint ein Button Zurück zum Selektionsbild, mit dem der
Benutzer zum Selektionsbild zurückspringt, um neue Daten zu selektieren.
Das Selektionsbild des MiniALV hat folgende Einschränkungen:
·
Keine F4 Wertehilfe verfügbar
·
Keine F1-Hilfe verfügbar
·
Keine komplexen Einschränkungen über Select-Options möglich
·
Keine dynamischen Bildmodifikationen innerhalb des PBOs möglich
April 2001
61
ALV Grid Control (BC-SRV-ALV)
SAP AG
Den MidiALV aufrufen
Den MidiALV aufrufen
Verwendung
Sie rufen den MidiALV über eine URL auf und zeigen ihn so im Web-Browser an. Wenn Sie
diese URL einer Rolle zuordnen, kann der MidiALV im Workplace integriert werden.
Vorgehensweise
1. Sie starten den MidiALV über eine URL für Ihren Report. Die URL hat die Form:
<WEBSERVER> [Seite 65]/webrfc/!?_function=<function>&<p1>=<w1>...&<pn>=<wn>
Setzen Sie:
·
_function=www_alv_call, wenn Sie einen Report ohne Selektionsbild anzeigen wollen
·
_function=www_alv_selscreen, wenn der Report ein Selektionsbild hat, daß nicht
übersprungen werden soll
Um den Report zu identifizieren, verwenden Sie folgende Service-Parameter [Seite 63]:
·
Den Parameter _report, wenn Sie sich auf einen Report beziehen oder
·
Den Parameter _query _usergroup und optional _workspace, wenn Sie sich auf eine
Query beziehen
2. Die URL geben Sie bei der Beschreibung der Rolle in der Transaktion PFCG an. Näheres
zum Anlegen einer Rolle finden Sie in der Dokumentation Benutzer und Rollen (BC-CCMUSR) [Extern].
Für den Pfad des Web-Servers muß ein Platzhalter in der URL angegeben werden.
Beachten Sie dazu den Abschnitt Die URL im Workplace in Aufruf des InternetService [Seite 65].
Ergebnis
Der MidiALV-Aufruf zu Ihrem Report ist nun mit einer Rolle verknüpft. Wird im Workplace diese
Rolle verwendet, kann der der Rolle zugeordnete Benutzer diesen Report aufrufen.
62
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Service-Parameter
Service-Parameter
Die URL für den Aufruf des MidiALv hat folgende Form:
<WEBSERVER> [Seite 65]/webrfc/!?_function=<function>&<p1>=<w1>...&<pn>=<wn>
Über den obligatorisch Parameter _function geben Sie den Funktionsbaustein ein, der im
SAP-System gerufen werden soll:
·
www_alv_call: kein Selektionsbild vorhanden oder erwünscht
·
www_alv_selscreen: das Selektionsbild des Reports soll ausgegeben werden
Neben der Funktion müssen Sie entweder den Namen eines Reports oder den Namen einer
Query in der URL angeben.
Inhalt
Parameter
Bedeutung
_report
Name des Proxy-Reports [Seite 61]
_query
Name einer Query (alternativ zum Parameter _report)
_usergroup
Bei Query: Benutzergruppe
_workspace=global
Bei Query (optional): globaler Arbeitsbereich
Personalisierung
Parameter
Bedeutung
_variant
Name der Selektionsvariante, die verwendet werden soll. (Wird der ALV mit
Selektionsbild gerufen (www_alv_selscreen), so wird das Selektionsbild
entsprechend vorbelegt).
_layout
Name des Layout [Seite 17]s, mit dem die Liste angezeigt werden soll
Visuelle Eigenschaften
Parameter (Defaultwert)
Bedeutung
_fontsize (1-5)
Festlegung der Schriftart:
·
1 = Arial 7pt
·
2 = Arial 8pt
·
3 = Arial 9pt
·
4 = Arial 10pt
·
5 = Arial 11pt
Wenn nicht gesetzt, ist die Schriftart durch die Browsereinstellung
bestimmt
April 2001
63
ALV Grid Control (BC-SRV-ALV)
SAP AG
Service-Parameter
_header
(small|medium|long)
_shuffler (on|off)
64
Auswahl der Spaltenüberschrift:
·
small = Kurztext
·
medium = Mittlerer Text
·
long = Langtext
Anzeige der Listbox für die Auswahl einer Selektionsvariante oder
eines Layouts ein-/abschalten
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Aufruf des Internet-Service
Aufruf des Internet-Service
Um MiniApps im Workplace darzustellen, publizieren Sie Internet-Services beim ITS. Die
MiniApp läßt sich dann über eine URL starten.
Siehe auch: Integration von Internet-Services [Extern].
Im Allgemeinen hat die URL die Form:
<web_protcl>://<web_server>/<web_path_prefix>/<service>/!?<CGIParameter>
Der Teil <web_protcl>://<web_server>/<web_path_prefix> der URL
wird im Rahmen dieser Dokumentation auch mit <WEBSERVER>
abgekürzt.
Der Teil bis einschließlich dem Ausrufezeichen ('!') beschreibt den Internet-Service auf dem
jeweiligen ITS. Mit dem Fragezeichen ('?') werden die CGI-Parameter eingeleitet, denen man
direkt in der URL einen Wert zuweist und durch ein Ampersand-Zeichen ('&’) voneinander trennt.
So können Sie zum Beispiel für <CGI-Parameter> folgendes einsetzen:
~language=<language>&~client=<client>
Die Parameter ~language und ~client lassen sich auch über eine Service-Datei
an den ITS übergeben.
Die URL im Workplace
Wenn Sie Ihre URL über die PFCG in den Workplace einfügen, dürfen Sie den String
<web_path_prefix> nicht auflösen, da er Web-Server-spezifisch ist. Der Workplace ersetzt
diesen Teil der Adresse durch die korrekte Pfadangabe.
Beispiele
Testen und Aufrufen des MiniALV
Um den MiniALV-Service mit einem Report mit dem Namen enjoy auf dem ITS mit der URL
http://rosebud:1080 und dem Web-Server-Präfix scripts/wgate/ zu starten (zum
Beispiel zum Testen), rufen Sie die URL
http://rosebud:1080/scripts/wgate/minialv/!?report=enjoy
im Web-Browser auf. In diesem Fall ist der <web_path_prefix> gleich scripts. In der PFCG
müssen Sie dann für diesen Service die URL
http://rosebud:1080/<web_path_prefix>/minialv/!?report=enjoy
eintragen.
April 2001
65
ALV Grid Control (BC-SRV-ALV)
SAP AG
Aufruf des Internet-Service
Testen und Aufrufen des MidiALV
Um den MidiALV-Service mit einem Report mit dem Namen list auf dem ITS mit der URL
http://big:1080 und dem Web-Server-Präfix scripts/wgate/ zu starten (zum Beispiel
zum Testen), rufen Sie die URL
http://big:1080/scripts/wgate/webrfc/!?_function=www_alv_call&_report=l
ist
im Web-Browser auf. In diesem Fall ist der <web_path_prefix> gleich scripts. In der PFCG
müssen Sie dann für diesen Service die URL
http://big:1080/<web_path_prefix>/webrfc/!?_function=www_alv_call&_repo
rt=list
eintragen.
66
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Methoden der Klasse CL_GUI_ALV_GRID
Methoden der Klasse CL_GUI_ALV_GRID
Diese Klasse beinhaltet sowohl controlspezifische Methoden, als auch vom Control Framework
geerbte Methoden. In diesem Abschnitt werden nur die controlspezifischen Methoden
beschrieben. Die vererbten Methoden des Control Frameworks werden in Methoden des OO
Control Frameworks [Seite 174] beschrieben.
Grundlegende Methoden
Methode
Anwendung
CONSTRUCTOR [Seite 71]
Erzeugen einer Instanz des ALV Grid Controls
set_table_for_first_display [Seite 103]
Anzeigen einer Ausgabetabelle im Control
refresh_table_display [Seite 88]
Auffrischen der angezeigten Daten im Control
Elemente des Grid Controls
Methode
Anwendung
get_current_cell [Seite 72]
Holen von Indizes und Eigenschaften einer markierten Zelle
set_current_cell_via_id [Seite
92]
Cursur auf bestimmte Zelle setzen
get_scroll_info_via_id [Seite
77]
Abfragen der aktuellen Scroll-Position
set_scroll_info_via_id [Seite
96]
Setzen der Scroll-Position
get_selected_cells [Seite 78]
Inhalt und Position markierter Zellen vom Frontend holen
set_selected_cells [Seite 98]
Markieren von Zellen im Grid Control
get_selected_cells_id [Seite
79]
Holen von Indizes der aktuell markierten Zellen
set_selected_cells_id [Seite
99]
Markieren von Zellen über Index-Tabelle
get_selected_columns [Seite
80]
Feldnamen markierter Spalten vom Frontend holen
get_selected_rows [Seite 81]
Indizes markierter Zeilen vom Frontend holen
set_selected_rows [Seite 101]
Zeilen markieren
Layout- und Strukturinformationen
Methode
get_frontend_fieldcatalog
[Seite 75]
April 2001
Anwendung
Holen des aktuellen Feldkatalogs vom Frontend
67
ALV Grid Control (BC-SRV-ALV)
SAP AG
Methoden der Klasse CL_GUI_ALV_GRID
set_frontend_fieldcatalog
[Seite 94]
Setzen eines Feldkatalogs am Frontend
get_frontend_layout [Seite 76]
Holen der Layout-Struktur am Frontend
set_frontend_layout [Seite 95]
Setzen der Layout-Struktur am Frontend
set_3d_border [Seite 90]
(De-)Aktivieren des 3D-Stils am Rand des ALV Grid Controls
Generische Funktionen
Methode
Anwendung
get_filtered_entries [Seite 73]
Indizes der Zeilen beschaffen, die auf Grund eines gesetzten
Filters nicht angezeigt werden
get_filter_criteria [Seite 74]
Filtereigenschaften für alle Spalten beschaffen, für die
aktuell ein Filter gesetzt ist
get_subtotals [Seite 83]
Werte der aktuellen Zwischensummenzeilen holen
set_filter_criteria [Seite 93]
Filtereigenschaften für Spalten setzen
get_sort_criteria [Seite 82]
Sortierkriterien für sortierte Spalten holen
set_sort_criteria [Seite 102]
Sortierkriterien für Spalten setzen
get_variant [Seite 86]
Aktuelles Layout holen
save_variant_dark [Seite 91]
Benutzereigene Vergabe eines Variantennamens
unterbinden
set_graphics_container [Seite
97]
Anderes Container Control für die Diagramm-Anzeige
verwenden
set_user_command [Seite
108]
Ändern des aktuell auszuführenden Funktionskodes
Ereignisbehandlung
Methode
Anwendung
register_delayed_event [Seite
89]
Registrierung des Ereignisses DELAYED_CALLBACK oder
DELAYED_SEL_CHANGED_CALLBACK
set_toolbar_interactive [Seite
107]
Auslösen des Ereignisses toolbar [Seite 131]
Schnittstellen
Methode
activate_reprep_interface
[Seite 70]
68
Anwendung
Bericht-Bericht Schnittstelle aktivieren
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Methoden der Klasse CL_GUI_ALV_GRID
offline [Seite 87]
April 2001
Prüfen, ob das ALV Grid Control ohne Frontendbehandlung
läuft
69
ALV Grid Control (BC-SRV-ALV)
SAP AG
activate_reprep_interface
activate_reprep_interface
Verwendung
Aktivierung der Bericht/Bericht-Schnittstelle. Über den Parameter IS_REPREP spezifizieren Sie
den Sender des Berichts. Existiert in der Tabelle TRSTI eine Zuordnung des Senderberichtes zu
Empfängerberichten, wird der Funktionskode BEBx aktiv (x = Funktionskodeklasse).
Liegt für den Sender RKTFGS15 eine Empfängerzuordnung zur Report-Writer
Berichtsgruppe 7KOI mit Funktionscodeklasse '3' (SAP-Einstellung) vor, so wird
diese Empfängerberichtsgruppe bei Funktionscode BEB3 über die Bericht/BerichtSchnittstelle gerufen. Als Selektionen werden die Reportabgrenzungen sowie die
Keyinformationen der selektierten Zeile der Bericht-Bericht-Schnittstelle übergeben.
Weitere Informationen zur Bericht/Bericht-Schnittstelle finden Sie in der Dokumentation zur
Funktionsgruppe RSTI.
Voraussetzungen
Der Report RKKBRSTI muß im Entwicklungssystem aktiv sein.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->activate_reprep_interface
EXPORTING
IS_REPREP = <Struktur vom Typ LVC_S_RPRP>.
Parameter
IS_REPREP
Bedeutung
Struktur für die Senderidentifikation
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
70
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
CONSTRUCTOR
CONSTRUCTOR
Verwendung
Diese Methode wird automatisch aufgerufen, wenn Sie mit CREATE OBJECT ein Objekt der
Klasse CL_GUI_ALV_GRID anlegen. Mit der Erzeugung wird das Control auf dem Frontend
angelegt und an ein Container Control gebunden.
Funktionsumfang
CREATE OBJECT <Referenzvariable auf CL_GUI_ALV_GRID>
EXPORTING
i_shellstyle = <Var. vom Typ I>
i_lifetime = <Var. vom Typ I>
i_parent
= <Referenzvar. auf CL_GUI_CONTAINER>
i_appl_events = <Var. vom Typ CHAR01>.
Parameter
Bedeutung
I_appl_events
Wenn dieser Parameter gesetzt ist, registriert das ALV Grid Control alle
Ereignisse als Anwendungs-Ereignisse, sonst als System-Ereignisse.
Die anderen Parameter sind haben die gleiche Bedeutung wie in der Methode
constructor [Seite 185] der Klasse CL_GUI_CONTROL.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
71
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_current_cell
get_current_cell
Verwendung
Mit dieser Methode beschaffen Sie sich den Wert und die Eigenschaften der Zelle im Grid
Control, auf der der Cursor positioniert ist.
Wenn statt einer Zelle eine Spalte markiert ist, setzt das ALV Control den
Zeilenindex auf 0 und liefert nur Informationen zur Spalte. Analoges gilt für eine
markierte Zeile.
Das ALV Control liefert zwei Zeilen- und Spalten-Indizes zurück. Einmal bezogen auf die
Ausgabetabelle (dies ist der Wert, den man in der Regel für die weitere Verarbeitung braucht)
und einmal bezogen auf die aktuelle Darstellung im Grid Control. Diese Werte unterscheiden sich
zum Beispiel, wenn Zeilen auf Grund eines definierten Filters nicht angezeigt werden.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_current_cell
IMPORTING
E_ROW
= <Var. vom Typ I>
E_VALUE = <Var. vom Typ C>
E_COL
= <Var. vom Typ I>
ES_ROW_ID = <Struktur vom Typ LVC_S_ROW>
ES_COL_ID = <Struktur vom Typ LVC_S_COL>.
Parameter
Bedeutung
E_ROW
Zeilenindex der markierten Zelle bezogen auf die Darstellung im Grid Control
E_VALUE
Wert der markierten Zelle
E_COL
Spaltenindex der markierten Zelle bezogen auf die Darstellung im Grid Control
ES_ROW_ID
Struktur mit Informationen über Typ und Index der Zeile bezogen auf die
Ausgabetabelle
ES_COL_ID
Struktur mit Informationen über den Feldnamen der Spalte bezogen auf die
Ausgabetabelle
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
72
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_filtered_entries
get_filtered_entries
Verwendung
Liefert eine Tabelle mit allen Indizes, die im Augenblick mit der Standardfunktion "Filtern" aus der
Anzeige ausgeblendet sind.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_filtered_entries
IMPORTING
ET_FILTERED_ENTRIES = <interne Tabelle vom Typ LVC_T_FIDX>.
Parameter
ET_FILTERED_ENTRIES
Bedeutung
Tabelle vom Typ Hashed Table mit einem Zeilenindex pro
ausgefilterter Tabellenzeile
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
73
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_filter_criteria
get_filter_criteria
Verwendung
Mit dieser Methode können Sie aktuelle Filtereinstellungen holen und an andere Komponenten
des Systems weiterreichen. Eine Zeile der Tabelle beschreibt die Selektionsbedingungen für
Einträge einer Spalte, die nicht angezeigt werden. Spalten, für die kein Filter gesetzt ist, sind
nicht in der Tabelle aufgeführt.
Die Tabelle mit den Filterkriterien sollte nie 'manuell' aufgebaut werden.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_filter_criteria
IMPORTING
ET_FILTER = <interne Tabelle vom Typ LVC_T_FILT>.
Parameter
ET_FILTER
Bedeutung
Tabelle mit Filtereinstellungen für Spalten mit gesetztem Filter.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
74
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_frontend_fieldcatalog
get_frontend_fieldcatalog
Verwendung
Holen des aktuellen Feldkatalogs vom Frontend. Sie verwenden diese Methode, wenn Sie den
Feldkatalog, der beim Anzeigen verwendet wird, modifizieren möchten (z.B. zum Ausblenden
von bestimmten Spalten).
Siehe auch: Der Feldkatalog [Seite 133] und set_frontend_fieldcatalog [Seite 94].
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_frontend_fieldcatalog
IMPORTING
ET_FIELDCATALOG
Parameter
ET_FIELDCATALOG
= <interne Tabelle vom Typ LVC_T_FCAT>.
Bedeutung
Strukturbeschreibung für die gesamte Ausgabetabelle
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
75
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_frontend_layout
get_frontend_layout
Verwendung
Holen der aktuellen Layout-Struktur vom Frontend. In der Layout-Struktur bestimmen Sie
Eigenschaften des Grid Controls (siehe auch: Die Layout-Struktur [Seite 163]).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_frontend_layout
IMPORTING
ES_LAYOUT
Parameter
ES_LAYOUT
= <Struktur vom Typ LVC_S_LAYO>.
Bedeutung
Struktur mit Feldern für Anzeigeoptionen, grafischen Eigenschaften des Grid
Controls, Summenoptionen, Exceptions, Farben, Drag und Drop und anderen
Interaktionselementen
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
76
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_scroll_info_via_id
get_scroll_info_via_id
Verwendung
Abfragen der aktuellen Scroll-Position im Grid-Control:
·
Der Zeilenindex (Feld index der Struktur lvc_s_row) gibt an, welche Zeile als erste in der
Anzeige zu sehen ist (vertikales Scrollen).
·
Der Spaltenname (Feld fieldname der Struktur lvc_s_col) gibt an, welche scrollbare
Spalte (die Schlüsselfelder sind statisch) als erste links angezeigt wird (horizontales
Scrollen).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_scroll_info_via_id
IMPORTING
ES_ROW_INFO
ES_COL_INFO
Parameter
= <Struktur vom Typ LVC_S_ROW>
= <Struktur vom Typ LVC_S_COL>.
Bedeutung
ES_ROW_INFO
Informationen zum vertikalen Scrollen
ES_COL_INFO
Informationen zum horizontalen Scrollen
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
77
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_selected_cells
get_selected_cells
Verwendung
Holen von markierten Zellen im Zellenselektionsmodus. Das ALV Control liefert die Werte, den
Spaltennamen und den Zeilenindex der jeweiligen Zelle.
Das ALV Grid Control liefert nur die Indizes von einzeln markierten Zellen zurück.
Wird eine ganze Zeile oder Spalte markiert, bleibt die zurückgegebene Tabelle leer.
Voraussetzungen
Sie müssen den Selektionsmodus 'Zellenselektion' aktivieren, damit der Benutzer einzelne Zellen
(und mehrere mit der CTRL-Taste) markieren kann (siehe auch: Eigenschaften des Grid Controls
[Seite 166]). Übergeben Sie dazu die Layout-Stuktur [Seite 163] vor der ersten Anzeige mit der
Methode set_table_for_first_display [Seite 103]).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_cells
IMPORTING
ET_CELL
Parameter
ET_CELL
=
<interne Tabelle vom Typ LVC_T_CELL>.
Bedeutung
Tabelle mit Informationen einer Zelle pro Zeile
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
78
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_selected_cells_id
get_selected_cells_id
Verwendung
Holen des Spalten- und Zeilenindex der aktuell markierten Zellen.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_cells_id
IMPORTING
ET_CELLS
Parameter
ET_CELLS
=
<interne Tabelle vom Typ LVC_T_CENO>.
Bedeutung
Tabelle mit Zeilen [Extern]- und Spaltenindizes (COL_ID).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
Aktivitäten
Die COL_ID [Seite 144] wird intern vergeben. Sie ermitteln den Feldnamen Ihrer Ausgabetabelle,
indem Sie sich den Feldkatalog mit der Methode get_frontend_fieldcatalog [Seite 75] holen. Dort
ist die COL_ID dem Feldnamen eindeutig zugeordnet.
April 2001
79
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_selected_columns
get_selected_columns
Verwendung
Holen der Feldnamen von markierten Spalten.
Wenn nur Zeilen oder Zellen markiert sind, übergibt das Control eine leere Tabelle.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_columns
IMPORTING
ET_INDEX_COLUMNS
Parameter
ET_INDEX_COLUMNS
=
<interne Tabelle vom Typ LVC_T_COL>.
Bedeutung
Tabelle mit Feldnamen der markierten Spalten
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
80
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_selected_rows
get_selected_rows
Verwendung
Holen von Indizes von markierten Zeilen.
·
Die Nummerierung der Zeilen des Grid Control beginnt bei 1.
·
Wenn nur Zellen oder Spalten markiert sind, übergibt das ALV Grid Control eine
leere Tabelle.
·
Wenn der Benutzer mehrere Zeilen markiert hat sind die Indizes in der Tabelle
generell aufsteigend sortiert.
Vorausetzungen
Um das Markieren von mehreren Zeilen zu erlauben, müssen Sie das Feld sel_mode der
Layout-Struktur auf 'A', 'C' oder 'D' setzen (siehe auch: Eigenschaften des Grid Controls
[Seite 166]).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_rows
IMPORTING
ET_INDEX_ROWS
Parameter
ET_INDEX_ROWS
=
<interne Tabelle vom Typ LVC_T_ROW>.
Bedeutung
Tabelle mit Indizes der markierten Zeilen
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
81
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_sort_criteria
get_sort_criteria
Verwendung
Holen der aktuellen Sortierkriterien für sortierte Spalten des Grid Controls.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_sort_criteria
IMPORTING
ET_SORT
Parameter
ET_SORT
=
<interne Tabelle vom Typ LVC_T_SORT>.
Bedeutung
Jede Tabellenzeile liefert den Feldnamen und Sortierkriterien der sortierten
Spalten (siehe auch: Felder der Sortierungstabelle [Extern]).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
82
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_subtotals
get_subtotals
Verwendung
Gibt die aktuellen Zwischensummen des ALV Grid Control zurück. Der Benutzer kann maximal
neun Zwischensummen bilden, nachdem er über mindestens eine Spalte eine Summe gebildet
hat. Dabei wird die Liste nach den Werten einer oder mehrerer Spalten (der
Zwischensummenspalte) sortiert. Die Änderung eines Wertes in der Zwischensummenspalte
führt zur Ausgabe der Zwischensumme (dies wird auch als Gruppenstufenwechsel bezeichnet).
Integration
Bevor Sie auf die Werte der Zwischensummen zugreifen, holen Sie sich mit der Methode
get_sort_criteria [Seite 82] die Sortierungstabelle [Extern]. Eine Zeile dieser Tabelle beschreibt
Eigenschaften einer Spalte der Ausgabetabelle:
·
Ist das Feld SUBTOT gesetzt, handelt es sich um eine Zwischensummenspalte
·
Das Feld SPOS gibt dann an, auf welcher Ebene (siehe unten) die Zwischensumme gebildet
wurde
·
Das Feld FIELDNAME enthält den Namen der Zwischensummenspalte in der Ausgabetabelle
Mit Hilfe dieser Informationen greifen Sie gezielt auf die Werte der übergebenen Tabellen zu
(über die Referenzvariablen COLLECT01 bis COLLECT09).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_subtotals
IMPORTING
EP_COLLECT00
EP_COLLECT01
EP_COLLECT02
EP_COLLECT03
EP_COLLECT04
EP_COLLECT05
EP_COLLECT06
EP_COLLECT07
EP_COLLECT08
EP_COLLECT09
ET_GROUPLEVELS
=
=
=
=
=
=
=
=
=
=
=
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<Referenzvariable vom Typ REF TO DATA>
<interne Tabelle vom Typ LVC_T_GRPL>.
Um auf die Werte von EP_COLLECT00 bis EP_COLLECT09 zuzugreifen,
dereferenzieren Sie die jeweilige Referenzvariable mit ASSIGN in ein Feldsymbol
vom Typ Ihrer Ausgabetabelle (siehe unten).
Parameter
April 2001
Bedeutung
83
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_subtotals
EP_COLLECT00
Zeigt auf die Summenzeile. Da es nur eine Summenzeile gibt, deren
Summierungsbereich zudem eindeutig ist, gibt es zu dieser Tabelle
keine weiteren Informationen in der Tabelle ET_GROUPLEVELS.
EP_COLLECT01
bis
EP_COLLECT09
Zeigen auf die Zwischensummenzeilen. Für jede
Zwischensummenebene gibt es eine Referenzvariable, die jeweils auf
eine interne Tabelle vom Typ der Ausgabetabelle zeigt.
EP_COLLECT01 zeigt auf die Zwischensumme der höchsten Ebene,
EP_COLLECT02 auf die der zweithöchsten, usw. Die Ebenen ergeben
sich aus der Sortierpriorität (Feld SPOS in der Sortierungstabelle
[Extern]). Die Spalte, nach der zuerst sortiert wurde bildet die höchste
Zwischensummenebene.
ET_GROUPLEVELS
Verwaltung aller Indizes zu den einzelnen Gruppenstufen. Die Felder
der Tabelle haben folgende Bedeutung:
·
INDEX_FROM, INDEX_TO: Zeilen der Ausgabetabelle, über den die
Zwischensumme gebildet wurde
·
LEVEL: Zwischensummenebene (s.o.)
·
COUNTER: Anzahl der Zeilen, über die die Zwischensumme gebildet
wurde
·
COMPRESS: Zu dieser Zwischensummenzeile hat der Benutzer die
zugehörigen Zeilen ausgeblendet
·
COLLECT: Gibt an, in welcher Zwischensummentabelle (01-09) die
Werte abgelegt sind
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
Aktivitäten
Greifen Sie auf die Zwischensummentabellen (im Beispiel nur auf die Summe und die erste
Zwischensummenebene) über Feld-Symbole zu:
data: total type ref to data,
subtotal1 type ref to data.
field-symbols <total> like gt_sflight.
field-symbols <subtotal1> like gt_sflight.
call method grid1->get_subtotals
importing
ep_collect00 = total
ep_collect01 = subtotal1.
assign total->* to <total>.
assign subtotal1->* to <subtotal1>.
84
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_subtotals
April 2001
85
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_variant
get_variant
Verwendung
Holen des aktuellen Layouts.
Gemeint ist das Layout für die Filter-, Sortier- und Spalteneinstellungen und nicht
die Layout-Struktur [Seite 163].
Voraussetzungen
Das aktuelle Layout wurde bereits gesichert. Um dem Benutzer das Sichern eines Layout zu
erlauben, müssen wenigstens die Parameter I_SAVE und IS_VARIANT beim Aufruf von
set_table_for_first_display [Seite 103] belegt sein.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_variant
IMPORTING
ES_VARIANT
Parameter
ES_VARIANT
=
<Struktur vom Typ DISVARIANT>.
Bedeutung
Struktur mit Informationen zum aktuell geladenen Layout
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
86
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
offline
offline
Verwendung
Mit dieser Methode stellen Sie fest, ob das ALV Grid Control ohne Frontendbehandlung läuft.
Dies ist im Batch-Modus (sy-batch hat den Wert 'X'), im Druckmodus, in
Kombination mit CATT und beim Web-Reporting der Fall.
In diesem Fall sollten Sie keine Frontend-Objekt erzeugen (siehe unten).
Funktionsumfang
CALL METHOD CL_GUI_ALV_GRID=>offline
RECEIVING
E_OFFLINE = <Variable vom Typ INT4>.
Parameter
Bedeutung
E_OFFLINE
Wenn gleich 1, findet keine Frontendbehandlung statt.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
Aktivitäten
Verwenden Sie diese Methode beispielsweise, um den Control Container für das ALV Grid
Control nur im online-Fall zu erzeugen:
DATA: g_dock TYPE REF TO cl_gui_docking_container,
g_grid TYPE REF TO cl_gui_alv_grid.
IF cl_gui_alv_grid=>offline( ) is initial.
CREATE OBJECT g_dock.
ENDIF.
CREATE OBJECT g_grid
EXPORTING I_PARENT = g_dock.
Der Konstruktor des ALV Grid Control prüft selbst, ob die Instanz offline läuft und
erzeugt gegebenenfalls keine Frontend-Objekte. Sie arbeiten dann nur mit der
Instanz auf dem Backend weiter.
April 2001
87
ALV Grid Control (BC-SRV-ALV)
SAP AG
refresh_table_display
refresh_table_display
Verwendung
Mit dieser Methode frischen Sie die Ausgabetabelle im Grid Control auf. Dies ist nötig, wenn Sie
mit Methoden die Anzeige der Daten verändern (z.B. mit set_frontend_layout [Seite 95]) oder
wenn Sie neu selektierte Daten im gleichen ALV Grid Control anzeigen wollen.
Das Demoprogramm BCALV_GRID_03 der Entwicklungsklasse SLIS benutzt diese
Methode, um nach einer neuen Selektion die Ausgabetabelle aufzufrischen.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->refresh_table_display
EXPORTING
IS_STABLE
= <Struktur vom Typ LVC_S_STBL>
I_SOFT_REFRESH = <Variable vom Typ CHAR01>.
Parameter
Bedeutung
IS_STABLE
Ist das Feld row bzw. col dieser Struktur gesetzt, bleibt die Position der
Scrollbar für die Zeilen bzw. Spalten stabil.
I_SOFT_REFRESH
Der Parameter wird nur in Ausnahmefällen benutzt. Ist er gesetzt,
bleiben beim Auffrischen des Grid Controls vorher gebildete Summen,
die Sortierung und definierte Filter der angezeigten Daten erhalten.
Dies macht zum Beispiel Sinn, wenn Sie die Daten der Datentabelle
zwischenzeitlich nicht geändert haben und das Grid Control lediglich
bezüglich Änderungen im Layout oder im Feldkatalog auffrischen
möchten.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
88
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
register_delayed_event
register_delayed_event
Verwendung
Mit dieser Methode registrieren Sie eines der verzögerten Ereignisse delayed_callback
beziehungsweise delayed_changed_sel_callback (es ist nicht möglich, beide Ereignisse
gleichzeitig zu registrieren).
Lesen Sie unbedingt den Abschnitt Das ALV Grid Control bei WAN-Anmeldungen
[Seite 43] bevor Sie eines dieser Ereignisse registrieren.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->register_delayed_event
EXPORTING
I_EVENT_ID
Parameter
I_EVENT_ID
=
<Var. vom Typ I>.
Bedeutung
Ereignis-Id:
·
cl_gui_alv_grid=>mc_evt_delayed_move_curr_cel für das
Ereignis delayed_callback [Seite 115]
·
cl_gui_alv_grid=>mc_evt_delayed_change_select für das
Ereignis delayed_changed_sel_callback [Seite 116]
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
89
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_3d_border
set_3d_border
Verwendung
Mit dieser Methode können Sie den Rand des ALV Grid Controls in der Dynprofläche versenkt
darstellen.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_3d_border
EXPORTING
BORDER
Parameter
BORDER
=
<Var. vom Typ I>.
Bedeutung
Rahmen im 3D-Stil darstellen (1=Ja, 0=Nein)
Zurück zu: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
90
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
save_variant_dark
save_variant_dark
Verwendung
Diese Methode legt einen Namen für das zu speichernde Layout [Seite 17] fest. Wenn der
Benutzer ein aktuelles Layout speichert, unterdrückt das ALV Grid Control das Popup zum
Speichern eines Layouts und gibt statt dessen nur eine Erfolgsmeldung aus.
Voraussetzungen
Der Benutzer muß zum Speichern eines Layouts berechtigt sein. Siehe dazu: Abspeichern eines
Layouts [Seite 18].
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->save_variant_dark
IMPORTING
IS_VARIANT
Parameter
IS_VARIANT
=
<Struktur vom Typ DISVARIANT>.
Bedeutung
Struktur, um ein Layout zu identifizieren. Sie müssen mindestens die Felder
REPORT (sy-repid) und VARIANT (technischer Name des Layouts) füllen.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
91
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_current_cell_via_id
set_current_cell_via_id
Verwendung
Setzen des Cursors auf eine bestimmte Zelle im Grid Control. Das Grid Control scrollt an die
übergebene Position, falls die Zelle nicht sichtbar ist.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_current_cell_via_id
EXPORTING
IS_ROW_ID
=
IS_COLUMN_ID =
Parameter
<Struktur vom Typ LVC_S_ROW>
<Struktur vom Typ LVC_S_COL>.
Bedeutung
IS_ROW_ID
Struktur mit Zeilenindex
IS_COLUMN_ID
Struktur mit Feldnamen der Spalte
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
92
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_filter_criteria
set_filter_criteria
Verwendung
Setzen der aktuellen Filtereinstellungen. Eine Zeile der Tabelle beschreibt die
Selektionsbedingungen für Einträge einer Spalte, die nicht angezeigt werden sollen.
Die interne Tabelle mit den Filtereinstellungen sollte nie manuell aufgebaut werden.
Benutzen Sie diese Methode lediglich zum Setzen von vorher mit get_filter_criteria
[Seite 74] oder über ein Layout besorgten Filterkriterien.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_filter_criteria
EXPORTING
IT_FILTER
Parameter
IT_FILTER
=
<interne Tabelle vom Typ LVC_T_FILT>.
Bedeutung
Tabelle mit Filtereinstellungen
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
93
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_frontend_fieldcatalog
set_frontend_fieldcatalog
Verwendung
Setzen des Feldkatalogs für eine ALV Control Instanz.
Nach dem Setzen des Feldkatalogs frischen Sie die Listanzeige mit der Methode
refresh_table_display [Seite 88] auf. Falls sich der Feldkatalog auf eine
Ausgabetabelle bezieht, die Sie in einer ALV Control Instanz mit anderer
Tabellenstruktur anzeigen, müssen Sie den Feldkatalog mit der Methode
set_table_for_first_display [Seite 103] übergeben.
Siehe auch: Der Feldkatalog [Seite 133] und get_frontend_fieldcatalog [Seite 75].
Voraussetzung
Sie haben sich den aktuellen Feldkatalog mit der Methode get_frontend_fieldcatalog [Seite 75]
besorgt oder haben ihn vorher halbautomatisch aufgebaut [Seite 139].
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_frontend_fieldcatalog
EXPORTING
IT_FIELDCATALOG
Parameter
IT_FIELDCATALOG
=
<interne Tabelle vom Typ LVC_T_FCAT>.
Bedeutung
Beschreibung der Spalteneigenschaften der Ausgabetabelle
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
Einschränkungen
Das ALV Grid Control greift in dieser Methode nicht mehr auf das Data Dictionary zu. Es ist also
nicht möglich, nachträglich einen Dictionary-Bezug herzustellen, um zum Beispiel dort
abgelegte Feldbezeichner als Spaltentexte automatisch zu übernehmen.
94
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_frontend_layout
set_frontend_layout
Verwendung
Setzen einer Layout-Struktur am Frontend, die Sie vorher über die Methode get_frontend_layout
[Seite 76] besorgt und modifiziert haben.
Nach dem Setzen der Layout-Struktur müssen Sie die Listanzeige mit der Methode
refresh_table_display [Seite 88] auffrischen.
In der Layout-Struktur bestimmen Sie Eigenschaften des Grid Controls (siehe auch Die LayoutStruktur [Seite 163]).
Über den Parameter IS_LAYOUT beim Aufruf der Methode
set_table_for_first_display [Seite 103] setzen Sie Eigenschaften des Grid Controls
initial.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_frontend_layout
EXPORTING
IS_LAYOUT
Parameter
IS_LAYOUT
=
<Struktur vom Typ LVC_S_LAYO>.
Bedeutung
Struktur mit Feldern für Anzeigeoptionen, grafischen Eigenschaften des Grid
Controls, Summenoptionen, Exceptions, Farben, Drag und Drop und anderen
Interaktionselementen
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
95
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_scroll_info_via_id
set_scroll_info_via_id
Verwendung
Setzen der Scroll-Position im Grid-Control:
·
Der Zeilenindex (Feld index der Struktur lvc_s_row) gibt an, welche Zeile als erste in der
Anzeige sichtbar sein soll (vertikales Scrollen).
·
Der Spaltenname (Feld fieldname der Struktur lvc_s_col) gibt an, welche scrollbare
Spalte (die Schlüsselfelder sind statisch) als erste links angezeigt werden soll (horizontales
Scrollen).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_scroll_info_via_id
EXPORTING
IS_ROW_INFO
=
IS_COLUMN_INFO =
Parameter
<Struktur vom Typ LVC_S_ROW>
<Struktur vom Typ LVC_S_COL>.
Bedeutung
IS_ROW_INFO
Informationen zum vertikalen Scrollen
IS_COLUMN_INFO
Informationen zum horizontalen Scrollen
Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
96
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_graphics_container
set_graphics_container
Verwendung
In der Toolbar des ALV Grid Control gibt es die Funktion Grafik anzeigen, mit der die Daten
der Tabelle mit Hilfe das Graphical Frameworks (GFW) in einem Diagramm dargestellt werden.
In der Voreinstellung ist diese Grafik in einem Dialogbox Container Control integriert. Wenn Sie
einen anderes Container Control verwenden wollen, übergeben Sie die zugehörige
Referenzvariable mit dieser Methode. Das ALV Grid Control stellt dann die Grafik in diesem
Container dar.
Integration
Die Dokumentation SAP Container [Extern] beschreibt alle verfügbaren Container-Typen.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_graphics_container
EXPORTING
I_GRAPHICS_CONTAINER
Parameter
I_GRAPHICS_CONTAINER
=
<Referenzvariable auf CL_GUI_CONTAINER>.
Bedeutung
Referenzvariable auf ein Container Control, in dem das
Diagramm zu den Daten der Ausgabetabelle dargestellt werden
soll.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
97
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_selected_cells
set_selected_cells
Verwendung
Markieren von Zellen im Grid Control. Bevor das ALV Control die mit dem Aufruf übergebenen
Zellen markiert, werden alle anderen Markierungen rückgängig gemacht.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_cells
EXPORTING
IT_CELLS
Parameter
IT_CELLS
= <Tabelle vom Typ LVC_T_CELL>.
Bedeutung
Tabelle mit den Feldnamen der zu markierenden Zellen. Der Zeilentyp der
Tabelle ist LVC_S_CELL; diese Struktur enthält eine Struktur vom Typ
LVC_S_COL und LVC_S_ROW, mit denen Sie die Spalte und die Zeile der Zelle
festlegen (siehe set_selected_rows [Seite 101] bzw. set_selected_columns
[Seite 100]).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
98
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_selected_cells_id
set_selected_cells_id
Verwendung
Markieren von Zellen über Zeilen- und Spaltenindizes.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_cells_id
IMPORTING
IT_CELLS
Parameter
IT_CELLS
=
<interne Tabelle vom Typ LVC_T_CENO>.
Bedeutung
Tabelle mit Zeilen [Extern]- und Spaltenindizes (COL_ID).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
Aktivitäten
Die COL_ID [Seite 144] wird intern vergeben. Sie ermitteln die richtige COL_ID für einen
Feldnamen Ihrer Ausgabetabelle, indem Sie sich den Feldkatalog mit der Methode
get_frontend_fieldcatalog [Seite 75] holen. Dort ist die COL_ID dem Feldnamen eindeutig
zugeordnet.
April 2001
99
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_selected_columns
set_selected_columns
Verwendung
Markieren von Spalten im Grid Control. Bevor das ALV Control die mit dem Aufruf übergebenen
Spalten markiert, werden alle anderen Markierungen rückgängig gemacht.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_columns
EXPORTING
IT_COL_TABLE
Parameter
IT_COL_TABLE
= <Tabelle vom Typ LVC_T_COL>.
Bedeutung
Tabelle mit den Feldnamen der zu markierenden Spalten (Zeilentyp:
LVC_S_COL; zu füllendes Feld: FIELDNAME).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
100
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_selected_rows
set_selected_rows
Verwendung
Markieren von Zeilen im Grid Control über den Tabellenindex.
Die Nummerierung der Zeilen des Grid Control beginnt bei 1.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_rows
EXPORTING
IT_INDEX_ROWS
Parameter
IT_INDEX_ROWS
=
<interne Tabelle vom Typ LVC_T_ROW>.
Bedeutung
Tabelle mit Indizes der zu markierenden Zeilen
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
101
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_sort_criteria
set_sort_criteria
Verwendung
Setzen von Sortierkriterien für Spalten des Grid Controls. Die Einstellungen werden nur wirksam,
wenn Sie mit der Methode refresh_table_display [Seite 88] die Tabelle auffrischen.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_sort_criteria
EXPORTING
IT_SORT
Parameter
IT_SORT
=
<interne Tabelle vom Typ LVC_T_SORT>.
Bedeutung
Pro Tabellenzeile werden die Sortierkriterien für eine Spalte definiert (siehe
auch: Felder der Sortierungstabelle [Extern]).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
102
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_table_for_first_display
set_table_for_first_display
Verwendung
Anzeigen einer Ausgabetabelle in der ALV Control Instanz. Beim Aufruf muß entweder eine
Referenzstruktur des Data Dictionary angegeben werden oder ein passender Feldkatalog [Seite
133]. Sie können mit optionalen Parametern zusätzlich vor Ausführung ein Layout laden, die
Tabelle nach Feldern sortieren, für Spalten einen Filter setzen und Eigenschaften des Grid
Controls festlegen.
Wenn Sie die angezeigten Daten der Ausgabetabelle auffrischen wollen, benutzen
Sie die Methode refresh_table_display [Seite 88]. Die Methode
set_table_for_first_display muß nur ein zweites mal aufgerufen werden,
wenn sich die Struktur der Ausgabetabelle ändert.
Der Report BCALV_GRID_DEMO der Entwicklungsklasse SLIS ist ein Beispiel für den einfachsten
Aufruf dieser Methode.
Voraussetzungen
Die Ausgabetabelle muß entweder global definiert sein oder ein öffentliches Attribut
einer Klasse sein.
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_table_for_first_display
EXPORTING
I_BUFFER_ACTIVE
= <beliebiger Typ (ANY)>
I_STRUCTURE_NAME
= <String vom Typ DD02L-TABNAME>
IS_VARIANT
= <Struktur vom Typ DISVARIANT>
I_SAVE
= <Var. vom Typ CHAR01>
I_DEFAULT
= <Var vom Typ CHAR01>
IS_LAYOUT
= <Struktur vom Typ LVC_S_LAYO>
IS_PRINT
= <Struktur vom Typ LVC_S_PRNT>
IT_SPECIAL_GROUPS = <interne Tabelle vom Typ LVC_T_SGRP>
IT_TOOLBAR_EXCLUDING = <interne Tabelle vom Typ UI_FUNCTIONS>
IT_HYPERLINK
= <interne Tabelle vom Typ LVC_T_HYPE>
IT_ALV_GRAPHICS
= <interne Tabelle vom Typ DTC_T_TC>
CHANGING
IT_OUTTAB
= <interne Tabelle>
IT_FIELDCATALOG
= <interne Tabelle vom Typ LVC_T_FCAT>
IT_SORT
= <interne Tabelle vom Typ LVC_T_SORT>
IT_FILTER
= <interne Tabelle vom Typ LVC_T_FILT>
Parameter
April 2001
Bedeutung
103
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_table_for_first_display
I_BUFFER_ACTIVE
Flag, das die Anwendung setzen sollte, wenn der Aufruf der
Methode statisch ist: der Aufruf erfolgt immer mit dem gleichen
Feldkatalog. In diesem Fall kann der Feldkatalog in einem
speziellen Buffer gehalten werden. Dies beschleunigt
besonders die Anzeige von kleinen Listen.
I_STRUCTURE_NAME
Name der DDIC-Struktur (z.B.: 'SFLIGHT') zu den Daten in der
Ausgabetabelle. Bei Angabe dieses Parameters wird der
Feldkatalog vollautomatisch generiert.
IS_VARIANT
Bestimmt das Layout, mit der die Ausgabetabelle angezeigt
werden soll. Bei Verwendung dieses Parameters müssen Sie
wenigstens das Feld REPORT der Struktur vom Typ
DISVARIANT füllen.
I_SAVE
Bestimmt, welche Möglichkeiten der Benutzer zum
Abspeichern eines Layout hat:
I_DEFAULT
·
'X':
nur globales Speichern
·
'U':
nur benutzerspezifisches Speichern
·
'A':
entspricht 'X' und 'U'
·
SPACE: kein Speichern
Dieser Parameter bestimmt, ob der Benutzer eine
Layoutvoreinstellung definieren darf:
·
'X':
·
SPACE: Layoutvoreinstellung nicht erlaubt
Layoutvoreinstellung erlaubt (Voreinstellung)
Ist eine Layoutvoreinstellung erlaubt, existiert eine solche und ist
kein abweichendes Layout in IS_VARIANT angegeben, wird die
Layoutvoreinstellung beim Aufruf dieser Methode automatisch
geladen.
IS_LAYOUT
Bestimmt Eigenschaften des Grid Controls. Die Layout-Struktur
hat nichts mit dem Layout zum Speichern der Filter-, Sortierund Spalteneigenschaften zu tun!
IS_PRINT
Parameter für das Drucken am Backend
IT_SPECIAL_GROUPS
Wurden im Feldkatalog mit dem Feld SP_GROUP die Spalten in
Gruppen unterteilt, muß man hier eine Tabelle mit Texten für
diese Gruppen übergeben. Im Fenster zum aktuellen Layout
läßt sich dann die Spaltenauswahl mit einer Listbox auf eine
dieser Gruppen eingrenzen.
IT_TOOLBAR_EXCLUDING
Diese Tabelle enthält Funktionskodes der Toolbar, die Sie für
die Lebensdauer des ALV Grid Controls ausblenden möchten.
Die Funktionskodes sind als Konstanten-Attribute mit dem
Prefix MC_FC_ gekennzeichnet.
104
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_table_for_first_display
IT_HYPERLINK
Diese Tabelle ordnet jedem Handle (Feld HANDLE von
LVC_S_HYPE) eine Hyperlinkadresse (Feld HREF von
LVC_S_HYPE) zu. Über das Handle kann man dann Hyperlinks
im Grid einbinden [Seite 37].
IT_ALV_GRAPHICS
Einstellungen für die Darstellung der ALV-Liste als Diagramm
(zum Beispiel Achsenbeschriftungen)
IT_OUTTAB
Ausgabetabelle mit den anzuzeigenden Daten.
IT_FIELDCATALOG
Bestimmt die Struktur der Ausgabetabelle und die
Formatierung der anzuzeigenden Daten
IT_SORT
Tabelle mit Sortiereigenschaften für Spalten, die initial sortiert
werden sollen
IT_FILTER
Tabelle mit Filtereigenschaften für Spalten, bei denen initial ein
Filter gesetzt werden soll
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
Aktivitäten
Bei diesem Aufruf erzeugt das ALV Grid Control den Feldkatalog zur Ausgabetabelle
vor der Anzeige automatisch [Seite 135] über eine DDIC-Struktur:
DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID,
GT_SFLIGHT TYPE TABLE OF SFLIGHT.
<Instanziierung von GRID1 und Integration auf Dynpro>
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING IT_OUTTAB
= GT_SFLIGHT.
Feldkatalog explizit übergeben:
DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID,
GT_SFLIGHT TYPE TABLE OF SFLIGHT,
GT_FIELDCAT TYPE LVC_T_FCAT.
<Manueller [Seite 137] oder halbautomatischer [Seite 139] Aufbau des
Feldkatalogs>
<Instanziierung von GRID1 und Integration auf Dynpro>
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
CHANGING IT_FIELDCATALOG = GT_FIELDCAT
IT_OUTTAB
= GT_SFLIGHT.
April 2001
105
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_table_for_first_display
106
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_toolbar_interactive
set_toolbar_interactive
Verwendung
Diese Methode löst das Ereignis toolbar [Seite 131] aus. Wenn Sie die Toolbar um eigene
Funktionen erweitern, bauen Sie mit dieser Methode die Toolbar neu auf (siehe auch: Definition
von GUI-Elementen in der Toolbar [Seite 22]).
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_toolbar_interactive.
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
April 2001
107
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_user_command
set_user_command
Verwendung
Mit dieser Methode haben Sie die Möglichkeit, Standardfunktionen des ALV Grid Control durch
eigene Funktionen zu ersetzen. Dazu müssen die den aktuellen Funktionskode beim Ereignis
before_user_command [Seite 112] abfragen und mit set_user_command ändern.
Siehe auch: Ändern von Standardfunktionen [Seite 21]
Funktionsumfang
CALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_user_command
EXPORTING
I_UCOMM
Parameter
I_UCOMM
=
<Var. vom Typ SY-UCOMM>.
Bedeutung
Funktionskode (Die Funktionskodes sind als Konstanten-Attribute der Klasse
(mit dem Prefix MC_FC_) angelegt).
Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]
108
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Ereignisse der Klasse CL_GUI_ALV_GRID
Ereignisse der Klasse CL_GUI_ALV_GRID
Im Abschnitt Arbeiten mit dem ALV Grid Control [Seite 12] ist beschrieben, was Sie speziell bei
der Ereignisbehandlung beim ALV Grid Control beachten müssen.
Benutzerdefinierte Textausgaben
Ereignis
Anwendung
print_end_of_list
[Seite 125]
Ausgabetext am Ende der gesamten Liste festlegen (beim Drucken)
print_top_of_list
[Seite 127]
Ausgabetext am Anfang der gesamten Liste festlegen (beim Drucken)
print_end_of_page
[Seite 126]
Ausgabetext am Ende jeder Seite festlegen (beim Drucken)
print_top_of_page
[Seite 128]
Ausgabetext am Anfang jeder Seite festlegen (beim Drucken)
subtotal_text [Seite
129]
Eigene Zwischensummentexte festlegen
Aktionen mit der Maus im Grid Control
Ereignis
Anwendung
button_click [Seite
113]
Klick auf eine Drucktaste im Grid Control abfragen
double_click [Seite
117]
Doppelklick auf eine Zelle des Grid Controls abfragen
hotspot_click [Seite
118]
Hotspot-klick auf vorher dafür festgelegte Spalten abfragen
onDrag [Seite 120]
Informationen beim Ziehen von Elementen des ALV Grid Controls
sammeln
onDrop [Seite 121]
Informationen beim Fallenlassen auf Elemente des ALV Grid Controls
verarbeiten
onDropComplete
[Seite 122]
Abschließende Aktionen bei erfolgreichem Drag&Drop Vorgang
durchführen
onDropGetFlavor
[Seite 123]
Fallunterscheidung bei mehreren Möglichkeiten im Drag&Drop
Verhalten
Verarbeitung von eigenen und Standardfunktionen
Ereignis
before_user_command [Seite 112]
April 2001
Anwendung
Abfragen von eigenen und Standardfunktionskodes
109
ALV Grid Control (BC-SRV-ALV)
SAP AG
Ereignisse der Klasse CL_GUI_ALV_GRID
user_command [Seite 132]
Abfragen von eigenen Funktionskodes
after_user_command [Seite 111]
Abfragen von eigenen und Standardfunktionskodes
Definition eigener Funktionen
Ereignis
Anwendung
toolbar [Seite 131]
GUI-Elemente in der Toolbar ändern, löschen oder hinzufügen
menu_button [Seite 119]
Menüs für Menübuttons in der Toolbar definieren
context_menu_request
[Seite 114]
Kontextmenü ändern
onf1 [Seite 124]
Eigene F1-Hilfe definieren
110
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
after_user_command
after_user_command
Verwendung
Das ALV Grid Control löst dieses Ereignis nach dem Ereignis user_command [Seite 132] aus,
wenn der Benutzer eine Standard- oder selbst definierte Funktion angewählt hat. Sie können mit
diesem Ereignis nach der jeweiligen Funktion abschließende Aktionen durchführen.
Standardfunktionen sind bei diesem Ereignis bereits abgeschlossen.
Ereignis-Parameter
E_UCOMM
TYPE SY-UCOMM
Bedeutung
Standard- oder eigener Funktionskode (Die Standard-Funktionskodes
sind als Konstanten-Attribute mit dem Prefix MC_FC_ gekennzeichnet).
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
111
ALV Grid Control (BC-SRV-ALV)
SAP AG
before_user_command
before_user_command
Verwendung
Das ALV Grid Control löst dieses Ereignis vor dem Ereignis user_command [Seite 132] aus,
wenn der Benutzer eine Standard- oder selbst definierte Funktion angewählt hat. Sie können mit
diesem Ereignis vor der jeweiligen Funktion einleitende Aktionen durchführen.
Siehe auch: Ändern von Standardfunktionen [Seite 21]
Ereignis-Parameter
E_UCOMM
Bedeutung
Standard- oder eigener Funktionskode (Die Standard-Funktionskodes
sind als Konstanten-Attribute mit dem Prefix MC_FC_ gekennzeichnet).
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
112
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
button_click
button_click
Verwendung
Wenn der Benutzer auf eine Drucktaste im Grid Control geklickt hat, behandeln Sie es in der
Ereignisbehandlermethode zu diesem Ereignis.
Voraussetzungen
Sie haben eine oder mehrere Zellen als Drucktaste im ALV Grid Control dargestellt (siehe:
Darstellung von Drucktasten [Seite 35]).
Ereignis-Parameter
Bedeutung
ES_COL_ID
TYPE LVC_S_COL
Struktur mit Feld FIELDNAME, um die Spalte zu identifizieren.
ES_ROW_NO
TYPE LVC_S_ROID
Struktur, um die Zeile zu identifizieren [Extern].
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
113
ALV Grid Control (BC-SRV-ALV)
SAP AG
context_menu_request
context_menu_request
Verwendung
Bei diesem Ereignis haben Sie die Möglichkeit, das Standard-Kontextmenü des ALV Grid
Controls um eigene Funktionen zu erweitern und bestehende Funktionen auszublenden oder zu
deaktivieren.
Siehe auch: Definition eines Kontext-Menüs [Seite 23]
Ereignis-Parameter
E_OBJECT
TYPE REF TO
CL_CTMENU
Bedeutung
Referenzvariable auf das Standard-Kontextmenü des ALV Grid
Controls.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
114
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
delayed_callback
delayed_callback
Verwendung
Das Ereignis wird ausgelöst, wenn der Benutzer eine andere Zelle als augenblicklich angewählt
mit der Maus anklickt. Das ALV Grid Control löst dieses Ereignis mit einer kurzen Verzögerung
von 1,5 Sekunden aus.
Lesen Sie unbedingt den Abschnitt Das ALV Grid Control bei WAN-Anmeldungen
[Seite 43] bevor Sie dieses Ereignis einsetzen.
Das ALV Grid Control löst dieses Ereignis auch bei der Methode
set_table_for_first_display und bei der Standard-Funktion Summe aus. Bei
der Standard-Funktion Suchen wird das Ereignis nur dann ausgelöst, wenn eine
gefundene Zelle ungleich zu der vorher markierten ist.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
115
ALV Grid Control (BC-SRV-ALV)
SAP AG
delayed_changed_sel_callback
delayed_changed_sel_callback
Verwendung
Das Ereignis wird ausgelöst, wenn der Benutzer eine Zeile oder Spalte markiert, die noch nicht
markiert ist. Das ALV Grid Control löst dieses Ereignis mit einer kurzen Verzögerung von 1,5
Sekunden aus.
Lesen Sie unbedingt den Abschnitt Das ALV Grid Control bei WAN-Anmeldungen
[Seite 43] bevor Sie dieses Ereignis einsetzen.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
116
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
double_click
double_click
Verwendung
Das ALV Grid Control löst dieses Ereignis aus, wenn ein Benutzer auf Zellen des Grid Controls
doppelklickt.
Im Demoreport BCALV_GRID_03 der Entwicklungsklasse SLIS kommt man über
einen Doppelklick auf eine Verzweigungsliste.
Ereignis-Parameter
Bedeutung
E_ROW
TYPE REF TO
LVC_S_ROW
Struktur mit Zeilenindex
E_COLUMN
TYPE REF TO
LVC_S_COL
Struktur mit Spaltennamen
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
117
ALV Grid Control (BC-SRV-ALV)
SAP AG
hotspot_click
hotspot_click
Verwendung
In diesem Ereignis reagieren Sie auf den Mausklick eines Benutzers auf eine Spalte, die als
Hotspot gekennzeichnet ist (der Mauszeiger verändert sich entsprechend).
Voraussetzungen
Um dem Benutzer das Auswählen einer Spalte über einen Hotspot-Klick zu ermöglichen, müssen
Sie die Spalte als Hotspot-Spalte kennzeichnen:
·
Bei einzelnen Spalten über das Feld hotspot des Feldkatalogs (siehe auch:
Ausgabeoptionen einer Spalte [Seite 149])
·
Für alle Schlüsselfelder einer Ausgabetabelle über das Feld keyhot der Layout-Struktur
(siehe auch: Interaktionssteuerung [Seite 171])
Ereignis-Parameter
Bedeutung
E_ROW_ID
TYPE REF TO
LVC_S_ROW
Struktur mit Zeilenindex
E_COLUMN_ID
TYPE REF TO
LVC_S_COL
Struktur mit Spaltenname
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
118
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
menu_button
menu_button
Verwendung
In diesem Ereignis fragen Sie Funktionskodes für Menüs ab, die Sie beim Ereignis toolbar [Seite
131] definiert haben. Zu jedem Funktionskode definieren Sie auf die gleiche Weise ein Menü wie
beim Standard-Kontextmenü des ALV Grid Controls.
Siehe auch: Definition eines Menüs in der Toolbar [Seite 24]
Das Ereignis wird jedesmal ausgelöst, wenn ein Benutzer auf einen Menübutton in
der Toolbar klickt.
Ereignis-Parameter
Bedeutung
E_OBJECT
TYPE REF TO
CL_CTMENU
Referenz auf das Menü der Toolbar, welches der Benutzer ausgewählt
hat. Mit Methoden dieses Objekts bauen Sie dieses Menü auf.
E_UCOMM
Type SY-UCOMM
Funktionskode eines Menüs, das Sie beim Ereignis Toolbar definiert
haben. Mit diesem Parameter unterscheiden Sie die in der Toolbar
definierten Menüs.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
119
ALV Grid Control (BC-SRV-ALV)
SAP AG
onDrag
onDrag
Die Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der Control
Framework Dokumentation erklärt. Zur Übergabe des Handles des Drag&Drop-Verhaltens siehe:
Drag und Drop mit dem ALV Control [Seite 25].
Dieses Ereignis kann bei anderen Controls anders benannt sein.
Ereignis-Parameter
Bedeutung
E_ROW
Type LVC_S_ROW
Struktur mit Index der gezogenen Zeile
E_COLUMN
Type LVC_S_COL
Struktur mit Index der gezogenen Spalte
E_DRAGDROPOBJ
Type Ref To
CL_DRAGDROPOBJ
ECT
Drag&Drop-Objekt, über das man ein anwendungsspezifisches
Datenobjekt übergeben kann. Die Attribute enthalten außerdem
Informationen über die Aktion des Benutzers (copy oder move) und
den mit der Aktion verknüpften Flavor.
120
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
onDrop
onDrop
Die Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der Control
Framework Dokumentation erklärt. Zur Übergabe des Handles des Drag&Drop-Verhaltens siehe:
Drag und Drop mit dem ALV Control [Seite 25].
Dieses Ereignis kann bei anderen Controls anders benannt sein.
Ereignis-Parameter
Bedeutung
E_ROW
Type LVC_S_ROW
Struktur mit Index der Zeile, auf die das Drag&Drop-Objekt
fallengelassen wurde.
E_COLUMN
Type LVC_S_COL
Struktur mit Index der gezogenen Spalte, auf die das Drag&DropObjekt fallengelassen wurde.
E_DRAGDROPOBJ
Type Ref To
CL_DRAGDROPOBJ
ECT
Drag&Drop-Objekt, über das man ein anwendungsspezifisches
Datenobjekt übergeben kann. Die Attribute enthalten außerdem
Informationen über die Aktion des Benutzers (copy oder move) und
den mit der Aktion verknüpften Flavor.
April 2001
121
ALV Grid Control (BC-SRV-ALV)
SAP AG
onDropComplete
onDropComplete
Die Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der Control
Framework Dokumentation erklärt. Zur Übergabe des Handles des Drag&Drop-Verhaltens siehe:
Drag und Drop mit dem ALV Control [Seite 25].
Dieses Ereignis kann bei anderen Controls anders benannt sein.
Ereignis-Parameter
Bedeutung
E_ROW
Type LVC_S_ROW
Struktur mit Index der gezogenen Zeile
E_COLUMN
Type LVC_S_COL
Struktur mit Index der gezogenen Spalte
E_DRAGDROPOBJ
Type Ref To
CL_DRAGDROPOBJ
ECT
Drag&Drop-Objekt, über das man ein anwendungsspezifisches
Datenobjekt übergeben kann. Die Attribute enthalten außerdem
Informationen über die Aktion des Benutzers (copy oder move) und
den mit der Aktion verknüpften Flavor.
122
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
onDropGetFlavor
onDropGetFlavor
Die Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der Control
Framework Dokumentation erklärt. Zur Übergabe des Handles des Drag&Drop-Verhaltens siehe:
Drag und Drop mit dem ALV Control [Seite 25].
Dieses Ereignis kann bei anderen Controls anders benannt sein.
Ereignis-Parameter
Bedeutung
E_ROW
Type LVC_S_ROW
Struktur mit Index der gezogenen Zeile
E_COLUMN
Type LVC_S_COL
Struktur mit Index der gezogenen Spalte
E_DRAGDROPOBJ
Type Ref To
CL_DRAGDROPOBJ
ECT
Drag&Drop-Objekt, über das man ein anwendungsspezifisches
Datenobjekt übergeben kann. Die Attribute enthalten außerdem
Informationen über die Aktion des Benutzers (copy oder move) und
den mit der Aktion verknüpften Flavor.
E_FLAVORS
Type
CNDD_FLAVORS
Mögliche Flavors
April 2001
123
ALV Grid Control (BC-SRV-ALV)
SAP AG
onf1
onf1
Verwendung
Wenn der Benutzer die F1-Hilfe für eine Zelle aufruft, versucht das ALV Grid Control die
Dokumentation zum zugehörigen Datenelement der Spalte aufzurufen. Gibt es eine solche
Dokumentation nicht (zum Beispiel, weil das Feld keinen Bezug zum Data Dictionary hat),
können Sie mit diesem Ereignis eine eigene F1-Hilfe anzeigen. Es ist auch möglich, die Standard
F1-Hilfe zu übersteuern.
Um dem ALV Grid Control mitzuteilen, daß Sie eine eigene F1-Hilfe verwendet
haben, setzen Sie das Attribut er_event_data->m_event_handled am Ende
Ihrer Ereignisbehandlung.
Ereignis-Parameter
E_FIELDNAME
TYPE LVC_FNAME
ES_ROW_NO
TYPE LVC_S_ROID
ER_EVENT_DATA
TYPE REF TO
CL_ALV_EVENT_DAT
A
Bedeutung
Name des Feldes der Ausgabetabelle, für das eine eigene F1-Hilfe
implementiert werden soll.
Struktur, um die Zeile zu identifizieren [Extern].
Setzen Sie das Attribut M_EVENT_HANDLED dieses Objekts, falls sie
das Ereignis behandelt haben. Das ALV Grid Control unterdrückt dann
die Standard F1-Hilfe.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
124
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
print_end_of_list
print_end_of_list
Verwendung
Mit diesem Ereignis können Sie bei der Druckausgabe Text mit der WRITE-Anweisung
ausgeben. Der Text wird am Ende der gesamten Liste eingeschoben und bei der Druckansicht
angezeigt. Dabei springt das ALV Grid Control in die Listausgabe des klassischen ALV.
Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLIS
veranschaulicht die Verwendung von print_end_of_list.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
125
ALV Grid Control (BC-SRV-ALV)
SAP AG
print_end_of_page
print_end_of_page
Verwendung
Mit diesem Ereignis geben Sie bei der Druckausgabe Text mit der WRITE-Anweisung aus. Der
Text wird am Ende der jeweiligen Seite eingeschoben. Bei der Druckausgabe springt das ALV
Grid Control in die Listausgabe des klassischen ALV.
In der Druckansicht (klassischer ALV) wird der Text zu diesem Ereignis nicht
angezeigt.
Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLIS
veranschaulicht die Verwendung von print_end_of_page.
Voraussetzungen
Um eine Ausgabe am Ende jeder Seite zu ermöglichen, müssen Sie für sie eine Anzahl von
Zeilen reservieren. Benutzen Sie dafür das Feld reservelns einer Struktur vom Typ
lvc_s_prnt und übergeben Sie diese Struktur mit der Methode set_table_for_first_display
[Seite 103].
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
126
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
print_top_of_list
print_top_of_list
Verwendung
Mit diesem Ereignis können Sie bei der Druckausgabe Text mit der WRITE-Anweisung
ausgeben. Es wird einmal vor dem Ereignis print_top_of_page [Seite 128] ausgelöst. Der Text
wird am Anfang der gesamten Liste eingeschoben und bei der Druckansicht angezeigt. Dabei
springt das ALV Grid Control in die Listausgabe des klassischen ALV.
Zu Beginn der Druckausgabe gibt das ALV Control als erstes den Titel der Liste aus,
falls Sie diesen mit dem Feld grid_title der Layout-Struktur festlegen haben.
Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLIS
veranschaulicht die Verwendung von print_top_of_list.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
127
ALV Grid Control (BC-SRV-ALV)
SAP AG
print_top_of_page
print_top_of_page
Verwendung
Mit diesem Ereignis können Sie bei der Druckausgabe Text mit der WRITE-Anweisung
ausgeben. Der Text wird am Anfang der jeweiligen Seite eingeschoben und bei der Druckansicht
angezeigt. Dabei springt das ALV Grid Control in die Listausgabe des klassischen ALV.
Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLIS
veranschaulicht die Verwendung von print_top_of_page.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
128
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
subtotal_text
subtotal_text
Verwendung
Ausgabe von Text im Grid Control bei Zwischensummen, falls das Zwischensummenkriterium
(Spalte, über die der Benutzer die Zwischensumme gebildet hat) ausgeblendet wird. In der
Voreinstellung gibt das ALV Grid Control die Spaltenüberschrift des Zwischensummenkriteriums
aus und den jeweiligen Wert, auf den sich die gebildete Zwischensumme bezieht.
Ereignis-Parameter
Bedeutung
ES_SUBTOTTXT_INFO
Type LVC_S_STXT
Struktur mit Informationen über das Zwischensummenkriterium
EP_SUBTOT_LINE
Type Ref To DATA
Referenzvariable auf die eingefügte Zwischensummenzeile im Grid
Control. Spalten, über die keine Summe gebildet wurde, bleiben
initial.
E_EVENT_DATA
Type Ref To
CL_ALV_EVENT_DATA
Das Attribut M_DATA dieses Objekts ist eine Referenz auf den
Zwischensummentext
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
Beispiel
Sie zeigen bereits eine Tabelle mit Daten den Struktur SFLIGHT in einem ALV Control an. Wir
ändern nun den voreingestellten Zwischensummentext für das Zwischensummenkriterium
Flugzeugtyp der Tabelle SFLIGHT:
1. Definieren und implementieren Sie eine Ereignisbehandlermethode zum Ereignis
subtotal_text. Melden Sie dieses Ereignis mit SET HANDLER an.
2. Rufen Sie innerhalb dieser Methode ein Unterprogramm auf, dem Sie die Ereignisparameter
übergeben.
3. Die Ereignisparameter ep_subtot_line und e_event_data beinhalten
Referenzvariablen auf den allgemeinen Datentyp DATA. In dem Unterprogramm müssen Sie
daher mit Feldsymbolen arbeiten:
FORM method_subtotal_text USING es_subtottxt_info TYPE lvc_s_stxt
ep_subtot_line TYPE REF TO data
e_event_data TYPE REF TO
cl_alv_event_data.
DATA ls_sflight LIKE sflight.
FIELD-SYMBOLS: <fs1> STRUCTURE sflight DEFAULT ls_sflight,
<fs2>.
IF es_subtottxt_info-criteria = 'PLANETYPE'.
ASSIGN ep_subtot_line->* TO <fs1>.
ASSIGN e_event_data->m_data->* TO <fs2>.
April 2001
129
ALV Grid Control (BC-SRV-ALV)
SAP AG
subtotal_text
CONCATENATE es_subtottxt_info-keyword ': '
<fs1>-planetype INTO <fs2>.
ENDIF.
ENDFORM.
" METHOD_SUBTOTAL_TEXT
Ergebnis
Überprüfen Sie Ihr Ergebnis folgendermaßen:
1. Summieren Sie eine Spalte.
2. Bilden Sie Zwischensummen über die Spalte Flugzeugtyp.
3. Blenden Sie die Spalte Flugzeugtyp aus. Verwenden Sie dazu entweder das StandardKontextmenü oder eine neues Layout.
Am Beginn einer Zwischensummenzeile erscheint der neue definierte Text.
130
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
toolbar
toolbar
Verwendung
Dieses Ereignis wird immer dann vom ALV ausgelöst, wenn ein Neuaufbau der Toolbar des
Controls nötig ist. Um die Toolbar um eigene Funktionen zu erweitern, lösen Sie das Ereignis
über die Methode set_toolbar_interactive [Seite 107] auf und schreiben eine
Ereignisbehandlermethode (Siehe auch: Definition von GUI-Elementen in der Toolbar [Seite
22]).
Die gesamte Toolbar kann über das Feld no_toolbar der Layout-Struktur
ausgeblendet werden.
Im Demoreport BCALV_GRID_05 der Entwicklungsklasse SLIS wird eine neue
Drucktaste in die Toolbar aufgenommen.
Ereignis-Parameter
Bedeutung
E_OBJECT
Type Ref To
CL_ALV_EVENT_TOO
LBAR_SET
Das Objekt enthält lediglich ein Attribut mit einer Tabelle für die
Funktionen der Toolbar.
E_INTERACTIVE
Type CHAR01
Wenn dieses Flag gesetzt ist, haben Sie das Ereignis mit der Methode
set_toolbar_interactive ausgelöst. Ist es nicht gesetzt, so
wurde das Ereignis vom ALV Grid Control ausgelöst.
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
April 2001
131
ALV Grid Control (BC-SRV-ALV)
SAP AG
user_command
user_command
Verwendung
Das ALV Grid Control löst dieses Ereignis nur bei selbst definierten Funktionen aus, die der
Benutzer angewählt hat. Fragen Sie bei diesem Ereignis Ihren Funktionskode ab und rufen Sie
Ihre Funktion auf.
Die Funktionskodes Ihrer selbst definierten Funktionen lassen sich auch in den
Ereignissen before_user_command [Seite 112] und after_user_command [Seite 111]
abfragen. Diese Ereignisse löst das Control vor beziehungsweise nach dem Ereignis
user_command aus.
Ereignis-Parameter
E_UCOMM
TYPE SY-UCOMM
Bedeutung
Funktionskode zu selbst definierter Funktion
Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]
132
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Der Feldkatalog
Der Feldkatalog
Definition
Der Feldkatalog ist eine interne Tabelle vom Typ LVC_T_FCAT mit Informationen über die
darzustellenden Felder. Mit Hilfe dieser Tabelle erkennt ALV zum Beispiel den Typ eines Feldes.
Verwendung
Sie können über Felder des Katalogs die Formatierung von Zahlenausgaben und
Spalteneigenschaften der auszugebenen Liste beeinflussen.
In bestimmten Ausnahmefällen ist die Übergabe des Feldkatalogs unnötig (Siehe
auch: Automatischer Aufbau [Seite 135]).
Struktur
Der Feldkatalog enthält mehr als 60 Felder, von denen einige nur interne Verwendung haben.
Die für Anwendungsprogrammierer relevanten Felder sind im Abschnitt Felder des Feldkatalogs
[Seite 140] beschrieben.
Integration
Im Allgemeinen empfiehlt es sich, die Felder des Feldkatalogs vor der ersten Anzeige der Liste
zu füllen und in der Methode set_table_for_first_display [Seite 103] zu übergeben. Um einen von
ALV generierten Feldkatalog vor der Listausgabe an Ihre Bedürfnisse anzupassen, verwenden
Sie den Funktionsbaustein LVC_FIELDCATALOG_MERGE.
Die Methoden get_frontend_fieldcatalog [Seite 75] und set_frontend_fieldcatalog [Seite 94]
erlauben es, den Feldkatalog nach der Listausgabe zu ändern.
Der Report BCALV_GRID_03 in der Entwicklungsklasse SLIS verwendet diesen
Baustein, um Spalten vor der Listanzeige auszublenden.
April 2001
133
ALV Grid Control (BC-SRV-ALV)
SAP AG
Aufbau des Feldkatalogs
Aufbau des Feldkatalogs
Grundsätzlich wird für jede Liste, die über das ALV Control ausgegeben wird, ein Feldkatalog
benötigt. Sie haben verschiedene Möglichkeiten, einen Feldkatalog zu erzeugen:
·
automatisch über eine Struktur des Data Dictionary,
·
manuell im ABAP-Programm oder
·
halbautomatisch durch Kombination der beiden Verfahren.
134
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Automatischer Aufbau
Automatischer Aufbau
Einsatzmöglichkeiten
Wenn die Struktur ihrer Ausgabetabelle einer im Data Dictionary (DDIC) hinterlegten Struktur
entspricht, kann das ALV Control diese Informationen benutzen, um den Feldkatalog
automatisch aufzubauen. In diesem Fall werden alle Felder dieser DDIC-Struktur auf der Liste
angezeigt.
Ablauf
Um die Struktur dem ALV Control zu übergeben, müssen Sie:
1. Die Struktur mit LIKE referenzieren oder in einer eigenen Struktur mit INCLUDE
STRUCTURE inkludieren.
Über INCLUDE STRUCTURE ist es möglich, einen Teil Ihrer Ausgabetabelle
automatisch von ALV erzeugen zu lassen und weitere Felder hinzuzufügen. Der
Abschnitt Halbautomatischer Aufbau [Seite 139] beschreibt die allgemeine
Vorgehensweise hierzu.
2. Die Struktur in der Methode set_table_for_first_display [Seite 103] mit dem Parameter
I_STRUCTURE_NAME dem erzeugten Control übergeben.
Datenbeschreibung
Wenn Sie der Struktur weder weitere Felder hinzufügen noch ausblenden wollen, ist die
Übergabe des Feldkatalogs also nicht nötig (siehe Grafik).
Data
Dictionary
<name>
DDIC
DDIC
Struktur
Struktur
A B C
Set_table_for_first_display
Exporting
INCLUDE STRUCTURE <name>
>> I_STRUCTURE_NAME
oder
DATA ... LIKE <name>
Changing
Ausgabetabelle
<> IT_OUTTAB.
Daten
FLUSH
a1 b 1 c 1
a2 b 2 c 2
a3 b 3 c 3
Interne
Interne
Tabelle
Tabelle
Select * from <name>
April 2001
Angezeigte
Liste:
Dynpro
A B C
a1 b 1 c 1
a2 b 2 c 2
a3 b 3 c 3
Instanz eines
ALV Control
Container
Containermit
mit
integriertem
integriertem
ALV
ALVControl
Control
(über Container
mit dem Dynpro
verlinkt)
135
ALV Grid Control (BC-SRV-ALV)
SAP AG
Automatischer Aufbau
136
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Manueller Aufbau
Manueller Aufbau
Einsatzmöglichkeiten
Es kann sein, daß die Daten, die Sie anzeigen wollen, nicht oder nur teilweise durch eine
Struktur im Data Dictionary repräsentiert sind. Dann müssen Sie über die Felder des
Feldkatalogs die Struktur der Ausgabetabelle beschreiben.
Ablauf
Der Feldkatalog ist über den Tabellentyp LVC_T_FCAT im Data Dictionary definiert. Jede Zeile
der Feldkatalog-Tabelle erklärt ein Feld in Ihrer Ausgabetabelle. Für ein Feld müssen Sie - ja
nachdem ob eine Referenzstruktur im DDIC existiert oder nicht - mindestens folgende Felder der
Feldkatalogstruktur füllen:
Obligatorische Felder des Feldkatalogs
Felder der Ausgabetabelle
mit Bezug zum DDIC
Felder der Ausgabetabelle
ohne Bezug zum DDIC
FIELDNAME
FIELDNAME
Bedeutung
Name des Feldes der internen
Ausgabetabelle
REF_TABNAME
Name der DDICReferenzstruktur
REF_FIELDNAME
Name des DDIC
Referenzfeldes (nur nötig, falls
es von FIELDNAME abweicht)
INTTYPE
ABAP-Datentyp des Feldes
der internen Ausgabetabelle
OUTPUTLEN
Spaltenbreite
COLTEXT
Spaltenüberschrift
SELTEXT
Spaltenbezeichnung in der
Spaltenauswahl zum Layout
Siehe auch: Texte im Feldkatalog [Extern]
Sie übergeben den Feldkatalog mit Hilfe des Parameters IT_FIELDCATALOG (siehe Grafik).
April 2001
137
ALV Grid Control (BC-SRV-ALV)
SAP AG
Datenbeschreibung
Manueller Aufbau
Feldkatalog
Feldkatalog
A TypA ...
B TypB ...
Set_table_for_first_display
C TypC ...
Changing
<> IT_FIELDCATALOG
Ausgabetabelle
<> IT_OUTTAB.
Daten
Interne
Interne
Tabelle
Tabelle
Select * from <name>
138
FLUSH
a1 b 1 c 1
a2 b 2 c 2
a3 b 3 c 3
Angezeigte
Liste:
Dynpro
A B C
a1 b 1 c 1
a2 b 2 c 2
a3 b 3 c 3
Instanz eines
ALV Control
Container
Containermit
mit
integriertem
integriertem
ALV
ALVControl
Control
(über Container
mit dem Dynpro
verlinkt)
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Halbautomatischer Aufbau
Halbautomatischer Aufbau
Einsatzmöglichkeiten
Beim halbautomatischen Aufbau des Feldkatalogs kombinieren Sie Struktur-Informationen des
Data Dictionary mit eigenen. Dabei können Sie den mit Hilfe der DDIC-Struktur automatisch
erzeugten Feldkatalog:
·
modifizieren und/oder
·
um Strukturbeschreibungen neuer Felder erweitern.
Diese Methode ist zum Beispiel in folgenden Szenarien hilfreich:
Sie wollen eine Tabelle des Data Dictionary anzeigen, dabei aber anfangs nicht alle
möglichen Spalten anzeigen (über das Feld NO_OUT des Feldkatalogs).
Sie wollen zusätzliche Spalten mit Ikonen oder anderen Informationen anzeigen. In
der Tabelle des Abschnitts Manueller Aufbau [Seite 137] finden Sie die obligatorisch
zu füllenden Felder. Dort wird auch erklärt, wie Sie Texte für eine neue Spalte
definieren können.
Ablauf
Um einen Feldkatalog halbautomatisch aufzubauen, gehen Sie folgendermaßen vor:
1. Deklarieren Sie eine interne Tabelle vom Typ LVC_T_FCAT.
2. Rufen Sie den Funktionsbaustein LVC_FIELDCATALOG_MERGE auf und übergeben Sie die
DDIC-Struktur der Ausgabetabelle und die interne Tabelle für den Feldkatalog. Der
Funktionsbaustein generiert den Feldkatalog und füllt die interne Tabelle entsprechend.
3. Lesen Sie die Zeilen, die Sie ändern möchten, und passen Sie die Felder entsprechend an.
Enthält Ihre Ausgabetabelle mehr Felder als im Data Dictionary hinterlegt, müssen Sie im
Feldkatalog pro neues Feld eine Zeile anhängen.
Um die Ausgabetabelle mit den Einstellungen des Feldkatalogs anzuzeigen, übergeben Sie den
Feldkatalog in der Methode set_table_for_first_display [Seite 103].
April 2001
139
ALV Grid Control (BC-SRV-ALV)
SAP AG
Felder des Feldkatalogs
Felder des Feldkatalogs
Die folgende Tabelle ordnet die Felder nach ihrer Verwendung. Informationen über eine minimale
Auswahl von nötigen Feldern im Feldkatalog erhalten Sie im Abschnitt Manueller Aufbau [Seite
137].
Mit dem Feld FIELDNAME des Feldkatalogs stellen Sie den Bezug zu einem Feld in der
Ausgabetabelle her. Alle Einstellungen, die über Felder in der gleichen Zeile des Feldkatalogs
vorgenommen werden, beziehen sich auf die in FIELDNAME angegebene Ausgabespalte.
Intern arbeitet das ALV Grid Control mit dem Feld COL_ID, um Spalten am Frontend
zu identifizieren.
Alphabetischer Index
Feldname
Kurzbeschreibung
Sparte
CFIELDNAME
Feldname für referenzierte
Währungseinheit
Darstellung von Werten mit
Währungs-/Mengeneinheit
[Seite 146]
CHECKBOX
Ausgabe als Checkbox
Ausgabeoptionen einer
Spalte [Seite 149]
COL_ID
Numerische Identifizierung der Spalte
(read-only)
Bezug zur Ausgabetabelle
[Seite 144]
COL_POS
Position der Ausgabespalte
Ausgabeoptionen einer
Spalte [Seite 149]
COLDDICTXT
Festlegung DDIC-Textbezug
Texte [Seite 156]
COLTEXT
Spaltenbezeichner für Dialogfunktionen
Texte [Seite 156]
CURRENCY
Währungseinheit
Darstellung von Werten mit
Währungs-/Mengeneinheit
[Seite 146]
DD_OUTLEN
Ausgabelänge in Character
Parameter für Felder ohne
DDIC-Bezug [Seite 159]
DECIMALS_O
Anzahl Dezimalstellen für Ausgabe
Formatierung von
Spalteninhalten [Seite 153]
DECMLFIELD
Feldname mit DECIMALS-Angabe
Formatierung von
Spalteninhalten [Seite 153]
DO_SUM
Werte der Spalte summieren
Ausgabeoptionen einer
Spalte [Seite 149]
DRAGDROPID
Drag&Drop Handle für DragDrop Objekt
Sonstige Felder [Seite 161]
EDIT_MASK
EditMask für Ausgabe
Formatierung von
Spalteninhalten [Seite 153]
140
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Felder des Feldkatalogs
EMPHASIZE
Spalte farblich hervorheben
Ausgabeoptionen einer
Spalte [Seite 149]
EXPONENT
Exponent für Float-Darstellung
Formatierung von
Spalteninhalten [Seite 153]
FIELDNAME
Feldname internes Tabellenfeld
Bezug zur Ausgabetabelle
[Seite 144]
HOTSPOT
SingleClick sensitiv
Ausgabeoptionen einer
Spalte [Seite 149]
HREF_HNDLE
Hyperlink zuordnen
Ausgabeoptionen einer
Spalte [Seite 149]
ICON
Ausgabe als Ikone
Formatierung von
Spalteninhalten [Seite 153]
INTLEN
Interne Länge in Bytes
Parameter für Felder ohne
DDIC-Bezug [Seite 159]
INTTYPE
ABAP-Datentyp (C,D,N,...)
Parameter für Felder ohne
DDIC-Bezug [Seite 159]
JUST
Ausrichtung
Formatierung von
Spalteninhalten [Seite 153]
KEY
Schlüsselspalte
Ausgabeoptionen einer
Spalte [Seite 149]
LOWERCASE
Kleinbuchstaben erlaubt/nicht erlaubt
Ausgabeoptionen einer
Spalte [Seite 149]
LZERO
Führende Nullen ausgeben
Formatierung von
Spalteninhalten [Seite 153]
NO_MERGING
Zellen nicht mehr verschmelzen
Ausgabeoptionen einer
Spalte [Seite 149]
NO_OUT
Spalte wird nicht ausgegeben
Ausgabeoptionen einer
Spalte [Seite 149]
NO_SIGN
Vorzeichen bei Ausgabe unterdrücken
Formatierung von
Spalteninhalten [Seite 153]
NO_SUM
Keine Aggregation über die Werte der
Spalte
Ausgabeoptionen einer
Spalte [Seite 149]
NO_ZERO
Nullen bei Ausgabe unterdrücken
Formatierung von
Spalteninhalten [Seite 153]
OUTPUTLEN
Spaltenbreite in Character
Ausgabeoptionen einer
Spalte [Seite 149]
QFIELDNAME
Feldname für referenzierte Mengeneinheit
Darstellung von Werten mit
Währungs-/Mengeneinheit
[Seite 146]
April 2001
141
ALV Grid Control (BC-SRV-ALV)
SAP AG
Felder des Feldkatalogs
QUANTITY
Mengeneinheit
Darstellung von Werten mit
Währungs-/Mengeneinheit
[Seite 146]
REF_FIELD
Referenzfeldname für internes
Tabellenfeld
Bezug zum Data Dictionary
[Seite 145]
REF_TABLE
Referenztabellenname für internes
Tabellenfeld
Bezug zum Data Dictionary
[Seite 145]
REPREP
Ausprägung ist Selektionskriterium für
Bericht-/Bericht-Schnittstelle
Sonstige Felder [Seite 161]
REPTEXT
Überschrift (DDIC-Text des
entsprechenden Datenelements)
Texte [Seite 156]
ROLLNAME
Datenelement für F1-Hilfe
Parameter für Felder ohne
DDIC-Bezug [Seite 159]
ROUND
ROUND-Wert
Formatierung von
Spalteninhalten [Seite 153]
ROUNDFIELD
Feldname mit ROUND-Angabe
Formatierung von
Spalteninhalten [Seite 153]
SCRTEXT_L
Feldbezeichner lang (DDIC-Text des
entsprechenden Datenelements)
Texte [Seite 156]
SCRTEXT_M
Feldbezeichner mittel (DDIC-Text des
entsprechenden Datenelements)
Texte [Seite 156]
SCRTEXT_S
Feldbezeichner kurz (DDIC-Text des
entsprechenden Datenelements)
Texte [Seite 156]
SELDDICTXT
Festlegung DDIC-Textbezug
Texte [Seite 156]
SELTEXT
Spaltenbezeichner für Dialogfunktionen
Texte [Seite 156]
SP_GROUP
Gruppenschluessel
Sonstige Felder [Seite 161]
STYLE
Ausgabe als Drucktaste
Ausgabeoptionen einer
Spalte [Seite 149]
SYMBOL
Ausgabe als Symbol
Formatierung von
Spalteninhalten [Seite 153]
TECH
Technisches Feld
Ausgabeoptionen einer
Spalte [Seite 149]
TIPDDICTXT
Festlegung DDIC-Textbezug
Texte [Seite 156]
TOOLTIP
Tooltip für Spaltenüberschrift
Texte [Seite 156]
TXT_FIELD
Feldname internes Tabellenfeld
Sonstige Felder [Seite 161]
WEB_FIELD
Feldname internes Tabellenfeld (für
Hyperlink)
Ausgabeoptionen einer
Spalte [Seite 149]
142
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Felder des Feldkatalogs
April 2001
143
ALV Grid Control (BC-SRV-ALV)
SAP AG
Bezug zur Ausgabetabelle
Bezug zur Ausgabetabelle
Feldna
me
Komp.-Typ
Dtyp(Lä
nge)
Wertebereich
Verwendung
COL_ID
LVC_COLID
INT4(
10)
Natürliche Zahl
Char(
30)
Feldname der
Ausgabetabelle
(obligatorisch)
Auf dieses Feld dürfen Sie nur lesend
zugreifen. Es wird seit Release 4.6C für den
Zugriff auf Spalten der Ausgabetabelle
verwendet (an Stelle des Feldnamens). Sie
benötigen es zum Beispiel, wenn Sie die
Methode get_selected_cells_id [Seite 79]
oder set_selected_cells_id [Seite 99]
verwenden.
FIELDN
AME
LVC_FNAME
Mit diesem Feld ordnen Sie einen Feldnamen
Ihrer Ausgabetabelle einer Zeile des
Feldkatalogs zu. Alle Einstellungen, die Sie in
dieser Zeile vornehmen, beziehen sich auf die
korrespondierende Spalte der Ausgabetabelle.
144
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Bezug zum Data Dictionary
Bezug zum Data Dictionary
Feldna
me
Komp.-Typ
Dtyp(L
änge)
Wertebereich
Verwendung
REF_FI
ELD
LVC_RFNAME
Char(
30)
SPACE, Name eines
Feldes im Data
Dictionary, das zu einem
Feld der Ausgabetabelle
korrespondiert
Char(
30)
SPACE, Name einer
Struktur oder Tabelle aus
dem Data Dictionary, das
zu einem Feld der
Ausgabetabelle
korrespondiert.
Dieses Feld ist zu füllen, falls:
·
das durch den aktuellen Eintrag im
Feldkatalog beschriebene Feld der
Ausgabetabelle ein korrespondierendes
Feld im Data Dictionary hat und
·
der Feldname in der Ausgabetabelle vom
Feldnamen des Feldes im Data
Dictionary abweicht.
Sind die Feldnamen identisch, ist die
Nennung der DDIC-Struktur oder Tabelle im
Feld REF_TABLE des Feldkatalogs
ausreichend.
REF_T
ABLE
LVC_RTNAME
Dieses Feld ist nur zu füllen, wenn das durch
den aktuellen Eintrag im Feldkatalog
beschriebene Feld der Ausgabetabelle ein
korrespondierendes Feld im Data Dictionary
hat. Mit Hilfe dieser Zuordnung kann das ALV
Grid Control zum Beispiel den Text für die
Spaltenüberschrift aus dem Dictionary
übernehmen.
April 2001
145
ALV Grid Control (BC-SRV-ALV)
SAP AG
Darstellung von Werten mit Währungs-/Mengeneinheit
Darstellung von Werten mit Währungs-/Mengeneinheit
Verwendung
Es gibt Werte von Ausgabefeldern, die sich auf Einheiten (z.B.: Kilogram) oder Währungen (z.B.:
Euro) beziehen. Damit eine einheitsgerechte Ausgabe dieser Werte (d.h. mit richtiger Anzahl von
Nachkommastellen) möglich ist, müssen Sie solche Felder einer Währung oder einer Einheit
zuordnen. Dafür gibt es im Feldkatalog drei Möglichkeiten:
·
Zuordnung des Wertefeldes zu einem zugehörigen Währungs- bzw. Einheitsfeld
·
Explizite Angabe einer Währung bzw. Einheit für die gesamte Spalte
·
manuelle Formatierung des Wertefeldes (siehe dazu: Formatierung von Spalteninhalten
[Seite 153])
Bezug zu einem Währungs- oder Einheitsfeld
Über die Felder CFIELDNAME bzw. QFIELDNAME (s.u.) ordnen sie Wertefelder einem Währungsoder Einheitsfeld zu. Bei der Summenbildung über die Spalte bewirkt diese Zuordnung, daß für
jede Einheit die Summe getrennt angezeigt wird.
Für das Einheitsfeld gibt es ebenfalls einen Eintrag im Feldkatalog. Soll die Einheit nicht als
Spalte in der Liste erscheinen und auch nicht als Spalte interaktiv einzublenden sein, kann der
Feldkatalogeintrag für das Einheitsfeld über das Setzen des Feldes TECH als technisches Feld
gekennzeichnet werden. Dies ist zum Beispiel sinnvoll, wenn die Einheit immer eindeutig ist und
deshalb im Listenkopf durch den Aufrufer explizit ausgegeben wird
Für initiale Werte- oder Einheitsfelder ist folgendes zu beachten:
Summierung und Darstellung von Wertfeldern
Wer
t
des
Ein
heit
sfel
des
We
rt
de
s
We
rtf
eld
es
146
nich
t
initia
l
initial
nich
t
initia
l
Einheitsgerechte Darstellung der
Nachkommastellen in der Liste und
in der Summe.
ALV führt für solche Zellen die Einheit
SPACE ein. In der Summenausgabe
wird diese Einheit als eigene Einheit
aufgeführt.
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Darstellung von Werten mit Währungs-/Mengeneinheit
initia
l
Einheitsgerechte Ausgabe als '0'
(sofern das Feld NO_ZERO des
Feldkatalogs initial). Beim
Summieren rechnet ALV mit dem
Wert '0' und der angegebenen
Einheit.
Ausgabe als SPACE. Beim Summieren
wird das Wertfeld ignoriert.
Währung bzw. Einheit für die gesamte Spalte
Für Felder, die für alle Werte in der Spalte die gleiche Mengen- oder Währungseinheit benutzen,
gibt es die Felder CURRENCY und QUANTITY im Feldkatalog (s.u.). Mit diesen Feldern setzen Sie
für Ihr Wertfeld eine Einheit fest (z.B. DEM bzw. KG). Diese Methode ist sinnvoll, wenn es nur eine
Einheit oder Währung für die Spalte gibt (z.B., weil diese vorher über ein Eingabefeld vom
Benutzer ausgewählt wurde). In diesem Fall benötigt die Ausgabetabelle kein weiteres Feld.
Voraussetzungen
Für das Wertfeld ist folgendes zu beachten:
·
Das Feld ist vom ABAP-Datentyp P (siehe auch INTTYPE in Parameter für Felder ohne
DDIC-Bezug [Seite 159]).
·
Es gibt ein Feld in der internen Ausgabetabelle, das die zugehörige Einheit enthält.
Relevante Felder im Feldkatalog
Feldna
me
Komp.-Typ
Dtyp(L
änge)
Wertebereich
Verwendung
CFIELD
NAME
LVC_CFNAME
Char(
30)
SPACE, Name eines
Feldes der
Ausgabetabelle
Char(
5)
SPACE, Name einer
Währung
Bezug zu Währungseinheiten herstellen. ALV
verknüpft das im Feld FIELDNAME
angegebene Feld mit dem in CFIELDNAME
angegebenen Feld für Währungseinheiten.
Das in CFIELDNAME genannte Feld muß
einen eigenen Eintrag im Feldkatalog haben.
CURRE
NCY
LVC_CURR
Explizite Angabe einer Währung (z.B. DEM,
USD). ALV stellt die Werte für die in
FIELDNAME angegebene Spalte nach den
Konventionen dieser Währung dar.
April 2001
147
ALV Grid Control (BC-SRV-ALV)
SAP AG
Darstellung von Werten mit Währungs-/Mengeneinheit
QFIEL
DNAM
E
LVC_QFNAME
Char(
30)
SPACE, Name eines
Feldes der
Ausgabetabelle
Char(
3)
SPACE, Name einer
Einheit
Bezug zu Mengeneinheiten herstellen. ALV
verknüpft das im Feld FIELDNAME
angegebene Feld mit dem in QFIELDNAME
angegebenen Feld für Mengeneinheiten. Das
in QFIELDNAME genannte Feld muß einen
eigenen Eintrag im Feldkatalog haben.
QUANT
ITY
LVC_QUAN
Explizite Angabe einer Einheit (z.B. KG). ALV
stellt die Werte für die in FIELDNAME
angegebene Spalte nach den Konventionen
dieser Einheit dar.
148
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Ausgabeoptionen einer Spalte
Ausgabeoptionen einer Spalte
Feldna
me
Komp.-Typ
Dtyp(L
änge)
Wertebereich
Verwendung
CHECK
BOX
LVC_CHECKB
CHAR
(1)
SPACE, 'X'
INT4(
10)
natürliche Zahl
Ausgabe eines Ankreuzfeldes. Das
Ankreuzfeld kann durch den Benutzer nicht
verändert werden. Der Parameter
sel_mode der Layout-Struktur ermöglicht
es dem Benutzer mehrere Zeilen im Grid
Control zu markieren (siehe auch:
get_selected_rows [Seite 81]).
COL_P
OS
LVC_COLPOS
Nur relevant, wenn die relativen
Spaltenpositionen bei der ersten Anzeige von
der Reihenfolge der Felder im Feldkatalog
abweichen sollen.
Der Parameter legt die relative
Spaltenposition des Feldes bei der
Listenausgabe fest. Die Spaltenanordnung
kann interakiv durch den Benutzer geändert
werden. Ist dieser Parameter für jeden
Feldkatalogeintrag initial, so entspricht der
Spaltenaufbau der Reihenfolge der Felder im
Feldkatalog.
DO_SU
M
LVC_DOSUM
Char(
1)
SPACE, 'X'
Char(
4)
SPACE, 'X' oder 'Cxyz'
(x:'1'-'9'; y,z: '0'=off '1'=on)
Ist dieses Feld gesetzt, bildet ALV über
dieses Feld die Summe. (Entspricht der
generischen Summenfunktion der Toolbar).
EMPHA
SIZE
LVC_EMPHSZ
April 2001
149
ALV Grid Control (BC-SRV-ALV)
SAP AG
Ausgabeoptionen einer Spalte
Wird das Feld mit 'X' gesetzt, benutzt ALV
eine voreingestellte Farbe zum Hervorheben
der Spalte. Fängt das Character-Feld mit 'C'
an (Farbkodierung), haben die restlichen
Zahlen die folgende Bedeutung:
·
x: Farbnummer
·
y: intensivierte Darstellung an/aus
·
z: inverse Darstellung an/aus
Weitere Informationen zur Farbkodierung
finden Sie in der F1-Hilfe zur FORMATAnweisung.
HOTSP
OT
LVC_HOTSPT
Char(
1)
SPACE, 'X'
Ist dieses Feld gesetzt, werden alle Zellen
dieser Spalte Hotspot-sensitiv.
HREF_
HNDL
INT4
INT4(
10)
Natürliche Zahl
Char(
1)
SPACE, 'X'
Char(
1)
SPACE, 'X'
Char(
1)
SPACE, 'X'
Handle, dem eine URL zugeordnet ist. Das
ALV Grid Control stellt alle Zellen der Spalte
als Hyperlink dar. Die Zieladresse des
Hyperlinks müssen Sie in einer Tabelle vom
Typ LVC_T_HYPE pflegen und mit der
Methode set_table_for_first_display [Seite
103] übergeben.
KEY
LVC_KEY
Ist dieses Feld gesetzt, kennzeichnet das
ALV Grid Control die Spalte farblich als
Schlüsselfeld und fixiert diese Spalten beim
horizontalen Scrollen. Die Reihenfolge der
Schlüsselspalten im ALV Grid Control läßt
sich interaktiv verändern. Im Gegensatz zum
SAP List Viewer können Sie Schlüsselspalten
im ALV Grid Control direkt mit NO_OUT
ausblenden (das Feld KEY_SEL entfällt).
LOWE
RCASE
LOWERCASE
Falls gesetzt, erkennt das ALV Grid Control
Groß-/Kleinschreibung in der Ausgabetabelle.
Dies hat zum Beispiel Auswirkungen bei der
Sortierung von Feldern.
NO_OU
T
150
LVC_NOOUT
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Ausgabeoptionen einer Spalte
Über das Setzen dieses Feldes blenden Sie
die zugehörige Spalte aus der Liste aus. Das
steht dem Benutzer weiterhin im Feldvorrat
zur Verfügung und kann interaktiv als
Anzeigefeld ausgewählt werden. ALV zeigt
Inhalte ausgeblendeter Felder im
Detailfenster für einer Zeile im Grid Control
an.
NO_ME
RGING
CHAR01
Char(
1)
SPACE, 'X'
Char(
1)
SPACE, 'X'
Falls gesetzt, werden beim Sortieren dieser
Spalte die Zellen mit gleichem Wert nicht
mehr zu einer Zelle verschmolzen.
NO_SU
M
LVC_NOSIGN
Über das Setzen dieses Feldes sperren Sie
das Summieren des zugehörigen Feldes.
OUTPU
TLEN
LVC_OUTLEN
Numc
(6)
0 (Voreinstellung), n
RAW(
4)
Attribut
CL_GUI_ALV_GRID=>MC_
STYLE_BUTTON
Char(
1)
SPACE, 'X'
Char(
30)
Name eines Feldes der
Ausgabetabelle
Legt die Spaltenbreite des Feldes fest:
STYLE
·
Hat das Feld einen Bezug zum Data
Dictionary, können Sie das Feld initial
belassen. ALV übernimmt in diesem Fall
die Ausgabelänge der zugehörigen
Domäne.
·
Für Felder ohne DDIC-Bezug müssen
Sie hier die gewünschte
Feldausgabelänge festlegen.
LVC_STYLE
Darstellung aller Zellen dieser Spalte als
Drucktaste. Wenn ein Benutzer auf die
Drucktaste klickt, wird das Ereignis
button_click [Seite 113] ausgelöst.
TECH
LVC_TECH
Falls gesetzt, wird das zugehörige Feld nicht
auf der Liste ausgegeben und ist auch nicht
interaktiv einzublenden. Das Feld ist nur im
Feldkatalog bekannt. (Es darf zum Beispiel
nicht im Sortierkriterium angegeben werden).
WEB_F
IELD
LVC_NAME
April 2001
151
ALV Grid Control (BC-SRV-ALV)
SAP AG
Ausgabeoptionen einer Spalte
Über dieses Feld können Sie Hyperlinks auf
Zellenebene definieren [Seite 37].
152
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Formatierung von Spalteninhalten
Formatierung von Spalteninhalten
Die Felder DECIMALS_O, EDIT_MASK, EXPONENT, NO_SIGN und ROUND
entsprechen den WRITE-Zusätzen DECIMALS, USING EDIT MASK, EXPONENT,
NO-SIGN und ROUND. Dokumentation zu Kombinationen dieser Felder mit den
Feldern CURRENCY und QUANTITY (bei WRITE: UNIT) entnehmen Sie bitte der F1Dokumentation zur WRITE-Aufbereitungsoption.
Feldna
me
Komp.-Typ
Dtyp(Lä
nge)
Wertebereich
Char(6
)
initial, natürliche Zahl
Char(3
0)
SPACE, Feldname
der Ausgabetabelle
Char(6
0)
SPACE, conv
(Konvertierungs-Exit)
Verwendung
DECIM
ALS_O
LVC_DECMLS
Nur relevant, wenn dem Feld kein
Währungsfeld zugeordnet ist und CURRENCY
nicht belegt ist. Der Wert in diesem Feld
bestimmt die Anzahl der auszugebenden
Nachkommastellen.
DECMF
IELD
LVC_DFNAME
Zeilenweise Definition der Nachkommastellen.
Über ein zusätzliches Feld in der
Ausgabetabelle können Sie festlegen, wieviel
Nachkommastellen in der jeweiligen Zeile
ausgegeben werden.
EDIT_M
ASK
LVC_EDTMSK
Durch das Setzen eines Konvertierungs-Exits
(zum Beispiel conv = '==ALPHA' für den
Funktionsbaustein
CONVERSION_EXIT_ALPHA_OUTPUT) wird eine
Ausgabekonvertierung zum zugehörigen
Ausgabefeld erzwungen. (Siehe auch
Dokumentation zur WRITE-Aufbereitungsoption
USING EDIT MASK).
Siehe auch: Verwendung des
Konvertierungsexit [Seite 41]
EXPON
ENT
April 2001
LVC_EXPONT
Char(3
)
initial, ganze Zahl
153
ALV Grid Control (BC-SRV-ALV)
SAP AG
Formatierung von Spalteninhalten
Legt einen festen Exponenten für das Feld fest.
Das Feld muß vom internen Typ F sein. (Siehe
auch F1-Dokumentation zur WRITEAufbereitungsoption EXPONENT).
ICON
LVC_ICON
Char(1
)
SPACE, 'X'
Char(1
)
SPACE, 'R', 'L','C'
Char(1
)
SPACE, 'X'
Falls dieses Feld gesetzt ist, wird der
Spalteninhalt der Ausgabetabelle als Ikone
ausgegeben. Der Spalteninhalt muß aus
gültigen Ikonen-Strings (@xx@ oder
@xx\Q<Quickinfo>@) bestehen.
Hierbei sollten Sie die Problematik um die
Druckbarkeit von Ikonen berücksichtigen.
JUST
LVC_JUST
Nur relevant für Felder des Datantyps CHAR
oder NUMC.
Ausrichtungen:
·
'R': rechtsbündig
·
'L': linksbündig
·
'C': zentriert
Die Ausrichtung der Spaltenüberschrift richtet
sich immer nach der Ausrichtung des
Spalteninhalts. Eine davon unabhängige
Ausrichtung der Spaltenüberschrift ist nicht
möglich.
LZERO
LVC_LZERO
Nur relevant für Felder des Datentyps NUMC, die
das ALV Control in der Voreinstellung
rechtsbündig ohne führende Nullen ausgibt.
Durch Setzen von LZERO werden führende
Nullen ausgegeben.
NO_SI
GN
LVC_NOSIGN
Char(1
)
SPACE, 'X'
Char(1
)
SPACE, 'X'
Nur relevant für Wertfelder. Das Setzen von NOSIGN bewirkt eine Wertausgabe ohne
Vorzeichen (siehe auch F1-Dokumentation zu
den WRITE-Aufbereitungsoptionen).
NO_ZE
RO
154
LVC_NOZERO
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Formatierung von Spalteninhalten
Falls NO_ZERO gesetzt ist, werden für initiale
Wertefelder keine Nullen ausgegeben. Die Zelle
bleibt dann leer.
ROUND
LVC_ROUND
Char(1
0)
initial, natürliche Zahl
Um Zehnerpotenzen skalierte Ausgabe eines
Wertes vom Typ P. Bei positiven Werten von
ROUND verschiebt das ALV Grid Control das
Komma nach links, sonst nach rechts.
(Siehe auch F1-Dokumentation zu den
WRITE-Aufbereitungsoptionen)
ROUND
FIELD
LVC_RNDFN
Char(3
0)
Zeilenweise Definition der skalierten Ausgabe.
Über ein zusätzliches Feld in der
Ausgabetabelle können Sie festlegen, wie das
zugehörige Feld in der jeweiligen Zeile skaliert
wird.
SYMBO
L
LVC_SYMBOL
Char(1
)
SPACE, 'X'
Falls gesetzt, wird der Spalteninhalt als Symbol
ausgegeben.
Der Spalteninhalt der internen Ausgabetabelle
muß aus gültigen Symbolzeichen bestehen.
Hierbei sollte der Aufrufer die Problematik um
die Druckbarkeit von Symbolen berücksichtigen.
(Symbole sind generell druckbar, werden aber in
Abhängigkeit von der Druckerkonfiguration nicht
in jedem Fall korrekt ausgegeben).
April 2001
155
ALV Grid Control (BC-SRV-ALV)
SAP AG
Texte
Texte
Mit diesen Feldern steuern Sie, welche Texte das ALV Control
·
als Spaltenüberschrift,
·
als Tooltip (Informationstext, der erscheint, wenn der Benutzer den Mauszeiger über die
Spalte positioniert)
·
und als Spaltenauswahltext (im Popup zur Definition eines Layout, einer Sortierung oder
eines Filters)
benutzt.
Der Abschnitt Texte im Feldkatalog [Extern] klärt wie die Felder zueinander in
Beziehung stehen.
Feldna
me
Komp.-Typ
Dtyp(L
änge)
Wertebereich
Char(
1)
SPACE, 'L', 'M', 'S' und 'R'
Char(
40)
Frei definierbarer Text
Char(
55)
Übernommener Text aus
dem Data Dictionary
Char(
40)
Übernommener Text aus
dem Data Dictionary
Verwendung
COLDD
ICTXT
LVC_DDICT
Nur relevant für Felder mit Bezug zum Data
Dictionary. Mit den Werten 'L', 'M', 'S' oder 'R'
bestimmen Sie, ob SCRTEXT_L, SCRTEXT_M,
SCRTEXT_S oder REPTEXT als
Spaltenüberschrift verwendet wird.
COLTE
XT
LVC_TXT
Bestimmt die Spaltenüberschrift der Spalte.
Dieses Feld sollten Sie belegen, wenn kein
Bezug zum Data Dictionary besteht.
REPTE
XT
REPTEXT
Nur relevant für Felder mit Bezug zum Data
Dictionary. Für solche Felder übernimmt das
ALV Control den Feldbezeichner für die
Überschrift des entsprechenden
Datenelements in dieses Feld.
SCRTE
XT_L
156
SCRTEXT_L
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Texte
Nur relevant für Felder mit Bezug zum Data
Dictionary. Für solche Felder übernimmt das
ALV Control den langen Feldbezeichner des
entsprechenden Datenelements in dieses
Feld.
SCRTE
XT_M
SCRTEXT_M
Char(
20)
Übernommener Text aus
dem Data Dictionary
Char(
10)
Übernommener Text aus
dem Data Dictionary
Char(
1)
SPACE, 'L', 'M', 'S' und 'R'
Nur relevant für Felder mit Bezug zum Data
Dictionary. Für solche Felder übernimmt das
ALV Control den mittleren Feldbezeichner
des entsprechenden Datenelements in dieses
Feld.
SCRTE
XT_S
SCRTEXT_S
Nur relevant für Felder mit Bezug zum Data
Dictionary. Für solche Felder übernimmt das
ALV Control den kurzen Feldbezeichner des
entsprechenden Datenelements in dieses
Feld.
SELDDI
CTXT
LVC_DDICT
Nur relevant für Felder mit Bezug zum Data
Dictionary. Mit den Werten 'L', 'M', 'S' oder 'R'
bestimmen Sie, ob SCRTEXT_L, SCRTEXT_M,
SCRTEXT_S oder REPTEXT als Text für die
Spaltenauswahl verwendet wird.
SELTE
XT
LVC_TXT
Char(
40)
Frei definierbarer Text
Bestimmt den Text, der in der Spaltenauswahl
für die Spalte verwendet wird. Dieses Feld
sollten Sie belegen, wenn kein Bezug zum
Data Dictionary besteht.
TIPDDI
CTXT
LVC_DDICT
Char(
1)
SPACE, 'L', 'M', 'S' und 'R'
Nur relevant für Felder mit Bezug zum Data
Dictionary. Mit den Werten 'L', 'M', 'S' oder 'R'
bestimmen Sie, ob SCRTEXT_L, SCRTEXT_M,
SCRTEXT_S oder REPTEXT als Tooltip
verwendet wird.
TOOLTI
P
LVC_TIP
Char(
40)
Frei definierbarer Text
Bestimmt den Text, der als Tooltip für die
Spalte verwendet wird. Dieses Feld sollten Sie
belegen, wenn kein Bezug zum Data
Dictionary besteht.
April 2001
157
ALV Grid Control (BC-SRV-ALV)
SAP AG
Texte
158
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Parameter für Felder ohne DDIC-Bezug
Parameter für Felder ohne DDIC-Bezug
Siehe auch: Texte [Seite 156]
Feldna
me
Komp.-Typ
Dtyp(L
änge)
Wertebereich
Verwendung
DD_OU
TLEN
LVC_DDLEN
NUM
C(6)
0 (initial), n
NUM
C(6)
0 (initial), n
Char(
1)
ABAP-Datentyp, siehe
Wertebereich der Domäne
INTTYPE
Char(
30)
SPACE, Name eines
Datenelements aus dem
Data Dictionary
Über dieses Feld geben Sie die
Feldausgabelänge der externen Darstellung
an. Dies ist nur relevant für Felder ohne
Bezug zum Data Dictionary, deren Ausgabe
dennoch über einen Konvertierungsexit
modifiziert werden soll (siehe Verwendung
des Konvertierungsexit [Seite 41]).Die
Spaltenbreite (Feld OUTPUTLEN des
Feldkatalogs) muß nicht der Ausgabelänge
der externen Darstellung (DD_OUTLEN)
entsprechen.
INTLEN
INTLEN
Über dieses Feld geben Sie die
Feldausgabelänge der internen Darstellung
an. Dies ist nur relevant für Felder ohne
Bezug zum Data Dictionary, deren Ausgabe
dennoch über einen Konvertierungsexit
modifiziert werden soll (siehe Verwendung
des Konvertierungsexit [Seite 41]).
INTTYP
E
INTTYPE
Nur nötig für Felder ohne Bezug zum Data
Dictionary.
ROLLN
AME
LVC_ROLL
April 2001
159
ALV Grid Control (BC-SRV-ALV)
SAP AG
Parameter für Felder ohne DDIC-Bezug
Soll auch für ein Ausgabefeld ohne Bezug
zum Data Dictionary eine F1-Hilfe ermöglicht
werden, bzw. für ein Feld mit Bezug zum
Data Dictionary eine vom Data Dictionary
abweichende F1-Hilfe hinterlegt werden, so
kann das über dieses Feld geschehen. Bei
Aufruf der F1-Hilfe auf diesem Feld, wird die
Dokumentation zum zugewiesenen
Datenelement angezeigt.
Ist bei Feldern mit Bezug zum Data
Dictionary ROLLNAME initial, so wird die
Dokumentation zum Datenelement des
referierten Feldes aus dem Data Dictionary
ausgegeben.
160
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Sonstige Felder
Sonstige Felder
Feldna
me
Komp.-Typ
Dtyp(Lä
nge)
Wertebereich
INT4(1
0)
Drag&Drop-Handle
Char(1
)
SPACE, 'X'
Char(4
)
SPACE, vierstelliger
Gruppenschlüssel
Char(3
0)
SPACE, Feldname der
Ausgabetabelle
Verwendung
DRAGD
ROPID
LVC_DDID
Über dieses Feld definieren Sie ein D&DVerhalten für spezielle Spalten [Seite 27].
REPRE
P
LVC_CRPRP
'X' = wird die Bericht/Bericht-Schnittstelle
gerufen, so wird die Ausprägung dieses Feldes
in der selektierten Absprungzeile der
Schnittstelle als Selektionskriterium mitgeteilt.
Voraussetzungen:
SP_GR
OUP
·
Die Bericht/Bericht-Schnittstelle ist im
System vorhanden
(Funktionsgruppe RSTI, Tabelle TRSTI)
·
Die Bericht/Bericht-Schnittstelle wurde
über die Methode
activate_reprep_interface [Seite 70]
aktiviert.
LVC_SPGRP
Mit dem Gruppenschlüssel fassen Sie mehrere
Felder zu einer Gruppe zusammen. Im Popup
zur Definition eines Layout kann der Benutzer
dann die Liste der ausgeblendeten Spalten auf
diese Gruppe einschränken.
Siehe auch: Einteilung von Feldern in
spezielle Gruppen [Seite 39]
TXT_FI
ELD
April 2001
LVC_FNAME
161
ALV Grid Control (BC-SRV-ALV)
SAP AG
Sonstige Felder
Über dieses Feld können Sie den Bezug zu
einem Feld herstellen, das als Bezeichnung für
das aktuelle Feld dient. Bei Bildung einer
Zwischensumme über das aktuelle Feld gibt
das ALV Grid Control dann die Bezeichnungen
in dem zugeordneten Feld aus.
Beispiel: In Ihrer Ausgabetabelle gibt es eine
Spalte für Materialnummern und eine weitere
Spalte für die Bedeutung dieser Nummer (z.B:
Federgabel). Wenn Sie die Zwischensummen
über die Materialnummern bilden, werden
normalerweise nur diese Nummern als
Zwischensummentext ausgegeben. Über die
Verknüpfung mit TXT_FIELD können Sie sich
aber auf die zugehörige Spalte mit der
Materialbezeichnung beziehen. Dann wird
diese Bezeichnung als Zwischensummentext
verwendet.
162
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Die Layout-Struktur
Die Layout-Struktur
Definition
Die Layout-Struktur ist vom Typ LVC_S_LAYO. Sie enthält Felder zum Setzen von grafischen
Eigenschaften des Grid Controls, zur Anzeige von Exceptions, zu Optionen bei der Summierung
und zum Aktivieren bestimmter Interaktionsmöglichkeiten.
Struktur
Alphabetischer Index
Feldname
Kurzbeschreibung
Sparte
CTAB_FNAME
Feldname für Tabelle mit Farbkodierung für Zellen
Farben [Seite 169]
CWIDTH_OPT
Spaltenbreite optimieren
Eigenschaften des
Grid Controls
[Seite 166]
DETAILINIT
Initiale Werte im Detailbild anzeigen
Interaktionssteuer
ung [Seite 171]
DETAILTITL
Titelzeile des Detailbildes
Interaktionssteuer
ung [Seite 171]
EXCP_CONDS
Exceptions auf (Zwischen-) Summe vererben.
Exceptions [Seite
168]
EXCP_FNAME
Feldname mit Exceptioncodierung
Exceptions [Seite
168]
EXCP_LED
Exception als LED
Exceptions [Seite
168]
EXCP_ROLLN
Datenelement für Exceptiondoku
Exceptions [Seite
168]
GRID_TITLE
Text der Titelzeile
Eigenschaften des
Grid Controls
[Seite 166]
INFO_FNAME
Name für Feld mit Farbkodierung für Zeilen
Farben [Seite 169]
KEYHOT
Keyspalten als Hotspot
Interaktionssteuer
ung [Seite 171]
NO_HEADERS
Spaltenüberschriften ausschalten
Eigenschaften des
Grid Controls
[Seite 166]
NO_HGRIDLN
Horizontale Gridlinien ausschalten
Eigenschaften des
Grid Controls
[Seite 166]
April 2001
163
ALV Grid Control (BC-SRV-ALV)
SAP AG
Die Layout-Struktur
NO_MERGING
Verschmelzen von Zellen ausschalten
Eigenschaften des
Grid Controls
[Seite 166]
NO_ROWMARK
Zeilenmarkierungen ausschalten
Eigenschaften des
Grid Controls
[Seite 166]
NO_TOOLBAR
Toolbar ausblenden
Eigenschaften des
Grid Controls
[Seite 166]
NO_TOTARR
Keine Summenpfeile anzeigen
Summenoptionen
[Seite 170]
NO_TOTEXP
Keine Expand-Icons anzeigen
Summenoptionen
[Seite 170]
NO_TOTLINE
Keine Endsummenzeile ausgeben
Summenoptionen
[Seite 170]
NO_VGRIDLN
Vertikale Gridlinien ausschalten
Eigenschaften des
Grid Controls
[Seite 166]
NUMC_TOTAL
Summieren von NUMC-Feldern zulassen
Summenoptionen
[Seite 170]
S_DRAGDROP
Drag&Drop Controleinstellungen
Interaktionssteuer
ung [Seite 171]
SEL_MODE
Selektionsmodus
Eigenschaften des
Grid Controls
[Seite 166]
SGL_CLK_HD
Einfachklick auf Spaltenüberschrift
Interaktionssteuer
ung [Seite 171]
SMALLTITLE
Titelgröße
Eigenschaften des
Grid Controls
[Seite 166]
STYLEFNAME
Name der Zellentabelle für Drucktasten.
Interaktionssteuer
ung [Seite 171]
TOTALS_BEF
Summenausgabe vor den Einzelsätzen
Summenoptionen
[Seite 170]
ZEBRA
Alternierende Zeilenfarbe bei der Druckausgabe
(Zebramuster)
Farben [Seite 169]
Integration
Im Allgemeinen empfiehlt es sich, die Felder der Struktur vor der ersten Anzeige der Liste zu
füllen und in der Methode set_table_for_first_display [Seite 103] zu übergeben.
164
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Die Layout-Struktur
Die Methoden get_frontend_layout [Seite 76] und set_frontend_layout [Seite 95] erlauben es,
Einstellungen in der Layout-Struktur nach der Listausgabe zu ändern.
April 2001
165
ALV Grid Control (BC-SRV-ALV)
SAP AG
Eigenschaften des Grid Controls
Eigenschaften des Grid Controls
Allgemeine Anzeigeoptionen
Feldname
Bedeutung
Wertebereich
CWIDTH_OPT
Falls gesetzt, optimiert das ALV Grid Control die
Spaltenbreite. Es ist dann sowohl die Spaltenüberschrift als
auch der Inhalt der Zellen dieser Spalte sichtbar.
SPACE, 'X'
SMALLTITLE
Falls gesetzt, wird die Titelgröße im Grid Control auf die
Schriftgröße der Spaltenüberschrift gesetzt.
SPACE, 'X'
Grid Customizing
Feldname
Bedeutung
Wertebereich
GRID_TITLE
Titel zwischen Grid Control und Toolbar.
Zeichenkette mit
höchstens 70 Zeichen
NO_HEADER
S
Falls gesetzt, werden die Spaltenüberschriften
ausgeblendet.
SPACE, 'X'
NO_HGRIDLN
Falls gesetzt, werden die Spalten ohne horizontale
Trennungslinien angezeigt.
SPACE, 'X'
NO_MERGIN
G
Falls gesetzt, werden Zellen beim Sortieren über
eine Spalte nicht mehr miteinander verschmolzen.
SPACE, 'X'
NO_ROWMA
RK
Falls gesetzt, wird im Selektionsmodus
Zellenselektion (SEL_MODE = 'D') und Spalten/Zeilenselektion (SEL_MODE = 'A') der Button am
Beginn einer Zeile ausgeblendet.
SPACE, 'X'
NO_TOOLBA
R
Falls gesetzt, wird die Toolbar ausgeblendet.
SPACE, 'X'
NO_VGRIDLN
Falls gesetzt, werden die Spalten ohne vertikale
Trennungslinien angezeigt.
SPACE, 'X'
SEL_MODE
Setzen des Selektionsmodus (siehe Tabelle unten).
SPACE, 'A', 'B', 'C', 'D'
Selektionsmodi bei SEL_MODE
Wert
Modus
SPACE
wie 'B'
'A'
Spalten- und
Zeilenselektion
(siehe Abbildung)
166
Mögliche Markierungen
siehe 'B'
·
mehrere Spalten
·
mehrere Zeilen
Bemerkung
Voreinstellung
Die Zeilen markiert der
Benutzer über
Drucktasten am linken
Rand des Grid Controls
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Eigenschaften des Grid Controls
'B'
'C'
'D'
Einfachselektion,
Listbox
·
mehrere Spalten
·
einzelne Zeilen
Mehrfachselektion,
Listbox
·
mehrere Spalten
·
Mehrere Zeilen
Zellenselektion
·
mehrere Spalten
·
Mehrere Zeilen
·
eine beliebige
Zellenauswahl
Die Zeilen markiert der
Benutzer über
Drucktasten am linken
Rand des Grid Controls
Das ALV Grid Control mit Spalten- und Zeilenselektion
April 2001
167
ALV Grid Control (BC-SRV-ALV)
SAP AG
Exceptions
Exceptions
Der Abschnitt Ausgabe von Exceptions [Seite 30] beschreibt, wie man Exceptions in
einer Liste darstellt.
Feldname
Bedeutung
EXCP_COND
S
Ist dieses Feld gesetzt, zeigt ALV in der (Zwischen-)
Summenzeile ebenfalls eine Exception an. Als Farbe
für diese Exception übernimmt ALV den kleinsten
Exception-Wert ('1': rot, '2': gelb, '3' grün) der Zeilen,
auf die sich die (Zwischen-) Summe bezieht.
SPACE, 'X'
EXCP_FNAM
E
Feldname der Ausgabetabelle für die Anzeige einer
Exception.
Zeichenkette mit
höchstens 30 Zeichen
EXCP_LED
Die Exception wird nicht als Ampel, sondern als LED
angezeigt.
SPACE, 'X'
EXCP_ROLLN
Name eines Datenelements. Für die ExceptionSpalte wird dann die F1-Hilfe dieses Datenelements
aufgerufen. Außerdem erscheint als Tooltip der
Spalte der lange Feldbezeichner des Elements.
Zeichenkette mit
höchstens 30 Zeichen
168
Wertebereich
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Farben
Farben
Spalten färben Sie über den Feldkatalog ein (siehe auch EMPHASIZE in
Ausgabeoptionen einer Spalte [Seite 149]).
Feldname
Bedeutung
CTAB_FNAM
E
Feldname in Ausgabetabelle für Zellenfärbung
(Siehe: Einfärben von Zellen [Seite 33])
Zeichenkette mit
höchstens 30 Zeichen
INFO_FNAME
Feldname in Ausgabetabelle für Zeilenfärbung
(Siehe: Einfärben von Zeilen [Seite 32])
Zeichenkette mit
höchstens 30 Zeichen
ZEBRA
Falls gesetzt wird die Liste in der Druckansicht und
beim Drucken mit einem Streifenmuster versehen.
SPACE, 'X'
April 2001
Wertebereich
169
ALV Grid Control (BC-SRV-ALV)
SAP AG
Summenoptionen
Summenoptionen
Feldname
Bedeutung
NO_TOTARR
In der Summenzeile und in den Zwischensummenzeilen gibt
das ALV Grid Control Pfeile aus, die den
Summierungsbereich zusaetzlich andeuten. Setzen Sie
diesen Parameter, um diese Pfleile zu unterdrücken.
SPACE, 'X'
NO_TOTEXP
Am Beginn einer (Zwischen-)Summenzeile kennzeichnet ein
Icon, ob die Zeile expandiert wurde oder nicht. Setzen Sie
diesen Parameter, um dieses Icon zu unterdrücken.
SPACE. 'X'
NO_TOTLINE
Falls gesetzt, werden nur Zwischensummen und keine
Endsummen ausgegeben.
SPACE, 'X'
NUMC_TOTAL
Falls gesetzt, darf der Benutzer über Felder des Datentyps
NUMC summieren (im Normalfall darf er das nicht).
SPACE, 'X'
TOTALS_BEF
Falls gesetzt, zeigt ALV gebildete Summen als erste Zeilen
im Grid Control an. Zwischensummen werden vor einem
neuen Wert des Zwischensummenkriteriums angezeigt.
SPACE, 'X'
170
Wertebereich
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Interaktionssteuerung
Interaktionssteuerung
Feldname
Bedeutung
DETAILINIT
Falls gesetzt, werden im Detailfenster auch Spalten
mit initialen Werten angezeigt.
SPACE, 'X'
DETAILTITL
Titel in der Titelleiste des Detailfensters.
Zeichenkette mit
höchstens 30 Zeichen
S_DRAGDRO
P
Struktur für Drag&Drop-Einstellungen. (Siehe:
Drag&Drop mit dem ALV Control [Seite 25]).
KEYHOT
Falls gesetzt, sind alle Schlüsselfelder Hotspotsensitiv. Bei einem Einfachklick auf ein Schlüsselfeld
wird das Ereignis hotspot_click [Seite 118] ausgelöst.
SPACE, 'X'
SGL_CLK_HD
Aktiviert die Funktion Einfachklick auf
Spaltenüberschrift. Bei dieser Funktion wird die
Liste nach der angeklickten Spalte erst aufsteigend
und beim zweiten Klick absteigend sortiert.
SPACE, 'X'
STYLEFNAM
E
Mit diesem Feld übergeben Sie den Namen der
Zellentabelle für die Darstellung von Zellen als
Drucktaste (siehe auch: Darstellung von
Drucktasten [Seite 35]).
Zeichenkette mit
höchstens 30 Zeichen
April 2001
Wertebereich
171
ALV Grid Control (BC-SRV-ALV)
SAP AG
Die Print-Struktur
Die Print-Struktur
Verwendung
Die Print-Struktur enthält Felder für Einstellungen beim Drucken der Liste.
Struktur
Feldname
Bedeutung
GRPCHGEDIT
Benutzerdefinierbare GruppenwechselAufbereitung für die Druckansicht aktivieren.
Ist dieses Feld gesetzt, wird der Absprung in
den SAP List Viewer entsprechend
konfiguriert. Im Popup für die Sortierung kann
der Benutzer dann entscheiden, wie ein
Wechsel des Wertes beim Sortierkriterium
grafisch umgesetzt werden soll: als
Seitenwechsel oder als Unterstreichung.
Wertebereich
SPACE, 'X'
Mit der Sortiertabelle [Extern] setzen Sie
diese Formatierung dynamisch.
NO_COLWOP
T
Vor dem Drucken (und der Druckvorschau)
setzt das ALV Grid Control alle Spalten auf
die optimalen Breite. Durch das Setzen
dieses Parameters übersteuern sie diese
Voreinstellung.
SPACE, 'X'
PRNTLSTINF
Drucken von Listinfos. Falls gesetzt, werden
Informationen über Sortierung,
Zwischensummen und definierten Filtern
sowie eine Datenstatistik am Beginn der Liste
ausgedruckt.
SPACE, 'X'
PRNT_TITLE
Gibt den Zeitpunkt an, an dem der Grid Title
gedruckt werden soll (siehe auch Parameter
GRID_TITLE in Eigenschaften des Grid
Controls [Seite 166])
RESERVELNS
172
Anzahl reservierter Zeilen für das Ereignis
print_end_of_page [Seite 126]. Ohne diese
Angabe wird der dort angegebene Text durch
die Liste überschrieben.
0-3 mit folgender Bedeutung:
·
0: Vor dem Ereignis
PRINT_TOP_OF_LIST
·
1: Nach dem Ereignis
PRINT_TOP_OF_LIST
·
2: Vor dem Ereignis
PRINT_TOP_OF_PAGE
·
3: Nach dem Ereignis
PRINT_TOP_OF_PAGE
Natürliche Zahl
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Die Print-Struktur
Integration
Listen, die Sie mit dem ALV Grid Control darstellen, werden über den SAP List Viewer
ausgedruckt. Bei der Druckansicht springt der Benutzer deshalb in den SAP List Viewer (läßt
sich über das Feld PRINT abschalten). Die Einstellungen, die er hier vornimmt (z.B.: Definieren
einer mehrzeiligen Liste), werden beim Drucken übernommen.
Die Druckausgaben des Ereignisses PRINT_END_OF_PAGE oder des Feldes
PRNTLSTINF sind bei der Druckansicht im SAP List Viewer nicht sichtbar. Wenn der
Benutzer zunächst nur einen Spool-Auftrag anlegt, kann er die endgültige
Darstellung der Liste über die Transaktion SP01 überprüfen.
April 2001
173
ALV Grid Control (BC-SRV-ALV)
SAP AG
Methoden des OO Control Frameworks
Methoden des OO Control Frameworks
174
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Methoden der Klasse CL_GUI_CFW
Methoden der Klasse CL_GUI_CFW
Die Klasse CL_GUI_CFW beinhaltet statische Methoden, die beim Aufruf auf alle instanzierten
Custom Controls wirken.
April 2001
175
ALV Grid Control (BC-SRV-ALV)
SAP AG
dispatch
dispatch
Die Methode dispatch verteilt Applikationsereignisse (siehe Ereignisbehandlung [Extern]) an
die für das Ereignis angemeldeten Ereignisbehandler. Wenn diese Methode nicht im
Applikationsprogramm innerhalb von PAI aufgerufen wird, dann wird sie automatisch vom
System nach dem Abarbeiten von PAI aufgerufen. Die Methode liefert einen Returncode zurück,
über den der Erfolg des Aufrufs abzulesen ist.
CALL METHOD cl_gui_cfw=>dispatch
IMPORTING return_code = return_code.
Parameter
Bedeutung
return_code
cl_gui_cfw=>rc_found: Das Ereignis konnte erfolgreich an eine
Behandlermethode übergeben werden.
cl_gui_cfw=>rc_unknown: Das Ereignis wurde nicht in der Ereignisliste
registriert.
cl_gui_cfw=>rc_noevent: Es wurde kein Ereignis auf einem Control
ausgelöst. Der OK_CODE war daher ein normaler OK_CODE (z.B. von
einem Menüeintrag).
cl_gui_cfw=>rc_nodispatch: Dem Ereignis konnte keine
Behandlermethode zugeordnet werden.
Das Ereignis kann nur einmalig verteilt werden. Danach ist das Ereignis verbraucht.
Daher wird ein zweiter Aufruf der Methode nicht nochmals zu einem Sprung in den
Ereignisbehandler führen.
176
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
flush
flush
Mit dieser Methode synchronisieren Sie explizit die Automation Queue [Extern]. Die gepufferten
Operationen werden dann zum Frontend per GUI-RFC geschickt. Dort wird die Automation
Queue in der Reihenfolge abgearbeitet, wie Sie sie gefüllt haben.
Im Fehlerfall wird eine Ausnahme ausgelöst, die Sie auf jeden Fall abfragen und behandeln
sollten. Da eine Zuordnung des Fehlers in der Regel nicht mehr möglich ist, stehen Ihnen sowohl
im Debugger als auch im SAP GUI Werkzeuge zur Verfügung, um den Fehler zu lokalisieren:
Debugger: Markieren Sie in den Einstellungen das Ankreuzfeld Automation Controller: Aufträge
immer synchron verarbeiten. Dies führt dazu, daß nach jeder Methode, die den Automation
Controller ruft, die Methode cl_gui_cfw=>flush automatisch aufgerufen wird.
SAP GUI: In den Einstellungen zum SAP GUI können Sie auf der Karteikarte Trace das
Ankreuzfeld Automation wählen. Dadurch wird die Kommunikation zwischen Applikationsserver
und Automation Controller in einer Trace-Datei mitgeschrieben. Diese kann dann ausgewertet
werden.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
Führen Sie nur so viele Synchronisationspunkte in Ihr Programm ein, wie wirklich
nötig sind. Bei jeder Synchronisation wird nämlich eine RFC-Verbindung zum SAP
GUI geöffnet.
April 2001
177
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_living_dynpro_controls
get_living_dynpro_controls
Mit dieser Methode können Sie sich eine Liste von Referenzvariablen zu allen noch aktiven
Custom Controls besorgen.
CALL METHOD cl_gui_cfw=>get_living_dynpro_controls
IMPORTING control_list = control_list.
Parameter
Bedeutung
control_list
Liste der Referenzvariablen zu aktiven Custom Controls.
Liste ist vom Typ CNTO_CONTROL_LIST (in der Klasse CL_GUI_CFW
definiert)
178
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_new_ok_code
set_new_ok_code
Diese Methode darf nur in Behandlermethoden zu Systemereignissen eingesetzt werden. Sie
setzt einen OK_CODE, der ein Ausführen von PAI nach sich zieht. Dadurch können Sie nach dem
Feldtransport nochmals die Kontrolle in Ihren PAI-Modulen bekommen.
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING new_code = new_code
IMPORTING
rc = rc.
Parameter
Bedeutung
new_code
Funktionscode, der in das OK_CODE-Feld (SY-UCOMM) gestellt werden soll.
return_code
cl_gui_cfw=>rc_posted: Der OK_CODE wurde mit Erfolg gesetzt, und
die Verarbeitung wird nach Abschluß der Behandlermethode mit PAI
fortgesetzt (vorher wird noch die automatische Feldprüfung des Dynpros
durchgeführt).
cl_gui_cfw=>rc_wrong_state: Die Methode wurde nicht bei einem
Systemereignis aufgerufen.
cl_gui_cfw=>rc_invalid: Der gesetzte OK_CODE ist kein erlaubter
OK_CODE.
April 2001
179
ALV Grid Control (BC-SRV-ALV)
SAP AG
update_view
update_view
Die Automation Queue wird durch den Aufruf der Methode flush [Seite 177] nur dann
synchronisiert, wenn in der Automation Queue Returnwerte enthalten sind.
Für alle Fälle, in denen auch im Fall einer Returnwert-freien Queue gewünscht wird, daß die
Automation Queue synchron versendet wird, gibt es im Control Framework die Methode
CL_GUI_CFW=>UPDATE_VIEW. Diese Methode darf nur dann verwendet werden, wenn es
zwingend notwendig ist, ein Update des SAP GUI zu erreichen. Beispiele hierfür sind sehr lange
laufende Anwendungen, die in regelmäßigen Abständen dem Benutzer ein Feedback über den
Fortschritt der Aktion anzeigen möchten.
CALL METHOD cl_gui_cfw=>update_view
EXCEPTIONS CNTL_SYSTEM_ERROR = 1
CNTL_ERROR
= 2.
180
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
Methoden der Klasse CL_GUI_OBJECT
Methoden der Klasse CL_GUI_OBJECT
Die Klasse CL_GUI_OBJECT beinhaltet wichtige Methoden zum Verschalen von Custom
Controls. Für Anwendungsprogramme ist einzig die Methode is_valid [Seite 183] relevant.
April 2001
181
ALV Grid Control (BC-SRV-ALV)
SAP AG
free
free
Diese Methode baut ein Custom Control am Frontend ab. Nach Aufruf dieser Methode sollten Sie
auch die Objektreferenz initialisieren (FREE my_control).
CALL METHOD my_control->free
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2.
182
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
is_valid
is_valid
Diese Methode liefert als Ergebnis, ob ein Custom Control zu einer Objektreferenz noch am
Frontend vorhanden ist.
CALL METHOD my_control->is_valid
IMPORTING result = result.
Parameter
Bedeutung
result
0: Custom Control ist nicht mehr am Frontend aktiv
1: Custom Control ist noch aktiv
April 2001
183
ALV Grid Control (BC-SRV-ALV)
SAP AG
Methoden der Klasse CL_GUI_CONTROL
Methoden der Klasse CL_GUI_CONTROL
Die Klasse CL_GUI_CONTROL beinhaltet Methoden, die zum Setzen von Control-Eigenschaften
(z.B. Visualisieren des Controls), Registrieren von Ereignissen und zum Abbau des Controls
dienen.
184
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
constructor
constructor
Diese Methode wird von der Control-Verschalung des verwendeten Controls aufgerufen, um ein
Control am Frontend zu instanzieren.
Um ein SAP Control zu instanzieren, rufen Sie immer den Konstruktor der
dazugehörenden Klasse auf.
CREATE OBJECT my_control
EXPORTING
clsid
= clsid
lifetime
= lifetime
shellstyle
= shellstyle
parent
= parent
autoalign
= autoalign
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2
create_error
= 3
lifetime_error
= 4.
Parameter
Bedeutung
clsid
ID der Klasse
lifetime
Parameter für das Lifetime Management. Folgende Werte sind möglich:
my_control->lifetime_imode: Das Control lebt, solange der interne
Modus nicht abgebaut wird (z.B.: leave program. leave
transaction. set screen 0, leave screen.). Danach wird die
Methode finalize [Seite 187] aufgerufen.
my_control->lifetime_dynpro: Das Control lebt, solange die Instanz des
Dynpros existiert, d.h. sich noch im Dynprostapel befindet. Danach wird die
Methode free [Seite 182] aufgerufen.
Die Benutzung dieses Modus regelt automatisch die Sichtbarkeit von
Controls. Controls werden immer nur dann eingeblendet, wenn das Dynpro
aktiv ist, auf dem sie erzeugt wurden. Ist ein anderes Dynpro aktiv, werden
sie automatisch unsichtbar geschaltet.
my_control->lifetime_default: Wird das Control in einen Container
eingebaut, übernimmt es die Lebensdauer des Containers. Wird es nicht in
einen Container eingebaut (z.B. weil es selbst ein Container ist), dann wird
die Lebensdauer auf my_control->lifetime_imode gesetzt.
shellstyle
Steuerung des Erscheinungsbilds und des Verhaltens des Controls
Konstanten aus dem ABAP-Include <CTLDEF>, die mit WS beginnen, können
Sie übergeben. Kombinationen von mehreren Styles können Sie durch
Addieren der Konstanten erreichen. Der Vorschlagswert führt intern zum
Setzen einer ausreichenden Kombination von Style-Konstanten.
parent
April 2001
Container, in dem das SAP Picture Control angezeigt werden kann (siehe SAP
Container [Extern])
185
ALV Grid Control (BC-SRV-ALV)
SAP AG
constructor
autoalign
' ': kein automatisches Ausrichten des Controls
'X': automatisches Ausrichten des Controls. Dabei wird der maximal verfügbare
Platz innerhalb eines Containers verwendet.
186
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
finalize
finalize
Diese Methode wird von der verwendeten Controlverschalung überdefiniert. In ihr werden
control-spezifische Funktionen zum Abbau des Controls aufgerufen. Diese Methode wird
automatisch von der Methode free [Seite 182] aufgerufen, bevor das Control am Frontend
abgebaut wird.
CALL METHOD my_control->finalize.
April 2001
187
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_focus
get_focus
Diese statische Methode liefert die Objektreferenz des Custom Controls zurück, welches den
Fokus hat.
CALL METHOD cl_gui_control=>get_focus
IMPORTING control
= control
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2.
Parameter
Bedeutung
control
Objektreferenz (TYPE REF TO cl_gui_control) auf das Control, das den
Fokus hat
188
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_height
get_height
Diese Methode liefert die Höhe des Controls zurück.
CALL METHOD control->get_height
IMPORTING height
EXCEPTIONS cntl_error
Parameter
Bedeutung
height
Aktuelle Höhe des Controls
April 2001
= height
= 1.
189
ALV Grid Control (BC-SRV-ALV)
SAP AG
get_registered_events
get_registered_events
Diese Methode liefert eine Liste aller für das Custom Control my_control registrierten
Ereignisse zurück.
CALL METHOD my_control->get_registered_events
IMPORTING events
= events
EXCEPTIONS cntl_error = 1.
Parameter
Bedeutung
events
Tabelle der zu registrierenden Ereignisse für das Custom Control my_control
Die Tabelle events ist eine Liste mit Ereignissen, auf die Sie sich registriert haben. Die Tabelle
wird mit Bezug auf den Tabellentyp CNTL_SIMPLE_EVENTS definiert. Dem Tabellentyp liegt die
Struktur CNTL_SIMPLE_EVENT zugrunde. Dieser besteht aus folgenden Feldern:
Feld
Bedeutung
EVENTID
Name des Ereignisses
APPL_EVENT
Unterscheidung, ob es sich um ein Systemereignis (initial) oder ein
Applikationsereignis (X) handeln soll.
Die Werte, die dem Feld EVENTID zuzuordnen sind, sind control-spezifisch und werden daher
bei den entsprechenden Controls beschrieben.
Allgemeine Informationen zur Ereignisbehandlung finden Sie in der Dokumentation
des SAP Control Frameworks unter Ereignisbehandlung [Extern].
190
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
get_width
get_width
Diese Methode liefert die Breite des Controls zurück.
CALL METHOD control->get_width
IMPORTING width
EXCEPTIONS cntl_error
Parameter
Bedeutung
width
Aktuelle Breite des Controls
April 2001
= width
= 1.
191
ALV Grid Control (BC-SRV-ALV)
SAP AG
is_alive
is_alive
Diese Methode liefert als Ergebnis, ob ein Custom Control zu einer Objektreferenz noch am
Frontend vorhanden ist.
CALL METHOD my_control->is_alive
RETURNING state = state.
Parameter
Bedeutung
state
my_control->state_dead: Custom Control ist nicht mehr am Frontend aktiv
my_control->state_alive: Custom Control ist auf aktuellem Dynpro aktiv
my_control->state_alive_on_other_dynpro: Custom Control ist auf dem
aktuellen Dynpro nicht aktiv, aber am Frontend noch aktiv (d.h. unsichtbar)
192
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_alignment
set_alignment
Diese Methode richtet das Custom Control innerhalb seines Containers aus:
CALL METHOD my_control->set_alignment
EXPORTING alignment
= alignment
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2.
Parameter
Bedeutung
alignment
Ausrichtung des Controls
Der Parameter alignment kann aus Kombinationen folgender Ausrichtungen bestehen:
Name
Bedeutung
my_control->align_at_left
Ausrichtung am linken Rand
my_control->align_at_right
Ausrichtung am rechten Rand
my_control->align_at_top
Ausrichtung am oberen Rand
my_control->align_at_bottom
Ausrichtung am unteren Rand
Kombinationen erhält man durch Aufaddieren der Komponenten:
alignment = my_control->alingn_at_left + my_control->alingn_at_top.
April 2001
193
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_focus
set_focus
Mit dieser statischen Methode können Sie den Fokus auf ein Custom Control setzen.
CALL METHOD cl_gui_control=>set_focus
EXPORTING control
= control
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2.
Parameter
Bedeutung
control
Objektreferenz (TYPE REF TO cl_gui_control) auf das Control, das den
Fokus bekommen soll
194
April 2001
SAP AG
ALV Grid Control (BC-SRV-ALV)
set_position
set_position
Diese Methode plaziert das Control an eine bestimmte Stelle des Dynpros.
In der Regel wird die Position des Controls über seinen Container geregelt.
CALL METHOD my_control->set_position
EXPORTING height
= height
left
= left
top
= top
width
= width
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2.
Parameter
Bedeutung
height
Höhe des Controls
left
Linker Rand des Controls
top
Oberer Rand des Controls
width
Breite des Controls
April 2001
195
ALV Grid Control (BC-SRV-ALV)
SAP AG
set_visible
set_visible
Mit dieser Methode können Sie die Sichtbarkeit eines Custom Controls verändern.
CALL METHOD my_control->set_visible
EXPORTING visible
= visible
EXCEPTIONS cntl_error
= 1
cntl_system_error = 2.
Parameter
Bedeutung
visible
X: Custom Control ist sichtbar
' ': Custom Control ist nicht sichtbar
196
April 2001