Alv Grid Control Alv

Embed Size (px)

Citation preview

ALV Grid Control (BC-SRV-ALV)

Release 4.6C

HELP.BCSRVALV

ALV Grid Control (BC-SRV-ALV)

SAP AG

Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfltigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrckliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen knnen ohne vorherige Ankndigung gendert werden. Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte knnen SoftwareKomponenten auch anderer Software-Hersteller enthalten. Microsoft , WINDOWS , NT , EXCEL , Word , PowerPoint und SQL Server sind eingetragene Marken der Microsoft Corporation. IBM , DB2 , OS/2 , DB2/6000 , Parallel Sysplex , MVS/ESA , RS/6000 , AIX , S/390 , AS/400 , OS/390 und OS/400 sind eingetragene Marken der IBM Corporation. ORACLE ist eine eingetragene Marke der ORACLE Corporation. INFORMIX -OnLine for SAP und Informix Dynamic Server Informix Software Incorporated. TM

sind eingetragene Marken der

UNIX , X/Open , OSF/1 und Motif sind eingetragene Marken der Open Group. HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C , World Wide Web Consortium, Massachusetts Institute of Technology. JAVA ist eine eingetragene Marke der Sun Microsystems, Inc. JAVASCRIPT ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von Netscape entwickelten und implementierten Technologie. SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow, WebFlow, SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo und mySAP.com sind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen Lndern weltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen.

2

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV)

SymboleSymbol Bedeutung Achtung Beispiel Hinweis Empfehlung Syntax

April 2001

3

ALV Grid Control (BC-SRV-ALV)

SAP AG

InhaltALV Grid Control (BC-SRV-ALV) ....................................................................... 8Instanz fr das ALV Grid Control................................................................................................ 11 Arbeiten mit dem ALV Grid Control............................................................................................ 12 Erste Schritte ................................................................................................................................ 14 Anwendungsspezifisches Programmieren................................................................................ 16 Layouts.......................................................................................................................................... 17 Abspeichern eines Layouts ....................................................................................................... 18 Integration eigener Funktionen................................................................................................... 20 ndern von Standardfunktionen................................................................................................ 21 Definition von GUI-Elementen in der Toolbar ........................................................................... 22 Definition eines Kontext-Mens ................................................................................................ 23 Definition eines Mens in der Toolbar ...................................................................................... 24 Drag&Drop mit dem ALV Control ............................................................................................... 25 D&D-Verhalten fr alle Zeilen/Spalten ...................................................................................... 26 D&D-Verhalten fr spezielle Spalten ........................................................................................ 27 D&D-Verhalten fr spezielle Zeilen/Zellen ................................................................................ 28 Ausgabe von Exceptions............................................................................................................. 30 Einfrben von Zeilen .................................................................................................................... 32 Einfrben von Zellen .................................................................................................................... 33 Darstellung von Drucktasten ...................................................................................................... 35 Einbinden von Hyperlinks ........................................................................................................... 37 Gruppierung von Feldern zur Feldauswahl ............................................................................... 39 Verwendung des Konvertierungsexit......................................................................................... 41 Das ALV Grid Control bei WAN-Anmeldungen ......................................................................... 43 Das ALV Grid Control im Web..................................................................................................... 44 Darstellung im SAP GUI for HTML.............................................................................................. 45 Definition eines statischen Mens ............................................................................................ 47 Darstellung im Workplace ........................................................................................................... 49 Voraussetzungen ...................................................................................................................... 50 Der MiniALV .............................................................................................................................. 51 Als MiniApp .......................................................................................................................... 53 Als Erweiterung einer MiniApp............................................................................................. 54 Als interaktives Web Control................................................................................................ 55 Service-Parameter ............................................................................................................... 56 Ausgabe auf kleinen Bildschirmen....................................................................................... 58 Fehleranalyse....................................................................................................................... 60 Der MidiALV .............................................................................................................................. 61 Den MidiALV aufrufen.......................................................................................................... 62 Service-Parameter ............................................................................................................... 63 Aufruf des Internet-Service ....................................................................................................... 65 Methoden der Klasse CL_GUI_ALV_GRID................................................................................. 67 activate_reprep_interface............................................................................................................ 70 CONSTRUCTOR ........................................................................................................................... 71

4

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV)

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

April 2001

5

ALV Grid Control (BC-SRV-ALV)

SAP AG

onDropGetFlavor........................................................................................................................ 123 onf1 .............................................................................................................................................. 124 print_end_of_list ........................................................................................................................ 125 print_end_of_page ..................................................................................................................... 126 print_top_of_list ......................................................................................................................... 127 print_top_of_page ...................................................................................................................... 128 subtotal_text ............................................................................................................................... 129 toolbar ......................................................................................................................................... 131 user_command ........................................................................................................................... 132 Der Feldkatalog........................................................................................................................... 133 Aufbau des Feldkatalogs........................................................................................................... 134 Automatischer Aufbau............................................................................................................. 135 Manueller Aufbau .................................................................................................................... 137 Halbautomatischer Aufbau...................................................................................................... 139 Felder des Feldkatalogs ............................................................................................................ 140 Bezug zur Ausgabetabelle ...................................................................................................... 144 Bezug zum Data Dictionary..................................................................................................... 145 Darstellung von Werten mit Whrungs-/Mengeneinheit ......................................................... 146 Ausgabeoptionen einer Spalte ................................................................................................ 149 Formatierung von Spalteninhalten .......................................................................................... 153 Texte ....................................................................................................................................... 156 Parameter fr Felder ohne DDIC-Bezug................................................................................. 159 Sonstige Felder ....................................................................................................................... 161 Die Layout-Struktur.................................................................................................................... 163 Eigenschaften des Grid Controls ............................................................................................. 166 Exceptions .................................................................................................................................. 168 Farben.......................................................................................................................................... 169 Summenoptionen ....................................................................................................................... 170 Interaktionssteuerung................................................................................................................ 171 Die Print-Struktur ....................................................................................................................... 172 Methoden des OO Control Frameworks .................................................................................. 174 Methoden der Klasse CL_GUI_CFW......................................................................................... 175 dispatch ................................................................................................................................... 176 flush......................................................................................................................................... 177 get_living_dynpro_controls .....................................................................................................178 set_new_ok_code ................................................................................................................... 179 update_view ............................................................................................................................ 180 Methoden der Klasse CL_GUI_OBJECT .................................................................................. 181 free .......................................................................................................................................... 182 is_valid .................................................................................................................................... 183 Methoden der Klasse CL_GUI_CONTROL ............................................................................... 184 constructor............................................................................................................................... 185 finalize ..................................................................................................................................... 187 get_focus................................................................................................................................. 188 get_height................................................................................................................................ 189 get_registered_events............................................................................................................. 190 get_width ................................................................................................................................. 191 is_alive .................................................................................................................................... 192 set_alignment.......................................................................................................................... 193

6

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV)

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

April 2001

7

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

SAP AG

ALV Grid Control (BC-SRV-ALV)EinsatzmglichkeitenDas ALV Grid Control (ALV = SAP List Viewer) ist ein flexibles Werkzeug zur Listendarstellung. Es bietet typische Listenoperationen als generische Funktionen an und ist um eigene Funktionen erweiterbar. Diese Eigenschaft ermglicht den Einsatz des ALV Grid Controls in einer breiten Palette von Anwendungsprogrammen.

In SAP-eigenen Entwicklungen wird das ALV Grid Control auch als Werkzeug zum ndern und Erstellen von Tabellen genutzt. Diese Funktionalitt wird bisher allerdings nur in Pilot-Projekten eingesetzt und ist nicht fr Kunden freigegeben. Das folgende Bild zeigt die Darstellung einer Liste mit dem ALV Grid Control in einem PopupFenster:

Titel Titel

Generische Generische Funktionen Funktionen der Toolbar der Toolbar Ausgabetabelle Ausgabetabelle im Grid Control im Grid Control

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

8

April 2001

SAP AG

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

EinfhrungshinweiseDas ALV Grid Control verwendet die Control-Technologie fr eine moderne Darstellung am Bildschirm. Es bietet - wie alle Control-Verschalungen - Methoden fr die Steuerung des Controls ber eine globale Klasse im System an.

SAP kann nicht garantieren, da Methoden, Ereignisse und Attribute dieser Klasse, die nicht ffentlich sind, unverndert bleiben oder in Zukunft noch existieren. Daher sollten Sie die Klasse nicht ableiten, um auf geschtzten Objekte der Klasse zugreifen zu knnen. Die Verwendung dieser Objekte erschwert den Upgrade auf ein Folgerelease. Die Verwendung von ABAP Objects hat zur Folge, da eine Liste ber eine ALV Instanz angezeigt wird und der Programmierer sich der Ereignisverwaltung von ABAP Objects bedient.

IntegrationControls sind Software-Komponenten, die auf dem lokalen PC installiert sind. Um mit diesen Komponenten zu kommunizieren, nutzen alle Control-Verschalungen Methoden des Control Framework. Das ALV Grid Control stellt insofern einen Sonderfall dar, als da es ein bereits verschaltes Control benutzt: Das Grid Control. Bestimmte Schritte in der Ereignisverwaltung von Controls knnen so dem Programmierer abgenommen werden. Das ALV Grid Control verwendet das SAP Kontext Men, um Standardfunktionen zu integrieren. Dieses Men lt sich auf eigene Bedrfnisse anpassen. Diese Dokumentation ist auf die Verwendung des ALV Grid Controls im SAP GUI for the Windows Enviroment beziehungsweise im SAP GUI for the Java Enviroment ausgerichtet. Auerdem gibt es die Mglichkeit das ALV Grid Control im Web [Seite 44] darzustellen.

