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