ALV Grid Control (BC-SRV-ALV)

196
ALV Grid Control (BC-SRV-ALV) Release 4.6C HELP.BCSRVALV

Transcript of ALV Grid Control (BC-SRV-ALV)

Page 1: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control(BC-SRV-ALV)

Release 4 .6C

HE

LP

.BC

SR

VA

LV

Page 2: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

2 April 2001

Copyright

© Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchemZweck und in welcher Formauch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. Indieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändertwerden.

Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte können Software-Komponenten auch anderer Software-Hersteller enthalten.

Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® und SQL Server® sind eingetrageneMarken derMicrosoft 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 ServerTM

sind eingetragene Marken derInformix Software Incorporated.

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 WideWeb 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 derLizenz 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.comsind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen Ländernweltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen.

Page 3: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

April 2001 3

Symbole

Symbol Bedeutung

Achtung

Beispiel

Hinweis

Empfehlung

Syntax

Page 4: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

4 April 2001

Inhalt

ALV Grid Control (BC-SRV-ALV) ....................................................................... 8Instanz für das ALV Grid Control................................................................................................11Arbeiten mit dem ALV Grid Control............................................................................................12Erste Schritte ................................................................................................................................14Anwendungsspezifisches Programmieren................................................................................16Layouts..........................................................................................................................................17

Abspeichern eines Layouts .......................................................................................................18Integration eigener Funktionen...................................................................................................20

Ändern von Standardfunktionen................................................................................................21Definition von GUI-Elementen in der Toolbar ...........................................................................22Definition eines Kontext-Menüs ................................................................................................23Definition eines Menüs in der Toolbar ......................................................................................24

Drag&Drop mit dem ALV Control ...............................................................................................25D&D-Verhalten für alle Zeilen/Spalten ......................................................................................26D&D-Verhalten für spezielle Spalten ........................................................................................27D&D-Verhalten für spezielle Zeilen/Zellen ................................................................................28

Ausgabe von Exceptions.............................................................................................................30Einfärben von Zeilen ....................................................................................................................32Einfärben von Zellen ....................................................................................................................33Darstellung von Drucktasten ......................................................................................................35Einbinden von Hyperlinks ...........................................................................................................37Gruppierung von Feldern zur Feldauswahl ...............................................................................39Verwendung des Konvertierungsexit.........................................................................................41Das ALV Grid Control bei WAN-Anmeldungen .........................................................................43Das ALV Grid Control im Web.....................................................................................................44Darstellung im SAP GUI for HTML..............................................................................................45

Definition eines statischen Menüs ............................................................................................47Darstellung im Workplace ...........................................................................................................49

Voraussetzungen ......................................................................................................................50Der MiniALV ..............................................................................................................................51

Als MiniApp ..........................................................................................................................53Als Erweiterung einer MiniApp.............................................................................................54Als interaktives Web Control................................................................................................55Service-Parameter ...............................................................................................................56Ausgabe auf kleinen Bildschirmen.......................................................................................58Fehleranalyse.......................................................................................................................60

Der MidiALV ..............................................................................................................................61Den MidiALV aufrufen..........................................................................................................62Service-Parameter ...............................................................................................................63

Aufruf des Internet-Service .......................................................................................................65Methoden der Klasse CL_GUI_ALV_GRID.................................................................................67activate_reprep_interface............................................................................................................70CONSTRUCTOR ...........................................................................................................................71

Page 5: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

April 2001 5

get_current_cell............................................................................................................................72get_filtered_entries ......................................................................................................................73get_filter_criteria ..........................................................................................................................74get_frontend_fieldcatalog ...........................................................................................................75get_frontend_layout.....................................................................................................................76get_scroll_info_via_id..................................................................................................................77get_selected_cells........................................................................................................................78get_selected_cells_id ..................................................................................................................79get_selected_columns.................................................................................................................80get_selected_rows .......................................................................................................................81get_sort_criteria ...........................................................................................................................82get_subtotals ................................................................................................................................83get_variant ....................................................................................................................................86offline.............................................................................................................................................87refresh_table_display ..................................................................................................................88register_delayed_event ...............................................................................................................89set_3d_border...............................................................................................................................90save_variant_dark ........................................................................................................................91set_current_cell_via_id................................................................................................................92set_filter_criteria ..........................................................................................................................93set_frontend_fieldcatalog............................................................................................................94set_frontend_layout .....................................................................................................................95set_scroll_info_via_id..................................................................................................................96set_graphics_container ...............................................................................................................97set_selected_cells........................................................................................................................98set_selected_cells_id...................................................................................................................99set_selected_columns ...............................................................................................................100set_selected_rows .....................................................................................................................101set_sort_criteria .........................................................................................................................102set_table_for_first_display........................................................................................................103set_toolbar_interactive ..............................................................................................................107set_user_command....................................................................................................................108Ereignisse der Klasse CL_GUI_ALV_GRID .............................................................................109after_user_command .................................................................................................................111before_user_command..............................................................................................................112button_click ................................................................................................................................113context_menu_request ..............................................................................................................114delayed_callback........................................................................................................................115delayed_changed_sel_callback................................................................................................116double_click................................................................................................................................117hotspot_click ..............................................................................................................................118menu_button...............................................................................................................................119onDrag .........................................................................................................................................120onDrop.........................................................................................................................................121onDropComplete ........................................................................................................................122

Page 6: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

6 April 2001

onDropGetFlavor........................................................................................................................123onf1 ..............................................................................................................................................124print_end_of_list ........................................................................................................................125print_end_of_page .....................................................................................................................126print_top_of_list .........................................................................................................................127print_top_of_page ......................................................................................................................128subtotal_text ...............................................................................................................................129toolbar .........................................................................................................................................131user_command...........................................................................................................................132Der Feldkatalog...........................................................................................................................133Aufbau des Feldkatalogs...........................................................................................................134

Automatischer Aufbau.............................................................................................................135Manueller Aufbau ....................................................................................................................137Halbautomatischer Aufbau......................................................................................................139

Felder des Feldkatalogs ............................................................................................................140Bezug zur Ausgabetabelle ......................................................................................................144Bezug zum Data Dictionary.....................................................................................................145Darstellung von Werten mit Währungs-/Mengeneinheit .........................................................146Ausgabeoptionen einer Spalte................................................................................................149Formatierung von Spalteninhalten ..........................................................................................153Texte .......................................................................................................................................156Parameter für Felder ohne DDIC-Bezug.................................................................................159Sonstige Felder .......................................................................................................................161

Die Layout-Struktur....................................................................................................................163Eigenschaften des Grid Controls .............................................................................................166Exceptions ..................................................................................................................................168Farben..........................................................................................................................................169Summenoptionen .......................................................................................................................170Interaktionssteuerung................................................................................................................171Die Print-Struktur .......................................................................................................................172Methoden des OO Control Frameworks ..................................................................................174Methoden der Klasse CL_GUI_CFW.........................................................................................175

dispatch ...................................................................................................................................176flush.........................................................................................................................................177get_living_dynpro_controls .....................................................................................................178set_new_ok_code ...................................................................................................................179update_view ............................................................................................................................180

Methoden der Klasse CL_GUI_OBJECT ..................................................................................181free ..........................................................................................................................................182is_valid ....................................................................................................................................183

Methoden der Klasse CL_GUI_CONTROL...............................................................................184constructor...............................................................................................................................185finalize .....................................................................................................................................187get_focus.................................................................................................................................188get_height................................................................................................................................189get_registered_events.............................................................................................................190get_width .................................................................................................................................191is_alive ....................................................................................................................................192set_alignment..........................................................................................................................193

Page 7: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

April 2001 7

set_focus.................................................................................................................................194set_position .............................................................................................................................195set_visible................................................................................................................................196

Page 8: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

ALV Grid Control (BC-SRV-ALV)

8 April 2001

ALV Grid Control (BC-SRV-ALV)EinsatzmöglichkeitenDas 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 Funktionenerweiterbar. Diese Eigenschaft ermöglicht den Einsatz des ALV Grid Controls in einer breitenPalette 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 bisherallerdings 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 Popup-Fenster:

GenerischeFunktionender Toolbar

GenerischeFunktionender Toolbar

TitelTitel

Ausgabetabelleim Grid ControlAusgabetabelleim Grid Control

Aus Benutzersicht besteht das ALV Grid Control aus einer Toolbar, einem Titel und derAusgabetabelle, die in einem Grid Control dargestellt wird. Der Titel und die Standardfunktionender Toolbar lassen sich ausblenden.

Page 9: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV)

April 2001 9

EinführungshinweiseDas ALV Grid Control verwendet die Control-Technologie für eine moderne Darstellung amBildschirm. Es bietet � wie alle Control-Verschalungen � Methoden für die Steuerung desControls ü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. Dahersollten Sie die Klasse nicht ableiten, um auf geschützten Objekte der Klassezugreifen zu können. Die Verwendung dieser Objekte erschwert den Upgrade auf einFolgerelease.

Die Verwendung von ABAP Objects hat zur Folge, daß eine Liste über eine ALV Instanzangezeigt wird und der Programmierer sich der Ereignisverwaltung von ABAP Objects bedient.

IntegrationControls sind Software-Komponenten, die auf dem lokalen PC installiert sind. Um mit diesenKomponenten zu kommunizieren, nutzen alle Control-Verschalungen Methoden des ControlFramework. Das ALV Grid Control stellt insofern einen Sonderfall dar, als daß es ein bereitsverschaltes Control benutzt: Das Grid Control. Bestimmte Schritte in der Ereignisverwaltung vonControls 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 theWindows� 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.

FunktionsumfangZusammengefaß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 - ohnezusätzlichen Programmieraufwand.

� Anpassung von vorgegebenen Listfunktionen sowie deren Erweiterung.

� Reagieren auf Benutzeraktionen (zum Beispiel Doppelklicken auf eine Zeile) individuellprogrammierbar.

� Anbindung an die Report-Report Schnittstelle möglich.

Anwendungsbeispiele zum ALV Grid Control finden Sie in der EntwicklungsklasseSLIS.

Page 10: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

ALV Grid Control (BC-SRV-ALV)

10 April 2001

EinschränkungenEs 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 kanndie Liste aber über die Druckvorschau mehrzeilig definieren und ausdrucken.

Page 11: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Instanz für das ALV Grid Control

April 2001 11

Instanz für das ALV Grid ControlDefinitionDiese Instanz wird mit einer Referenz auf die Klasse cl_gui_alv_grid definiert:

data <Name der Referenzvariablen> type ref to cl_gui_alv_grid.

VerwendungEine Instanz für das ALV Grid Control verwaltet alle Informationen bezüglich einer Liste aufIhrem Dynpro. Auf diese Instanz können Sie Methoden aufrufen, mit denen Sie dieEigenschaften dieses Controls definieren und ändern können.

Leiten Sie diese Klasse nicht ab, um auf geschützte Bereiche der Klasse zugreifenzu 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

IntegrationDie Klasse cl_gui_alv_grid beinhaltet sowohl controlspezifische Methoden [Seite 67] alsauch Methoden des OO Control Frameworks [Seite 174].

Page 12: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Arbeiten mit dem ALV Grid Control

12 April 2001

Arbeiten mit dem ALV Grid ControlGrundlagenDie folgende Grafik zeigt die nötigen Schritte, um eine Liste mit dem ALV Grid Controldarzustellen:

grid

(überContainermit demDynproverlinkt)

CALL METHOD

grid->Set_table_for_first_display.

Daten

Select * from <name>

a1 b1 c1a2 b2 c2a3 b3 c3

A B C<name>oder

DDICStrukturDDICStruktur

Ausg

abet

abel

leD

aten

besc

hrei

bung

FLUSH

Container mitintegriertemALV Control

Container mitintegriertemALV Control

Dynpro

A B Ca1 b1 c1a2 b2 c2a3 b3 c3

AngezeigteListe:

ABC

TypA

TypB

TypC .........

FeldkatalogFeldkatalog

DATA grid TYPE REF

TO cl_gui_alv_grid.

CREATE OBJECT grid

parent = container.

DATA container TYPE REF TO

cl_gui_custom_container.

CREATE OBJECT container

container_name = 'MYCONT‘.

Deklaration vonReferenzvariablen

Deklaration vonReferenzvariablen

Instanziierung und Dynpro-IntegrationInstanziierung und Dynpro-Integration

Anzeige der Daten auf dem ControlAnzeige der Daten auf dem Control

InterneTabelleInterneTabelle

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 bekanntgemacht wird.

Die Ausgabetabelle besteht im allgemeinen aus Daten, die Sie vorher aus Datenbanktabellenselektiert 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 derDefinition dieser Referenz als globale Tabelle ist es auch möglich, die Referenz überein ö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 undSpalteneigenschaften der auszugebenen Liste beeinflussen.

Page 13: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Arbeiten mit dem ALV Grid Control

April 2001 13

Arbeiten mit ControlsMit der Verwendung von ABAP Objects zu Release 4.6A wurde die Programmierung vonControls 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 PictureControl) gilt für die oben genannten Punkte das gleiche Programmiermodell.

Mit Einschränkungen im Bereich der Ereignisbehandlung gilt dieses Programmiermodell auch fürdas ALV Grid Control (siehe nächsten Abschnitt). Lesen sie Anlegen eines Controls [Extern](inklusive Querverweise), um sich mit diesem allgemeinen Modell vertraut zu machen undbeachten Sie unbedingt die im nächsten Abschnitt beschriebenen Unterschiede.

Besonderheiten des ALV Grid Control in derEreignisbehandlungDas ALV Grid Control benutzt das Grid Control für die Anzeige der Ausgabetabelle. Das ALVGrid Control ist also eine Verschalung, die die Verschalung eines Basis Controls verwendet. Als'äußere Hülle' nimmt diese Verschalung dem Anwendungsprogrammierer die Registrierung derEreignisse am Frontend ab, um die Ereignisbehandlung zu vereinfachen. Beachten Sie folgendeUnterschiede 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 Siedies mit dem Parameter I_APPL_EVENTS (Siehe auch: CONSTRUCTOR [Seite71]). Dann müssen Sie wie üblich die Methode CL_GUI_CFW=>DISPATCH im PAIaufrufen.

� 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.

Page 14: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Erste Schritte

14 April 2001

Erste SchritteDieses Kapitel beschreibt, wie Sie im einfachsten Fall eine Liste mit selektierten Daten im ALVGrid 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 derFelder der Instanz übergeben.

Siehe auch Beispielreport BCALV_GRID_DEMO in der Entwicklungsklasse SLIS.

Ein ALV Grid Control anlegenEin 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. DeklarierenSie 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 verschiedeneContainer Controls [Extern] zur Verfügung (in diesem Beispiel wird das CustomContainer Control verwendet).

2. Legen Sie ein normales Dynpro an und markieren Sie im grafischen Screen Painter einenBereich für das Custom Container Control (Icon mit Buchstaben 'C'). Vergeben Sie für diesenBereich den Namen CCCONTAINER.

In Übung 1: Einen Bereich für ein Control reservieren [Extern] des Controls Tutorialsist 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 Controlinstanziieren. Dabei binden Sie das Container Control an das Dynpro über den im ScreenPainter angelegten Container. Über den Parameter parent legen sie das Container Controlals 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.

Page 15: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Erste Schritte

April 2001 15

Die IF-Abfrage der Referenzvariable g_custom_container stellt sicher, daß dieInstanzen nur beim ersten Durchlauf des PBO erzeugt werden.

In der Regel müssen Sie mit der Methode cl_gui_cfw=>flush die aufgerufenenMethoden zum Frontend übertragen. Da das Control Framework am Ende des PBOden Flush automatisch durchführt, ist er hier nicht nötig.

Wenn Sie das Programm starten, werden die beiden Instanzen (das Container- und das ALVGrid Control) zwar erzeugt, sind aber nicht sichtbar.

Eine Liste im ALV Control anzeigenNachdem Sie ein ALV Grid Control erzeugt haben und es über ein Container Control auf einemDynpro 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. AchtenSie wiederum darauf, diese Methode nur einmal nach der Erzeugung des ALV Grid Controlaufzurufen: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. DasALV Control holt sich die Feldinformationen über die Tabelle SFLIGHT und stellt alleFelder der Tabelle dar.

Page 16: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Anwendungsspezifisches Programmieren

16 April 2001

Anwendungsspezifisches ProgrammierenFolgende Eigenschaften des ALV Grid Controls begünstigen den Einsatz dieses Werkzeuges ineiner breiten Palette von Anwendungen:

� Layouts bieten dem Benutzer die Möglichkeit, die Listausgabe seinen Bedürfnissenanzupassen. Die Anwendungsentwicklung bestimmt, welche Speicheroptionen der Benutzerfür das Layout einer Liste hat.

� Eigene Funktionen der Anwendungsentwicklung lassen sich in der Toolbar integrieren. DerAnwendungsentwickler kann außerdem Standardfunktionen an die jeweilige Anwendunganpassen oder ganz ausblenden.

� Drag&Drop-Funktionen sind programmierbar. Das ALV Grid Control ermöglicht dieVerwendung des Drag&Drop-Controls, mit dem sich anwendungsspezifische Funktionenzwischen 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 Informationenentnehmen Sie bitte den Beschreibungen der Methoden, Ereignisse und Strukturen.

Page 17: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Layouts

April 2001 17

LayoutsMit Hilfe von Layouts kann der Benutzer die ausgegebene Liste seinen eigenen Bedürfnissenanpassen.

Der Anwendungsentwickler steuert die Berechtigungen des Benutzers bezüglich eines Layoutüber die Parameter I_SAVE, IS_VARIANT und I_DEFAULT der Methodeset_table_for_first_display [Seite 103]. Es stehen drei Modi zur Verfügung:

Modus Effekt Belegung von I_SAVE undIS_VARIANT beim Aufruf vonset_table_for_first_display

AusschließlichesÄndern desaktuellen Layout

Das ALV Grid Control zeigt in derToolbar nur das Layout-Icon ( ),aber kein Menü an. Über das Iconkann der Benutzer das aktuelle Menüändern (im Wesentlichen die Auswahlund Reihenfolge der angezeigtenSpalten, Filter, Sortierkriterien).

IS_VARIANT = SPACE.

I_SAVE = SPACE.

(Voreinstellung)

AusschließlichesLaden vonmitausgeliefertenLayouts

Das ALV Grid Control zeigt in derToolbar sowohl ein Layout-Icon alsauch ein zugehöriges Menü an. ImMenü befinden sich nur dieFunktionen Layout auswählen undLayout ändern.

IS_VARIANT = <Struktur fürein Layout>

I_SAVE = SPACE.

(oder IS_VARIANT gleichSPACE und I_SAVE ungleichSPACE)

Laden undSpeichern einesLayout

Das ALV Grid Control zeigt in derToolbar sowohl das Layout-Icon alsauch ein zugehöriges Menü an. Überdas Layout-Icon kann der Benutzereine schon existierendes Layoutauswählen. Im Menü befinden sichdie Funktionen Layout auswählen,Layout ändern, Layout sichernund Layout verwalten.

IS_VARIANT = <Struktur fürein Layout>

I_SAVE = <'X', 'U' oder 'A'>

Siehe auch: Abspeicherneines Layout [Seite 18]

Zusätzlich können Sie über das Setzen des Parameters I_DEFAULT dem Benutzer dasSpeichern von Layoutvoreinstellungen erlauben (in der Voreinstellung gesetzt).

Falls der Benutzer die Berechtigung hat, transportiert er Layouts in der Layout-Verwaltung über den Menüpunkt Layout->Transportieren....

Page 18: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Abspeichern eines Layouts

18 April 2001

Abspeichern eines LayoutsEinsatzmöglichkeitenDie Standard-Funktion Layout ändern steht dem Benutzer über ein Icon der Toolbar zurVerfügung. Sie ermöglicht ihm, das aktuelle Layout für die Lebensdauer der Control-Instanzseinen 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.

VoraussetzungenIn der Voreinstellung kann der Benutzer eine Layoutvoreinstellung abspeichern. Existiert bereitsso 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 ParameterI_DEFAULT dieser Methode auf SPACE.

Ablauf1. 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 zwarmöglich, Layouts zu laden, aber nicht, neue zu speichern. Bei Verwendung desParameters I_SAVE ist die Übergabe einer Struktur für das Layout mit IS_VARIANTobligatorisch.

Page 19: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Abspeichern eines Layouts

April 2001 19

ErgebnisIn der Toolbar läßt sich nun neben dem Layout-Icon ein Menü aufklappen, das ein Speichern undLaden eines Layouts erlaubt. Je nach Belegung des Parameters I_SAVE hat der Benutzer beimSpeichern 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 übergreifendeLayouts speichern.

Page 20: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Integration eigener Funktionen

20 April 2001

Integration eigener FunktionenDas 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. Umeigene 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 speziellenKontext nicht benötigt werden.

Page 21: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Ändern von Standardfunktionen

April 2001 21

Ändern von StandardfunktionenEinsatzmöglichkeitenDie Standardfunktionen sind auf keinen speziellen Anwendungsfall zugeschnitten. SpeziellesWissen über die angezeigten Daten können also nicht berücksichtigt werden. Im Einzelfall ist esmöglich, daß eine Standardfunktion - wie das Sortieren nach einer bestimmten Spalte - in einerAnwendung effizienter programmiert werden kann.