FunktionsumfangZusammengefat bietet das ALV Grid Control folgende Mglichkeiten: Einheitliche Darstellung von nicht-hierarchischen Listen in modernem Design. Bereitstellung von typischen Listfunktionen - zum Beispiel Sortieren und Filtern - ohne zustzlichen Programmieraufwand. Anpassung von vorgegebenen Listfunktionen sowie deren Erweiterung. Reagieren auf Benutzeraktionen (zum Beispiel Doppelklicken auf eine Zeile) individuell programmierbar. Anbindung an die Report-Report Schnittstelle mglich.

Anwendungsbeispiele zum ALV Grid Control finden Sie in der Entwicklungsklasse SLIS.

April 2001

9

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

SAP AG

EinschrnkungenEs ist nicht mglich, Block- oder hierarchische Listen mit dem ALV Grid Control darzustellen. Einfache Listen kann das ALV Grid Control zur Zeit nur einzeilig darstellen. Der Benutzer kann die Liste aber ber die Druckvorschau mehrzeilig definieren und ausdrucken.

10

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Instanz fr das ALV Grid Control

Instanz fr das ALV Grid ControlDefinitionDiese Instanz wird mit einer Referenz auf die Klasse cl_gui_alv_grid definiert: data type ref to cl_gui_alv_grid.

VerwendungEine Instanz fr das ALV Grid Control verwaltet alle Informationen bezglich einer Liste auf Ihrem Dynpro. Auf diese Instanz knnen Sie Methoden aufrufen, mit denen Sie die Eigenschaften dieses Controls definieren und ndern knnen.

Leiten Sie diese Klasse nicht ab, um auf geschtzte Bereiche der Klasse zugreifen zu knnen. Dies ist fr die Verwendung des ALV Grid Controls nicht notwendig.

VererbungshierarchieCL_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] als auch Methoden des OO Control Frameworks [Seite 174].

April 2001

11

ALV Grid Control (BC-SRV-ALV) Arbeiten mit dem ALV Grid Control

SAP AG

Arbeiten mit dem ALV Grid ControlGrundlagenDie folgende Grafik zeigt die ntigen Schritte, um eine Liste mit dem ALV Grid Control darzustellen:Feldkatalog Feldkatalog Deklaration von Deklaration von Referenzvariablen Referenzvariablen Instanziierung und Instanziierung und Dynpro-Integration Dynpro-Integration Anzeige der Daten Anzeige der Daten auf dem Control auf dem Control

Datenbeschreibung

A TypA ... C TypC ...oderDDIC DDIC Struktur Struktur

CALL METHOD grid->Set_table_for_first_display.

CREATE OBJECT container container_name = 'MYCONT.

DATA container TYPE REF TO cl_gui_custom_container.

B TypB ...

Angezeigte Liste: Dynpro grid(ber Container mit dem Dynpro verlinkt)FLUSH

A B CInterne Interne Tabelle Tabelle

DATA grid TYPE REF TO cl_gui_alv_grid.

CREATE OBJECT grid parent = container.

A B C a1 b 1 c1 a2 b 2 c2 a3 b 3 c3

Ausgabetabelle

Daten

a1 b 1 c1 a2 b 2 c2 a3 b 3 c3

Container mit Container mit integriertem integriertem ALV Control ALV Control

Select * from

Fr die Anzeige der Daten mssen Sie mindestens zweierlei Informationen bereitstellen: Eine interne Tabelle mit den darzustellenden Daten, die Ausgabetabelle. Eine Beschreibung ber die Struktur dieser Daten, die entweder ber den Feldkatalog oder ber die entsprechende Struktur des Data Dictionary dem ALV Grid Control bekannt gemacht wird.

Die Ausgabetabelle besteht im allgemeinen aus Daten, die Sie vorher aus Datenbanktabellen selektiert haben.

Die Referenz auf die Ausgabetabelle, die Sie an das ALV Grid Control bergeben, sollte so lange gltig sein wie das ALV Grid Control darauf operiert. Neben der Definition dieser Referenz als globale Tabelle ist es auch mglich, die Referenz ber ein ffentliches Attribut in einer ABAP Objects Instanz zu halten. Der Feldkatalog [Seite 133] ist eine Tabelle mit Informationen ber die darzustellenden Felder. Mit Hilfe dieser Tabelle erkennt ALV zum Beispiel den Typ eines Feldes. Sie knnen aber auch ber spezielle Felder des Katalogs die Formatierung von Zahlenausgaben und Spalteneigenschaften der auszugebenen Liste beeinflussen.

12

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Arbeiten mit dem ALV Grid Control

Arbeiten mit ControlsMit der Verwendung von ABAP Objects zu Release 4.6A wurde die Programmierung von Controls in vielen Punkten vereinheitlicht: Erzeugen eines Controls und dessen Integration auf dem Dynpro bermittlung von Methoden vom Backend zum Frontend Behandlung von Ereignissen, die das Control am Frontend auslst Abbau des Controls (Lifetime Management)

Fr Basis Controls (wie z.B. das TextEdit Control, das HTML Viewer Control oder das Picture Control) gilt fr die oben genannten Punkte das gleiche Programmiermodell. Mit Einschrnkungen im Bereich der Ereignisbehandlung gilt dieses Programmiermodell auch fr das ALV Grid Control (siehe nchsten Abschnitt). Lesen sie Anlegen eines Controls [Extern] (inklusive Querverweise), um sich mit diesem allgemeinen Modell vertraut zu machen und beachten Sie unbedingt die im nchsten Abschnitt beschriebenen Unterschiede.

Besonderheiten des ALV Grid Control in der EreignisbehandlungDas ALV Grid Control benutzt das Grid Control fr die Anzeige der Ausgabetabelle. Das ALV Grid Control ist also eine Verschalung, die die Verschalung eines Basis Controls verwendet. Als 'uere Hlle' nimmt diese Verschalung dem Anwendungsprogrammierer die Registrierung der Ereignisse am Frontend ab, um die Ereignisbehandlung zu vereinfachen. Beachten Sie folgende Unterschiede zu den Basis Controls: Alle Ereignisse werden beim Instanziieren des Controls als System-Ereignisse registriert.

Wenn Sie alle Ereignisse als Anwendungs-Ereignis registrieren wollen, knnen Sie dies mit dem Parameter I_APPL_EVENTS (Siehe auch: CONSTRUCTOR [Seite 71]). Dann mssen Sie wie blich die Methode CL_GUI_CFW=>DISPATCH im PAI aufrufen. Die Ereignisse DELAYED_CALLBACK oder DELAYED_CHANGED_SEL_CALLBACK werden ber die Methode register_delayed_event [Seite 89] registriert. Fr Drag und Drop mit dem ALV Control [Seite 25] ist kein Aufruf von DISPATCH ntig.

April 2001

13

ALV Grid Control (BC-SRV-ALV) Erste Schritte

SAP AG

Erste SchritteDieses Kapitel beschreibt, wie Sie im einfachsten Fall eine Liste mit selektierten Daten im ALV Grid Control anzeigen. Dazu mssen Sie: 1. Eine Instanz des ALV Grid Control erzeugen und auf einem Dynpro integrieren. 2. Die anzuzeigenden Daten selektieren und diese zusammen mit einer Beschreibung der Felder der Instanz bergeben.

Siehe auch Beispielreport BCALV_GRID_DEMO in der Entwicklungsklasse SLIS.

Ein ALV Grid Control anlegenEin ALV Grid Control wird auf die gleiche Weise instanziiert wie andere Controls: 1. Deklarieren Sie Referenzvariablen fr das ALV Grid Control und den Container. Deklarieren Sie auerdem eine interne Tabelle, die Sie spter mit selektierten Daten fllen 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 fnf verschiedene Container Controls [Extern] zur Verfgung (in diesem Beispiel wird das Custom Container Control verwendet). 2. Legen Sie ein normales Dynpro an und markieren Sie im grafischen Screen Painter einen Bereich fr das Custom Container Control (Icon mit Buchstaben 'C'). Vergeben Sie fr diesen Bereich den Namen CCCONTAINER.

In bung 1: Einen Bereich fr ein Control reservieren [Extern] des Controls Tutorials ist das Markieren eines Bereichs im alphanumerischen Screen Painter erklrt. 3. Im PBO-Modul des Dynpro mssen Sie nun noch das Container- und ALV Grid Control instanziieren. Dabei binden Sie das Container Control an das Dynpro ber den im Screen Painter angelegten Container. ber den Parameter parent legen sie das Container Control als Vater des ALV Control fest: IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING CONTAINER_NAME = 'CCCONTAINER'. CREATE OBJECT GRID1 EXPORTING I_PARENT = g_custom_container. ENDIF.

14

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Erste Schritte

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

In der Regel mssen Sie mit der Methode cl_gui_cfw=>flush die aufgerufenen Methoden zum Frontend bertragen. Da das Control Framework am Ende des PBO den Flush automatisch durchfhrt, ist er hier nicht ntig.

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

Eine Liste im ALV Control anzeigenNachdem Sie ein ALV Grid Control erzeugt haben und es ber ein Container Control auf einem Dynpro integriert haben, mssen Sie noch die Daten und deren Struktur an das ALV Grid Control bergeben: 1. Fllen Sie die interne Tabelle mit Daten: SELECT * FROM sflight INTO TABLE gt_sflight. 2. bergeben Sie die Ausgabetabelle und die Strukturdaten an das ALV Grid Control. Achten Sie wiederum darauf, diese Methode nur einmal nach der Erzeugung des ALV Grid Control aufzurufen: CALL METHOD grid->set_table_for_first_display EXPORTING I_STRUCTURE_NAME = 'SFLIGHT' CHANGING IT_OUTTAB = gt_sflight.