Ablauf1. Definieren Sie eine Ereignisbehandlermethode zum Ereignis before_user_command [Seite

112]. Dieses Ereignis wird ausgelöst, wenn der Benutzer eine Funktion ausgewählt hat. DasALV Control übergibt also die Kontrolle an die Anwendung bevor die Funktion ausgeführtwird. Über den Parameter I_UCOMM des Ereignisses können Sie den Funktionscode auf dieFunktion, die Sie ändern möchten, eingrenzen.

2. Implementieren Sie Ihren eigenen Algorithmus für die Funktion innerhalb derEreignisbehandlermethode. Sie können dabei Methoden des ALV Control aufrufen.

3. Setzen Sie abschließend den Funktionscode zurück, damit die Standardfunktion nicht mehrausgefü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 Siediese auch für die gesamte Lebensdauer des Control ausblenden. Übergeben Siedazu mit Hilfe des Parameters IT_TOOLBAR_EXCLUDING der Methodeset_table_for_first_display [Seite 103] eine Tabelle mit den auszublendendenFunktionskodes.

Page 22: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Definition von GUI-Elementen in der Toolbar

22 April 2001

Definition von GUI-Elementen in der ToolbarAblauf1. 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-Elementsmit. 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 Tabellemt_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 neuaufbauen wollen.

ErgebnisDen jeweiligen Funktionskode, den Sie im Feld function festgelegt haben, können Sie in derEreignisbehandlermethode zum Ereignis USER_COMMAND abfragen und so die zugehörigeFunktion implementieren.

Siehe auch den Report BCALV_GRID_05 in der Entwicklungsklasse SLIS.

Page 23: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Definition eines Kontext-Menüs

April 2001 23

Definition eines Kontext-MenüsVerwendungDas ALV Grid Control benutzt das Kontext Menü [Extern] und belegt es mit Standardfunktionen.Sie können es kontextsensitiv um eigene Funktionen erweitern und gegebene Funktionenausblenden oder deaktivieren.

IntegrationDas Kontext-Menü ist eine Instanz der Klasse CL_CTMENU. Wird das EreignisCONTEXT_MENU_REQUEST vom Benutzer ausgelöst, so enthält der EreignisparameterE_OBJECT eine Referenz auf das Standard-Kontextmenü.

Siehe auch den Report BCALV_GRID_06 in der Entwicklungsklasse SLIS.

FunktionsumfangSie 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 Siealle 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 derMethode disable_functions die Methode hide_functions auf.

Mit den Methoden enable_functions und show_functions können Sie die jeweiligenFunktionen wieder aktivieren beziehungsweise anzeigen.

Die Funktionskodes zu eigenen Funktionen fragen Sie beim Ereignis user_command[Seite 132] ab.

Page 24: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Definition eines Menüs in der Toolbar

24 April 2001

Definition eines Menüs in der ToolbarEinsatzmöglichkeitenEin 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.

Ablauf1. 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 GUI-Elementen 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 derEreignisbehandlermethode zum Ereignis MENU_BUTTON ab (über den EreignisparameterE_UCOMM). Auf diese Weise können Sie die verschiedenen Menüs der Toolbarunterscheiden.

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 weitereFunktionskodes, die Sie beim Ereignis user_command [Seite 132] abfragen können.

Siehe auch den Report BCALV_GRID_07 in der Entwicklungsklasse SLIS.

Page 25: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Drag&Drop mit dem ALV Control

April 2001 25

Drag&Drop mit dem ALV ControlDas ALV Grid Control ermöglicht die Verwendung des Drag&Drop Controls. Für dieses Controlmüssen Sie zunächst ein Drag&Drop-Verhalten beschreiben und dieses Verhalten über einHandle für Elemente der betroffenen Controls setzen. Das Drag&Drop Control erkennt anhandder Handles, welche Operationen der Benutzer durchführen darf und verändert beim Klicken denMauszeiger.

Um mit dem gesetzten Drag&Drop Verhalten Aktionen zu verbinden stellt das ALV Control dieEreignisse OnDrag, OnDrop, OnDropComplete und OnDropGetFlavor zur Verfügung.

Dieser Abschnitt beschreibt, wie Sie die Handles für das Drag&Drop-Verhalten mit Elementendes ALV Grid Controls verknüpfen. Die Dokumentation zum Control Framework [Extern] erklärtdie Programmierung von Drag&Drop [Extern] (Ablauf einer Drag&Drop Operation [Extern],Ereignisse bei Drag&Drop [Extern]).

BeispieleZu 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)

Page 26: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

D&D-Verhalten für alle Zeilen/Spalten

26 April 2001

D&D-Verhalten für alle Zeilen/SpaltenEinsatzmöglichkeitenDieser Prozeß bietet sich an, wenn Sie ein einheitliches Drag&Drop-Verhalten für alle Zeilenoder Spalten definieren wollen. Ist im Verhalten zum Beispiel das Attribut dragsource gesetzt,lassen sich alle Zeilen bzw. Spalten mit Objekten verbinden, die das Attribut droptargetgesetzt haben und den gleichen Flavor benutzen.

Es macht keinen Unterschied, ob Sie ein Verhalten für alle Zeilen oder alle Spaltendefinieren.

Obwohl Sie mit dieser Methode für alle Zeilen das gleiche Verhalten beschreiben, können Sie inden Ereignissen OnDrop bzw. OnDropGetFlavor entscheiden, ob Sie die Drag&Drop-Operation abbrechen wollen. Sie treffen diese Entscheidung anhand des übergebenenDatenobjekts und des Flavors. Im Datenobjekt haben Sie üblicherweise die Daten dergezogenen Zeile gespeichert.

Ablauf1. Definieren Sie die Layout-Struktur vom Typ LVC_S_LAYO.

2. Definieren Sie Ihr Drag&Drop-Verhalten und beschaffen Sie sich dessen Handle mit derMethode get_handle der Klasse cl_dragdrop.

3. Weisen Sie das Handle dem Feld s_dragdrop-row_ddid oder s_dragdrop-col_ddidder 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 mitder Methode set_frontend_layout [Seite 95] übergeben.

ErgebnisJede Zeile bzw. Spalte läßt sich vom Benutzer ziehen bzw. erscheint als Ziel für eineDrag&Drop-Operation.

Die Definition eines Drag&Drop-Verhaltens läßt sich erst dann am Bildschirmnachvollziehen, wenn es wenigstens eine Dragsource und ein Droptarget mitgleichem Flavor gibt.

Page 27: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

D&D-Verhalten für spezielle Spalten

April 2001 27

D&D-Verhalten für spezielle SpaltenEinsatzmöglichkeitenSie können mit dieser Möglichkeit für spezielle Spalten des Grid Controls ein Drag&Drop-Verhalten definieren. Jede Spalte kann dabei ein anderes Drag&Drop-Verhalten haben.

Ablauf5. 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 derenHandles mit der Methode get_handle der Klasse cl_dragdrop.

7. Erstellen Sie den Feldkatalog manuell [Seite 137] oder halbautomatisch [Seite 139]. WeisenSie dem Feld dragdropid für ausgewählte Spalten das entsprechende Handle zu (mit demFeld 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 derMethode set_frontend_fieldcatalog [Seite 94] übergeben.

ErgebnisDie Spalten zeigen ein Drag&Drop-Verhalten gemäß dem übergebenen Handle.

Die Definition eines Drag&Drop-Verhaltens läßt sich erst dann am Bildschirmnachvollziehen, wenn es wenigstens eine Dragsource und ein Droptarget mitgleichem Flavor gibt.

Page 28: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

D&D-Verhalten für spezielle Zeilen/Zellen

28 April 2001

D&D-Verhalten für spezielle Zeilen/ZellenEinsatzmöglichkeitenSie können mit dieser Möglichkeit für spezielle Zeilen oder Zellen des Grid Controls einDrag&Drop-Verhalten definieren. Jede Zeile bzw. Zelle kann dabei ein anderes Drag&Drop-Verhalten haben.

Ablauf1. 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 wieim 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 derMethode 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&Drop-Tabelle hat zwei Felder. Belegen Sie diese Felder folgendermaßen (siehe auch die Grafik imnächsten Abschnitt):

� Wenn die ganze Zeile ein Drag&Drop-Verhalten haben soll, weisen Sie dem Felddragdropid das entsprechende Handle zu. Das Feld fieldname bleibt in diesem Fallleer.

� Wenn nur bestimmte Spalten der Zeile ein Drag&Drop-Verhalten haben sollen, müssenSie für solche Spalten jeweils eine Zeile in der Drag&Drop-Tabelle anhängen. Dem Feldfieldname weisen Sie den Namen der gewünschten Spalte und dem Felddragdropid das entsprechende Handle zu.

6. Weisen Sie den Namen der internen Tabelle dem Feld s_dragdrop-fieldname derLayout-Struktur zu (in unserem Fall 'CT', siehe Schritt 2).

7. Übergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methodeset_table_for_first_display [Seite 103].

Sie können die Layout-Struktur mit dem Drag&Drop-Verhalten auch nachträglich mitder Methode set_frontend_layout [Seite 95] übergeben. Das ALV Grid Control frischtsie beim Aufruf der Methode refresh_table_display [Seite 88] auf. Die Instanz desALV Grid Control und die zugehörige Ausgabetabelle müssen die gleicheLebensdauer haben.

Page 29: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

D&D-Verhalten für spezielle Zeilen/Zellen

April 2001 29

BeispielDie folgende Grafik zeigt eine Ausgabetabelle, bei denen die Zellen b1 und c1 zwei verschiedeneund die gesamte zweite Zeile das gleiche Drag&Drop-Verhalten wie Zelle c1 hat:

B 2

C 1

fieldname

dragdropid

a1 b1 c1

a2 b2 c2

a3 b3 c3

Ausgabetabelle

A B C CT

Interne Tabelle vom TypLVC_T_DRDR

1

A B C

a3 b3 c3a2 b2 c2a1 b1 c1

Drag&Drop-sensitive Zellenim Grid Control:

Page 30: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Ausgabe von Exceptions

30 April 2001

Ausgabe von ExceptionsEinsatzmöglichkeitenMit 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 Ampelbenutzen, um zu signalisieren, daß ein Flug ausgebucht ist. Der Benutzer kann anhand derverwendeten Farbe die angezeigten Daten schneller interpretieren. Es lassen sich drei Zuständeanzeigen:

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 einerException an diesen anpassen.

Siehe auch: Beispielreport BCALV_GRID_04 der Entwicklungsklasse SLIS.

Ablauf6. 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 derLayout-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-

Page 31: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Ausgabe von Exceptions

April 2001 31

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 Methodeset_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.

ErgebnisDas ALV Grid Control enthält am Beginn der Liste eine Spalte mit Exceptions:

Page 32: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Einfärben von Zeilen

32 April 2001

Einfärben von ZeilenEinsatzmöglichkeitenSie können Zeilen im Grid Control anders einfärben und auf diese Weise Daten der Listehervorheben.

Spalten lassen sich über das Feld EMPHASIZE des Feldkatalogs einfärben (siehe:Ausgabeoptionen einer Spalte [Seite 149]).

Ablauf11. Definieren Sie die Layout-Struktur [Seite 163] vom Typ LVC_S_LAYO.

12. Erweitern Sie Ihre Ausgabetabelle um ein vierstelliges Character-Feld wie im folgendenBeispiel:

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 Methodeset_table_for_first_display [Seite 103].

Wenn Sie Zellen nicht bei der ersten Anzeige einfärben wollen, führen Sie Schritt 4später aus und frischen die Ausgabetabelle mit der Methode refresh_table_display[Seite 88] auf.

Page 33: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Einfärben von Zellen

April 2001 33

Einfärben von ZellenEinsatzmöglichkeitenSie können Zellen im Grid Control anders einfärben und auf diese Weise Daten der Listehervorheben. Es ist über diesen Prozeß zwar auch möglich, ganze Zeilen einzufärben, dies istaber 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 Bezugauf die Methode zur Auswahl der Zellen.

Ablauf15. 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 imfolgenden 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-Tabellehat 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 COLORdie 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 solcheSpalten jeweils eine Zeile in der Farb-Tabelle anhängen. Dem Feld fname weisen Sieden Namen der gewünschten Spalte und den Feldern der Struktur COLOR dieentsprechenden 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 undINV 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 Methodeset_table_for_first_display [Seite 103].

Page 34: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Einfärben von Zellen

34 April 2001

Wenn Sie Zellen nicht bei der ersten Anzeige einfärben wollen, führen Sie Schritt 4später aus und frischen die Ausgabetabelle mit der Methode refresh_table_display[Seite 88] auf.

Page 35: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Darstellung von Drucktasten

April 2001 35

Darstellung von DrucktastenEinsatzmöglichkeitenWenn Sie Zellen, Zeilen oder Spalten den Style mc_style_button zuweisen, stellt das ALVGrid 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 danndas Ereignis button_click [Seite 113] aus.

Ablauf

Um alle Zellen einer Spalte als Drucktaste darzustellen, verwenden Sie das FeldSTYLE 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 imfolgenden 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 Zellentabellehat die Felder FIELDNAME und STYLE. Belegen Sie diese Felder folgendermaßen:

� Wenn alle Zellen einer Zeile als Drucktaste dargestellt werden sollen, weisen Sie demFeld style das Attribut cl_gui_alv_grid=>mc_style_button zu. Das Feldfieldname bleibt in diesem Fall leer.

� Wenn nur bestimmte Spalten der Zeile wie eine Drucktaste aussehen sollen, hängen Siepro Spalte eine Zeile an die Zellentabelle an. Dem Feld fieldname weisen Sie denNamen der gewünschten Spalte und dem Feld style das Attributcl_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 Methodeset_table_for_first_display [Seite 103].

ErgebnisDas ALV Grid Control gibt die mit dem Attribut gekennzeichneten Zellen als Drucktaste aus.

Page 36: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Darstellung von Drucktasten

36 April 2001

Page 37: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Einbinden von Hyperlinks

April 2001 37

Einbinden von HyperlinksEinsatzmöglichkeitenMit dem Feld HREF_HNDL [Seite 149] des Feldkatalogs weisen Sie allen Zellen einer Spalte einHandle für eine Hyperlink-Adresse zu.

In diesem Abschnitt ist beschrieben, wie Sie die Zellen einer Spalte mit unterschiedlichenHyperlink-Adressen verknüpfen.

Ablauf23. 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 einzusätzliches Feld in der Ausgabetabelle. Erweitern Sie dazu Ihre Ausgabetabelle um ein Feldvom 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 nurin einer Spalte Hyperlinks dargestellt werden.

25. Bauen Sie den Feldkatalog für Ihre Ausgabetabelle manuell [Seite 137]oderhalbautomatisch [Seite 139] auf. Im Feldkatalog weisen Sie dem Feld WEB_FIELD denNamen des Feldes für das Hyperlink-Handle zu (im Beispiel: HL_FNAME, s.o.). Das ALV GridControl 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 Feldfür das Hyperlink-Handle (im Beispiel: HL_FNAME), das gewünschte Handle zu. Bleibt dasHandle für eine Zeile initial, wird kein Hyperlink dargestellt.

Page 38: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Einbinden von Hyperlinks

38 April 2001

15. Übergeben Sie den Feldkatalog, die Hyperlink-Tabelle und die Ausgabetabelle mit derMethode set_table_for_first_display [Seite 103].

ErgebnisAlle Zellen der Spalte, denen über das zusätzliche Feld ein Handle zugewiesen wurde, werdenals Hyperlink dargestellt. Gibt es für das zugewiesene Handle keinen Eintrag in der Hyperlink-Tabelle, so wird der Inhalt der Zelle normal ausgegeben.

Page 39: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Gruppierung von Feldern zur Feldauswahl

April 2001 39

Gruppierung von Feldern zur FeldauswahlEinsatzmöglichkeitenBei einer großen Anzahl von Ausgabefeldern wird die Feldauswahl im Auswahlfenster für dasaktuelle 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.

Ablauf1. 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 Ausgabetabelleeinen Gruppenschlüssel.

4. Definieren Sie für jede Gruppe einen Gruppentext in Ihrer Feldgruppentabelle.

5. Übergeben Sie die Feldgruppentabelle und den Feldkatalog mit der Methodeset_table_for_first_display [Seite 103] (über den Parameter IT_SPECIAL_GROUPS bzw.IT_FIELDCATALOG).

ErgebnisIm Auswahlfenster für das aktuelle Layout wird ein Listenfeld angezeigt, über die man diejeweilige Gruppe auswählen kann:

Page 40: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Gruppierung von Feldern zur Feldauswahl

40 April 2001

Page 41: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Verwendung des Konvertierungsexit

April 2001 41

Verwendung des KonvertierungsexitEinsatzmöglichkeitenÜber einen Konvertierungsexit definieren Sie einen Absprung in eine Konvertierungsroutine füreine Spalte Ihrer Ausgabetabelle. Als Exit geben Sie dabei den Teilstring <conv> einesFunktionsbausteins mit dem Namen CONVERSION_EXIT_<conv>_OUTPUT an. So können Siezum Beispiel mit dem Konvertierungsexit ALPHA (siehe FunktionsbausteinCONVERSION_EXIT_ALPHA_OUTPUT) führende Nullen von Kontonummern eliminieren.

Der Konvertierungsexit wird über den WRITE-Zusatz USING EDIT MASK realisiert.

VoraussetzungenDamit das ALV Grid Control die Konvertierung durchführen kann, muß die interne und dieexterne Länge des Feldes bekannt sein. Dies entspricht der Länge vor und nach derKonvertierung.

Zur Veranschaulichung dieser Längenangaben ein Beispiel zurAufbereitungsschablone 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 dieAusgabelänge acht.

Die Spaltenbreite (über das aktuelle Layout einzustellen) ist eine von diesen Größenunabhängige Größe und braucht nicht angepaßt zu werden.

Ablauf1. 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ängeautomatisch.

� Für Felder ohne DDIC-Bezug müssen Sie die interne Länge über das Feld INTLEN und dieexterne Länge über das Feld DD_OUTLEN des Feldkatalogs angeben (siehe Parameter fürFelder ohne DDIC-Bezug [Seite 159]).

2. Geben Sie den Konvertierungsexit über das Feld EDIT_MASK des Feldkatalogs an (sieheFormatierung von Spalteninhalten [Seite 153]).

3. Übergeben Sie den Feldkatalog vor der ersten Anzeige der Liste mit der Methodeset_table_for_first_display [Seite 103].

Page 42: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Verwendung des Konvertierungsexit

42 April 2001

ErgebnisDie Werte der Spalte durchlaufen vor der Anzeige die Konvertierungsroutine.

Page 43: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Das ALV Grid Control bei WAN-Anmeldungen

April 2001 43

Das ALV Grid Control bei WAN-AnmeldungenDas ALV GridControl trägt innerhalb seines Kommunikationsprotokolls zwischenApplikationsserver 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 aktuellsichtbaren Zeilen notwendig sind. Nachfolgende Daten werden erst dann zum Controltransportiert, 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änkungenFür den Programmierer, der das ALV - GridControl verwendet, gibt es im WAN dennoch einenPunkt zu beachten. Die Ereignisse DELAYED_CALLBACK undDELAYED_CHANGED_SEL_CALLBACK sollten im WAN nur in begründeten Ausnahmefälleneingesetzt werden. Der Grund hierfür ist nicht primär im Ereignis selbst zu sehen, als in demSzenario, daß oft als Reaktion auf diese Ereignisse andere Controls mit Daten gefüllt werden. Dadies im WAN meist eine deutlich merkliche Verzögerung (>3 Sekunden) zur Folge hat, wird diesvon den Anwender als extrem hinderlich empfunden.

Page 44: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Das ALV Grid Control im Web

44 April 2001

Das ALV Grid Control im WebFür die Darstellung von ALV-Listen im Web, wird Funktionalität des ALV Grid Control [Extern] amBackend verwendet. Grundsätzlich gibt es zwei Möglichkeiten der Darstellung:

� Im SAPGUI for HTML [Seite 45]. Dies entspricht - mit Einschränkungen - einer 1:1 Abbildungder Transaktion im SAP-System.

� Im Workplace [Seite 49]. Hier werden stark vereinfachte Versionen des ALV Grid Controlsverwendet (Mini-ALV, Midi-ALV), um Listen in Anwendungen des Workplace einzubauen.

Es ist allerdings möglich, eine SAP-Transaktion mit einem ALV Grid Control imWorkplace anzuzeigen. In dem Fall ist der SAPGUI for HTML im Workplaceintegriert.

Page 45: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Darstellung im SAP GUI for HTML

April 2001 45

Darstellung im SAP GUI for HTMLEinsatzmöglichkeitenDer 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ührungshinweiseDie Darstellung des ALV Grid Controls im SAP GUI for HTML unterscheidet sich von der im SAPGUI 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.

FunktionsumfangIn den meisten Fällen funktionieren Methoden, Ereignisse und Attribute der KlasseCL_GUI_ALV_GRID auch im SAP GUI for HTML.

Tastaturkommandos sind im SAP GUI for HTML nicht verfügbar. Der Zugriff auf Funktionenerfolgt meistens per Mausklick. Darum gibt es für die F1-Hilfe ein Fragezeichen-Icon in derToolbar.

Der Benutzer muß Zeilen, Spalten oder Zellen einzeln markieren und wieder einzelndemarkieren. (Dies ist zudem abhängig vom Selektionsmodus [Seite 166]).

EinschränkungenUm eine gute Performance zu gewährleisten sind bestimmte Funktionen nur eingeschränktverfü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 dieMenüs nicht mehr dynamisch, sondern statisch [Seite 47].

S/I

Die Position der Scrollbar kann nicht gesetzt werden (sieheset_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) markiertwerden. Kombinationen sind nicht möglich.

S/I

Die Ereignisse delayed_callback [Seite 115] unddelayed_changed_sel_callback [Seite 116] können nicht verwendetwerden (siehe auch: Das ALV Grid Control bei WAN-Anmeldungen [Seite43])

S/I

Der Benutzer kann keine Spalten über Drag und Drop vertauschen S/I

Page 46: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Darstellung im SAP GUI for HTML

46 April 2001

Es gibt keine Autoscroll-Funktion (das heißt kein automatisches Scrollenbei 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 (zumBeispiel Intensified) werden auf andere Farbwerte abgebildet.

V

Page 47: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Definition eines statischen Menüs

April 2001 47

Definition eines statischen MenüsVerwendungIm 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 SAPGUI for HTML ist diese Vorgehensweise aus Performance-Gründen nicht zu empfehlen. Stattdessen sollten Sie alle Menüs der Toolbar (Kontext-Menüs funktionieren generell nicht) wie hierbeschrieben als statische Menüs definieren. Diese definieren Sie beim Ereignis toolbar vor derAnzeige des ALV Grid Controls.

Ablauf7. 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 GUI-Elements 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 Tabellemt_toolbar:

APPEND ls_toolbar TO e_object->mt_toolbar.

11. Erzeugen Sie eine Instanz der Kontext-Menü-Klasse und fügen Sie dem Menü Funktionenmit 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ü-Strukturentsprechend:

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.

Page 48: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Definition eines statischen Menüs

48 April 2001

14. Rufen Sie die statische Methode set_focus für Ihre Instanz auf:

call method cl_gui_control=>set_focus exporting control = sender.

ErgebnisDen jeweiligen Funktionskode, den Sie im Feld function festgelegt haben, können Sie in derEreignisbehandlermethode zum Ereignis USER_COMMAND abfragen und so die zugehörigeFunktion implementieren.

Page 49: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Darstellung im Workplace

April 2001 49

Darstellung im WorkplaceÜber die Technologie des Workplace ist es möglich, die Zusammenstellung von Anwendungenauf einen bestimmten Benutzertyp abzustimmen. Da diese Anwendungen im Web-Browserlaufen, ist deren Bedienung einfacher gestaltet und auf andere Benutzer zugeschnitten als imSAP-System.

Weitere Informationen zum Workplace finden Sie im SAPnet mit Hilfe des Aliasworkplace.

Für Web-Anwendungen, die Listen im Workplace darstellen, gibt es zwei Ausprägungen des ALVGrid Controls. Je nach Komplexität beziehungsweise Länge einer Liste setzt man entweder denMiniALV [Seite 51] oder den MidiALV [Seite 61] ein.

IntegrationSowohl Mini- als auch MidiALV bauen auf Funktionalität des ALV Grid Controls [Extern] amBackend 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 Ausgabendieses 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 angezeigtwerden kann, muß er bestimmte Voraussetzungen [Seite 50] erfüllen.

Page 50: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Voraussetzungen

50 April 2001

VoraussetzungenDie hier beschriebenen Voraussetzungen gelten sowohl für Mini- als auch für MidiALV.

Voraussetzungen für den ReportIm Web-Reporting werden die Listen im Web-Browser angezeigt. Daher darf der Proxy-Reportkeine Frontend-Objekte erzeugen.

Gibt der Proxy-Report Listen über den Fullscreen-Modus aus (Anwendungsfunktionen befindensich in der Anwendungsfunktionsleiste), muß die Anwendung das ABAP-Programm zum Proxy-Report nicht anpassen.

Benutzt der Proxy-Report die Klasse CL_GUI_ALV_GRID, muß der Report unterscheiden, ob erim SAP GUI läuft oder im Web. Dazu steht die statische Methode offline() [Seite 87] zurVerfü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 dieserReport automatisch auch für die Ausgabe als Mini- beziehungsweise MidiALV geeignet. Falls erdennoch nicht im Web zur Anzeige kommt, prüfen Sie zunächst, ob der Report und gegebenfallsdie angegebene Selektionsvarianten oder Layouts im System existieren (im Fall der Query mußdie Benutzergruppe vorhanden sein).

BerechtigungenDamit der Report beziehungsweise die Query im Web dargestellt werden kann, müssen Sieaußerdem zwei Einstellungen vornehmen:

� Der Report muß über das Web-Repository (Transaktion SMW0) freigegeben werden (SieheObjekte für das Web Reporting freigeben [Extern])

� Der Report muß einer Berechtigungsgruppe zugeordnet sein. Kunden verwenden den ReportRSCSAUTH, um eigene Berechtigungsgruppen modifikationsfrei zu verwenden.

Page 51: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Der MiniALV

April 2001 51

Der MiniALVVerwendungDer MiniALV ist für die Ausgabe von Listen auf einem kleinen Ausgabebereich des Bildschirmsgedacht (zum Beispiel: Übersicht über Systemprozesse). Aus diesem Grund sollten in diesenListen zum Beispiel keine Zwischensummen ausgegeben werden. Der MiniALV kann sowohl alseigenständige MiniApp, als auch als Teil einer MiniApp verwendet werden. MöglicheInteraktionen des Benutzers sind dabei auf die wesentlichsten Funktionen beschränkt:

Der Bildschirmabgriff zeigt den MiniALV in der Seitendarstellung (weitere Seiten sind durchBlättern erreichbar). Es wird ein Report aus dem SAP-System im Web-Browser angezeigt, derzur Flugtabelle SFLIGHT die Felder Airline, Flight no., Pl.type, Capacity, Occupiedund 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 gespeicherteVarianten der Liste ausgeben kann.

VoraussetzungenDer Funktionsbaustein FLOW_LOGIC_ALV_CALL muß im System vorhanden sein. ZurDarstellung im Browser werden diese Bausteine über WebRFC gerufen.

Siehe auch: Voraussetzungen [Seite 50]und Fehleranalyse [Seite 60].

FunktionsumfangDer MiniALV wird mit Hilfe der Flow-Logik Technologie realisiert. Das Tutorial Internet-Anwendungen entwickeln mit Flow-Dateien [Extern] geht speziell darauf ein, wie Sie dasSAP@Web Studio dazu verwenden, während die Dokumentation Integration von Internet-Services [Extern] behandelt, wie Sie ein MiniApp mit Hilfe des Web Application Builderimplementieren.

Page 52: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Der MiniALV

52 April 2001

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 eineparametrisierte URL

� Sie binden den MiniALV Service in eine eigene MiniApp ein [Seite 54] und brauchen keineFlow-Datei

� Sie nutzen den MiniALV als interaktives Web Control [Seite 55], brauchen also eine Flow-Datei, um auf Flow-Ereignisse reagieren zu können

Der Benutzer kann gespeicherte Selektionsvarianten oder Layouts über eine Listbox im MiniALVauswä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 dieAusgabe auf kleinen Bildschirmen [Seite 58] serialisieren. Auf diese Weise können die Daten aufsehr kleinen Bildschirmen für mobile Geräte ausgegeben werden (Pervasive Computing).

EinschränkungenDer ITS kann Flow-Ereignisse von inkludierten Services nicht verarbeiten. Wenn Sie eigeneFlow-Ereignisse verarbeiten wollen, müssen Sie den MiniALV als interaktives Web-Controleinbinden (s.o.).

Page 53: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Als MiniApp

April 2001 53

Als MiniAppVerwendungSie wollen einen Report aus dem SAP-System im Web-Browser darstellen und einer Rollezuordnen. Der Report soll also nicht in eine eigene MiniApp integriert, sondern direkt als MiniAppgestartet werden.

Vorgehensweise1. 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ähereszum Anlegen einer Rolle finden Sie in der Dokumentation Benutzer und Rollen (BC-CCM-USR) [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 Internet-Service [Seite 65].

ErgebnisDer der Rolle zugeordnete Benutzer kann den Report im Workplace aufrufen.

Page 54: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Als Erweiterung einer MiniApp

54 April 2001

Als Erweiterung einer MiniAppVerwendungSie zeigen einen Report über den MiniALV in einer eigenen MiniApp an. Auf diese Weise könnenSie in der MiniApp weitere Funktionen implementieren und das Aussehen der MiniApp, in der derMiniALV angezeigt wird, beeinflussen.

VoraussetzungenSie dürfen keine eigene Flow-Datei verwenden.

VorgehensweiseSie inkludieren den MiniALV-Service in Ihr Template und setzen vorher globale variablen, umdem 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")`

ErgebnisWenn die MiniApp gestartet wird, zeigt der MiniALV den Proxy-Report an.

Page 55: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Als interaktives Web Control

April 2001 55

Als interaktives Web ControlVerwendungSie zeigen einen Report über den MiniALV in einer eigenen MiniApp an. Auf diese Weise könnenSie in der MiniApp weitere Funktionen implementieren und das Aussehen der MiniApp, in der derMiniALV angezeigt wird, beeinflussen. Bei der Verwendung des MiniALV als interaktives WebControl können Sie Flow-Ereignisse in der MiniApp verarbeiten.

Vorgehensweise1. 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 derMiniALV verwendet wird, einen Zustand, zum Beispiel loadList. Kopieren Sie den Modul-Aufruf des MiniALV aus dessen Flow-Datei in diesen Zustand. Die Flow-Datei des MiniALVfinden Sie im MiniALV-Service im SAP-System.

Sobald der ITS Flow-Ereignisse von Includes verarbeiten kann, ist die hierbeschriebene 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.

ErgebnisIhre MiniApp kann nun eigene Flow-Ereignisse definieren und mit dem MiniALV verarbeiten.

Page 56: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Service-Parameter

56 April 2001

Service-ParameterInhalt

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) Bestimmt, welche Auswahl in der Listbox erscheint:

� V: In der Listbox werden gespeicherte Selektionsvariantenund/oder gespeicherte Layouts angezeigt (alle dem Reportzugeordneten)

� P: Die Anwendung ordnet der Listbox eigene Werte zu (überUser-Exit, siehe userfb). Sehen Sie sich dazu den ServiceCCMS_ALVIEWER und den FunktionsbausteinSALWP_AL_VIEW_GET_SHUFF_INFO an.

userfb Funktionsbaustein als User-Exit um:

� MiniALV Parameter zu customizen

� Einstellungen benutzerspezifisch zu sichern

Visuelle Eigenschaften

Parameter (Defaultwert) Bedeutung

ma_title (on|off) 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) Anzahl der Zeilen, die auf einmal sichtbar sind

ma_height (150) Höhe der Scrollbartabelle

Eigenschaften für 'ma_style=wap1' (siehe Ausgabe auf kleinen Bildschirmen [Seite 58])

Page 57: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Service-Parameter

April 2001 57

Parameter (Defaultwert) Bedeutungmaw_columns Mit diesem Parameter kann ausgewählt werden, welche Spalten

angezeigt werden sollen und welche Beschriftung für den jeweiligenZellen verwendet werden

maw_sparse Bewirkt eine Verdichtung der Tabelle. Sich wiederholendeSpaltenwerte werden nicht nochmals ausgegeben.

Page 58: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Ausgabe auf kleinen Bildschirmen

58 April 2001

Ausgabe auf kleinen BildschirmenEine 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ächeunterbringen zu können. Um den MiniALV zu diesem Zweck zu verwenden, müssen Sie denService-Parameter ma_style auf wap1 setzen.

In der Regel wird der Benutzer nur an der Ausgabe bestimmter Spalten der ALV-Liste interessiertsein. Der MiniALV stellt dazu weitere Service-Parameter [Seite 56] zur Verfügung, die nur für denAusgabestil wap1 gedacht sind. Sie beginnen mit dem Präfix maw_.

Aufbereitung der AnzeigeMit dem Parameter maw_columns kann ausgewählt werden, welche Spalten angezeigt werdensollen und welche Beschriftung für den jeweiligen Zellen verwendet werden sollen. DerParameterwert ist ein String mit einer komma-separierten Liste, in der jede Position einer Spalteentspricht. In einer Position steht die Beschriftung, die für den Wert gestellt wird. Zusätzlichstehen 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 Spaltenwertohne Zeilenwechsel in derselben Zeile dargestellt wird

,, Zwei Kommas hintereinander bewirken, daß die entsprechende Postion nichtdargestellt wird

_ Die entsprechende Position wird angezeigt, jedoch ohne irgendwelcheBeschriftung

*0 Der normale Spalten-Header wird für die Position verwendet

*n Die ersten n Buchstaben des normalen Spalten-Headers werden für diePosition verwendet

BeispielDas folgende Beispiel zeigt eine ALV-Liste, die verwendeten Steuerparameter und darunter diedazugehörige Ausgabe:

Page 59: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Ausgabe auf kleinen Bildschirmen

April 2001 59

6066005.02.00908LufthansaLH3066003.02.00907LufthansaLH13066004.02.0018AmericanAA9766003.02.0017AmericanAAOccupiedCapacityDate#AirlineShort

>AA 17; 03.02.00Kapazität= 660Belegt= 97>AA 18; 04.02.00Kapazität= 660Belegt= 130...

>AA 17; 03.02.00Cap= 660, Occ= 97>AA 18; 04.02.00Cap= 660; Occ= 130...

>American>>#17; 03.02.00Cap= 660; Occ= 97>>#18, 04.02.00Cap= 660; Occ= 130>Lufthansa...

maw_columns=>^,,^,; ,Kapazität=,Belegt=

maw_columns=>^,,^,;,*3=,*3=

maw_columns=,>,#^,; ,*3=,*3=maw_sparse=2

Page 60: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Fehleranalyse

60 April 2001

FehleranalyseHinweise� 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 dieVerwendung des MiniALV [Seite 51]. Sie können zusätzlich Testen, ob derFunktionsbaustein FLOW_LOGIN_ALV_CALL Daten des Reports zurückgibt.

� Falls Sie den MiniALV zusammen mit einem SAP-System eines älteren Releasestandesverwenden, wird möglicherweise beim Reportnamen (und bei den Selektionsvarianten, etc.)noch zwischen Groß-/Kleinschreibung unterschieden.

FehlermeldungenDer MiniALV gibt im Fehlerfall Meldungen aus. Der Fehlerkode kann im Webcontrol [Seite 55]-Modus im Flow-File behandelt werden:

Fehlerkode Meldung

E00 RFC lieferte keine Daten

E01 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 nichtvorhanden

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

Page 61: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Der MidiALV

April 2001 61

Der MidiALVVerwendungDer MidiALV ist für längere Listen im Web einzusetzen. Die Liste wird im komplettenAusgabebereich des Workplace ausgegeben. Außerdem übernimmt der MidiALVSelektionsbilder aus dem SAP-System.

VoraussetzungenDer MidiALV kann nur Reports im Web anzeigen, die als Ausgabe ein ALV Grid Controlverwenden. Die Funktionsbausteine WWW_ALV_CALL beziehungsweise WWW_ALV_SELSCREENmüssen im verwendeten SAP-System vorhanden sein. Zur Darstellung im Browser werden (jenach 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 MidiALVdarstellen wollen (WWW_ALV_SELSCREEN) oder ob lediglich die Ergebnisliste zu einer Selektionangezeigt werden soll (WWW_ALV_CALL).

Der Benutzer kann gespeicherte Selektionsvarianten oder Layouts über eine Listbox im MiniALVauswählen. Außerdem sind in der Liste eingebundene Hyperlinks [Seite 37] im MidiALV aktiv.

Besonderheiten zum MidiALV-SelektionsbildAuf der Ergebnisliste erscheint ein Button Zurück zum Selektionsbild, mit dem derBenutzer 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

Page 62: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Den MidiALV aufrufen

62 April 2001

Den MidiALV aufrufenVerwendungSie rufen den MidiALV über eine URL auf und zeigen ihn so im Web-Browser an. Wenn Siediese URL einer Rolle zuordnen, kann der MidiALV im Workplace integriert werden.

Vorgehensweise1. 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 eineQuery beziehen

2. Die URL geben Sie bei der Beschreibung der Rolle in der Transaktion PFCG an. Nähereszum Anlegen einer Rolle finden Sie in der Dokumentation Benutzer und Rollen (BC-CCM-USR) [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 Internet-Service [Seite 65].

ErgebnisDer MidiALV-Aufruf zu Ihrem Report ist nun mit einer Rolle verknüpft. Wird im Workplace dieseRolle verwendet, kann der der Rolle zugeordnete Benutzer diesen Report aufrufen.

Page 63: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Service-Parameter

April 2001 63

Service-ParameterDie 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 imSAP-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 einerQuery 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 mitSelektionsbild gerufen (www_alv_selscreen), so wird das Selektionsbildentsprechend 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 Browsereinstellungbestimmt

Page 64: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Service-Parameter

64 April 2001

_header(small|medium|long)

Auswahl der Spaltenüberschrift:

� small = Kurztext

� medium = Mittlerer Text

� long = Langtext

_shuffler (on|off) Anzeige der Listbox für die Auswahl einer Selektionsvariante odereines Layouts ein-/abschalten

Page 65: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Aufruf des Internet-Service

April 2001 65

Aufruf des Internet-ServiceUm MiniApps im Workplace darzustellen, publizieren Sie Internet-Services beim ITS. DieMiniApp 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>/!?<CGI-Parameter>

Der Teil <web_protcl>://<web_server>/<web_path_prefix> der URLwird im Rahmen dieser Dokumentation auch mit <WEBSERVER>abgekürzt.

Der Teil bis einschließlich dem Ausrufezeichen ('!') beschreibt den Internet-Service auf demjeweiligen ITS. Mit dem Fragezeichen ('?') werden die CGI-Parameter eingeleitet, denen mandirekt 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-Dateian den ITS übergeben.

Die URL im WorkplaceWenn 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 ersetztdiesen Teil der Adresse durch die korrekte Pfadangabe.

BeispieleTesten und Aufrufen des MiniALVUm den MiniALV-Service mit einem Report mit dem Namen enjoy auf dem ITS mit der URLhttp://rosebud:1080 und dem Web-Server-Präfix scripts/wgate/ zu starten (zumBeispiel zum Testen), rufen Sie die URLhttp://rosebud:1080/scripts/wgate/minialv/!?report=enjoy

im Web-Browser auf. In diesem Fall ist der <web_path_prefix> gleich scripts. In der PFCGmüssen Sie dann für diesen Service die URLhttp://rosebud:1080/<web_path_prefix>/minialv/!?report=enjoy

eintragen.

Page 66: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Aufruf des Internet-Service

66 April 2001

Testen und Aufrufen des MidiALVUm den MidiALV-Service mit einem Report mit dem Namen list auf dem ITS mit der URLhttp://big:1080 und dem Web-Server-Präfix scripts/wgate/ zu starten (zum Beispielzum Testen), rufen Sie die URLhttp://big:1080/scripts/wgate/webrfc/!?_function=www_alv_call&_report=list

im Web-Browser auf. In diesem Fall ist der <web_path_prefix> gleich scripts. In der PFCGmüssen Sie dann für diesen Service die URLhttp://big:1080/<web_path_prefix>/webrfc/!?_function=www_alv_call&_report=list

eintragen.

Page 67: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Methoden der Klasse CL_GUI_ALV_GRID

April 2001 67

Methoden der Klasse CL_GUI_ALV_GRIDDiese Klasse beinhaltet sowohl controlspezifische Methoden, als auch vom Control Frameworkgeerbte Methoden. In diesem Abschnitt werden nur die controlspezifischen Methodenbeschrieben. Die vererbten Methoden des Control Frameworks werden in Methoden des OOControl 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 [Seite92]

Cursur auf bestimmte Zelle setzen

get_scroll_info_via_id [Seite77]

Abfragen der aktuellen Scroll-Position

set_scroll_info_via_id [Seite96]

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 [Seite79]

Holen von Indizes der aktuell markierten Zellen

set_selected_cells_id [Seite99]

Markieren von Zellen über Index-Tabelle

get_selected_columns [Seite80]

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 Anwendung

get_frontend_fieldcatalog[Seite 75]

Holen des aktuellen Feldkatalogs vom Frontend

Page 68: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Methoden der Klasse CL_GUI_ALV_GRID

68 April 2001

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 gesetztenFilters nicht angezeigt werden

get_filter_criteria [Seite 74] Filtereigenschaften für alle Spalten beschaffen, für dieaktuell 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 Variantennamensunterbinden

set_graphics_container [Seite97]

Anderes Container Control für die Diagramm-Anzeigeverwenden

set_user_command [Seite108]

Ändern des aktuell auszuführenden Funktionskodes

Ereignisbehandlung

Methode Anwendung

register_delayed_event [Seite89]

Registrierung des Ereignisses DELAYED_CALLBACK oderDELAYED_SEL_CHANGED_CALLBACK

set_toolbar_interactive [Seite107]

Auslösen des Ereignisses toolbar [Seite 131]

Schnittstellen

Methode Anwendung

activate_reprep_interface[Seite 70]

Bericht-Bericht Schnittstelle aktivieren

Page 69: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Methoden der Klasse CL_GUI_ALV_GRID

April 2001 69

offline [Seite 87] Prüfen, ob das ALV Grid Control ohne Frontendbehandlungläuft

Page 70: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

activate_reprep_interface

70 April 2001

activate_reprep_interfaceVerwendungAktivierung der Bericht/Bericht-Schnittstelle. Über den Parameter IS_REPREP spezifizieren Sieden Sender des Berichts. Existiert in der Tabelle TRSTI eine Zuordnung des Senderberichtes zuEmpfängerberichten, wird der Funktionskode BEBx aktiv (x = Funktionskodeklasse).

Liegt für den Sender RKTFGS15 eine Empfängerzuordnung zur Report-WriterBerichtsgruppe 7KOI mit Funktionscodeklasse '3' (SAP-Einstellung) vor, so wirddiese Empfängerberichtsgruppe bei Funktionscode BEB3 über die Bericht/Bericht-Schnittstelle gerufen. Als Selektionen werden die Reportabgrenzungen sowie dieKeyinformationen der selektierten Zeile der Bericht-Bericht-Schnittstelle übergeben.

Weitere Informationen zur Bericht/Bericht-Schnittstelle finden Sie in der Dokumentation zurFunktionsgruppe RSTI.

VoraussetzungenDer Report RKKBRSTI muß im Entwicklungssystem aktiv sein.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->activate_reprep_interface

EXPORTING IS_REPREP = <Struktur vom Typ LVC_S_RPRP>.

Parameter Bedeutung

IS_REPREP Struktur für die Senderidentifikation

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 71: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

CONSTRUCTOR

April 2001 71

CONSTRUCTORVerwendungDiese Methode wird automatisch aufgerufen, wenn Sie mit CREATE OBJECT ein Objekt derKlasse CL_GUI_ALV_GRID anlegen. Mit der Erzeugung wird das Control auf dem Frontendangelegt und an ein Container Control gebunden.

FunktionsumfangCREATE 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 alleEreignisse als Anwendungs-Ereignisse, sonst als System-Ereignisse.

Die anderen Parameter sind haben die gleiche Bedeutung wie in der Methodeconstructor [Seite 185] der Klasse CL_GUI_CONTROL.

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 72: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_current_cell

72 April 2001

get_current_cellVerwendungMit dieser Methode beschaffen Sie sich den Wert und die Eigenschaften der Zelle im GridControl, auf der der Cursor positioniert ist.

Wenn statt einer Zelle eine Spalte markiert ist, setzt das ALV Control denZeilenindex auf 0 und liefert nur Informationen zur Spalte. Analoges gilt für einemarkierte Zeile.

Das ALV Control liefert zwei Zeilen- und Spalten-Indizes zurück. Einmal bezogen auf dieAusgabetabelle (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 sichzum Beispiel, wenn Zeilen auf Grund eines definierten Filters nicht angezeigt werden.

FunktionsumfangCALL 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 dieAusgabetabelle

ES_COL_ID Struktur mit Informationen über den Feldnamen der Spalte bezogen auf dieAusgabetabelle

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 73: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_filtered_entries

April 2001 73

get_filtered_entriesVerwendungLiefert eine Tabelle mit allen Indizes, die im Augenblick mit der Standardfunktion "Filtern" aus derAnzeige ausgeblendet sind.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_filtered_entries

IMPORTING ET_FILTERED_ENTRIES = <interne Tabelle vom Typ LVC_T_FIDX>.

Parameter Bedeutung

ET_FILTERED_ENTRIES Tabelle vom Typ Hashed Table mit einem Zeilenindex proausgefilterter Tabellenzeile

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 74: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_filter_criteria

74 April 2001

get_filter_criteriaVerwendungMit dieser Methode können Sie aktuelle Filtereinstellungen holen und an andere Komponentendes Systems weiterreichen. Eine Zeile der Tabelle beschreibt die Selektionsbedingungen fürEinträge einer Spalte, die nicht angezeigt werden. Spalten, für die kein Filter gesetzt ist, sindnicht in der Tabelle aufgeführt.

Die Tabelle mit den Filterkriterien sollte nie 'manuell' aufgebaut werden.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_filter_criteria

IMPORTING ET_FILTER = <interne Tabelle vom Typ LVC_T_FILT>.

Parameter Bedeutung

ET_FILTER Tabelle mit Filtereinstellungen für Spalten mit gesetztem Filter.

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 75: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_frontend_fieldcatalog

April 2001 75

get_frontend_fieldcatalogVerwendungHolen des aktuellen Feldkatalogs vom Frontend. Sie verwenden diese Methode, wenn Sie denFeldkatalog, der beim Anzeigen verwendet wird, modifizieren möchten (z.B. zum Ausblendenvon bestimmten Spalten).

Siehe auch: Der Feldkatalog [Seite 133] und set_frontend_fieldcatalog [Seite 94].

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_frontend_fieldcatalog

IMPORTING ET_FIELDCATALOG = <interne Tabelle vom Typ LVC_T_FCAT>.

Parameter BedeutungET_FIELDCATALOG Strukturbeschreibung für die gesamte Ausgabetabelle

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 76: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_frontend_layout

76 April 2001

get_frontend_layoutVerwendungHolen der aktuellen Layout-Struktur vom Frontend. In der Layout-Struktur bestimmen SieEigenschaften des Grid Controls (siehe auch: Die Layout-Struktur [Seite 163]).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_frontend_layout

IMPORTING ES_LAYOUT = <Struktur vom Typ LVC_S_LAYO>.

Parameter BedeutungES_LAYOUT Struktur mit Feldern für Anzeigeoptionen, grafischen Eigenschaften des Grid

Controls, Summenoptionen, Exceptions, Farben, Drag und Drop und anderenInteraktionselementen

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 77: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_scroll_info_via_id

April 2001 77

get_scroll_info_via_idVerwendungAbfragen der aktuellen Scroll-Position im Grid-Control:

� Der Zeilenindex (Feld index der Struktur lvc_s_row) gibt an, welche Zeile als erste in derAnzeige zu sehen ist (vertikales Scrollen).

� Der Spaltenname (Feld fieldname der Struktur lvc_s_col) gibt an, welche scrollbareSpalte (die Schlüsselfelder sind statisch) als erste links angezeigt wird (horizontalesScrollen).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_scroll_info_via_id

IMPORTING ES_ROW_INFO = <Struktur vom Typ LVC_S_ROW> ES_COL_INFO = <Struktur vom Typ LVC_S_COL>.

Parameter BedeutungES_ROW_INFO Informationen zum vertikalen Scrollen

ES_COL_INFO Informationen zum horizontalen Scrollen

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 78: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_selected_cells

78 April 2001

get_selected_cellsVerwendungHolen von markierten Zellen im Zellenselektionsmodus. Das ALV Control liefert die Werte, denSpaltennamen 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.

VoraussetzungenSie 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 derMethode set_table_for_first_display [Seite 103]).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_cells

IMPORTING ET_CELL = <interne Tabelle vom Typ LVC_T_CELL>.

Parameter BedeutungET_CELL Tabelle mit Informationen einer Zelle pro Zeile

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 79: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_selected_cells_id

April 2001 79

get_selected_cells_idVerwendungHolen des Spalten- und Zeilenindex der aktuell markierten Zellen.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_cells_id

IMPORTING ET_CELLS = <interne Tabelle vom Typ LVC_T_CENO>.

Parameter Bedeutung

ET_CELLS Tabelle mit Zeilen [Extern]- und Spaltenindizes (COL_ID).

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

AktivitätenDie 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. Dortist die COL_ID dem Feldnamen eindeutig zugeordnet.

Page 80: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_selected_columns

80 April 2001

get_selected_columnsVerwendungHolen der Feldnamen von markierten Spalten.

Wenn nur Zeilen oder Zellen markiert sind, übergibt das Control eine leere Tabelle.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_columns

IMPORTING ET_INDEX_COLUMNS = <interne Tabelle vom Typ LVC_T_COL>.

Parameter BedeutungET_INDEX_COLUMNS Tabelle mit Feldnamen der markierten Spalten

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 81: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_selected_rows

April 2001 81

get_selected_rowsVerwendungHolen 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 eineleere Tabelle.

� Wenn der Benutzer mehrere Zeilen markiert hat sind die Indizes in der Tabellegenerell aufsteigend sortiert.

VorausetzungenUm das Markieren von mehreren Zeilen zu erlauben, müssen Sie das Feld sel_mode derLayout-Struktur auf 'A', 'C' oder 'D' setzen (siehe auch: Eigenschaften des Grid Controls[Seite 166]).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_selected_rows

IMPORTING ET_INDEX_ROWS = <interne Tabelle vom Typ LVC_T_ROW>.

Parameter BedeutungET_INDEX_ROWS Tabelle mit Indizes der markierten Zeilen

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 82: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_sort_criteria

82 April 2001

get_sort_criteriaVerwendungHolen der aktuellen Sortierkriterien für sortierte Spalten des Grid Controls.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_sort_criteria

IMPORTING ET_SORT = <interne Tabelle vom Typ LVC_T_SORT>.

Parameter BedeutungET_SORT 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]

Page 83: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_subtotals

April 2001 83

get_subtotalsVerwendungGibt die aktuellen Zwischensummen des ALV Grid Control zurück. Der Benutzer kann maximalneun Zwischensummen bilden, nachdem er über mindestens eine Spalte eine Summe gebildethat. Dabei wird die Liste nach den Werten einer oder mehrerer Spalten (derZwischensummenspalte) sortiert. Die Änderung eines Wertes in der Zwischensummenspalteführt zur Ausgabe der Zwischensumme (dies wird auch als Gruppenstufenwechsel bezeichnet).

IntegrationBevor Sie auf die Werte der Zwischensummen zugreifen, holen Sie sich mit der Methodeget_sort_criteria [Seite 82] die Sortierungstabelle [Extern]. Eine Zeile dieser Tabelle beschreibtEigenschaften 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 gebildetwurde

� 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).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_subtotals

IMPORTING EP_COLLECT00 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT01 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT02 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT03 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT04 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT05 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT06 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT07 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT08 = <Referenzvariable vom Typ REF TO DATA> EP_COLLECT09 = <Referenzvariable vom Typ REF TO DATA> ET_GROUPLEVELS = <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 Feldsymbolvom Typ Ihrer Ausgabetabelle (siehe unten).

Parameter Bedeutung

Page 84: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_subtotals

84 April 2001

EP_COLLECT00 Zeigt auf die Summenzeile. Da es nur eine Summenzeile gibt, derenSummierungsbereich zudem eindeutig ist, gibt es zu dieser Tabellekeine weiteren Informationen in der Tabelle ET_GROUPLEVELS.

EP_COLLECT01bisEP_COLLECT09

Zeigen auf die Zwischensummenzeilen. Für jedeZwischensummenebene gibt es eine Referenzvariable, die jeweils aufeine 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 ergebensich aus der Sortierpriorität (Feld SPOS in der Sortierungstabelle[Extern]). Die Spalte, nach der zuerst sortiert wurde bildet die höchsteZwischensummenebene.

ET_GROUPLEVELS Verwaltung aller Indizes zu den einzelnen Gruppenstufen. Die Felderder Tabelle haben folgende Bedeutung:

� INDEX_FROM, INDEX_TO: Zeilen der Ausgabetabelle, über den dieZwischensumme gebildet wurde

� LEVEL: Zwischensummenebene (s.o.)

� COUNTER: Anzahl der Zeilen, über die die Zwischensumme gebildetwurde

� COMPRESS: Zu dieser Zwischensummenzeile hat der Benutzer diezugehörigen Zeilen ausgeblendet

� COLLECT: Gibt an, in welcher Zwischensummentabelle (01-09) dieWerte abgelegt sind

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

AktivitätenGreifen Sie auf die Zwischensummentabellen (im Beispiel nur auf die Summe und die ersteZwischensummenebene) ü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>.

Page 85: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_subtotals

April 2001 85

Page 86: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_variant

86 April 2001

get_variantVerwendungHolen des aktuellen Layouts.

Gemeint ist das Layout für die Filter-, Sortier- und Spalteneinstellungen und nichtdie Layout-Struktur [Seite 163].

VoraussetzungenDas aktuelle Layout wurde bereits gesichert. Um dem Benutzer das Sichern eines Layout zuerlauben, müssen wenigstens die Parameter I_SAVE und IS_VARIANT beim Aufruf vonset_table_for_first_display [Seite 103] belegt sein.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->get_variant

IMPORTING ES_VARIANT = <Struktur vom Typ DISVARIANT>.

Parameter BedeutungES_VARIANT Struktur mit Informationen zum aktuell geladenen Layout

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 87: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

offline

April 2001 87

offlineVerwendungMit 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, inKombination mit CATT und beim Web-Reporting der Fall.

In diesem Fall sollten Sie keine Frontend-Objekt erzeugen (siehe unten).

FunktionsumfangCALL 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ätenVerwenden Sie diese Methode beispielsweise, um den Control Container für das ALV GridControl 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 underzeugt gegebenenfalls keine Frontend-Objekte. Sie arbeiten dann nur mit derInstanz auf dem Backend weiter.

Page 88: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

refresh_table_display

88 April 2001

refresh_table_displayVerwendungMit dieser Methode frischen Sie die Ausgabetabelle im Grid Control auf. Dies ist nötig, wenn Siemit Methoden die Anzeige der Daten verändern (z.B. mit set_frontend_layout [Seite 95]) oderwenn Sie neu selektierte Daten im gleichen ALV Grid Control anzeigen wollen.

Das Demoprogramm BCALV_GRID_03 der Entwicklungsklasse SLIS benutzt dieseMethode, um nach einer neuen Selektion die Ausgabetabelle aufzufrischen.

FunktionsumfangCALL 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 derScrollbar 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 Datentabellezwischenzeitlich nicht geändert haben und das Grid Control lediglichbezüglich Änderungen im Layout oder im Feldkatalog auffrischenmöchten.

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 89: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

register_delayed_event

April 2001 89

register_delayed_eventVerwendungMit dieser Methode registrieren Sie eines der verzögerten Ereignisse delayed_callbackbeziehungsweise delayed_changed_sel_callback (es ist nicht möglich, beide Ereignissegleichzeitig zu registrieren).

Lesen Sie unbedingt den Abschnitt Das ALV Grid Control bei WAN-Anmeldungen[Seite 43] bevor Sie eines dieser Ereignisse registrieren.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->register_delayed_event

EXPORTING I_EVENT_ID = <Var. vom Typ I>.

Parameter BedeutungI_EVENT_ID Ereignis-Id:

� cl_gui_alv_grid=>mc_evt_delayed_move_curr_cel für dasEreignis delayed_callback [Seite 115]

� cl_gui_alv_grid=>mc_evt_delayed_change_select für dasEreignis delayed_changed_sel_callback [Seite 116]

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 90: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_3d_border

90 April 2001

set_3d_borderVerwendungMit dieser Methode können Sie den Rand des ALV Grid Controls in der Dynprofläche versenktdarstellen.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_3d_border

EXPORTING BORDER = <Var. vom Typ I>.

Parameter BedeutungBORDER Rahmen im 3D-Stil darstellen (1=Ja, 0=Nein)

Zurück zu: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 91: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

save_variant_dark

April 2001 91

save_variant_darkVerwendungDiese Methode legt einen Namen für das zu speichernde Layout [Seite 17] fest. Wenn derBenutzer ein aktuelles Layout speichert, unterdrückt das ALV Grid Control das Popup zumSpeichern eines Layouts und gibt statt dessen nur eine Erfolgsmeldung aus.

VoraussetzungenDer Benutzer muß zum Speichern eines Layouts berechtigt sein. Siehe dazu: Abspeichern einesLayouts [Seite 18].

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->save_variant_dark

IMPORTING IS_VARIANT = <Struktur vom Typ DISVARIANT>.

Parameter Bedeutung

IS_VARIANT Struktur, um ein Layout zu identifizieren. Sie müssen mindestens die FelderREPORT (sy-repid) und VARIANT (technischer Name des Layouts) füllen.

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 92: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_current_cell_via_id

92 April 2001

set_current_cell_via_idVerwendungSetzen des Cursors auf eine bestimmte Zelle im Grid Control. Das Grid Control scrollt an dieübergebene Position, falls die Zelle nicht sichtbar ist.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_current_cell_via_id

EXPORTING IS_ROW_ID = <Struktur vom Typ LVC_S_ROW> IS_COLUMN_ID = <Struktur vom Typ LVC_S_COL>.

Parameter BedeutungIS_ROW_ID Struktur mit Zeilenindex

IS_COLUMN_ID Struktur mit Feldnamen der Spalte

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 93: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_filter_criteria

April 2001 93

set_filter_criteriaVerwendungSetzen der aktuellen Filtereinstellungen. Eine Zeile der Tabelle beschreibt dieSelektionsbedingungen 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.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_filter_criteria

EXPORTING IT_FILTER = <interne Tabelle vom Typ LVC_T_FILT>.

Parameter BedeutungIT_FILTER Tabelle mit Filtereinstellungen

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 94: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_frontend_fieldcatalog

94 April 2001

set_frontend_fieldcatalogVerwendungSetzen des Feldkatalogs für eine ALV Control Instanz.

Nach dem Setzen des Feldkatalogs frischen Sie die Listanzeige mit der Methoderefresh_table_display [Seite 88] auf. Falls sich der Feldkatalog auf eineAusgabetabelle bezieht, die Sie in einer ALV Control Instanz mit andererTabellenstruktur anzeigen, müssen Sie den Feldkatalog mit der Methodeset_table_for_first_display [Seite 103] übergeben.

Siehe auch: Der Feldkatalog [Seite 133] und get_frontend_fieldcatalog [Seite 75].

VoraussetzungSie haben sich den aktuellen Feldkatalog mit der Methode get_frontend_fieldcatalog [Seite 75]besorgt oder haben ihn vorher halbautomatisch aufgebaut [Seite 139].

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_frontend_fieldcatalog

EXPORTING IT_FIELDCATALOG = <interne Tabelle vom Typ LVC_T_FCAT>.

Parameter BedeutungIT_FIELDCATALOG Beschreibung der Spalteneigenschaften der Ausgabetabelle

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

EinschränkungenDas ALV Grid Control greift in dieser Methode nicht mehr auf das Data Dictionary zu. Es ist alsonicht möglich, nachträglich einen Dictionary-Bezug herzustellen, um zum Beispiel dortabgelegte Feldbezeichner als Spaltentexte automatisch zu übernehmen.

Page 95: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_frontend_layout

April 2001 95

set_frontend_layoutVerwendungSetzen 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 Methoderefresh_table_display [Seite 88] auffrischen.

In der Layout-Struktur bestimmen Sie Eigenschaften des Grid Controls (siehe auch Die Layout-Struktur [Seite 163]).

Über den Parameter IS_LAYOUT beim Aufruf der Methodeset_table_for_first_display [Seite 103] setzen Sie Eigenschaften des Grid Controlsinitial.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_frontend_layout

EXPORTING IS_LAYOUT = <Struktur vom Typ LVC_S_LAYO>.

Parameter BedeutungIS_LAYOUT Struktur mit Feldern für Anzeigeoptionen, grafischen Eigenschaften des Grid

Controls, Summenoptionen, Exceptions, Farben, Drag und Drop und anderenInteraktionselementen

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 96: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_scroll_info_via_id

96 April 2001

set_scroll_info_via_idVerwendungSetzen der Scroll-Position im Grid-Control:

� Der Zeilenindex (Feld index der Struktur lvc_s_row) gibt an, welche Zeile als erste in derAnzeige sichtbar sein soll (vertikales Scrollen).

� Der Spaltenname (Feld fieldname der Struktur lvc_s_col) gibt an, welche scrollbareSpalte (die Schlüsselfelder sind statisch) als erste links angezeigt werden soll (horizontalesScrollen).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_scroll_info_via_id

EXPORTING IS_ROW_INFO = <Struktur vom Typ LVC_S_ROW> IS_COLUMN_INFO = <Struktur vom Typ LVC_S_COL>.

Parameter BedeutungIS_ROW_INFO Informationen zum vertikalen Scrollen

IS_COLUMN_INFO Informationen zum horizontalen Scrollen

Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 97: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_graphics_container

April 2001 97

set_graphics_containerVerwendungIn der Toolbar des ALV Grid Control gibt es die Funktion Grafik anzeigen, mit der die Datender 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 Sieeinen anderes Container Control verwenden wollen, übergeben Sie die zugehörigeReferenzvariable mit dieser Methode. Das ALV Grid Control stellt dann die Grafik in diesemContainer dar.

IntegrationDie Dokumentation SAP Container [Extern] beschreibt alle verfügbaren Container-Typen.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_graphics_container

EXPORTING I_GRAPHICS_CONTAINER = <Referenzvariable auf CL_GUI_CONTAINER>.

Parameter Bedeutung

I_GRAPHICS_CONTAINER Referenzvariable auf ein Container Control, in dem dasDiagramm zu den Daten der Ausgabetabelle dargestellt werdensoll.

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 98: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_selected_cells

98 April 2001

set_selected_cellsVerwendungMarkieren von Zellen im Grid Control. Bevor das ALV Control die mit dem Aufruf übergebenenZellen markiert, werden alle anderen Markierungen rückgängig gemacht.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_cells

EXPORTING IT_CELLS = <Tabelle vom Typ LVC_T_CELL>.

Parameter Bedeutung

IT_CELLS Tabelle mit den Feldnamen der zu markierenden Zellen. Der Zeilentyp derTabelle ist LVC_S_CELL; diese Struktur enthält eine Struktur vom TypLVC_S_COL und LVC_S_ROW, mit denen Sie die Spalte und die Zeile der Zellefestlegen (siehe set_selected_rows [Seite 101] bzw. set_selected_columns[Seite 100]).

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 99: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_selected_cells_id

April 2001 99

set_selected_cells_idVerwendungMarkieren von Zellen über Zeilen- und Spaltenindizes.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_cells_id

IMPORTING IT_CELLS = <interne Tabelle vom Typ LVC_T_CENO>.

Parameter Bedeutung

IT_CELLS Tabelle mit Zeilen [Extern]- und Spaltenindizes (COL_ID).

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

AktivitätenDie COL_ID [Seite 144] wird intern vergeben. Sie ermitteln die richtige COL_ID für einenFeldnamen Ihrer Ausgabetabelle, indem Sie sich den Feldkatalog mit der Methodeget_frontend_fieldcatalog [Seite 75] holen. Dort ist die COL_ID dem Feldnamen eindeutigzugeordnet.

Page 100: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_selected_columns

100 April 2001

set_selected_columnsVerwendungMarkieren von Spalten im Grid Control. Bevor das ALV Control die mit dem Aufruf übergebenenSpalten markiert, werden alle anderen Markierungen rückgängig gemacht.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_columns

EXPORTING IT_COL_TABLE = <Tabelle vom Typ LVC_T_COL>.

Parameter Bedeutung

IT_COL_TABLE 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]