In diesem Fall werden die Strukturdaten ber das Data Dictionary bereitgestellt. Das ALV Control holt sich die Feldinformationen ber die Tabelle SFLIGHT und stellt alle Felder der Tabelle dar.

April 2001

15

ALV Grid Control (BC-SRV-ALV) Anwendungsspezifisches Programmieren

SAP AG

Anwendungsspezifisches ProgrammierenFolgende Eigenschaften des ALV Grid Controls begnstigen den Einsatz dieses Werkzeuges in einer breiten Palette von Anwendungen: Layouts bieten dem Benutzer die Mglichkeit, die Listausgabe seinen Bedrfnissen anzupassen. Die Anwendungsentwicklung bestimmt, welche Speicheroptionen der Benutzer fr das Layout einer Liste hat. Eigene Funktionen der Anwendungsentwicklung lassen sich in der Toolbar integrieren. Der Anwendungsentwickler kann auerdem Standardfunktionen an die jeweilige Anwendung anpassen oder ganz ausblenden. Drag&Drop-Funktionen sind programmierbar. Das ALV Grid Control ermglicht die Verwendung des Drag&Drop-Controls, mit dem sich anwendungsspezifische Funktionen zwischen dem ALV Grid Control und anderen Custom Controls realisieren lassen. Formatierungs-, Ausgabe- und Steuerungsoptionen werden ber drei Strukturen angeboten: Der Feldkatalog [Seite 133] Die Layout-Struktur [Seite 163] Die Print-Struktur [Seite 172]

Die wichtigsten Szenarien sind in diesem Abschnitt beschrieben. Weitere Informationen entnehmen Sie bitte den Beschreibungen der Methoden, Ereignisse und Strukturen.

16

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Layouts

LayoutsMit Hilfe von Layouts kann der Benutzer die ausgegebene Liste seinen eigenen Bedrfnissen anpassen. Der Anwendungsentwickler steuert die Berechtigungen des Benutzers bezglich eines Layout ber die Parameter I_SAVE, IS_VARIANT und I_DEFAULT der Methode set_table_for_first_display [Seite 103]. Es stehen drei Modi zur Verfgung: Modus Effekt Belegung von I_SAVE und IS_VARIANT beim Aufruf von set_table_for_first_dis play IS_VARIANT = SPACE. I_SAVE = SPACE. (Voreinstellung)

Ausschlieliches ndern des aktuellen Layout

Das ALV Grid Control zeigt in der Toolbar nur das Layout-Icon ( ), aber kein Men an. ber das Icon kann der Benutzer das aktuelle Men ndern (im Wesentlichen die Auswahl und Reihenfolge der angezeigten Spalten, Filter, Sortierkriterien). Das ALV Grid Control zeigt in der Toolbar sowohl ein Layout-Icon als auch ein zugehriges Men an. Im Men befinden sich nur die Funktionen Layout auswhlen und Layout ndern. Das ALV Grid Control zeigt in der Toolbar sowohl das Layout-Icon als auch ein zugehriges Men an. ber das Layout-Icon kann der Benutzer eine schon existierendes Layout auswhlen. Im Men befinden sich die Funktionen Layout auswhlen, Layout ndern, Layout sichern und Layout verwalten.

Ausschlieliches Laden von mitausgelieferten Layouts

IS_VARIANT = I_SAVE = SPACE. (oder IS_VARIANT gleich SPACE und I_SAVE ungleich SPACE) IS_VARIANT = I_SAVE = Siehe auch: Abspeichern eines Layout [Seite 18]

Laden und Speichern eines Layout

Zustzlich knnen Sie ber das Setzen des Parameters I_DEFAULT dem Benutzer das Speichern von Layoutvoreinstellungen erlauben (in der Voreinstellung gesetzt).

Falls der Benutzer die Berechtigung hat, transportiert er Layouts in der LayoutVerwaltung ber den Menpunkt Layout->Transportieren....

April 2001

17

ALV Grid Control (BC-SRV-ALV) Abspeichern eines Layouts

SAP AG

Abspeichern eines LayoutsEinsatzmglichkeitenDie Standard-Funktion Layout ndern steht dem Benutzer ber ein Icon der Toolbar zur Verfgung. Sie ermglicht ihm, das aktuelle Layout fr die Lebensdauer der Control-Instanz seinen Bedrfnissen 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 bereits so ein Layout, so wird diese beim Aufruf der Methode set_table_for_first_display [Seite 103] geladen. Falls Sie keine Layoutvoreinstellungen zulassen wollen, setzen Sie den Parameter I_DEFAULT dieser Methode auf SPACE.

Ablauf1. Deklarieren Sie eine Variable, um die Speichermglichkeiten 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 fr IS_VARIANT bergeben, ist es zwar mglich, Layouts zu laden, aber nicht, neue zu speichern. Bei Verwendung des Parameters I_SAVE ist die bergabe einer Struktur fr das Layout mit IS_VARIANT obligatorisch.

18

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Abspeichern eines Layouts

ErgebnisIn der Toolbar lt sich nun neben dem Layout-Icon ein Men aufklappen, das ein Speichern und Laden eines Layouts erlaubt. Je nach Belegung des Parameters I_SAVE hat der Benutzer beim Speichern folgende Mglichkeiten: Speichermodi von Layouts I_SAVE = SPACE I_SAVE = 'U' I_SAVE = 'X' I_SAVE = 'A' Kein Speichern von Layouts mglich. Der Benutzer kann nur benutzerspezifische Layouts speichern. Der Benutzer kann nur bergreifende Layouts speichern. Der Benutzer kann sowohl benutzerspezifische als auch bergreifende Layouts speichern.

April 2001

19

ALV Grid Control (BC-SRV-ALV) Integration eigener Funktionen

SAP AG

Integration eigener FunktionenDas ALV Control stellt Ihnen Standard-Funktionen fr die Bearbeitung von Listen zur Verfgung. Der Benutzer kann auf diese Funktionen ber die Toolbar oder das Kontext-Men zugreifen. Um eigene Funktionen zu integrieren, knnen Sie: Bestehende Funktionen mit eigenen Funktionen belegen sowie weitere Funktionen in der Toolbar und im Kontext-Men einbinden.

Auerdem ist es mglich Funktionen auszublenden oder zu deaktivieren, die in einem speziellen Kontext nicht bentigt werden.

20

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) ndern von Standardfunktionen

ndern von StandardfunktionenEinsatzmglichkeitenDie Standardfunktionen sind auf keinen speziellen Anwendungsfall zugeschnitten. Spezielles Wissen ber die angezeigten Daten knnen also nicht bercksichtigt werden. Im Einzelfall ist es mglich, da eine Standardfunktion - wie das Sortieren nach einer bestimmten Spalte - in einer Anwendung effizienter programmiert werden kann.

Ablauf1. Definieren Sie eine Ereignisbehandlermethode zum Ereignis before_user_command [Seite 112]. Dieses Ereignis wird ausgelst, wenn der Benutzer eine Funktion ausgewhlt hat. Das ALV Control bergibt also die Kontrolle an die Anwendung bevor die Funktion ausgefhrt wird. ber den Parameter I_UCOMM des Ereignisses knnen Sie den Funktionscode auf die Funktion, die Sie ndern mchten, eingrenzen. 2. Implementieren Sie Ihren eigenen Algorithmus fr die Funktion innerhalb der Ereignisbehandlermethode. Sie knnen dabei Methoden des ALV Control aufrufen. 3. Setzen Sie abschlieend den Funktionscode zurck, damit die Standardfunktion nicht mehr ausgefhrt wird: CALL METHOD ->set_user_command exporting I_UCOMM = SPACE.

Wenn Sie bestimmte Funktionen der Toolbar berhaupt nicht brauchen, knnen Sie diese auch fr die gesamte Lebensdauer des Control ausblenden. bergeben Sie dazu mit Hilfe des Parameters IT_TOOLBAR_EXCLUDING der Methode set_table_for_first_display [Seite 103] eine Tabelle mit den auszublendenden Funktionskodes.

April 2001

21

ALV Grid Control (BC-SRV-ALV) Definition von GUI-Elementen in der Toolbar

SAP AG

Definition von GUI-Elementen in der ToolbarAblauf1. Definieren Sie eine Ereignisbehandlermethode zum Ereignis TOOLBAR. 2. Deklarieren Sie eine Struktur fr die Definition eines Elements der Toolbar: data: ls_toolbar TYPE stb_button. 3. Fr eine Drucktaste fllen Sie zum Beispiel folgende Felder: CLEAR ls_toolbar. MOVE 0 TO ls_toolbar-butn_type. MOVE 'BOOKINGS' TO ls_toolbar-function. MOVE icon_employee TO ls_toolbar-icon. MOVE 'Show Bookings'(111) TO ls_toolbar-quickinfo. MOVE SPACE TO ls_toolbar-disabled.

Mit dem Feld butn_type teilen Sie dem ALV Control den Typ des GUI-Elements mit. Mgliche Werte entnehmen Sie bitte dem Wertebereich der Domne TB_BTYPE. 4. Mit Hilfe des Ereignisparameters E_OBJECT hngen Sie die neue Definition an die Tabelle mt_toolbar: APPEND ls_toolbar TO e_object->mt_toolbar. 5. Fr die Definition weiterer Elemente gehen Sie zurck zu Schritt 3. 6. Rufen Sie die Methode set_toolbar_interactive [Seite 107] auf, wenn Sie die Toolbar neu aufbauen wollen.

ErgebnisDen jeweiligen Funktionskode, den Sie im Feld function festgelegt haben, knnen Sie in der Ereignisbehandlermethode zum Ereignis USER_COMMAND abfragen und so die zugehrige Funktion implementieren.

Siehe auch den Report BCALV_GRID_05 in der Entwicklungsklasse SLIS.