Page 101: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_selected_rows

April 2001 101

set_selected_rowsVerwendungMarkieren von Zeilen im Grid Control über den Tabellenindex.

Die Nummerierung der Zeilen des Grid Control beginnt bei 1.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_selected_rows

EXPORTING IT_INDEX_ROWS = <interne Tabelle vom Typ LVC_T_ROW>.

Parameter BedeutungIT_INDEX_ROWS Tabelle mit Indizes der zu markierenden Zeilen

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 102: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_sort_criteria

102 April 2001

set_sort_criteriaVerwendungSetzen 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.

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_sort_criteria

EXPORTING IT_SORT = <interne Tabelle vom Typ LVC_T_SORT>.

Parameter BedeutungIT_SORT 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]

Page 103: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_table_for_first_display

April 2001 103

set_table_for_first_displayVerwendungAnzeigen einer Ausgabetabelle in der ALV Control Instanz. Beim Aufruf muß entweder eineReferenzstruktur des Data Dictionary angegeben werden oder ein passender Feldkatalog [Seite133]. Sie können mit optionalen Parametern zusätzlich vor Ausführung ein Layout laden, dieTabelle nach Feldern sortieren, für Spalten einen Filter setzen und Eigenschaften des GridControls festlegen.

Wenn Sie die angezeigten Daten der Ausgabetabelle auffrischen wollen, benutzenSie die Methode refresh_table_display [Seite 88]. Die Methodeset_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 einfachstenAufruf dieser Methode.

Voraussetzungen

Die Ausgabetabelle muß entweder global definiert sein oder ein öffentliches Attributeiner Klasse sein.

FunktionsumfangCALL 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 Bedeutung

Page 104: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_table_for_first_display

104 April 2001

I_BUFFER_ACTIVE Flag, das die Anwendung setzen sollte, wenn der Aufruf derMethode statisch ist: der Aufruf erfolgt immer mit dem gleichenFeldkatalog. In diesem Fall kann der Feldkatalog in einemspeziellen Buffer gehalten werden. Dies beschleunigtbesonders die Anzeige von kleinen Listen.

I_STRUCTURE_NAME Name der DDIC-Struktur (z.B.: 'SFLIGHT') zu den Daten in derAusgabetabelle. Bei Angabe dieses Parameters wird derFeldkatalog vollautomatisch generiert.

IS_VARIANT Bestimmt das Layout, mit der die Ausgabetabelle angezeigtwerden soll. Bei Verwendung dieses Parameters müssen Siewenigstens das Feld REPORT der Struktur vom TypDISVARIANT füllen.

I_SAVE Bestimmt, welche Möglichkeiten der Benutzer zumAbspeichern eines Layout hat:

� 'X': nur globales Speichern

� 'U': nur benutzerspezifisches Speichern

� 'A': entspricht 'X' und 'U'

� SPACE: kein Speichern

I_DEFAULT Dieser Parameter bestimmt, ob der Benutzer eineLayoutvoreinstellung definieren darf:

� 'X': Layoutvoreinstellung erlaubt (Voreinstellung)

� SPACE: Layoutvoreinstellung nicht erlaubt

Ist eine Layoutvoreinstellung erlaubt, existiert eine solche und istkein abweichendes Layout in IS_VARIANT angegeben, wird dieLayoutvoreinstellung beim Aufruf dieser Methode automatischgeladen.

IS_LAYOUT Bestimmt Eigenschaften des Grid Controls. Die Layout-Strukturhat nichts mit dem Layout zum Speichern der Filter-, Sortier-und 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 inGruppen unterteilt, muß man hier eine Tabelle mit Texten fürdiese Gruppen übergeben. Im Fenster zum aktuellen Layoutläßt sich dann die Spaltenauswahl mit einer Listbox auf einedieser Gruppen eingrenzen.

IT_TOOLBAR_EXCLUDING Diese Tabelle enthält Funktionskodes der Toolbar, die Sie fürdie Lebensdauer des ALV Grid Controls ausblenden möchten.Die Funktionskodes sind als Konstanten-Attribute mit demPrefix MC_FC_ gekennzeichnet.

Page 105: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_table_for_first_display

April 2001 105

IT_HYPERLINK Diese Tabelle ordnet jedem Handle (Feld HANDLE vonLVC_S_HYPE) eine Hyperlinkadresse (Feld HREF vonLVC_S_HYPE) zu. Über das Handle kann man dann Hyperlinksim 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 dieFormatierung der anzuzeigenden Daten

IT_SORT Tabelle mit Sortiereigenschaften für Spalten, die initial sortiertwerden sollen

IT_FILTER Tabelle mit Filtereigenschaften für Spalten, bei denen initial einFilter 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 Ausgabetabellevor 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 desFeldkatalogs><Instanziierung von GRID1 und Integration auf Dynpro>

CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY CHANGING IT_FIELDCATALOG = GT_FIELDCAT IT_OUTTAB = GT_SFLIGHT.

Page 106: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_table_for_first_display

106 April 2001

Page 107: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_toolbar_interactive

April 2001 107

set_toolbar_interactiveVerwendungDiese Methode löst das Ereignis toolbar [Seite 131] aus. Wenn Sie die Toolbar um eigeneFunktionen erweitern, bauen Sie mit dieser Methode die Toolbar neu auf (siehe auch: Definitionvon GUI-Elementen in der Toolbar [Seite 22]).

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_toolbar_interactive.

Zur Übersicht: Methoden der Klasse CL_GUI_ALV_GRID [Seite 67]

Page 108: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_user_command

108 April 2001

set_user_commandVerwendungMit dieser Methode haben Sie die Möglichkeit, Standardfunktionen des ALV Grid Control durcheigene Funktionen zu ersetzen. Dazu müssen die den aktuellen Funktionskode beim Ereignisbefore_user_command [Seite 112] abfragen und mit set_user_command ändern.

Siehe auch: Ändern von Standardfunktionen [Seite 21]

FunktionsumfangCALL METHOD <Ref.var. auf CL_GUI_ALV_GRID>->set_user_command

EXPORTING I_UCOMM = <Var. vom Typ SY-UCOMM>.

Parameter BedeutungI_UCOMM 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]

Page 109: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Ereignisse der Klasse CL_GUI_ALV_GRID

April 2001 109

Ereignisse der Klasse CL_GUI_ALV_GRIDIm Abschnitt Arbeiten mit dem ALV Grid Control [Seite 12] ist beschrieben, was Sie speziell beider 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 [Seite129]

Eigene Zwischensummentexte festlegen

Aktionen mit der Maus im Grid Control

Ereignis Anwendung

button_click [Seite113]

Klick auf eine Drucktaste im Grid Control abfragen

double_click [Seite117]

Doppelklick auf eine Zelle des Grid Controls abfragen

hotspot_click [Seite118]

Hotspot-klick auf vorher dafür festgelegte Spalten abfragen

onDrag [Seite 120] Informationen beim Ziehen von Elementen des ALV Grid Controlssammeln

onDrop [Seite 121] Informationen beim Fallenlassen auf Elemente des ALV Grid Controlsverarbeiten

onDropComplete[Seite 122]

Abschließende Aktionen bei erfolgreichem Drag&Drop Vorgangdurchführen

onDropGetFlavor[Seite 123]

Fallunterscheidung bei mehreren Möglichkeiten im Drag&DropVerhalten

Verarbeitung von eigenen und Standardfunktionen

Ereignis Anwendung

before_user_command [Seite 112] Abfragen von eigenen und Standardfunktionskodes

Page 110: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Ereignisse der Klasse CL_GUI_ALV_GRID

110 April 2001

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

Page 111: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

after_user_command

April 2001 111

after_user_commandVerwendungDas 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 mitdiesem Ereignis nach der jeweiligen Funktion abschließende Aktionen durchführen.

Standardfunktionen sind bei diesem Ereignis bereits abgeschlossen.

Ereignis-Parameter BedeutungE_UCOMMTYPE SY-UCOMM

Standard- oder eigener Funktionskode (Die Standard-Funktionskodessind als Konstanten-Attribute mit dem Prefix MC_FC_ gekennzeichnet).

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 112: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

before_user_command

112 April 2001

before_user_commandVerwendungDas 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 mitdiesem Ereignis vor der jeweiligen Funktion einleitende Aktionen durchführen.

Siehe auch: Ändern von Standardfunktionen [Seite 21]

Ereignis-Parameter BedeutungE_UCOMM 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]

Page 113: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

button_click

April 2001 113

button_clickVerwendungWenn der Benutzer auf eine Drucktaste im Grid Control geklickt hat, behandeln Sie es in derEreignisbehandlermethode zu diesem Ereignis.

VoraussetzungenSie haben eine oder mehrere Zellen als Drucktaste im ALV Grid Control dargestellt (siehe:Darstellung von Drucktasten [Seite 35]).

Ereignis-Parameter BedeutungES_COL_IDTYPE LVC_S_COL

Struktur mit Feld FIELDNAME, um die Spalte zu identifizieren.

ES_ROW_NOTYPE LVC_S_ROID

Struktur, um die Zeile zu identifizieren [Extern].

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 114: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

context_menu_request

114 April 2001

context_menu_requestVerwendungBei diesem Ereignis haben Sie die Möglichkeit, das Standard-Kontextmenü des ALV GridControls um eigene Funktionen zu erweitern und bestehende Funktionen auszublenden oder zudeaktivieren.

Siehe auch: Definition eines Kontext-Menüs [Seite 23]

Ereignis-Parameter BedeutungE_OBJECTTYPE REF TOCL_CTMENU

Referenzvariable auf das Standard-Kontextmenü des ALV GridControls.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 115: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

delayed_callback

April 2001 115

delayed_callbackVerwendungDas Ereignis wird ausgelöst, wenn der Benutzer eine andere Zelle als augenblicklich angewähltmit der Maus anklickt. Das ALV Grid Control löst dieses Ereignis mit einer kurzen Verzögerungvon 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 Methodeset_table_for_first_display und bei der Standard-Funktion Summe aus. Beider Standard-Funktion Suchen wird das Ereignis nur dann ausgelöst, wenn einegefundene Zelle ungleich zu der vorher markierten ist.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 116: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

delayed_changed_sel_callback

116 April 2001

delayed_changed_sel_callbackVerwendungDas Ereignis wird ausgelöst, wenn der Benutzer eine Zeile oder Spalte markiert, die noch nichtmarkiert ist. Das ALV Grid Control löst dieses Ereignis mit einer kurzen Verzögerung von 1,5Sekunden 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]

Page 117: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

double_click

April 2001 117

double_clickVerwendungDas ALV Grid Control löst dieses Ereignis aus, wenn ein Benutzer auf Zellen des Grid Controlsdoppelklickt.

Im Demoreport BCALV_GRID_03 der Entwicklungsklasse SLIS kommt man übereinen Doppelklick auf eine Verzweigungsliste.

Ereignis-Parameter Bedeutung

E_ROWTYPE REF TOLVC_S_ROW

Struktur mit Zeilenindex

E_COLUMNTYPE REF TOLVC_S_COL

Struktur mit Spaltennamen

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 118: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

hotspot_click

118 April 2001

hotspot_clickVerwendungIn diesem Ereignis reagieren Sie auf den Mausklick eines Benutzers auf eine Spalte, die alsHotspot gekennzeichnet ist (der Mauszeiger verändert sich entsprechend).

VoraussetzungenUm dem Benutzer das Auswählen einer Spalte über einen Hotspot-Klick zu ermöglichen, müssenSie 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_IDTYPE REF TOLVC_S_ROW

Struktur mit Zeilenindex

E_COLUMN_IDTYPE REF TOLVC_S_COL

Struktur mit Spaltenname

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 119: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

menu_button

April 2001 119

menu_buttonVerwendungIn diesem Ereignis fragen Sie Funktionskodes für Menüs ab, die Sie beim Ereignis toolbar [Seite131] definiert haben. Zu jedem Funktionskode definieren Sie auf die gleiche Weise ein Menü wiebeim 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 inder Toolbar klickt.

Ereignis-Parameter BedeutungE_OBJECTTYPE REF TOCL_CTMENU

Referenz auf das Menü der Toolbar, welches der Benutzer ausgewählthat. Mit Methoden dieses Objekts bauen Sie dieses Menü auf.

E_UCOMMType SY-UCOMM

Funktionskode eines Menüs, das Sie beim Ereignis Toolbar definierthaben. Mit diesem Parameter unterscheiden Sie die in der Toolbardefinierten Menüs.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 120: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

onDrag

120 April 2001

onDragDie Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der ControlFramework 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_ROWType LVC_S_ROW

Struktur mit Index der gezogenen Zeile

E_COLUMNType LVC_S_COL

Struktur mit Index der gezogenen Spalte

E_DRAGDROPOBJType Ref ToCL_DRAGDROPOBJECT

Drag&Drop-Objekt, über das man ein anwendungsspezifischesDatenobjekt übergeben kann. Die Attribute enthalten außerdemInformationen über die Aktion des Benutzers (copy oder move) undden mit der Aktion verknüpften Flavor.

Page 121: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

onDrop

April 2001 121

onDropDie Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der ControlFramework 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_ROWType LVC_S_ROW

Struktur mit Index der Zeile, auf die das Drag&Drop-Objektfallengelassen wurde.

E_COLUMNType LVC_S_COL

Struktur mit Index der gezogenen Spalte, auf die das Drag&Drop-Objekt fallengelassen wurde.

E_DRAGDROPOBJType Ref ToCL_DRAGDROPOBJECT

Drag&Drop-Objekt, über das man ein anwendungsspezifischesDatenobjekt übergeben kann. Die Attribute enthalten außerdemInformationen über die Aktion des Benutzers (copy oder move) undden mit der Aktion verknüpften Flavor.

Page 122: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

onDropComplete

122 April 2001

onDropCompleteDie Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der ControlFramework 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_ROWType LVC_S_ROW

Struktur mit Index der gezogenen Zeile

E_COLUMNType LVC_S_COL

Struktur mit Index der gezogenen Spalte

E_DRAGDROPOBJType Ref ToCL_DRAGDROPOBJECT

Drag&Drop-Objekt, über das man ein anwendungsspezifischesDatenobjekt übergeben kann. Die Attribute enthalten außerdemInformationen über die Aktion des Benutzers (copy oder move) undden mit der Aktion verknüpften Flavor.

Page 123: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

onDropGetFlavor

April 2001 123

onDropGetFlavorDie Bedeutung dieses Ereignisses ist in Ereignisse bei Drag&Drop [Extern] der ControlFramework 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_ROWType LVC_S_ROW

Struktur mit Index der gezogenen Zeile

E_COLUMNType LVC_S_COL

Struktur mit Index der gezogenen Spalte

E_DRAGDROPOBJType Ref ToCL_DRAGDROPOBJECT

Drag&Drop-Objekt, über das man ein anwendungsspezifischesDatenobjekt übergeben kann. Die Attribute enthalten außerdemInformationen über die Aktion des Benutzers (copy oder move) undden mit der Aktion verknüpften Flavor.

E_FLAVORSTypeCNDD_FLAVORS

Mögliche Flavors

Page 124: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

onf1

124 April 2001

onf1VerwendungWenn der Benutzer die F1-Hilfe für eine Zelle aufruft, versucht das ALV Grid Control dieDokumentation zum zugehörigen Datenelement der Spalte aufzurufen. Gibt es eine solcheDokumentation 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 StandardF1-Hilfe zu übersteuern.

Um dem ALV Grid Control mitzuteilen, daß Sie eine eigene F1-Hilfe verwendethaben, setzen Sie das Attribut er_event_data->m_event_handled am EndeIhrer Ereignisbehandlung.

Ereignis-Parameter BedeutungE_FIELDNAMETYPE LVC_FNAME

Name des Feldes der Ausgabetabelle, für das eine eigene F1-Hilfeimplementiert werden soll.

ES_ROW_NOTYPE LVC_S_ROID

Struktur, um die Zeile zu identifizieren [Extern].

ER_EVENT_DATATYPE REF TOCL_ALV_EVENT_DATA

Setzen Sie das Attribut M_EVENT_HANDLED dieses Objekts, falls siedas Ereignis behandelt haben. Das ALV Grid Control unterdrückt danndie Standard F1-Hilfe.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 125: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

print_end_of_list

April 2001 125

print_end_of_listVerwendungMit diesem Ereignis können Sie bei der Druckausgabe Text mit der WRITE-Anweisungausgeben. Der Text wird am Ende der gesamten Liste eingeschoben und bei der Druckansichtangezeigt. Dabei springt das ALV Grid Control in die Listausgabe des klassischen ALV.

Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLISveranschaulicht die Verwendung von print_end_of_list.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 126: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

print_end_of_page

126 April 2001

print_end_of_pageVerwendungMit diesem Ereignis geben Sie bei der Druckausgabe Text mit der WRITE-Anweisung aus. DerText wird am Ende der jeweiligen Seite eingeschoben. Bei der Druckausgabe springt das ALVGrid Control in die Listausgabe des klassischen ALV.

In der Druckansicht (klassischer ALV) wird der Text zu diesem Ereignis nichtangezeigt.

Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLISveranschaulicht die Verwendung von print_end_of_page.

VoraussetzungenUm eine Ausgabe am Ende jeder Seite zu ermöglichen, müssen Sie für sie eine Anzahl vonZeilen reservieren. Benutzen Sie dafür das Feld reservelns einer Struktur vom Typlvc_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]

Page 127: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

print_top_of_list

April 2001 127

print_top_of_listVerwendungMit diesem Ereignis können Sie bei der Druckausgabe Text mit der WRITE-Anweisungausgeben. Es wird einmal vor dem Ereignis print_top_of_page [Seite 128] ausgelöst. Der Textwird am Anfang der gesamten Liste eingeschoben und bei der Druckansicht angezeigt. Dabeispringt 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 SLISveranschaulicht die Verwendung von print_top_of_list.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 128: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

print_top_of_page

128 April 2001

print_top_of_pageVerwendungMit diesem Ereignis können Sie bei der Druckausgabe Text mit der WRITE-Anweisungausgeben. Der Text wird am Anfang der jeweiligen Seite eingeschoben und bei der Druckansichtangezeigt. Dabei springt das ALV Grid Control in die Listausgabe des klassischen ALV.

Das Demoprogramm BCALV_GRID_01 in der Entwicklungsklasse SLISveranschaulicht die Verwendung von print_top_of_page.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 129: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

subtotal_text

April 2001 129

subtotal_textVerwendungAusgabe von Text im Grid Control bei Zwischensummen, falls das Zwischensummenkriterium(Spalte, über die der Benutzer die Zwischensumme gebildet hat) ausgeblendet wird. In derVoreinstellung gibt das ALV Grid Control die Spaltenüberschrift des Zwischensummenkriteriumsaus und den jeweiligen Wert, auf den sich die gebildete Zwischensumme bezieht.

Ereignis-Parameter BedeutungES_SUBTOTTXT_INFOType LVC_S_STXT

Struktur mit Informationen über das Zwischensummenkriterium

EP_SUBTOT_LINEType Ref To DATA

Referenzvariable auf die eingefügte Zwischensummenzeile im GridControl. Spalten, über die keine Summe gebildet wurde, bleibeninitial.

E_EVENT_DATAType Ref ToCL_ALV_EVENT_DATA

Das Attribut M_DATA dieses Objekts ist eine Referenz auf denZwischensummentext

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

BeispielSie zeigen bereits eine Tabelle mit Daten den Struktur SFLIGHT in einem ALV Control an. Wirändern nun den voreingestellten Zwischensummentext für das ZwischensummenkriteriumFlugzeugtyp der Tabelle SFLIGHT:

1. Definieren und implementieren Sie eine Ereignisbehandlermethode zum Ereignissubtotal_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 beinhaltenReferenzvariablen auf den allgemeinen Datentyp DATA. In dem Unterprogramm müssen Siedaher 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>.

Page 130: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

subtotal_text

130 April 2001

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 Standard-Kontextmenü oder eine neues Layout.

Am Beginn einer Zwischensummenzeile erscheint der neue definierte Text.

Page 131: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

toolbar

April 2001 131

toolbarVerwendungDieses Ereignis wird immer dann vom ALV ausgelöst, wenn ein Neuaufbau der Toolbar desControls 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 eineEreignisbehandlermethode (Siehe auch: Definition von GUI-Elementen in der Toolbar [Seite22]).

Die gesamte Toolbar kann über das Feld no_toolbar der Layout-Strukturausgeblendet werden.

Im Demoreport BCALV_GRID_05 der Entwicklungsklasse SLIS wird eine neueDrucktaste in die Toolbar aufgenommen.