22

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Definition eines Kontext-Mens

Definition eines Kontext-MensVerwendungDas ALV Grid Control benutzt das Kontext Men [Extern] und belegt es mit Standardfunktionen. Sie knnen es kontextsensitiv um eigene Funktionen erweitern und gegebene Funktionen ausblenden oder deaktivieren.

IntegrationDas Kontext-Men ist eine Instanz der Klasse CL_CTMENU. Wird das Ereignis CONTEXT_MENU_REQUEST vom Benutzer ausgelst, so enthlt der Ereignisparameter E_OBJECT eine Referenz auf das Standard-Kontextmen.

Siehe auch den Report BCALV_GRID_06 in der Entwicklungsklasse SLIS.

FunktionsumfangSie knnen dieses Men folgendermaen verndern: Um eine Zeile im Men hinzuzufgen, rufen Sie die Methode add_function auf: CALL METHOD E_OBJECT->ADD_FUNCTION EXPORTING FCODE = 'DELE' TEXT = TEXT-003. "Lschen Um schon vorhandene Funktionen zu deaktivieren (Anzeige in Ghost-Schrift), bergeben Sie alle entsprechenden Funktionscodes der Methode disable_functions in einer Tabelle:

DATA: LT_FCODES TYPE UI_FUNCTIONS, CLEAR LT_FCODES. APPEND CL_GUI_ALV_GRID=>MC_FC_COL_OPTIMIZE TO LT_FCODES. APPEND CL_GUI_ALV_GRID=>MC_FC_HELP TO LT_FCODES. CALL METHOD E_OBJECT->DISABLE_FUNCTIONS EXPORTING FCODES = LT_FCODES. Um schon vorhandene Funktionen auszublenden, gehen Sie genauso vor und rufen statt der Methode disable_functions die Methode hide_functions auf.

Mit den Methoden enable_functions und show_functions knnen Sie die jeweiligen Funktionen wieder aktivieren beziehungsweise anzeigen.

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

April 2001

23

ALV Grid Control (BC-SRV-ALV) Definition eines Mens in der Toolbar

SAP AG

Definition eines Mens in der ToolbarEinsatzmglichkeitenEin Men der Toolbar ist - genau wie ein Kontext-Men - eine Instanz der Klasse CL_CTMENU. Sie knnen mehrere Mens frei definieren und sie in der Toolbar aufhngen.

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 GUIElementen in der Toolbar [Seite 22] beschrieben. Siehe auch: Besonderheiten bei Mens mit Defaultbutton [Extern] 2. Fragen Sie den Funktionskode, den Sie im Schritt 1 fr das Men vergeben haben, in der Ereignisbehandlermethode zum Ereignis MENU_BUTTON ab (ber den Ereignisparameter E_UCOMM). Auf diese Weise knnen Sie die verschiedenen Mens der Toolbar unterscheiden. 3. Definieren Sie pro Funktionscode ein Men, wie in Definition eines Kontext-Mens [Seite 23] beschrieben. Fr die einzelnen Funktionen eines Mens vergeben Sie im dritten Schritt weitere Funktionskodes, die Sie beim Ereignis user_command [Seite 132] abfragen knnen.

Siehe auch den Report BCALV_GRID_07 in der Entwicklungsklasse SLIS.

24

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Drag&Drop mit dem ALV Control

Drag&Drop mit dem ALV ControlDas ALV Grid Control ermglicht die Verwendung des Drag&Drop Controls. Fr dieses Control mssen Sie zunchst ein Drag&Drop-Verhalten beschreiben und dieses Verhalten ber ein Handle fr Elemente der betroffenen Controls setzen. Das Drag&Drop Control erkennt anhand der Handles, welche Operationen der Benutzer durchfhren darf und verndert beim Klicken den Mauszeiger. Um mit dem gesetzten Drag&Drop Verhalten Aktionen zu verbinden stellt das ALV Control die Ereignisse OnDrag, OnDrop, OnDropComplete und OnDropGetFlavor zur Verfgung. Dieser Abschnitt beschreibt, wie Sie die Handles fr das Drag&Drop-Verhalten mit Elementen des ALV Grid Controls verknpfen. Die Dokumentation zum Control Framework [Extern] erklrt die 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)

April 2001

25

ALV Grid Control (BC-SRV-ALV) D&D-Verhalten fr alle Zeilen/Spalten

SAP AG

D&D-Verhalten fr alle Zeilen/SpaltenEinsatzmglichkeitenDieser Proze bietet sich an, wenn Sie ein einheitliches Drag&Drop-Verhalten fr alle Zeilen oder Spalten definieren wollen. Ist im Verhalten zum Beispiel das Attribut dragsource gesetzt, lassen sich alle Zeilen bzw. Spalten mit Objekten verbinden, die das Attribut droptarget gesetzt haben und den gleichen Flavor benutzen.

Es macht keinen Unterschied, ob Sie ein Verhalten fr alle Zeilen oder alle Spalten definieren. Obwohl Sie mit dieser Methode fr alle Zeilen das gleiche Verhalten beschreiben, knnen Sie in den Ereignissen OnDrop bzw. OnDropGetFlavor entscheiden, ob Sie die Drag&DropOperation abbrechen wollen. Sie treffen diese Entscheidung anhand des bergebenen Datenobjekts und des Flavors. Im Datenobjekt haben Sie blicherweise die Daten der gezogenen Zeile gespeichert.

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 der Methode get_handle der Klasse cl_dragdrop. 3. Weisen Sie das Handle dem Feld s_dragdrop-row_ddid oder s_dragdrop-col_ddid der Layout-Struktur zu. 4. bergeben Sie die Layout-Struktur mit der Methode set_table_for_first_display [Seite 103].

Sie knnen die Layout-Struktur mit dem Drag&Drop-Verhalten auch nachtrglich mit der Methode set_frontend_layout [Seite 95] bergeben.

ErgebnisJede Zeile bzw. Spalte lt sich vom Benutzer ziehen bzw. erscheint als Ziel fr eine Drag&Drop-Operation.

Die Definition eines Drag&Drop-Verhaltens lt sich erst dann am Bildschirm nachvollziehen, wenn es wenigstens eine Dragsource und ein Droptarget mit gleichem Flavor gibt.

26

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) D&D-Verhalten fr spezielle Spalten

D&D-Verhalten fr spezielle SpaltenEinsatzmglichkeitenSie knnen mit dieser Mglichkeit fr spezielle Spalten des Grid Controls ein Drag&DropVerhalten definieren. Jede Spalte kann dabei ein anderes Drag&Drop-Verhalten haben.

Ablauf5. Definieren Sie eine interne Tabelle vom Typ LVC_T_FCAT fr den Feldkatalog. 6. Definieren Sie ein oder verschiedene Drag&Drop-Verhalten und beschaffen Sie sich deren Handles mit der Methode get_handle der Klasse cl_dragdrop. 7. Erstellen Sie den Feldkatalog manuell [Seite 137] oder halbautomatisch [Seite 139]. Weisen Sie dem Feld dragdropid fr ausgewhlte Spalten das entsprechende Handle zu (mit dem Feld fieldname knnen sie die gewnschte Spalte referenzieren). 8. bergeben Sie den Feldkatalog mit der Methode set_table_for_first_display [Seite 103].

Sie knnen den Feldkatalog mit dem Drag&Drop-Verhalten auch nachtrglich mit der Methode set_frontend_fieldcatalog [Seite 94] bergeben.

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

Die Definition eines Drag&Drop-Verhaltens lt sich erst dann am Bildschirm nachvollziehen, wenn es wenigstens eine Dragsource und ein Droptarget mit gleichem Flavor gibt.

April 2001

27

ALV Grid Control (BC-SRV-ALV) D&D-Verhalten fr spezielle Zeilen/Zellen

SAP AG

D&D-Verhalten fr spezielle Zeilen/ZellenEinsatzmglichkeitenSie knnen mit dieser Mglichkeit fr spezielle Zeilen oder Zellen des Grid Controls ein Drag&Drop-Verhalten definieren. Jede Zeile bzw. Zelle kann dabei ein anderes Drag&DropVerhalten 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 wie im folgenden Beispiel: DATA: BEGIN OF GT_OUTTAB OCCURS 0. INCLUDE STRUCTURE . DATA: CT TYPE LVC_T_DRDR. "Table for d&d cell behaviour DATA: END OF GT_OUTTAB. 3. Definieren Sie Ihr Drag&Drop-Verhalten und beschaffen Sie sich dessen Handle mit der Methode get_handle der Klasse cl_dragdrop. 4. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle. 5. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Eine Zeile der Drag&DropTabelle hat zwei Felder. Belegen Sie diese Felder folgendermaen (siehe auch die Grafik im nchsten Abschnitt): Wenn die ganze Zeile ein Drag&Drop-Verhalten haben soll, weisen Sie dem Feld dragdropid das entsprechende Handle zu. Das Feld fieldname bleibt in diesem Fall leer. Wenn nur bestimmte Spalten der Zeile ein Drag&Drop-Verhalten haben sollen, mssen Sie fr solche Spalten jeweils eine Zeile in der Drag&Drop-Tabelle anhngen. Dem Feld fieldname weisen Sie den Namen der gewnschten Spalte und dem Feld dragdropid das entsprechende Handle zu.

-

6. Weisen Sie den Namen der internen Tabelle dem Feld s_dragdrop-fieldname der Layout-Struktur zu (in unserem Fall 'CT', siehe Schritt 2). 7. bergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode set_table_for_first_display [Seite 103].