Ereignis-Parameter BedeutungE_OBJECTType Ref ToCL_ALV_EVENT_TOOLBAR_SET

Das Objekt enthält lediglich ein Attribut mit einer Tabelle für dieFunktionen der Toolbar.

E_INTERACTIVEType CHAR01

Wenn dieses Flag gesetzt ist, haben Sie das Ereignis mit der Methodeset_toolbar_interactive ausgelöst. Ist es nicht gesetzt, sowurde das Ereignis vom ALV Grid Control ausgelöst.

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 132: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

user_command

132 April 2001

user_commandVerwendungDas ALV Grid Control löst dieses Ereignis nur bei selbst definierten Funktionen aus, die derBenutzer angewählt hat. Fragen Sie bei diesem Ereignis Ihren Funktionskode ab und rufen SieIhre Funktion auf.

Die Funktionskodes Ihrer selbst definierten Funktionen lassen sich auch in denEreignissen before_user_command [Seite 112] und after_user_command [Seite 111]abfragen. Diese Ereignisse löst das Control vor beziehungsweise nach dem Ereignisuser_command aus.

Ereignis-Parameter BedeutungE_UCOMMTYPE SY-UCOMM

Funktionskode zu selbst definierter Funktion

Zur Übersicht: Ereignisse der Klasse CL_GUI_ALV_GRID [Seite 109]

Page 133: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Der Feldkatalog

April 2001 133

Der FeldkatalogDefinitionDer Feldkatalog ist eine interne Tabelle vom Typ LVC_T_FCAT mit Informationen über diedarzustellenden Felder. Mit Hilfe dieser Tabelle erkennt ALV zum Beispiel den Typ eines Feldes.

VerwendungSie können über Felder des Katalogs die Formatierung von Zahlenausgaben undSpalteneigenschaften der auszugebenen Liste beeinflussen.

In bestimmten Ausnahmefällen ist die Übergabe des Feldkatalogs unnötig (Sieheauch: Automatischer Aufbau [Seite 135]).

StrukturDer 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.

IntegrationIm Allgemeinen empfiehlt es sich, die Felder des Feldkatalogs vor der ersten Anzeige der Listezu füllen und in der Methode set_table_for_first_display [Seite 103] zu übergeben. Um einen vonALV generierten Feldkatalog vor der Listausgabe an Ihre Bedürfnisse anzupassen, verwendenSie 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 diesenBaustein, um Spalten vor der Listanzeige auszublenden.

Page 134: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Aufbau des Feldkatalogs

134 April 2001

Aufbau des FeldkatalogsGrundsätzlich wird für jede Liste, die über das ALV Control ausgegeben wird, ein Feldkatalogbenö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.

Page 135: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Automatischer Aufbau

April 2001 135

Automatischer AufbauEinsatzmöglichkeitenWenn die Struktur ihrer Ausgabetabelle einer im Data Dictionary (DDIC) hinterlegten Strukturentspricht, kann das ALV Control diese Informationen benutzen, um den Feldkatalogautomatisch aufzubauen. In diesem Fall werden alle Felder dieser DDIC-Struktur auf der Listeangezeigt.

AblaufUm die Struktur dem ALV Control zu übergeben, müssen Sie:

1. Die Struktur mit LIKE referenzieren oder in einer eigenen Struktur mit INCLUDESTRUCTURE inkludieren.

Über INCLUDE STRUCTURE ist es möglich, einen Teil Ihrer Ausgabetabelleautomatisch von ALV erzeugen zu lassen und weitere Felder hinzuzufügen. DerAbschnitt Halbautomatischer Aufbau [Seite 139] beschreibt die allgemeineVorgehensweise hierzu.

2. Die Struktur in der Methode set_table_for_first_display [Seite 103] mit dem ParameterI_STRUCTURE_NAME dem erzeugten Control übergeben.

Wenn Sie der Struktur weder weitere Felder hinzufügen noch ausblenden wollen, ist dieÜbergabe des Feldkatalogs also nicht nötig (siehe Grafik).

Instanz einesALV Control

(über Containermit dem Dynproverlinkt)

Set_table_for_first_display

ExportingI_STRUCTURE_NAME

ChangingIT_OUTTAB.

>>

<>

Daten

Select * from <name>

a1 b1 c1a2 b2 c2a3 b3 c3

InterneTabelleInterneTabelle

DataDictionary A B C

<name>

INCLUDE STRUCTURE <name>

DATA ... LIKE <name>oder

DDICStrukturDDICStruktur

Ausg

abet

abel

leD

aten

besc

hrei

bung

FLUSH

Container mitintegriertemALV Control

Container mitintegriertemALV Control

Dynpro

A B Ca1 b1 c1a2 b2 c2a3 b3 c3

AngezeigteListe:

Page 136: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Automatischer Aufbau

136 April 2001

Page 137: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Manueller Aufbau

April 2001 137

Manueller AufbauEinsatzmöglichkeitenEs kann sein, daß die Daten, die Sie anzeigen wollen, nicht oder nur teilweise durch eineStruktur im Data Dictionary repräsentiert sind. Dann müssen Sie über die Felder desFeldkatalogs die Struktur der Ausgabetabelle beschreiben.

AblaufDer Feldkatalog ist über den Tabellentyp LVC_T_FCAT im Data Dictionary definiert. Jede Zeileder Feldkatalog-Tabelle erklärt ein Feld in Ihrer Ausgabetabelle. Für ein Feld müssen Sie � janachdem ob eine Referenzstruktur im DDIC existiert oder nicht � mindestens folgende Felder derFeldkatalogstruktur füllen:

Obligatorische Felder des Feldkatalogs

Felder der Ausgabetabellemit Bezug zum DDIC

Felder der Ausgabetabelleohne Bezug zum DDIC

Bedeutung

FIELDNAME FIELDNAME Name des Feldes der internenAusgabetabelle

REF_TABNAME Name der DDIC-Referenzstruktur

REF_FIELDNAME Name des DDICReferenzfeldes (nur nötig, fallses von FIELDNAME abweicht)

INTTYPE ABAP-Datentyp des Feldesder internen Ausgabetabelle

OUTPUTLEN Spaltenbreite

COLTEXT Spaltenüberschrift

SELTEXT Spaltenbezeichnung in derSpaltenauswahl zum Layout

Siehe auch: Texte im Feldkatalog [Extern]

Sie übergeben den Feldkatalog mit Hilfe des Parameters IT_FIELDCATALOG (siehe Grafik).

Page 138: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Manueller Aufbau

138 April 2001

Instanz einesALV Control

(über Containermit dem Dynproverlinkt)

Set_table_for_first_display

ChangingIT_FIELDCATALOG

IT_OUTTAB.

<>

<>

Daten

Select * from <name>

a1 b1 c1a2 b2 c2a3 b3 c3

InterneTabelleInterneTabelle

FeldkatalogFeldkatalogAu

sgab

etab

elle

Dat

enbe

schr

eibu

ng

FLUSH

Container mitintegriertemALV Control

Container mitintegriertemALV Control

Dynpro

A B Ca1 b1 c1a2 b2 c2a3 b3 c3

AngezeigteListe:

ABC

TypA

TypB

TypC .........

Page 139: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Halbautomatischer Aufbau

April 2001 139

Halbautomatischer AufbauEinsatzmöglichkeitenBeim halbautomatischen Aufbau des Feldkatalogs kombinieren Sie Struktur-Informationen desData Dictionary mit eigenen. Dabei können Sie den mit Hilfe der DDIC-Struktur automatischerzeugten 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 allemöglichen Spalten anzeigen (über das Feld NO_OUT des Feldkatalogs).

Sie wollen zusätzliche Spalten mit Ikonen oder anderen Informationen anzeigen. Inder Tabelle des Abschnitts Manueller Aufbau [Seite 137] finden Sie die obligatorischzu füllenden Felder. Dort wird auch erklärt, wie Sie Texte für eine neue Spaltedefinieren können.

AblaufUm 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 dieDDIC-Struktur der Ausgabetabelle und die interne Tabelle für den Feldkatalog. DerFunktionsbaustein 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 imFeldkatalog pro neues Feld eine Zeile anhängen.

Um die Ausgabetabelle mit den Einstellungen des Feldkatalogs anzuzeigen, übergeben Sie denFeldkatalog in der Methode set_table_for_first_display [Seite 103].

Page 140: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Felder des Feldkatalogs

140 April 2001

Felder des FeldkatalogsDie folgende Tabelle ordnet die Felder nach ihrer Verwendung. Informationen über eine minimaleAuswahl von nötigen Feldern im Feldkatalog erhalten Sie im Abschnitt Manueller Aufbau [Seite137].

Mit dem Feld FIELDNAME des Feldkatalogs stellen Sie den Bezug zu einem Feld in derAusgabetabelle her. Alle Einstellungen, die über Felder in der gleichen Zeile des Feldkatalogsvorgenommen werden, beziehen sich auf die in FIELDNAME angegebene Ausgabespalte.

Intern arbeitet das ALV Grid Control mit dem Feld COL_ID, um Spalten am Frontendzu identifizieren.

Alphabetischer Index

Feldname Kurzbeschreibung Sparte

CFIELDNAME Feldname für referenzierteWährungseinheit

Darstellung von Werten mitWährungs-/Mengeneinheit[Seite 146]

CHECKBOX Ausgabe als Checkbox Ausgabeoptionen einerSpalte [Seite 149]

COL_ID Numerische Identifizierung der Spalte(read-only)

Bezug zur Ausgabetabelle[Seite 144]

COL_POS Position der Ausgabespalte Ausgabeoptionen einerSpalte [Seite 149]

COLDDICTXT Festlegung DDIC-Textbezug Texte [Seite 156]

COLTEXT Spaltenbezeichner für Dialogfunktionen Texte [Seite 156]

CURRENCY Währungseinheit Darstellung von Werten mitWährungs-/Mengeneinheit[Seite 146]

DD_OUTLEN Ausgabelänge in Character Parameter für Felder ohneDDIC-Bezug [Seite 159]

DECIMALS_O Anzahl Dezimalstellen für Ausgabe Formatierung vonSpalteninhalten [Seite 153]

DECMLFIELD Feldname mit DECIMALS-Angabe Formatierung vonSpalteninhalten [Seite 153]

DO_SUM Werte der Spalte summieren Ausgabeoptionen einerSpalte [Seite 149]

DRAGDROPID Drag&Drop Handle für DragDrop Objekt Sonstige Felder [Seite 161]

EDIT_MASK EditMask für Ausgabe Formatierung vonSpalteninhalten [Seite 153]

Page 141: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Felder des Feldkatalogs

April 2001 141

EMPHASIZE Spalte farblich hervorheben Ausgabeoptionen einerSpalte [Seite 149]

EXPONENT Exponent für Float-Darstellung Formatierung vonSpalteninhalten [Seite 153]

FIELDNAME Feldname internes Tabellenfeld Bezug zur Ausgabetabelle[Seite 144]

HOTSPOT SingleClick sensitiv Ausgabeoptionen einerSpalte [Seite 149]

HREF_HNDLE Hyperlink zuordnen Ausgabeoptionen einerSpalte [Seite 149]

ICON Ausgabe als Ikone Formatierung vonSpalteninhalten [Seite 153]

INTLEN Interne Länge in Bytes Parameter für Felder ohneDDIC-Bezug [Seite 159]

INTTYPE ABAP-Datentyp (C,D,N,...) Parameter für Felder ohneDDIC-Bezug [Seite 159]

JUST Ausrichtung Formatierung vonSpalteninhalten [Seite 153]

KEY Schlüsselspalte Ausgabeoptionen einerSpalte [Seite 149]

LOWERCASE Kleinbuchstaben erlaubt/nicht erlaubt Ausgabeoptionen einerSpalte [Seite 149]

LZERO Führende Nullen ausgeben Formatierung vonSpalteninhalten [Seite 153]

NO_MERGING Zellen nicht mehr verschmelzen Ausgabeoptionen einerSpalte [Seite 149]

NO_OUT Spalte wird nicht ausgegeben Ausgabeoptionen einerSpalte [Seite 149]

NO_SIGN Vorzeichen bei Ausgabe unterdrücken Formatierung vonSpalteninhalten [Seite 153]

NO_SUM Keine Aggregation über die Werte derSpalte

Ausgabeoptionen einerSpalte [Seite 149]

NO_ZERO Nullen bei Ausgabe unterdrücken Formatierung vonSpalteninhalten [Seite 153]

OUTPUTLEN Spaltenbreite in Character Ausgabeoptionen einerSpalte [Seite 149]

QFIELDNAME Feldname für referenzierte Mengeneinheit Darstellung von Werten mitWährungs-/Mengeneinheit[Seite 146]

Page 142: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Felder des Feldkatalogs

142 April 2001

QUANTITY Mengeneinheit Darstellung von Werten mitWährungs-/Mengeneinheit[Seite 146]

REF_FIELD Referenzfeldname für internesTabellenfeld

Bezug zum Data Dictionary[Seite 145]

REF_TABLE Referenztabellenname für internesTabellenfeld

Bezug zum Data Dictionary[Seite 145]

REPREP Ausprägung ist Selektionskriterium fürBericht-/Bericht-Schnittstelle

Sonstige Felder [Seite 161]

REPTEXT Überschrift (DDIC-Text desentsprechenden Datenelements)

Texte [Seite 156]

ROLLNAME Datenelement für F1-Hilfe Parameter für Felder ohneDDIC-Bezug [Seite 159]

ROUND ROUND-Wert Formatierung vonSpalteninhalten [Seite 153]

ROUNDFIELD Feldname mit ROUND-Angabe Formatierung vonSpalteninhalten [Seite 153]

SCRTEXT_L Feldbezeichner lang (DDIC-Text desentsprechenden Datenelements)

Texte [Seite 156]

SCRTEXT_M Feldbezeichner mittel (DDIC-Text desentsprechenden Datenelements)

Texte [Seite 156]

SCRTEXT_S Feldbezeichner kurz (DDIC-Text desentsprechenden 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 einerSpalte [Seite 149]

SYMBOL Ausgabe als Symbol Formatierung vonSpalteninhalten [Seite 153]

TECH Technisches Feld Ausgabeoptionen einerSpalte [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ürHyperlink)

Ausgabeoptionen einerSpalte [Seite 149]

Page 143: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Felder des Feldkatalogs

April 2001 143

Page 144: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Bezug zur Ausgabetabelle

144 April 2001

Bezug zur Ausgabetabelle

Komp.-Typ Dtyp(Länge)

WertebereichFeldname

Verwendung

LVC_COLID INT4(10)

Natürliche ZahlCOL_ID

Auf dieses Feld dürfen Sie nur lesendzugreifen. Es wird seit Release 4.6C für denZugriff auf Spalten der Ausgabetabelleverwendet (an Stelle des Feldnamens). Siebenötigen es zum Beispiel, wenn Sie dieMethode get_selected_cells_id [Seite 79]oder set_selected_cells_id [Seite 99]verwenden.

LVC_FNAME Char(30)

Feldname derAusgabetabelle(obligatorisch)

FIELDNAME

Mit diesem Feld ordnen Sie einen FeldnamenIhrer Ausgabetabelle einer Zeile desFeldkatalogs zu. Alle Einstellungen, die Sie indieser Zeile vornehmen, beziehen sich auf diekorrespondierende Spalte der Ausgabetabelle.

Page 145: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Bezug zum Data Dictionary

April 2001 145

Bezug zum Data Dictionary

Komp.-Typ Dtyp(Länge)

WertebereichFeldname

Verwendung

LVC_RFNAME Char(30)

SPACE, Name einesFeldes im DataDictionary, das zu einemFeld der Ausgabetabellekorrespondiert

REF_FIELD

Dieses Feld ist zu füllen, falls:

� das durch den aktuellen Eintrag imFeldkatalog beschriebene Feld derAusgabetabelle ein korrespondierendesFeld im Data Dictionary hat und

� der Feldname in der Ausgabetabelle vomFeldnamen des Feldes im DataDictionary abweicht.

Sind die Feldnamen identisch, ist dieNennung der DDIC-Struktur oder Tabelle imFeld REF_TABLE des Feldkatalogsausreichend.

LVC_RTNAME Char(30)

SPACE, Name einerStruktur oder Tabelle ausdem Data Dictionary, daszu einem Feld derAusgabetabellekorrespondiert.

REF_TABLE

Dieses Feld ist nur zu füllen, wenn das durchden aktuellen Eintrag im Feldkatalogbeschriebene Feld der Ausgabetabelle einkorrespondierendes Feld im Data Dictionaryhat. Mit Hilfe dieser Zuordnung kann das ALVGrid Control zum Beispiel den Text für dieSpaltenüberschrift aus dem Dictionaryübernehmen.

Page 146: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Darstellung von Werten mit Währungs-/Mengeneinheit

146 April 2001

Darstellung von Werten mit Währungs-/MengeneinheitVerwendungEs 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 vonNachkommastellen) möglich ist, müssen Sie solche Felder einer Währung oder einer Einheitzuordnen. 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ährungs-oder Einheitsfeld zu. Bei der Summenbildung über die Spalte bewirkt diese Zuordnung, daß fürjede Einheit die Summe getrennt angezeigt wird.

Für das Einheitsfeld gibt es ebenfalls einen Eintrag im Feldkatalog. Soll die Einheit nicht alsSpalte in der Liste erscheinen und auch nicht als Spalte interaktiv einzublenden sein, kann derFeldkatalogeintrag für das Einheitsfeld über das Setzen des Feldes TECH als technisches Feldgekennzeichnet werden. Dies ist zum Beispiel sinnvoll, wenn die Einheit immer eindeutig ist unddeshalb im Listenkopf durch den Aufrufer explizit ausgegeben wird

Für initiale Werte- oder Einheitsfelder ist folgendes zu beachten:

Summierung und Darstellung von Wertfeldern

Wert

desEinheitsfeldes

nichtinitial

initial

WertdesWertfeldes

nichtinitial

Einheitsgerechte Darstellung derNachkommastellen in der Liste undin der Summe.

ALV führt für solche Zellen die EinheitSPACE ein. In der Summenausgabewird diese Einheit als eigene Einheitaufgeführt.

Page 147: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Darstellung von Werten mit Währungs-/Mengeneinheit

April 2001 147

initial

Einheitsgerechte Ausgabe als '0'(sofern das Feld NO_ZERO desFeldkatalogs initial). BeimSummieren rechnet ALV mit demWert '0' und der angegebenenEinheit.

Ausgabe als SPACE. Beim Summierenwird das Wertfeld ignoriert.

Währung bzw. Einheit für die gesamte SpalteFü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 Siefür Ihr Wertfeld eine Einheit fest (z.B. DEM bzw. KG). Diese Methode ist sinnvoll, wenn es nur eineEinheit oder Währung für die Spalte gibt (z.B., weil diese vorher über ein Eingabefeld vomBenutzer ausgewählt wurde). In diesem Fall benötigt die Ausgabetabelle kein weiteres Feld.

VoraussetzungenFür das Wertfeld ist folgendes zu beachten:

� Das Feld ist vom ABAP-Datentyp P (siehe auch INTTYPE in Parameter für Felder ohneDDIC-Bezug [Seite 159]).

� Es gibt ein Feld in der internen Ausgabetabelle, das die zugehörige Einheit enthält.

Relevante Felder im FeldkatalogKomp.-Typ Dtyp(L

änge)WertebereichFeldna

me

Verwendung

LVC_CFNAME Char(30)

SPACE, Name einesFeldes derAusgabetabelle

CFIELDNAME

Bezug zu Währungseinheiten herstellen. ALVverknüpft das im Feld FIELDNAMEangegebene Feld mit dem in CFIELDNAMEangegebenen Feld für Währungseinheiten.Das in CFIELDNAME genannte Feld mußeinen eigenen Eintrag im Feldkatalog haben.

LVC_CURR Char(5)

SPACE, Name einerWährung

CURRENCY

Explizite Angabe einer Währung (z.B. DEM,USD). ALV stellt die Werte für die inFIELDNAME angegebene Spalte nach denKonventionen dieser Währung dar.

Page 148: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Darstellung von Werten mit Währungs-/Mengeneinheit

148 April 2001

LVC_QFNAME Char(30)

SPACE, Name einesFeldes derAusgabetabelle

QFIELDNAME

Bezug zu Mengeneinheiten herstellen. ALVverknüpft das im Feld FIELDNAMEangegebene Feld mit dem in QFIELDNAMEangegebenen Feld für Mengeneinheiten. Dasin QFIELDNAME genannte Feld muß eineneigenen Eintrag im Feldkatalog haben.

LVC_QUAN Char(3)

SPACE, Name einerEinheit

QUANTITY

Explizite Angabe einer Einheit (z.B. KG). ALVstellt die Werte für die in FIELDNAMEangegebene Spalte nach den Konventionendieser Einheit dar.

Page 149: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Ausgabeoptionen einer Spalte

April 2001 149

Ausgabeoptionen einer Spalte

Komp.-Typ Dtyp(Länge)

WertebereichFeldname

Verwendung

LVC_CHECKB CHAR(1)

SPACE, 'X'CHECKBOX

Ausgabe eines Ankreuzfeldes. DasAnkreuzfeld kann durch den Benutzer nichtverändert werden. Der Parametersel_mode der Layout-Struktur ermöglichtes dem Benutzer mehrere Zeilen im GridControl zu markieren (siehe auch:get_selected_rows [Seite 81]).

LVC_COLPOS INT4(10)

natürliche ZahlCOL_POS