Sie knnen die Layout-Struktur mit dem Drag&Drop-Verhalten auch nachtrglich mit der Methode set_frontend_layout [Seite 95] bergeben. Das ALV Grid Control frischt sie beim Aufruf der Methode refresh_table_display [Seite 88] auf. Die Instanz des ALV Grid Control und die zugehrige Ausgabetabelle mssen die gleiche Lebensdauer haben.

28

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) D&D-Verhalten fr spezielle Zeilen/Zellen

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

A

B

C

CT B 2 C 1dragdropid fieldname

Drag&Dropsensitive Zellen im Grid Control:

a1 b1 c1 a2 b2 c2 a3 b3 c3Ausgabetabelle 1

A B C a1 b1 c1 a2 b2 c2 a3 b3 c3

April 2001

29

ALV Grid Control (BC-SRV-ALV) Ausgabe von Exceptions

SAP AG

Ausgabe von ExceptionsEinsatzmglichkeitenMit Exceptions kennzeichnen Sie grafisch, da ein Schwellenwert in einer Zeile der Liste berschritten ist. Im Bezug auf das Flugmodell wrde man zum Beispiel die rote Ampel benutzen, um zu signalisieren, da ein Flug ausgebucht ist. Der Benutzer kann anhand der verwendeten Farbe die angezeigten Daten schneller interpretieren. Es lassen sich drei Zustnde anzeigen: Anzeige Interner Wert 3 2 1 Signalisiert zum Beispiel (Fast) volle Kapazitt verfgbar Mittlere bis volle Ausschpfung der Kapazitt Keine Kapazitt mehr vorhanden

Eine Exception kann auch als LED angezeigt werden (siehe Exceptions [Seite 168]). Der Anwendungs-Entwickler mu sowohl die Schwellenwerte festlegen, als auch den Wert einer Exception an diesen anpassen.

Siehe auch: Beispielreport BCALV_GRID_04 der Entwicklungsklasse SLIS.

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 . 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 fr die Exception: gs_layout-excp_fname = 'LIGHT'. 9. Wenn Sie die Exception als LED darstellen mchten, setzen Sie das Feld EXCP_LED der Layout-Struktur. 10. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle und fragen Sie die Felder ab, die zu der Exception in Beziehung stehen. Setzen Sie Ihre Variable fr die Exception-

30

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Ausgabe von Exceptions

Anzeige (in unserem Beispiel LIGHT) je nach dem von Ihnen gewhlten Schwellenwert auf '1', '2' oder '3' (siehe oben). 8. bergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode set_table_for_first_display [Seite 103].

Wenn Sie die Werte fr eine Exception in der Ausgabetabelle gendert haben, frischen Sie die Ausgabe mit der Methode refresh_table_display [Seite 88] auf.

ErgebnisDas ALV Grid Control enthlt am Beginn der Liste eine Spalte mit Exceptions:

April 2001

31

ALV Grid Control (BC-SRV-ALV) Einfrben von Zeilen

SAP AG

Einfrben von ZeilenEinsatzmglichkeitenSie knnen Zeilen im Grid Control anders einfrben und auf diese Weise Daten der Liste hervorheben.