Nur relevant, wenn die relativenSpaltenpositionen bei der ersten Anzeige vonder Reihenfolge der Felder im Feldkatalogabweichen sollen.

Der Parameter legt die relativeSpaltenposition des Feldes bei derListenausgabe fest. Die Spaltenanordnungkann interakiv durch den Benutzer geändertwerden. Ist dieser Parameter für jedenFeldkatalogeintrag initial, so entspricht derSpaltenaufbau der Reihenfolge der Felder imFeldkatalog.

LVC_DOSUM Char(1)

SPACE, 'X'DO_SUM

Ist dieses Feld gesetzt, bildet ALV überdieses Feld die Summe. (Entspricht dergenerischen Summenfunktion der Toolbar).

EMPHASIZE

LVC_EMPHSZ Char(4)

SPACE, 'X' oder 'Cxyz'(x:'1'-'9'; y,z: '0'=off '1'=on)

Page 150: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Ausgabeoptionen einer Spalte

150 April 2001

Wird das Feld mit 'X' gesetzt, benutzt ALVeine voreingestellte Farbe zum Hervorhebender Spalte. Fängt das Character-Feld mit 'C'an (Farbkodierung), haben die restlichenZahlen die folgende Bedeutung:

� x: Farbnummer

� y: intensivierte Darstellung an/aus

� z: inverse Darstellung an/aus

Weitere Informationen zur Farbkodierungfinden Sie in der F1-Hilfe zur FORMAT-Anweisung.

LVC_HOTSPT Char(1)

SPACE, 'X'HOTSPOT

Ist dieses Feld gesetzt, werden alle Zellendieser Spalte Hotspot-sensitiv.

INT4 INT4(10)

Natürliche ZahlHREF_HNDL

Handle, dem eine URL zugeordnet ist. DasALV Grid Control stellt alle Zellen der Spalteals Hyperlink dar. Die Zieladresse desHyperlinks müssen Sie in einer Tabelle vomTyp LVC_T_HYPE pflegen und mit derMethode set_table_for_first_display [Seite103] übergeben.

LVC_KEY Char(1)

SPACE, 'X'KEY

Ist dieses Feld gesetzt, kennzeichnet dasALV Grid Control die Spalte farblich alsSchlüsselfeld und fixiert diese Spalten beimhorizontalen Scrollen. Die Reihenfolge derSchlüsselspalten im ALV Grid Control läßtsich interaktiv verändern. Im Gegensatz zumSAP List Viewer können Sie Schlüsselspaltenim ALV Grid Control direkt mit NO_OUTausblenden (das Feld KEY_SEL entfällt).

LOWERCASE Char(1)

SPACE, 'X'LOWERCASE

Falls gesetzt, erkennt das ALV Grid ControlGroß-/Kleinschreibung in der Ausgabetabelle.Dies hat zum Beispiel Auswirkungen bei derSortierung von Feldern.

NO_OUT

LVC_NOOUT Char(1)

SPACE, 'X'

Page 151: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Ausgabeoptionen einer Spalte

April 2001 151

Über das Setzen dieses Feldes blenden Siedie zugehörige Spalte aus der Liste aus. Dassteht dem Benutzer weiterhin im Feldvorratzur Verfügung und kann interaktiv alsAnzeigefeld ausgewählt werden. ALV zeigtInhalte ausgeblendeter Felder imDetailfenster für einer Zeile im Grid Controlan.

CHAR01 Char(1)

SPACE, 'X'NO_MERGING

Falls gesetzt, werden beim Sortieren dieserSpalte die Zellen mit gleichem Wert nichtmehr zu einer Zelle verschmolzen.

LVC_NOSIGN Char(1)

SPACE, 'X'NO_SUM

Über das Setzen dieses Feldes sperren Siedas Summieren des zugehörigen Feldes.

LVC_OUTLEN Numc(6)

0 (Voreinstellung), nOUTPUTLEN

Legt die Spaltenbreite des Feldes fest:

� Hat das Feld einen Bezug zum DataDictionary, können Sie das Feld initialbelassen. ALV übernimmt in diesem Falldie Ausgabelänge der zugehörigenDomäne.

� Für Felder ohne DDIC-Bezug müssenSie hier die gewünschteFeldausgabelänge festlegen.

LVC_STYLE RAW(4)

AttributCL_GUI_ALV_GRID=>MC_STYLE_BUTTON

STYLE

Darstellung aller Zellen dieser Spalte alsDrucktaste. Wenn ein Benutzer auf dieDrucktaste klickt, wird das Ereignisbutton_click [Seite 113] ausgelöst.

LVC_TECH Char(1)

SPACE, 'X'TECH

Falls gesetzt, wird das zugehörige Feld nichtauf der Liste ausgegeben und ist auch nichtinteraktiv einzublenden. Das Feld ist nur imFeldkatalog bekannt. (Es darf zum Beispielnicht im Sortierkriterium angegeben werden).

WEB_FIELD

LVC_NAME Char(30)

Name eines Feldes derAusgabetabelle

Page 152: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Ausgabeoptionen einer Spalte

152 April 2001

Über dieses Feld können Sie Hyperlinks aufZellenebene definieren [Seite 37].

Page 153: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Formatierung von Spalteninhalten

April 2001 153

Formatierung von Spalteninhalten

Die Felder DECIMALS_O, EDIT_MASK, EXPONENT, NO_SIGN und ROUNDentsprechen den WRITE-Zusätzen DECIMALS, USING EDIT MASK, EXPONENT,NO-SIGN und ROUND. Dokumentation zu Kombinationen dieser Felder mit denFeldern CURRENCY und QUANTITY (bei WRITE: UNIT) entnehmen Sie bitte der F1-Dokumentation zur WRITE-Aufbereitungsoption.

Komp.-Typ Dtyp(Länge)

WertebereichFeldname

Verwendung

LVC_DECMLS Char(6)

initial, natürliche ZahlDECIMALS_O

Nur relevant, wenn dem Feld keinWährungsfeld zugeordnet ist und CURRENCYnicht belegt ist. Der Wert in diesem Feldbestimmt die Anzahl der auszugebendenNachkommastellen.

LVC_DFNAME Char(30)

SPACE, Feldnameder Ausgabetabelle

DECMFIELD

Zeilenweise Definition der Nachkommastellen.Über ein zusätzliches Feld in derAusgabetabelle können Sie festlegen, wievielNachkommastellen in der jeweiligen Zeileausgegeben werden.

LVC_EDTMSK Char(60)

SPACE, conv(Konvertierungs-Exit)

EDIT_MASK

Durch das Setzen eines Konvertierungs-Exits(zum Beispiel conv = '==ALPHA' für denFunktionsbausteinCONVERSION_EXIT_ALPHA_OUTPUT) wird eineAusgabekonvertierung zum zugehörigenAusgabefeld erzwungen. (Siehe auchDokumentation zur WRITE-AufbereitungsoptionUSING EDIT MASK).

Siehe auch: Verwendung desKonvertierungsexit [Seite 41]

EXPONENT

LVC_EXPONT Char(3)

initial, ganze Zahl

Page 154: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Formatierung von Spalteninhalten

154 April 2001

Legt einen festen Exponenten für das Feld fest.Das Feld muß vom internen Typ F sein. (Sieheauch F1-Dokumentation zur WRITE-Aufbereitungsoption EXPONENT).

LVC_ICON Char(1)

SPACE, 'X'ICON

Falls dieses Feld gesetzt ist, wird derSpalteninhalt der Ausgabetabelle als Ikoneausgegeben. Der Spalteninhalt muß ausgültigen Ikonen-Strings (@xx@ oder@xx\Q<Quickinfo>@) bestehen.

Hierbei sollten Sie die Problematik um dieDruckbarkeit von Ikonen berücksichtigen.

LVC_JUST Char(1)

SPACE, 'R', 'L','C'JUST

Nur relevant für Felder des Datantyps CHARoder NUMC.Ausrichtungen:

� 'R': rechtsbündig

� 'L': linksbündig

� 'C': zentriert

Die Ausrichtung der Spaltenüberschrift richtetsich immer nach der Ausrichtung desSpalteninhalts. Eine davon unabhängigeAusrichtung der Spaltenüberschrift ist nichtmöglich.

LVC_LZERO Char(1)

SPACE, 'X'LZERO

Nur relevant für Felder des Datentyps NUMC, diedas ALV Control in der Voreinstellungrechtsbündig ohne führende Nullen ausgibt.Durch Setzen von LZERO werden führendeNullen ausgegeben.

LVC_NOSIGN Char(1)

SPACE, 'X'NO_SIGN

Nur relevant für Wertfelder. Das Setzen von NO-SIGN bewirkt eine Wertausgabe ohneVorzeichen (siehe auch F1-Dokumentation zuden WRITE-Aufbereitungsoptionen).

NO_ZERO

LVC_NOZERO Char(1)

SPACE, 'X'

Page 155: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Formatierung von Spalteninhalten

April 2001 155

Falls NO_ZERO gesetzt ist, werden für initialeWertefelder keine Nullen ausgegeben. Die Zellebleibt dann leer.

LVC_ROUND Char(10)

initial, natürliche ZahlROUND

Um Zehnerpotenzen skalierte Ausgabe einesWertes vom Typ P. Bei positiven Werten vonROUND verschiebt das ALV Grid Control dasKomma nach links, sonst nach rechts.

(Siehe auch F1-Dokumentation zu denWRITE-Aufbereitungsoptionen)

LVC_RNDFN Char(30)

ROUNDFIELD

Zeilenweise Definition der skalierten Ausgabe.Über ein zusätzliches Feld in derAusgabetabelle können Sie festlegen, wie daszugehörige Feld in der jeweiligen Zeile skaliertwird.

LVC_SYMBOL Char(1)

SPACE, 'X'SYMBOL

Falls gesetzt, wird der Spalteninhalt als Symbolausgegeben.

Der Spalteninhalt der internen Ausgabetabellemuß aus gültigen Symbolzeichen bestehen.Hierbei sollte der Aufrufer die Problematik umdie Druckbarkeit von Symbolen berücksichtigen.(Symbole sind generell druckbar, werden aber inAbhängigkeit von der Druckerkonfiguration nichtin jedem Fall korrekt ausgegeben).

Page 156: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Texte

156 April 2001

TexteMit diesen Feldern steuern Sie, welche Texte das ALV Control

� als Spaltenüberschrift,

� als Tooltip (Informationstext, der erscheint, wenn der Benutzer den Mauszeiger über dieSpalte positioniert)

� und als Spaltenauswahltext (im Popup zur Definition eines Layout, einer Sortierung odereines Filters)

benutzt.

Der Abschnitt Texte im Feldkatalog [Extern] klärt wie die Felder zueinander inBeziehung stehen.

Komp.-Typ Dtyp(Länge)

WertebereichFeldname

Verwendung

LVC_DDICT Char(1)

SPACE, 'L', 'M', 'S' und 'R'COLDDICTXT

Nur relevant für Felder mit Bezug zum DataDictionary. Mit den Werten 'L', 'M', 'S' oder 'R'bestimmen Sie, ob SCRTEXT_L, SCRTEXT_M,SCRTEXT_S oder REPTEXT alsSpaltenüberschrift verwendet wird.

LVC_TXT Char(40)

Frei definierbarer TextCOLTEXT

Bestimmt die Spaltenüberschrift der Spalte.Dieses Feld sollten Sie belegen, wenn keinBezug zum Data Dictionary besteht.

REPTEXT Char(55)

Übernommener Text ausdem Data Dictionary

REPTEXT

Nur relevant für Felder mit Bezug zum DataDictionary. Für solche Felder übernimmt dasALV Control den Feldbezeichner für dieÜberschrift des entsprechendenDatenelements in dieses Feld.

SCRTEXT_L

SCRTEXT_L Char(40)

Übernommener Text ausdem Data Dictionary

Page 157: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Texte

April 2001 157

Nur relevant für Felder mit Bezug zum DataDictionary. Für solche Felder übernimmt dasALV Control den langen Feldbezeichner desentsprechenden Datenelements in diesesFeld.

SCRTEXT_M Char(20)

Übernommener Text ausdem Data Dictionary

SCRTEXT_M

Nur relevant für Felder mit Bezug zum DataDictionary. Für solche Felder übernimmt dasALV Control den mittleren Feldbezeichnerdes entsprechenden Datenelements in diesesFeld.

SCRTEXT_S Char(10)

Übernommener Text ausdem Data Dictionary

SCRTEXT_S

Nur relevant für Felder mit Bezug zum DataDictionary. Für solche Felder übernimmt dasALV Control den kurzen Feldbezeichner desentsprechenden Datenelements in diesesFeld.

LVC_DDICT Char(1)

SPACE, 'L', 'M', 'S' und 'R'SELDDICTXT

Nur relevant für Felder mit Bezug zum DataDictionary. Mit den Werten 'L', 'M', 'S' oder 'R'bestimmen Sie, ob SCRTEXT_L, SCRTEXT_M,SCRTEXT_S oder REPTEXT als Text für dieSpaltenauswahl verwendet wird.

LVC_TXT Char(40)

Frei definierbarer TextSELTEXT

Bestimmt den Text, der in der Spaltenauswahlfür die Spalte verwendet wird. Dieses Feldsollten Sie belegen, wenn kein Bezug zumData Dictionary besteht.

LVC_DDICT Char(1)

SPACE, 'L', 'M', 'S' und 'R'TIPDDICTXT

Nur relevant für Felder mit Bezug zum DataDictionary. Mit den Werten 'L', 'M', 'S' oder 'R'bestimmen Sie, ob SCRTEXT_L, SCRTEXT_M,SCRTEXT_S oder REPTEXT als Tooltipverwendet wird.

LVC_TIP Char(40)

Frei definierbarer TextTOOLTIP

Bestimmt den Text, der als Tooltip für dieSpalte verwendet wird. Dieses Feld sollten Siebelegen, wenn kein Bezug zum DataDictionary besteht.

Page 158: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Texte

158 April 2001

Page 159: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Parameter für Felder ohne DDIC-Bezug

April 2001 159

Parameter für Felder ohne DDIC-BezugSiehe auch: Texte [Seite 156]

Komp.-Typ Dtyp(Länge)

WertebereichFeldname

Verwendung

LVC_DDLEN NUMC(6)

0 (initial), nDD_OUTLEN

Über dieses Feld geben Sie dieFeldausgabelänge der externen Darstellungan. Dies ist nur relevant für Felder ohneBezug zum Data Dictionary, deren Ausgabedennoch über einen Konvertierungsexitmodifiziert werden soll (siehe Verwendungdes Konvertierungsexit [Seite 41]).DieSpaltenbreite (Feld OUTPUTLEN desFeldkatalogs) muß nicht der Ausgabelängeder externen Darstellung (DD_OUTLEN)entsprechen.

INTLEN NUMC(6)

0 (initial), nINTLEN

Über dieses Feld geben Sie dieFeldausgabelänge der internen Darstellungan. Dies ist nur relevant für Felder ohneBezug zum Data Dictionary, deren Ausgabedennoch über einen Konvertierungsexitmodifiziert werden soll (siehe Verwendungdes Konvertierungsexit [Seite 41]).

INTTYPE Char(1)

ABAP-Datentyp, sieheWertebereich der DomäneINTTYPE

INTTYPE

Nur nötig für Felder ohne Bezug zum DataDictionary.

ROLLNAME

LVC_ROLL Char(30)

SPACE, Name einesDatenelements aus demData Dictionary

Page 160: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Parameter für Felder ohne DDIC-Bezug

160 April 2001

Soll auch für ein Ausgabefeld ohne Bezugzum Data Dictionary eine F1-Hilfe ermöglichtwerden, bzw. für ein Feld mit Bezug zumData Dictionary eine vom Data Dictionaryabweichende F1-Hilfe hinterlegt werden, sokann das über dieses Feld geschehen. BeiAufruf der F1-Hilfe auf diesem Feld, wird dieDokumentation zum zugewiesenenDatenelement angezeigt.

Ist bei Feldern mit Bezug zum DataDictionary ROLLNAME initial, so wird dieDokumentation zum Datenelement desreferierten Feldes aus dem Data Dictionaryausgegeben.

Page 161: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Sonstige Felder

April 2001 161

Sonstige FelderKomp.-Typ Dtyp(Lä

nge)WertebereichFeldna

me

Verwendung

LVC_DDID INT4(10)

Drag&Drop-HandleDRAGDROPID

Über dieses Feld definieren Sie ein D&D-Verhalten für spezielle Spalten [Seite 27].

LVC_CRPRP Char(1)

SPACE, 'X'REPREP

'X' = wird die Bericht/Bericht-Schnittstellegerufen, so wird die Ausprägung dieses Feldesin der selektierten Absprungzeile derSchnittstelle als Selektionskriterium mitgeteilt.

Voraussetzungen:

� Die Bericht/Bericht-Schnittstelle ist imSystem vorhanden(Funktionsgruppe RSTI, Tabelle TRSTI)

� Die Bericht/Bericht-Schnittstelle wurdeüber die Methodeactivate_reprep_interface [Seite 70]aktiviert.

LVC_SPGRP Char(4)

SPACE, vierstelligerGruppenschlüssel

SP_GROUP

Mit dem Gruppenschlüssel fassen Sie mehrereFelder zu einer Gruppe zusammen. Im Popupzur Definition eines Layout kann der Benutzerdann die Liste der ausgeblendeten Spalten aufdiese Gruppe einschränken.

Siehe auch: Einteilung von Feldern inspezielle Gruppen [Seite 39]

TXT_FIELD

LVC_FNAME Char(30)

SPACE, Feldname derAusgabetabelle

Page 162: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Sonstige Felder

162 April 2001

Über dieses Feld können Sie den Bezug zueinem Feld herstellen, das als Bezeichnung fürdas aktuelle Feld dient. Bei Bildung einerZwischensumme über das aktuelle Feld gibtdas ALV Grid Control dann die Bezeichnungenin dem zugeordneten Feld aus.

Beispiel: In Ihrer Ausgabetabelle gibt es eineSpalte für Materialnummern und eine weitereSpalte für die Bedeutung dieser Nummer (z.B:Federgabel). Wenn Sie die Zwischensummenüber die Materialnummern bilden, werdennormalerweise nur diese Nummern alsZwischensummentext ausgegeben. Über dieVerknüpfung mit TXT_FIELD können Sie sichaber auf die zugehörige Spalte mit derMaterialbezeichnung beziehen. Dann wirddiese Bezeichnung als Zwischensummentextverwendet.

Page 163: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Die Layout-Struktur

April 2001 163

Die Layout-StrukturDefinitionDie Layout-Struktur ist vom Typ LVC_S_LAYO. Sie enthält Felder zum Setzen von grafischenEigenschaften des Grid Controls, zur Anzeige von Exceptions, zu Optionen bei der Summierungund zum Aktivieren bestimmter Interaktionsmöglichkeiten.

StrukturAlphabetischer Index

Feldname Kurzbeschreibung Sparte

CTAB_FNAME Feldname für Tabelle mit Farbkodierung für Zellen Farben [Seite 169]

CWIDTH_OPT Spaltenbreite optimieren Eigenschaften desGrid Controls[Seite 166]

DETAILINIT Initiale Werte im Detailbild anzeigen Interaktionssteuerung [Seite 171]

DETAILTITL Titelzeile des Detailbildes Interaktionssteuerung [Seite 171]

EXCP_CONDS Exceptions auf (Zwischen-) Summe vererben. Exceptions [Seite168]

EXCP_FNAME Feldname mit Exceptioncodierung Exceptions [Seite168]

EXCP_LED Exception als LED Exceptions [Seite168]

EXCP_ROLLN Datenelement für Exceptiondoku Exceptions [Seite168]

GRID_TITLE Text der Titelzeile Eigenschaften desGrid Controls[Seite 166]

INFO_FNAME Name für Feld mit Farbkodierung für Zeilen Farben [Seite 169]

KEYHOT Keyspalten als Hotspot Interaktionssteuerung [Seite 171]

NO_HEADERS Spaltenüberschriften ausschalten Eigenschaften desGrid Controls[Seite 166]

NO_HGRIDLN Horizontale Gridlinien ausschalten Eigenschaften desGrid Controls[Seite 166]

Page 164: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Die Layout-Struktur

164 April 2001

NO_MERGING Verschmelzen von Zellen ausschalten Eigenschaften desGrid Controls[Seite 166]

NO_ROWMARK Zeilenmarkierungen ausschalten Eigenschaften desGrid Controls[Seite 166]

NO_TOOLBAR Toolbar ausblenden Eigenschaften desGrid 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 desGrid Controls[Seite 166]

NUMC_TOTAL Summieren von NUMC-Feldern zulassen Summenoptionen[Seite 170]

S_DRAGDROP Drag&Drop Controleinstellungen Interaktionssteuerung [Seite 171]

SEL_MODE Selektionsmodus Eigenschaften desGrid Controls[Seite 166]

SGL_CLK_HD Einfachklick auf Spaltenüberschrift Interaktionssteuerung [Seite 171]

SMALLTITLE Titelgröße Eigenschaften desGrid Controls[Seite 166]

STYLEFNAME Name der Zellentabelle für Drucktasten. Interaktionssteuerung [Seite 171]

TOTALS_BEF Summenausgabe vor den Einzelsätzen Summenoptionen[Seite 170]

ZEBRA Alternierende Zeilenfarbe bei der Druckausgabe(Zebramuster)

Farben [Seite 169]

IntegrationIm Allgemeinen empfiehlt es sich, die Felder der Struktur vor der ersten Anzeige der Liste zufüllen und in der Methode set_table_for_first_display [Seite 103] zu übergeben.

Page 165: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Die Layout-Struktur

April 2001 165

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.

Page 166: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Eigenschaften des Grid Controls

166 April 2001

Eigenschaften des Grid ControlsAllgemeine Anzeigeoptionen

Feldname Bedeutung Wertebereich

CWIDTH_OPT Falls gesetzt, optimiert das ALV Grid Control dieSpaltenbreite. Es ist dann sowohl die Spaltenüberschrift alsauch der Inhalt der Zellen dieser Spalte sichtbar.

SPACE, 'X'

SMALLTITLE Falls gesetzt, wird die Titelgröße im Grid Control auf dieSchriftgröße der Spaltenüberschrift gesetzt.

SPACE, 'X'

Grid Customizing

Feldname Bedeutung Wertebereich

GRID_TITLE Titel zwischen Grid Control und Toolbar. Zeichenkette mithöchstens 70 Zeichen

NO_HEADERS

Falls gesetzt, werden die Spaltenüberschriftenausgeblendet.

SPACE, 'X'

NO_HGRIDLN Falls gesetzt, werden die Spalten ohne horizontaleTrennungslinien angezeigt.

SPACE, 'X'

NO_MERGING

Falls gesetzt, werden Zellen beim Sortieren übereine Spalte nicht mehr miteinander verschmolzen.

SPACE, 'X'

NO_ROWMARK

Falls gesetzt, wird im SelektionsmodusZellenselektion (SEL_MODE = 'D') und Spalten-/Zeilenselektion (SEL_MODE = 'A') der Button amBeginn einer Zeile ausgeblendet.

SPACE, 'X'

NO_TOOLBAR

Falls gesetzt, wird die Toolbar ausgeblendet. SPACE, 'X'

NO_VGRIDLN Falls gesetzt, werden die Spalten ohne vertikaleTrennungslinien angezeigt.

SPACE, 'X'

SEL_MODE Setzen des Selektionsmodus (siehe Tabelle unten). SPACE, 'A', 'B', 'C', 'D'

Selektionsmodi bei SEL_MODE

Wert Modus Mögliche Markierungen Bemerkung

SPACE wie 'B' siehe 'B' Voreinstellung

'A' Spalten- undZeilenselektion

(siehe Abbildung)

� mehrere Spalten

� mehrere Zeilen

Die Zeilen markiert derBenutzer überDrucktasten am linkenRand des Grid Controls

Page 167: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Eigenschaften des Grid Controls

April 2001 167

'B' Einfachselektion,Listbox

� mehrere Spalten

� einzelne Zeilen

'C' Mehrfachselektion,Listbox

� mehrere Spalten

� Mehrere Zeilen

'D' Zellenselektion � mehrere Spalten

� Mehrere Zeilen

� eine beliebigeZellenauswahl

Die Zeilen markiert derBenutzer überDrucktasten am linkenRand des Grid Controls

Das ALV Grid Control mit Spalten- und Zeilenselektion

Page 168: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Exceptions

168 April 2001

Exceptions

Der Abschnitt Ausgabe von Exceptions [Seite 30] beschreibt, wie man Exceptions ineiner Liste darstellt.

Feldname Bedeutung Wertebereich

EXCP_CONDS

Ist dieses Feld gesetzt, zeigt ALV in der (Zwischen-)Summenzeile ebenfalls eine Exception an. Als Farbefür diese Exception übernimmt ALV den kleinstenException-Wert ('1': rot, '2': gelb, '3' grün) der Zeilen,auf die sich die (Zwischen-) Summe bezieht.

SPACE, 'X'

EXCP_FNAME

Feldname der Ausgabetabelle für die Anzeige einerException.

Zeichenkette mithöchstens 30 Zeichen

EXCP_LED Die Exception wird nicht als Ampel, sondern als LEDangezeigt.

SPACE, 'X'

EXCP_ROLLN Name eines Datenelements. Für die Exception-Spalte wird dann die F1-Hilfe dieses Datenelementsaufgerufen. Außerdem erscheint als Tooltip derSpalte der lange Feldbezeichner des Elements.

Zeichenkette mithöchstens 30 Zeichen

Page 169: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Farben

April 2001 169

Farben

Spalten färben Sie über den Feldkatalog ein (siehe auch EMPHASIZE inAusgabeoptionen einer Spalte [Seite 149]).

Feldname Bedeutung Wertebereich

CTAB_FNAME

Feldname in Ausgabetabelle für Zellenfärbung(Siehe: Einfärben von Zellen [Seite 33])

Zeichenkette mithöchstens 30 Zeichen

INFO_FNAME Feldname in Ausgabetabelle für Zeilenfärbung(Siehe: Einfärben von Zeilen [Seite 32])

Zeichenkette mithöchstens 30 Zeichen

ZEBRA Falls gesetzt wird die Liste in der Druckansicht undbeim Drucken mit einem Streifenmuster versehen.

SPACE, 'X'

Page 170: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Summenoptionen

170 April 2001

Summenoptionen

Feldname Bedeutung Wertebereich

NO_TOTARR In der Summenzeile und in den Zwischensummenzeilen gibtdas ALV Grid Control Pfeile aus, die denSummierungsbereich zusaetzlich andeuten. Setzen Siediesen Parameter, um diese Pfleile zu unterdrücken.

SPACE, 'X'

NO_TOTEXP Am Beginn einer (Zwischen-)Summenzeile kennzeichnet einIcon, ob die Zeile expandiert wurde oder nicht. Setzen Siediesen Parameter, um dieses Icon zu unterdrücken.

SPACE. 'X'

NO_TOTLINE Falls gesetzt, werden nur Zwischensummen und keineEndsummen ausgegeben.

SPACE, 'X'

NUMC_TOTAL Falls gesetzt, darf der Benutzer über Felder des DatentypsNUMC summieren (im Normalfall darf er das nicht).

SPACE, 'X'

TOTALS_BEF Falls gesetzt, zeigt ALV gebildete Summen als erste Zeilenim Grid Control an. Zwischensummen werden vor einemneuen Wert des Zwischensummenkriteriums angezeigt.

SPACE, 'X'

Page 171: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Interaktionssteuerung

April 2001 171

Interaktionssteuerung

Feldname Bedeutung Wertebereich

DETAILINIT Falls gesetzt, werden im Detailfenster auch Spaltenmit initialen Werten angezeigt.

SPACE, 'X'

DETAILTITL Titel in der Titelleiste des Detailfensters. Zeichenkette mithöchstens 30 Zeichen

S_DRAGDROP

Struktur für Drag&Drop-Einstellungen. (Siehe:Drag&Drop mit dem ALV Control [Seite 25]).

KEYHOT Falls gesetzt, sind alle Schlüsselfelder Hotspot-sensitiv. Bei einem Einfachklick auf ein Schlüsselfeldwird das Ereignis hotspot_click [Seite 118] ausgelöst.

SPACE, 'X'

SGL_CLK_HD Aktiviert die Funktion Einfachklick aufSpaltenüberschrift. Bei dieser Funktion wird dieListe nach der angeklickten Spalte erst aufsteigendund beim zweiten Klick absteigend sortiert.

SPACE, 'X'

STYLEFNAME

Mit diesem Feld übergeben Sie den Namen derZellentabelle für die Darstellung von Zellen alsDrucktaste (siehe auch: Darstellung vonDrucktasten [Seite 35]).

Zeichenkette mithöchstens 30 Zeichen

Page 172: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Die Print-Struktur

172 April 2001

Die Print-StrukturVerwendungDie Print-Struktur enthält Felder für Einstellungen beim Drucken der Liste.

StrukturFeldname Bedeutung Wertebereich

GRPCHGEDIT Benutzerdefinierbare Gruppenwechsel-Aufbereitung für die Druckansicht aktivieren.Ist dieses Feld gesetzt, wird der Absprung inden SAP List Viewer entsprechendkonfiguriert. Im Popup für die Sortierung kannder Benutzer dann entscheiden, wie einWechsel des Wertes beim Sortierkriteriumgrafisch umgesetzt werden soll: alsSeitenwechsel oder als Unterstreichung.

Mit der Sortiertabelle [Extern] setzen Siediese Formatierung dynamisch.

SPACE, 'X'

NO_COLWOPT

Vor dem Drucken (und der Druckvorschau)setzt das ALV Grid Control alle Spalten aufdie optimalen Breite. Durch das Setzendieses Parameters übersteuern sie dieseVoreinstellung.

SPACE, 'X'

PRNTLSTINF Drucken von Listinfos. Falls gesetzt, werdenInformationen über Sortierung,Zwischensummen und definierten Filternsowie eine Datenstatistik am Beginn der Listeausgedruckt.

SPACE, 'X'

PRNT_TITLE Gibt den Zeitpunkt an, an dem der Grid Titlegedruckt werden soll (siehe auch ParameterGRID_TITLE in Eigenschaften des GridControls [Seite 166])

0-3 mit folgender Bedeutung:

� 0: Vor dem EreignisPRINT_TOP_OF_LIST

� 1: Nach dem EreignisPRINT_TOP_OF_LIST

� 2: Vor dem EreignisPRINT_TOP_OF_PAGE

� 3: Nach dem EreignisPRINT_TOP_OF_PAGE

RESERVELNS Anzahl reservierter Zeilen für das Ereignisprint_end_of_page [Seite 126]. Ohne dieseAngabe wird der dort angegebene Text durchdie Liste überschrieben.

Natürliche Zahl

Page 173: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Die Print-Struktur

April 2001 173

IntegrationListen, die Sie mit dem ALV Grid Control darstellen, werden über den SAP List Viewerausgedruckt. Bei der Druckansicht springt der Benutzer deshalb in den SAP List Viewer (läßtsich über das Feld PRINT abschalten). Die Einstellungen, die er hier vornimmt (z.B.: Definiereneiner mehrzeiligen Liste), werden beim Drucken übernommen.

Die Druckausgaben des Ereignisses PRINT_END_OF_PAGE oder des FeldesPRNTLSTINF sind bei der Druckansicht im SAP List Viewer nicht sichtbar. Wenn derBenutzer zunächst nur einen Spool-Auftrag anlegt, kann er die endgültigeDarstellung der Liste über die Transaktion SP01 überprüfen.

Page 174: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Methoden des OO Control Frameworks

174 April 2001

Methoden des OO Control Frameworks

Page 175: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Methoden der Klasse CL_GUI_CFW

April 2001 175

Methoden der Klasse CL_GUI_CFWDie Klasse CL_GUI_CFW beinhaltet statische Methoden, die beim Aufruf auf alle instanziertenCustom Controls wirken.

Page 176: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

dispatch

176 April 2001

dispatchDie Methode dispatch verteilt Applikationsereignisse (siehe Ereignisbehandlung [Extern]) andie für das Ereignis angemeldeten Ereignisbehandler. Wenn diese Methode nicht imApplikationsprogramm innerhalb von PAI aufgerufen wird, dann wird sie automatisch vomSystem 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 Bedeutungreturn_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 Ereignislisteregistriert.

cl_gui_cfw=>rc_noevent: Es wurde kein Ereignis auf einem Controlausgelöst. Der OK_CODE war daher ein normaler OK_CODE (z.B. voneinem Menüeintrag).

cl_gui_cfw=>rc_nodispatch: Dem Ereignis konnte keineBehandlermethode 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 denEreignisbehandler führen.

Page 177: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

flush

April 2001 177

flushMit dieser Methode synchronisieren Sie explizit die Automation Queue [Extern]. Die gepuffertenOperationen werden dann zum Frontend per GUI-RFC geschickt. Dort wird die AutomationQueue in der Reihenfolge abgearbeitet, wie Sie sie gefüllt haben.

Im Fehlerfall wird eine Ausnahme ausgelöst, die Sie auf jeden Fall abfragen und behandelnsollten. Da eine Zuordnung des Fehlers in der Regel nicht mehr möglich ist, stehen Ihnen sowohlim 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ägeimmer synchron verarbeiten. Dies führt dazu, daß nach jeder Methode, die den AutomationController 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 dasAnkreuzfeld Automation wählen. Dadurch wird die Kommunikation zwischen Applikationsserverund Automation Controller in einer Trace-Datei mitgeschrieben. Diese kann dann ausgewertetwerden.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 wirklichnötig sind. Bei jeder Synchronisation wird nämlich eine RFC-Verbindung zum SAPGUI geöffnet.

Page 178: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_living_dynpro_controls

178 April 2001

get_living_dynpro_controlsMit dieser Methode können Sie sich eine Liste von Referenzvariablen zu allen noch aktivenCustom Controls besorgen.CALL METHOD cl_gui_cfw=>get_living_dynpro_controls IMPORTING control_list = control_list.

Parameter Bedeutungcontrol_list Liste der Referenzvariablen zu aktiven Custom Controls.

Liste ist vom Typ CNTO_CONTROL_LIST (in der Klasse CL_GUI_CFWdefiniert)

Page 179: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_new_ok_code

April 2001 179

set_new_ok_codeDiese Methode darf nur in Behandlermethoden zu Systemereignissen eingesetzt werden. Siesetzt einen OK_CODE, der ein Ausführen von PAI nach sich zieht. Dadurch können Sie nach demFeldtransport 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 Bedeutungnew_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, unddie Verarbeitung wird nach Abschluß der Behandlermethode mit PAIfortgesetzt (vorher wird noch die automatische Feldprüfung des Dynprosdurchgeführt).

cl_gui_cfw=>rc_wrong_state: Die Methode wurde nicht bei einemSystemereignis aufgerufen.

cl_gui_cfw=>rc_invalid: Der gesetzte OK_CODE ist kein erlaubterOK_CODE.

Page 180: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

update_view

180 April 2001

update_viewDie Automation Queue wird durch den Aufruf der Methode flush [Seite 177] nur dannsynchronisiert, 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ß dieAutomation Queue synchron versendet wird, gibt es im Control Framework die MethodeCL_GUI_CFW=>UPDATE_VIEW. Diese Methode darf nur dann verwendet werden, wenn eszwingend notwendig ist, ein Update des SAP GUI zu erreichen. Beispiele hierfür sind sehr langelaufende Anwendungen, die in regelmäßigen Abständen dem Benutzer ein Feedback über denFortschritt der Aktion anzeigen möchten.CALL METHOD cl_gui_cfw=>update_view EXCEPTIONS CNTL_SYSTEM_ERROR = 1 CNTL_ERROR = 2.

Page 181: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

Methoden der Klasse CL_GUI_OBJECT

April 2001 181

Methoden der Klasse CL_GUI_OBJECTDie Klasse CL_GUI_OBJECT beinhaltet wichtige Methoden zum Verschalen von CustomControls. Für Anwendungsprogramme ist einzig die Methode is_valid [Seite 183] relevant.

Page 182: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

free

182 April 2001

freeDiese Methode baut ein Custom Control am Frontend ab. Nach Aufruf dieser Methode sollten Sieauch die Objektreferenz initialisieren (FREE my_control).

CALL METHOD my_control->free EXCEPTIONS cntl_error = 1 cntl_system_error = 2.

Page 183: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

is_valid

April 2001 183

is_validDiese Methode liefert als Ergebnis, ob ein Custom Control zu einer Objektreferenz noch amFrontend vorhanden ist.CALL METHOD my_control->is_valid IMPORTING result = result.

Parameter Bedeutungresult 0: Custom Control ist nicht mehr am Frontend aktiv

1: Custom Control ist noch aktiv

Page 184: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

Methoden der Klasse CL_GUI_CONTROL

184 April 2001

Methoden der Klasse CL_GUI_CONTROLDie Klasse CL_GUI_CONTROL beinhaltet Methoden, die zum Setzen von Control-Eigenschaften(z.B. Visualisieren des Controls), Registrieren von Ereignissen und zum Abbau des Controlsdienen.

Page 185: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

constructor

April 2001 185

constructorDiese Methode wird von der Control-Verschalung des verwendeten Controls aufgerufen, um einControl am Frontend zu instanzieren.

Um ein SAP Control zu instanzieren, rufen Sie immer den Konstruktor derdazugehö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 Bedeutungclsid ID der Klasse

lifetime Parameter für das Lifetime Management. Folgende Werte sind möglich:

my_control->lifetime_imode: Das Control lebt, solange der interneModus nicht abgebaut wird (z.B.: leave program. leavetransaction. set screen 0, leave screen.). Danach wird dieMethode finalize [Seite 187] aufgerufen.

my_control->lifetime_dynpro: Das Control lebt, solange die Instanz desDynpros existiert, d.h. sich noch im Dynprostapel befindet. Danach wird dieMethode free [Seite 182] aufgerufen.Die Benutzung dieses Modus regelt automatisch die Sichtbarkeit vonControls. Controls werden immer nur dann eingeblendet, wenn das Dynproaktiv ist, auf dem sie erzeugt wurden. Ist ein anderes Dynpro aktiv, werdensie automatisch unsichtbar geschaltet.

my_control->lifetime_default: Wird das Control in einen Containereingebaut, übernimmt es die Lebensdauer des Containers. Wird es nicht ineinen Container eingebaut (z.B. weil es selbst ein Container ist), dann wirddie 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önnenSie übergeben. Kombinationen von mehreren Styles können Sie durchAddieren der Konstanten erreichen. Der Vorschlagswert führt intern zumSetzen einer ausreichenden Kombination von Style-Konstanten.

parent Container, in dem das SAP Picture Control angezeigt werden kann (siehe SAPContainer [Extern])

Page 186: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

constructor

186 April 2001

autoalign ' ': kein automatisches Ausrichten des Controls

'X': automatisches Ausrichten des Controls. Dabei wird der maximal verfügbarePlatz innerhalb eines Containers verwendet.

Page 187: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

finalize

April 2001 187

finalizeDiese Methode wird von der verwendeten Controlverschalung überdefiniert. In ihr werdencontrol-spezifische Funktionen zum Abbau des Controls aufgerufen. Diese Methode wirdautomatisch von der Methode free [Seite 182] aufgerufen, bevor das Control am Frontendabgebaut wird.CALL METHOD my_control->finalize.

Page 188: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_focus

188 April 2001

get_focusDiese statische Methode liefert die Objektreferenz des Custom Controls zurück, welches denFokus hat.CALL METHOD cl_gui_control=>get_focus IMPORTING control = control EXCEPTIONS cntl_error = 1 cntl_system_error = 2.

Parameter Bedeutungcontrol Objektreferenz (TYPE REF TO cl_gui_control) auf das Control, das den

Fokus hat

Page 189: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_height

April 2001 189

get_heightDiese Methode liefert die Höhe des Controls zurück.CALL METHOD control->get_height IMPORTING height = height EXCEPTIONS cntl_error = 1.

Parameter Bedeutungheight Aktuelle Höhe des Controls

Page 190: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

get_registered_events

190 April 2001

get_registered_eventsDiese Methode liefert eine Liste aller für das Custom Control my_control registriertenEreignisse zurück.CALL METHOD my_control->get_registered_events IMPORTING events = events EXCEPTIONS cntl_error = 1.

Parameter Bedeutungevents 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 Tabellewird mit Bezug auf den Tabellentyp CNTL_SIMPLE_EVENTS definiert. Dem Tabellentyp liegt dieStruktur CNTL_SIMPLE_EVENT zugrunde. Dieser besteht aus folgenden Feldern:

Feld BedeutungEVENTID Name des Ereignisses

APPL_EVENT Unterscheidung, ob es sich um ein Systemereignis (initial) oder einApplikationsereignis (X) handeln soll.

Die Werte, die dem Feld EVENTID zuzuordnen sind, sind control-spezifisch und werden daherbei den entsprechenden Controls beschrieben.

Allgemeine Informationen zur Ereignisbehandlung finden Sie in der Dokumentationdes SAP Control Frameworks unter Ereignisbehandlung [Extern].

Page 191: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

get_width

April 2001 191

get_widthDiese Methode liefert die Breite des Controls zurück.CALL METHOD control->get_width IMPORTING width = width EXCEPTIONS cntl_error = 1.

Parameter Bedeutungwidth Aktuelle Breite des Controls

Page 192: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

is_alive

192 April 2001

is_aliveDiese Methode liefert als Ergebnis, ob ein Custom Control zu einer Objektreferenz noch amFrontend vorhanden ist.CALL METHOD my_control->is_alive RETURNING state = state.

Parameter Bedeutungstate 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 demaktuellen Dynpro nicht aktiv, aber am Frontend noch aktiv (d.h. unsichtbar)

Page 193: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_alignment

April 2001 193

set_alignmentDiese 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 Bedeutungalignment Ausrichtung des Controls

Der Parameter alignment kann aus Kombinationen folgender Ausrichtungen bestehen:

Name Bedeutungmy_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.

Page 194: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_focus

194 April 2001

set_focusMit 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 Bedeutungcontrol Objektreferenz (TYPE REF TO cl_gui_control) auf das Control, das den

Fokus bekommen soll

Page 195: ALV Grid Control (BC-SRV-ALV)

SAP AG ALV Grid Control (BC-SRV-ALV)

set_position

April 2001 195

set_positionDiese 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 Bedeutungheight Höhe des Controls

left Linker Rand des Controls

top Oberer Rand des Controls

width Breite des Controls

Page 196: ALV Grid Control (BC-SRV-ALV)

ALV Grid Control (BC-SRV-ALV) SAP AG

set_visible

196 April 2001

set_visibleMit 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 Bedeutungvisible X: Custom Control ist sichtbar

' ': Custom Control ist nicht sichtbar