Spalten lassen sich ber das Feld EMPHASIZE des Feldkatalogs einfrben (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 folgenden Beispiel: DATA: BEGIN OF GT_OUTTAB OCCURS 0. INCLUDE STRUCTURE . DATA: linecolor(4) type c. "Color for corresponding line DATA: END OF GT_OUTTAB. 13. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle. 14. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Um die Farbe einer Zeile zu ndern, weisen Sie dem Character-Feld eine vierstellige Farbkodierung zu.

Mehr ber die Farbkodierung finden Sie beim Feld EMPHASIZE des Feldkatalogs (siehe Ausgabeoptionen einer Spalte [Seite 149]). 9. Weisen Sie den Namen der internen Tabelle dem Feld INFO_FNAME der Layout-Struktur zu (in unserem Fall 'LINECOLOR', siehe Schritt 2). 10. bergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode set_table_for_first_display [Seite 103].

Wenn Sie Zellen nicht bei der ersten Anzeige einfrben wollen, fhren Sie Schritt 4 spter aus und frischen die Ausgabetabelle mit der Methode refresh_table_display [Seite 88] auf.

32

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Einfrben von Zellen

Einfrben von ZellenEinsatzmglichkeitenSie knnen Zellen im Grid Control anders einfrben und auf diese Weise Daten der Liste hervorheben. Es ist ber diesen Proze zwar auch mglich, ganze Zeilen einzufrben, dies ist aber aufwendiger als unter Einfrben von Zeilen [Seite 32] beschrieben.

Der Proze D&D-Verhalten fr spezielle Zeilen/Zellen [Seite 28] ist analog im Bezug auf 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 im folgenden Beispiel: DATA: BEGIN OF GT_OUTTAB OCCURS 0. INCLUDE STRUCTURE . DATA: CT TYPE LVC_T_SCOL. "Table for colors DATA: END OF GT_OUTTAB. 17. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle. 18. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Eine Zeile der Farb-Tabelle hat drei Felder. Ist das Feld NOKEYCOL gesetzt, knnen Sie die Farbe von Schlsselfeldern ndern. Belegen Sie die restlichen Felder folgendermaen: Wenn Sie die ganze Zeile einfrben wollen, weisen Sie den Feldern der Struktur COLOR die entsprechenden Werte zu. Das Feld fname bleibt in diesem Fall leer. Wenn Sie nur bestimmte Spalten der Zeile einfrben wollen, mssen Sie fr solche Spalten jeweils eine Zeile in der Farb-Tabelle anhngen. Dem Feld fname weisen Sie den Namen der gewnschten Spalte und den Feldern der Struktur COLOR die entsprechenden Werte zu.

Die Bedeutung der Farbeinstellungen finden Sie in der F1-Hilfe zum Format-Befehl. Die Klasse CL_GUI_RESOURCES enthlt Konstantenattribute fr die Felder INT und INV der Struktur COLOR. 11. Weisen Sie den Namen der internen Tabelle dem Feld CTAB_FNAME der Layout-Struktur zu (in unserem Fall 'CT', siehe Schritt 2). 12. bergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode set_table_for_first_display [Seite 103].

April 2001

33

ALV Grid Control (BC-SRV-ALV) Einfrben von Zellen

SAP AG

Wenn Sie Zellen nicht bei der ersten Anzeige einfrben wollen, fhren Sie Schritt 4 spter aus und frischen die Ausgabetabelle mit der Methode refresh_table_display [Seite 88] auf.

34

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Darstellung von Drucktasten

Darstellung von DrucktastenEinsatzmglichkeitenWenn Sie Zellen, Zeilen oder Spalten den Style mc_style_button zuweisen, stellt das ALV Grid Control die zugehrigen Zellen als Drucktaste dar. Der Benutzer sieht dann unmittelbar, da er weiter Informationen zur Zelle erhlt, indem er auf sie klickt. Das ALV Grid Control lst dann das Ereignis button_click [Seite 113] aus.

AblaufUm alle Zellen einer Spalte als Drucktaste darzustellen, verwenden Sie das Feld STYLE des Feldkatalogs [Seite 149]. Um Zeilen oder einzelne Zellen als Drucktaste darzustellen, gehen Sie folgendermaen vor: 19. Definieren Sie die Layout-Struktur [Seite 163] vom Typ LVC_S_LAYO. 20. Erweitern Sie Ihre Ausgabetabelle um eine Zellentabelle vom Typ LVC_T_STYL wie im folgenden Beispiel: DATA: BEGIN OF GT_OUTTAB OCCURS 0. INCLUDE STRUCTURE . DATA: CT TYPE LVC_T_DRDR. "Table buttons DATA: END OF GT_OUTTAB. 21. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle. 22. Lesen Sie in einem Loop jeweils eine Zeile der Ausgabetabelle. Eine Zeile der Zellentabelle hat die Felder FIELDNAME und STYLE. Belegen Sie diese Felder folgendermaen: Wenn alle Zellen einer Zeile als Drucktaste dargestellt werden sollen, weisen Sie dem Feld style das Attribut cl_gui_alv_grid=>mc_style_button zu. Das Feld fieldname bleibt in diesem Fall leer. Wenn nur bestimmte Spalten der Zeile wie eine Drucktaste aussehen sollen, hngen Sie pro Spalte eine Zeile an die Zellentabelle an. Dem Feld fieldname weisen Sie den Namen der gewnschten Spalte und dem Feld style das Attribut cl_gui_alv_grid=>mc_style_button zu.

-

13. Weisen Sie den Namen der internen Tabelle dem Feld stylefname der Layout-Struktur zu (in unserem Fall 'CT', siehe Schritt 2). 14. bergeben Sie die Layout-Struktur und die Ausgabetabelle mit der Methode set_table_for_first_display [Seite 103].

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

April 2001

35

ALV Grid Control (BC-SRV-ALV) Darstellung von Drucktasten

SAP AG

36

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Einbinden von Hyperlinks

Einbinden von HyperlinksEinsatzmglichkeitenMit dem Feld HREF_HNDL [Seite 149] des Feldkatalogs weisen Sie allen Zellen einer Spalte ein Handle fr eine Hyperlink-Adresse zu. In diesem Abschnitt ist beschrieben, wie Sie die Zellen einer Spalte mit unterschiedlichen Hyperlink-Adressen verknpfen.

Ablauf23. Definieren Sie eine interne Tabelle fr 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, bentigen Sie ein zustzliches Feld in der Ausgabetabelle. Erweitern Sie dazu Ihre Ausgabetabelle um ein Feld vom Typ INT4 wie im folgenden Beispiel: DATA: BEGIN OF GT_OUTTAB OCCURS 0. INCLUDE STRUCTURE . 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 zustzliches Feld fr das Handle definiert werden. In diesem Beispiel sollen nur in einer Spalte Hyperlinks dargestellt werden. 25. Bauen Sie den Feldkatalog fr Ihre Ausgabetabelle manuell [Seite 137]oder halbautomatisch [Seite 139] auf. Im Feldkatalog weisen Sie dem Feld WEB_FIELD den Namen des Feldes fr das Hyperlink-Handle zu (im Beispiel: HL_FNAME, s.o.). Das ALV Grid Control kann so das zustzliche Feld richtig interpretieren. 26. Bauen Sie Ihre Hyperlink-Tabelle mit allen gewnschten Sprungzielen auf, zum Beispiel: data: ls_hype type lvc_s_hype. ls_hype-handle = '1'. ls_hype-href = 'http://www.sap.com'. append ls_hype to gt_hypetab. ls_hype-handle = '2'. ls_hype-href = 'http://www.mysap.com'. append ls_hype to gt_hypetab. 27. Selektieren Sie Ihre Daten und kopieren Sie sie in die Ausgabetabelle. 28. Lesen Sie in einer Schleife jeweils eine Zeile der Ausgabetabelle. Weisen Sie nun dem Feld fr das Hyperlink-Handle (im Beispiel: HL_FNAME), das gewnschte Handle zu. Bleibt das Handle fr eine Zeile initial, wird kein Hyperlink dargestellt.

April 2001

37

ALV Grid Control (BC-SRV-ALV) Einbinden von Hyperlinks

SAP AG

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

ErgebnisAlle Zellen der Spalte, denen ber das zustzliche Feld ein Handle zugewiesen wurde, werden als Hyperlink dargestellt. Gibt es fr das zugewiesene Handle keinen Eintrag in der HyperlinkTabelle, so wird der Inhalt der Zelle normal ausgegeben.

38

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Gruppierung von Feldern zur Feldauswahl

Gruppierung von Feldern zur FeldauswahlEinsatzmglichkeitenBei einer groen Anzahl von Ausgabefeldern wird die Feldauswahl im Auswahlfenster fr das aktuelle Layout unbersichtlich. ber eine Gruppierung der Ausgabefelder kann der Benutzer ber ein Listenfeld die angezeigten Felder in dem Auswahlfenster einschrnken.

Das Listenfeld bezieht sich nur auf die ausgeblendeten Felder.

Ablauf1. Definieren Sie eine interne Tabelle vom Typ LVC_T_SGRP fr die Feldgruppentexte und eine interne Tabelle LVC_T_FCAT fr 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 fr jedes Feld der Ausgabetabelle einen Gruppenschlssel. 4. Definieren Sie fr jede Gruppe einen Gruppentext in Ihrer Feldgruppentabelle. 5. bergeben Sie die Feldgruppentabelle und den Feldkatalog mit der Methode set_table_for_first_display [Seite 103] (ber den Parameter IT_SPECIAL_GROUPS bzw. IT_FIELDCATALOG).

ErgebnisIm Auswahlfenster fr das aktuelle Layout wird ein Listenfeld angezeigt, ber die man die jeweilige Gruppe auswhlen kann:

April 2001

39

ALV Grid Control (BC-SRV-ALV) Gruppierung von Feldern zur Feldauswahl

SAP AG

40

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Verwendung des Konvertierungsexit

Verwendung des KonvertierungsexitEinsatzmglichkeitenber einen Konvertierungsexit definieren Sie einen Absprung in eine Konvertierungsroutine fr eine Spalte Ihrer Ausgabetabelle. Als Exit geben Sie dabei den Teilstring eines Funktionsbausteins mit dem Namen CONVERSION_EXIT__OUTPUT an. So knnen Sie zum Beispiel mit dem Konvertierungsexit ALPHA (siehe Funktionsbaustein CONVERSION_EXIT_ALPHA_OUTPUT) fhrende Nullen von Kontonummern eliminieren.

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

VoraussetzungenDamit das ALV Grid Control die Konvertierung durchfhren kann, mu die interne und die externe Lnge des Feldes bekannt sein. Dies entspricht der Lnge vor und nach der Konvertierung.

Zur Veranschaulichung dieser Lngenangaben ein Beispiel zur Aufbereitungsschablone EDIT MASK beim WRITE-Befehl: DATA TIME TYPE T VALUE '154633'. WRITE (8) TIME USING EDIT MASK '__:__:__'. "Ausgabe: 15:46:33 In diesem Fall ist die interne Lge (des Typs T) sechs Zeichen lang und die Ausgabelnge acht. Die Spaltenbreite (ber das aktuelle Layout einzustellen) ist eine von diesen Gren unabhngige Gre und braucht nicht angepat zu werden.

Ablauf1. Machen Sie dem ALV Grid Control die interne und externe Lnge des Feldes bekannt: Bei Feldern mit DDIC-Bezug bernimmt das ALV Grid Control die interne und externe Lnge automatisch. Fr Felder ohne DDIC-Bezug mssen Sie die interne Lnge ber das Feld INTLEN und die externe Lnge ber das Feld DD_OUTLEN des Feldkatalogs angeben (siehe Parameter fr Felder ohne DDIC-Bezug [Seite 159]).

2. Geben Sie den Konvertierungsexit ber das Feld EDIT_MASK des Feldkatalogs an (siehe Formatierung von Spalteninhalten [Seite 153]). 3. bergeben Sie den Feldkatalog vor der ersten Anzeige der Liste mit der Methode set_table_for_first_display [Seite 103].

April 2001

41

ALV Grid Control (BC-SRV-ALV) Verwendung des Konvertierungsexit

SAP AG

ErgebnisDie Werte der Spalte durchlaufen vor der Anzeige die Konvertierungsroutine.

42

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Das ALV Grid Control bei WAN-Anmeldungen

Das ALV Grid Control bei WAN-AnmeldungenDas ALV GridControl trgt innerhalb seines Kommunikationsprotokolls zwischen Applikationsserver und Frontend selbst dafr sorge, da es im WAN eingesetzt werden kann. Dieses Protokoll regelt den Datentransport von Applikationsserver zum Frontend. Es werden zunchst nur so viele Daten zum Control transportiert, wie zum Anzeigen der aktuell sichtbaren Zeilen notwendig sind. Nachfolgende Daten werden erst dann zum Control transportiert, wenn der Benutzer dort hin scrollt. Im WAN ist die Paketgre entsprechend klein, so da jedes einzelne Paket innerhalb kurzer Zeit bertragen werden kann.

EinschrnkungenFr den Programmierer, der das ALV - GridControl verwendet, gibt es im WAN dennoch einen Punkt zu beachten. Die Ereignisse DELAYED_CALLBACK und DELAYED_CHANGED_SEL_CALLBACK sollten im WAN nur in begrndeten Ausnahmefllen eingesetzt werden. Der Grund hierfr ist nicht primr im Ereignis selbst zu sehen, als in dem Szenario, da oft als Reaktion auf diese Ereignisse andere Controls mit Daten gefllt werden. Da dies im WAN meist eine deutlich merkliche Verzgerung (>3 Sekunden) zur Folge hat, wird dies von den Anwender als extrem hinderlich empfunden.

April 2001

43

ALV Grid Control (BC-SRV-ALV) Das ALV Grid Control im Web

SAP AG

Das ALV Grid Control im WebFr die Darstellung von ALV-Listen im Web, wird Funktionalitt des ALV Grid Control [Extern] am Backend verwendet. Grundstzlich gibt es zwei Mglichkeiten der Darstellung: Im SAPGUI for HTML [Seite 45]. Dies entspricht - mit Einschrnkungen - einer 1:1 Abbildung der Transaktion im SAP-System. Im Workplace [Seite 49]. Hier werden stark vereinfachte Versionen des ALV Grid Controls verwendet (Mini-ALV, Midi-ALV), um Listen in Anwendungen des Workplace einzubauen.

Es ist allerdings mglich, eine SAP-Transaktion mit einem ALV Grid Control im Workplace anzuzeigen. In dem Fall ist der SAPGUI for HTML im Workplace integriert.

44

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Darstellung im SAP GUI for HTML

Darstellung im SAP GUI for HTMLEinsatzmglichkeitenDer SAP GUI for HTML ermglicht es SAP-Transaktionen im Web-Browser darzustellen. Anwendungen, die die Klasse CL_GUI_ALV_GRID fr die Darstellung von Tabellendaten nutzen, sind so automatisch ber diesen SAP GUI im Web sichtbar.

EinfhrungshinweiseDie Darstellung des ALV Grid Controls im SAP GUI for HTML unterscheidet sich von der im SAP GUI for Windows. So stehen im SAP GUI for HTML zum Beispiel weniger Farben zur Verfgung. Auerdem ist die Interaktion durch den Benutzer teilweise anders gelst oder eingeschrnkt.

FunktionsumfangIn den meisten Fllen funktionieren Methoden, Ereignisse und Attribute der Klasse CL_GUI_ALV_GRID auch im SAP GUI for HTML. Tastaturkommandos sind im SAP GUI for HTML nicht verfgbar. Der Zugriff auf Funktionen erfolgt meistens per Mausklick. Darum gibt es fr die F1-Hilfe ein Fragezeichen-Icon in der Toolbar. Der Benutzer mu Zeilen, Spalten oder Zellen einzeln markieren und wieder einzeln demarkieren. (Dies ist zudem abhngig vom Selektionsmodus [Seite 166]).

EinschrnkungenUm eine gute Performance zu gewhrleisten sind bestimmte Funktionen nur eingeschrnkt verfgbar. Im folgenden werden die wichtigsten Einschrnkungen beschrieben: Wichtigste Einschrnkungen im SAP GUI for HTML Einschrnkung Klassifizierung (S: Schnittstelle V: Visuell I: Interaktion) S/I S S/V S/I S/I

Das Kontext Men ist nicht verfgbar. In der Toolbar definieren Sie die Mens nicht mehr dynamisch, sondern statisch [Seite 47]. Die Position der Scrollbar kann nicht gesetzt werden (siehe set_scroll_info_via_id [Seite 96]) Symbole knnen auf Grund fehlender Schriften nicht dargestellt werden Es kann jeweils nur ein Tabellenelement-Typ (Zeile, Spalte, Zelle) markiert werden. Kombinationen sind nicht mglich. Die Ereignisse delayed_callback [Seite 115] und delayed_changed_sel_callback [Seite 116] knnen nicht verwendet werden (siehe auch: Das ALV Grid Control bei WAN-Anmeldungen [Seite 43]) Der Benutzer kann keine Spalten ber Drag und Drop vertauschen

S/I

April 2001

45

ALV Grid Control (BC-SRV-ALV) Darstellung im SAP GUI for HTML Es gibt keine Autoscroll-Funktion (das heit kein automatisches Scrollen bei gedrckter Maustaste) Zwischensummenzeilen lassen sich nicht komprimieren Wenn die Anzahl der Funktionen in der Toolbar nicht in eine Zeile passen, wird die Toolbar nicht umgebrochen Es werden nur 8 Hintergrundfarben verwendet. Andere Farbwerte (zum Beispiel Intensified) werden auf andere Farbwerte abgebildet. I I V/I V

SAP AG

46

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Definition eines statischen Mens

Definition eines statischen MensVerwendungIm SAP GUI for Windows werden Mens in der Toolbar ber die Ereignisse toolbar [Seite 131], menu_button [Seite 119] und context_menu_request [Seite 114] dynamisch aufgebaut. Im SAP GUI for HTML ist diese Vorgehensweise aus Performance-Grnden nicht zu empfehlen. Statt dessen sollten Sie alle Mens der Toolbar (Kontext-Mens funktionieren generell nicht) wie hier beschrieben als statische Mens definieren. Diese definieren Sie beim Ereignis toolbar vor der Anzeige des ALV Grid Controls.

Ablauf7. Definieren Sie eine Ereignisbehandlermethode zum Ereignis TOOLBAR. 8. Deklarieren Sie eine Struktur fr die Definition eines Elements der Toolbar, eine MenStruktur und eine Referenzvariable auf die Kontext-Men-Klasse: data: ls_toolbar TYPE stb_button, ls_menu TYPE stb_btnmnu, lc_menu TYPE REF TO cl_ctmenu. 9. Definieren Sie zuerst eine Drucktaste vom Typ Men in der Toolbar an: CLEAR ls_toolbar. ls_toolbar-function = 'STATIC_MENU1'. ls_toolbar-icon = icon_led_interactive. ls_toolbar-butn_type = '2'. ls_toolbar-text = 'first static menu'.

Mit dem Feld butn_type teilen Sie dem ALV Grid Control den Typ des GUIElements mit. Fr Mens mit einem Defaultbutton verwenden Sie Typ '1'. 10. Mit Hilfe des Ereignisparameters E_OBJECT hngen Sie die neue Definition an die Tabelle mt_toolbar: APPEND ls_toolbar TO e_object->mt_toolbar. 11. Erzeugen Sie eine Instanz der Kontext-Men-Klasse und fgen Sie dem Men Funktionen mit der Methode ADD_FUNCTION hinzu (hier nur eine als Beispiel): create object lc_menu. call method lc_menu->add_function exporting fcode = 'STATIC_MENU1_FUNC1' text = 'first menu entry'. 12. Um den Meneintrag mit dem Men zu verknpfen, fllen Sie die Men-Struktur entsprechend: ls_menu-ctmenu = lc_menu. ls_menu-function = 'STATIC_MENU1'. 13. bergeben Sie dem Ereignisparameter E_OBJECT die Men-Struktur: append ls_menu to e_object->mt_btnmnu.

April 2001

47

ALV Grid Control (BC-SRV-ALV) Definition eines statischen Mens 14. Rufen Sie die statische Methode set_focus fr Ihre Instanz auf: call method cl_gui_control=>set_focus exporting control = sender.

SAP AG

ErgebnisDen jeweiligen Funktionskode, den Sie im Feld function festgelegt haben, knnen Sie in der Ereignisbehandlermethode zum Ereignis USER_COMMAND abfragen und so die zugehrige Funktion implementieren.

48

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Darstellung im Workplace

Darstellung im Workplaceber die Technologie des Workplace ist es mglich, die Zusammenstellung von Anwendungen auf einen bestimmten Benutzertyp abzustimmen. Da diese Anwendungen im Web-Browser laufen, ist deren Bedienung einfacher gestaltet und auf andere Benutzer zugeschnitten als im SAP-System.

Weitere Informationen zum Workplace finden Sie im SAPnet mit Hilfe des Alias workplace. Fr Web-Anwendungen, die Listen im Workplace darstellen, gibt es zwei Ausprgungen des ALV Grid Controls. Je nach Komplexitt beziehungsweise Lnge einer Liste setzt man entweder den MiniALV [Seite 51] oder den MidiALV [Seite 61] ein.

IntegrationSowohl Mini- als auch MidiALV bauen auf Funktionalitt des ALV Grid Controls [Extern] am Backend auf. Um einen Report im Web darzustellen, brauchen Sie einen Report oder eine Query (die ja einen Report erzeugt) im SAP-System. Fr das Web-Reporting werden die Ausgaben dieses Reports genommen und an den Web-Browser bermittelt.

Dieser Report wird im folgenden Proxy-Report genannt. Bevor ein Report ber den Midi- oder MiniALV im Workplace angezeigt werden kann, mu er bestimmte Voraussetzungen [Seite 50] erfllen.

April 2001

49

ALV Grid Control (BC-SRV-ALV) Voraussetzungen

SAP AG

VoraussetzungenDie hier beschriebenen Voraussetzungen gelten sowohl fr Mini- als auch fr MidiALV.

Voraussetzungen fr den ReportIm Web-Reporting werden die Listen im Web-Browser angezeigt. Daher darf der Proxy-Report keine Frontend-Objekte erzeugen. Gibt der Proxy-Report Listen ber den Fullscreen-Modus aus (Anwendungsfunktionen befinden sich in der Anwendungsfunktionsleiste), mu die Anwendung das ABAP-Programm zum ProxyReport nicht anpassen. Benutzt der Proxy-Report die Klasse CL_GUI_ALV_GRID, mu der Report unterscheiden, ob er im SAP GUI luft oder im Web. Dazu steht die statische Methode offline() [Seite 87] zur Verfgung, deren Aufruf Sie an Stelle von Abfragen des Systemfeldes SY-BATCH einsetzen. Luft der Proxy-Report dann im Batch durch und schreibt das Ergebnis in die Spool, so ist dieser Report automatisch auch fr die Ausgabe als Mini- beziehungsweise MidiALV geeignet. Falls er dennoch nicht im Web zur Anzeige kommt, prfen Sie zunchst, ob der Report und gegebenfalls die 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, mssen Sie auerdem zwei Einstellungen vornehmen: Der Report mu ber das Web-Repository (Transaktion SMW0) freigegeben werden (Siehe Objekte fr das Web Reporting freigeben [Extern]) Der Report mu einer Berechtigungsgruppe zugeordnet sein. Kunden verwenden den Report RSCSAUTH, um eigene Berechtigungsgruppen modifikationsfrei zu verwenden.

50

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Der MiniALV

Der MiniALVVerwendungDer MiniALV ist fr die Ausgabe von Listen auf einem kleinen Ausgabebereich des Bildschirms gedacht (zum Beispiel: bersicht ber Systemprozesse). Aus diesem Grund sollten in diesen Listen zum Beispiel keine Zwischensummen ausgegeben werden. Der MiniALV kann sowohl als eigenstndige MiniApp, als auch als Teil einer MiniApp verwendet werden. Mgliche Interaktionen des Benutzers sind dabei auf die wesentlichsten Funktionen beschrnkt:

Der Bildschirmabgriff zeigt den MiniALV in der Seitendarstellung (weitere Seiten sind durch Blttern erreichbar). Es wird ein Report aus dem SAP-System im Web-Browser angezeigt, der zur Flugtabelle SFLIGHT die Felder Airline, Flight no., Pl.type, Capacity, Occupied und Total ausgibt. Wenn zu diesem Report Layouts oder Selektionsvarianten gespeichert sind, stellt der MiniALV zustzlich eine Listbox ber der Liste dar, mit der der Benutzer gespeicherte Varianten der Liste ausgeben kann.

VoraussetzungenDer Funktionsbaustein FLOW_LOGIC_ALV_CALL mu im System vorhanden sein. Zur Darstellung im Browser werden diese Bausteine ber WebRFC gerufen.

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

FunktionsumfangDer MiniALV wird mit Hilfe der Flow-Logik Technologie realisiert. Das Tutorial InternetAnwendungen entwickeln mit Flow-Dateien [Extern] geht speziell darauf ein, wie Sie das SAP@Web Studio dazu verwenden, whrend die Dokumentation Integration von InternetServices [Extern] behandelt, wie Sie ein MiniApp mit Hilfe des Web Application Builder implementieren.

April 2001

51

ALV Grid Control (BC-SRV-ALV) Der MiniALV Um den MiniALV in den Workplace zu integrieren, gibt es folgende Mglichkeiten: Sie starten den MiniALV Service als eigenstndige MiniApp [Seite 53] ber eine parametrisierte URL

SAP AG

Sie binden den MiniALV Service in eine eigene MiniApp ein [Seite 54] und brauchen keine Flow-Datei Sie nutzen den MiniALV als interaktives Web Control [Seite 55], brauchen also eine FlowDatei, um auf Flow-Ereignisse reagieren zu knnen

Der Benutzer kann gespeicherte Selektionsvarianten oder Layouts ber eine Listbox im MiniALV auswhlen. Auerdem sind in der Liste eingebundene Hyperlinks [Seite 37] im MiniALV aktiv. ber einen Service-Parameter [Seite 63] (ma_style=wap1) lt sich die ALV-Tabelle fr die Ausgabe auf kleinen Bildschirmen [Seite 58] serialisieren. Auf diese Weise knnen die Daten auf sehr kleinen Bildschirmen fr mobile Gerte ausgegeben werden (Pervasive Computing).

EinschrnkungenDer ITS kann Flow-Ereignisse von inkludierten Services nicht verarbeiten. Wenn Sie eigene Flow-Ereignisse verarbeiten wollen, mssen Sie den MiniALV als interaktives Web-Control einbinden (s.o.).

52

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Als MiniApp

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

Vorgehensweise1. Sie starten den MiniALV ber eine URL fr Ihren Report. Die URL hat die Form: [Seite 65]/minialv/!?report=&=&...&= Sie geben den Proxy-Report [Seite 51] und weitere Service-Parameter [Seite 56] ( bis ) in dieser URL an. 2. Die URL geben Sie bei der Beschreibung der Rolle in der Transaktion PFCG an. Nheres zum Anlegen einer Rolle finden Sie in der Dokumentation Benutzer und Rollen (BC-CCMUSR) [Extern].

Fr den Pfad des Web-Servers mu ein Platzhalter in der URL angegeben werden. Beachten Sie dazu den Abschnitt Die URL im Workplace in Aufruf des InternetService [Seite 65].

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

April 2001

53

ALV Grid Control (BC-SRV-ALV) Als Erweiterung einer MiniApp

SAP AG

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

VoraussetzungenSie drfen keine eigene Flow-Datei verwenden.

VorgehensweiseSie 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] ( bis ^,,^,; ,Kapazitt=, Belegt= >AA 17; 03.02.00 Kapazitt= 660 Belegt= 97 >AA 18; 04.02.00 Kapazitt= 660 Belegt= 130 ...

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

maw_columns= ,>,#^,; ,*3=,*3= maw_sparse=2 >American >>#17; 03.02.00 Cap= 660; Occ= 97 >>#18, 04.02.00 Cap= 660; Occ= 130 >Lufthansa ...

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

April 2001

59

ALV Grid Control (BC-SRV-ALV) Fehleranalyse

SAP AG

FehleranalyseHinweise Benutzen Sie statt des Funktionsbausteins ITS_PING den Baustein GUI_IS_ITS oder die statische Methode CL_GUI_OBJECT=>WWW_ACTIVE. berprfen Sie beim Fehlercode E00 (siehe unten) zunchst die Voraussetzungen fr die Verwendung des MiniALV [Seite 51]. Sie knnen zustzlich Testen, ob der Funktionsbaustein FLOW_LOGIN_ALV_CALL Daten des Reports zurckgibt. Falls Sie den MiniALV zusammen mit einem SAP-System eines lteren Releasestandes verwenden, wird mglicherweise 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 E00 E01 E02 E03 E04 E05 E06 E08 E09 E10 E11 E12 E13 E14 E15 Meldung RFC lieferte keine Daten Variante ist nicht vorhanden Fehler beim Ermitteln der benutzerspezifischen Einstellungen Fehler beim Aufruf des ALV Fehler beim Ermitteln der Varianten Report ist nicht vorhanden Fehler im Selektionsstring; prfen Sie die Syntax Funktionsbaustein zur Ermittlung der benutzterspezifischen Varianten ist nicht vorhanden Report ist ohne Variante nicht ausfhrbar; geben Sie eine Variante an Benutzergruppe ist nicht vorhanden Query ist nicht vorhanden Query ist gesperrt Reportgenerierung fr die Query wurde abgebrochen Fehler bei der Reportgenerierung fr die Query Geben Sie einen Report oder eine Query an

60

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Der MidiALV

Der MidiALVVerwendungDer MidiALV ist fr lngere Listen im Web einzusetzen. Die Liste wird im kompletten Ausgabebereich des Workplace ausgegeben. Auerdem bernimmt der MidiALV Selektionsbilder aus dem SAP-System.

VoraussetzungenDer MidiALV kann nur Reports im Web anzeigen, die als Ausgabe ein ALV Grid Control verwenden. Die Funktionsbausteine WWW_ALV_CALL beziehungsweise WWW_ALV_SELSCREEN mssen im verwendeten SAP-System vorhanden sein. Zur Darstellung im Browser werden (je nach Anwendung) diese Bausteine ber WebRFC gerufen.

Siehe auch Voraussetzungen [Seite 50].

Funktionsumfangber einen Parameter whlen Sie, ob Sie ein Selektionsbild (falls vorhanden) im MidiALV darstellen wollen (WWW_ALV_SELSCREEN) oder ob lediglich die Ergebnisliste zu einer Selektion angezeigt werden soll (WWW_ALV_CALL). Der Benutzer kann gespeicherte Selektionsvarianten oder Layouts ber eine Listbox im MiniALV auswhlen. Auerdem sind in der Liste eingebundene Hyperlinks [Seite 37] im MidiALV aktiv.

Besonderheiten zum MidiALV-SelektionsbildAuf der Ergebnisliste erscheint ein Button Zurck zum Selektionsbild, mit dem der Benutzer zum Selektionsbild zurckspringt, um neue Daten zu selektieren. Das Selektionsbild des MiniALV hat folgende Einschrnkungen: Keine F4 Wertehilfe verfgbar Keine F1-Hilfe verfgbar Keine komplexen Einschrnkungen ber Select-Options mglich Keine dynamischen Bildmodifikationen innerhalb des PBOs mglich

April 2001

61

ALV Grid Control (BC-SRV-ALV) Den MidiALV aufrufen

SAP AG

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

Vorgehensweise1. Sie starten den MidiALV ber eine URL fr Ihren Report. Die URL hat die Form: [Seite 65]/webrfc/!?_function=&=...&= 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 Den Parameter _report, wenn Sie sich auf einen Report beziehen oder Den Parameter _query _usergroup und optional _workspace, wenn Sie sich auf eine Query beziehen

Um den Report zu identifizieren, verwenden Sie folgende Service-Parameter [Seite 63]:

2. Die URL geben Sie bei der Beschreibung der Rolle in der Transaktion PFCG an. Nheres zum Anlegen einer Rolle finden Sie in der Dokumentation Benutzer und Rollen (BC-CCMUSR) [Extern].

Fr den Pfad des Web-Servers mu ein Platzhalter in der URL angegeben werden. Beachten Sie dazu den Abschnitt Die URL im Workplace in Aufruf des InternetService [Seite 65].

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

62

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Service-Parameter

Service-ParameterDie URL fr den Aufruf des MidiALv hat folgende Form: [Seite 65]/webrfc/!?_function=&=...&= ber den obligatorisch Parameter _function geben Sie den Funktionsbaustein ein, der im SAP-System gerufen werden soll: www_alv_call: kein Selektionsbild vorhanden oder erwnscht www_alv_selscreen: das Selektionsbild des Reports soll ausgegeben werden

Neben der Funktion mssen Sie entweder den Namen eines Reports oder den Namen einer Query in der URL angeben. Inhalt Parameter _report _query _usergroup _workspace=global Personalisierung Parameter _variant Bedeutung Name der Selektionsvariante, die verwendet werden soll. (Wird der ALV mit Selektionsbild gerufen (www_alv_selscreen), so wird das Selektionsbild entsprechend vorbelegt). Name des Layout [Seite 17]s, mit dem die Liste angezeigt werden soll Bedeutung Name des Proxy-Reports [Seite 61] Name einer Query (alternativ zum Parameter _report) Bei Query: Benutzergruppe Bei Query (optional): globaler Arbeitsbereich

_layout

Visuelle Eigenschaften Parameter (Defaultwert) _fontsize (1-5) Bedeutung Festlegung der Schriftart: 1 = Arial 7pt 2 = Arial 8pt 3 = Arial 9pt 4 = Arial 10pt 5 = Arial 11pt

Wenn nicht gesetzt, ist die Schriftart durch die Browsereinstellung bestimmt

April 2001

63

ALV Grid Control (BC-SRV-ALV) Service-Parameter _header (small|medium|long) Auswahl der Spaltenberschrift: _shuffler (on|off) small = Kurztext medium = Mittlerer Text long = Langtext

SAP AG

Anzeige der Listbox fr die Auswahl einer Selektionsvariante oder eines Layouts ein-/abschalten

64

April 2001

SAP AG

ALV Grid Control (BC-SRV-ALV) Aufruf des Internet-Service

Aufruf des Internet-ServiceUm MiniApps im Workplace darzustellen, publizieren Sie Internet-Services beim ITS. Die MiniApp lt sich dann ber eine URL starten.

Siehe auch: Integration von Internet-Services [Extern]. Im Allgemeinen hat die URL die Form: ://///!?

Der Teil :/// der URL wird im Rahmen dieser Dokumentation auch mit abgekrzt. Der Teil bis einschlielich dem Ausrufezeichen ('!') beschreibt den Internet-Service auf dem jeweiligen ITS. Mit dem Fragezeichen ('?') werden die CGI-Parameter eingeleitet, denen man direkt in der URL einen Wert zuweist und durch ein Ampersand-Zeichen ('&) voneinander trennt. So knnen Sie zum Beispiel fr folgendes einsetzen: ~language=&~client=

Die Parameter ~language und ~client lassen sich auch ber eine Service-Datei an den ITS bergeben.

Die URL im WorkplaceWenn Sie Ihre URL ber die P