HELP.BCFESGRA2
BC - SAP-Grafik: Programmierschnittstellen
Release 4.6C
BC - SAP-Grafik: Programmierschnittstellen
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
BC - SAP-Grafik: Programmierschnittstellen
Symbole Symbol
Bedeutung Achtung Beispiel Hinweis Empfehlung Syntax
April 2001
3
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Inhalt BC - SAP-Grafik: Programmierschnittstellen................................................... 7 Grundlagen ..................................................................................................................................... 8 SAP-Grafikprogramme und Funktionsbausteine........................................................................ 9 Dialogfunktionen .......................................................................................................................... 12 SAP-Präsentationsgrafik aufrufen.............................................................................................. 13 Überblick ....................................................................................................................................... 14 Der Funktionsbaustein GRAPH_2D............................................................................................ 17 Der Funktionsbaustein GRAPH_3D............................................................................................ 19 Der Funktionsbaustein GRAPH_MATRIX_2D............................................................................ 21 Der Funktionsbaustein GRAPH_MATRIX_3D............................................................................ 23 Der Funktionsbaustein GRAPH_MATRIX_4D............................................................................ 25 Der Funktionsbaustein GRAPH_MATRIX .................................................................................. 27 Der Funktionsbaustein GRAPH_BUSG_MENU_SET ................................................................ 29 Der Funktionsbaustein GET_BUSG_PARAM ............................................................................ 30 Beispielprogramme...................................................................................................................... 31 SAP-Hierarchiegrafik aufrufen .................................................................................................... 32 Überblick ....................................................................................................................................... 33 Der Funktionsbaustein GRAPH_HIERARCHY........................................................................... 35 Der Funktionsbaustein GRAPH_HIERARCHY_MENUE............................................................ 37 Der Funktionsbaustein GET_HIER_PARAM .............................................................................. 40 SAP-Drucktastengrafik aufrufen.................................................................................................41 Überblick ....................................................................................................................................... 42 Der Funktionsbaustein GRAPH_BUTTON_MATRIX ................................................................. 44 Der Funktionsbaustein GRAPH_BUTTON_MENUE .................................................................. 46 Der Funktionsbaustein GET_BMAT_PARAM ............................................................................ 48 Beispielprogramme...................................................................................................................... 49 SAP-Gantt-Diagramm aufrufen ................................................................................................... 50 Überblick ....................................................................................................................................... 51 Der Funktionsbaustein GANTT_DIAGRAMM............................................................................. 53 Der Funktionsbaustein GRAPH_GANTT.................................................................................... 55 Der Funktionsbaustein GET_GANTT_PARAM .......................................................................... 57 SAP-HPGL-Anzeige aufrufen ......................................................................................................58 Überblick ....................................................................................................................................... 59 Der Funktionsbaustein GRAPH_HPGL ...................................................................................... 61 Der Funktionsbaustein GET_HPGL_PARAM............................................................................. 62 SAP-Textmatrix aufrufen ............................................................................................................. 63 Überblick ....................................................................................................................................... 64 Der Funktionsbaustein TEXT_MATRIX ...................................................................................... 66 SAP-Netzplangrafik aufrufen....................................................................................................... 67 Überblick ....................................................................................................................................... 68 Verarbeitung von Benutzeraktionen im Bestätigungsmodus ................................................. 70
4
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
Allgemeine und spezifische Funktionsbausteine ..................................................................... 73 SAP-Portfoliografik aufrufen....................................................................................................... 75 Überblick ....................................................................................................................................... 76 Der Funktionsbaustein GRAPH_PORT ...................................................................................... 78 Der Funktionsbaustein GET_PORT_PARAM............................................................................. 80 SAP-Balkenplangrafik aufrufen ..................................................................................................81 Überblick ....................................................................................................................................... 82 Die Funktionsbausteine............................................................................................................... 84 SAP-Strukturgrafik aufrufen........................................................................................................ 86 Überblick ....................................................................................................................................... 87 Die Funktionsbausteine............................................................................................................... 88 Standardgrafikanzeige ändern.................................................................................................... 91 Überblick ....................................................................................................................................... 92 Oberflächenelemente................................................................................................................... 94 Menu Painter ................................................................................................................................. 95 GRAPH_SET_CUA_STATUS ....................................................................................................... 96 GRAPH_ACTION oder CNET_GRAPH_ACTION ........................................................................ 98 Dialoganwendungen programmieren....................................................................................... 100 Einführung in die Dialogprogrammierung............................................................................... 101 Überblick ..................................................................................................................................... 102 Für welche ABAP-Programme ist Dialogprogrammierung erforderlich? ............................ 103 Dialogfunktionen ........................................................................................................................ 105 Mehrere Fenster verwalten........................................................................................................ 107 Zusammenfassung der Dialogprogrammierung ..................................................................... 108 Dialogprogrammierung vor Release 2.1 .................................................................................. 110 Steuerung des Dialogs mit Dialogparametern ........................................................................ 111 Mit GRAPH_DIALOG Fenster vom ABAP-Programm aus schließen..................................... 114 Aktuelle Dialogprogrammierung............................................................................................... 116 Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen .............................. 117 Vergleich mit der Wartefunktion vor Release 2.1.................................................................... 121 Beispielprogramme.................................................................................................................... 122 SAP-Präsentationsgrafik ohne Dialog aufrufen ...................................................................... 123 SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen ......................... 125 SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen ..................................................................................................... 137 SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen...................................... 148 SAP-Statistikgrafik ohne Dialog aufrufen................................................................................ 175 SAP-Gantt-Diagramms mit Dialog aufrufen............................................................................. 179 SAP-Präsentationsgrafik mit Dialog aufrufen ......................................................................... 196 SAP-HPGL-Anzeige aufrufen .................................................................................................... 199 SAP-Portfoliografik mit Dialog aufrufen .................................................................................. 200 SAP-Netzplangrafik ohne Dialog aufrufen............................................................................... 210 SAP-Balkenplangrafik ohne Dialog aufrufen........................................................................... 216 SAP-Strukturgrafik aufrufen...................................................................................................... 227
April 2001
5
BC - SAP-Grafik: Programmierschnittstellen
6
SAP AG
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen BC - SAP-Grafik: Programmierschnittstellen
BC - SAP-Grafik: Programmierschnittstellen
April 2001
7
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Grundlagen
Grundlagen Bei SAP-Grafik handelt es sich um eine Reihe von Grafikprogrammen, die auf FrontendSystemen mit einer grafischen SAP-Bedienoberfläche (SAPGUI) laufen. ABAP-Programme, die auf einem R/3-Anwendungsserver laufen, können die SAPGrafikprogramme auf dem Frontend-System starten und ihnen anschließend Daten zur Anzeige schicken. Dieser Leitfaden beschreibt die Programmierschnittstelle zwischen dem ABAP-Programm und dem Grafikprogramm. Die Schnittstelle besteht aus Grafikfunktionsbausteinen, von denen die meisten ein bestimmtes Grafikprogramm aufrufen. Einige Funktionsbausteine führen allgemeine Funktionen aus. Die folgenden Themen behandeln grundlegende Mechanismen der SAP-Grafikprogrammierung. SAP-Grafikprogramme und Funktionsbausteine [Seite 9] Dialogfunktionen [Seite 12]
Einzelheiten zur Verwendung der SAP-Grafikprogramme finden Sie in der Dokumentation SAPGrafik: Benutzeranleitung [Extern].
8
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Grafikprogramme und Funktionsbausteine
SAP-Grafikprogramme und Funktionsbausteine In der folgenden Tabelle werden die SAP-Grafikprogramme, ihre Grafikfunktionen und Funktionsbausteine sowie die Utility-Funktionsbausteine aufgelistet. Die Grafikfunktionsbausteine rufen die entsprechenden Grafikprogramme direkt auf (beispielsweise GRAPH_MATRIX_4D). Die anderen Funktionsbausteine rufen keine Grafikprogramme auf, sondern übernehmen UtilityFunktionen (GRAPH_ACTION, GRAPH_RECEIVE und die Funktionsbausteine GET_xxxx_PARAM). Diese Unterscheidung ist wichtig, da eine enge Interaktion zwischen Utility-Funktionsbausteinen und Grafikfunktionsbausteinen besteht. Dieses Handbuch enthält für alle Anwendungen Beispielprogramme [Seite 122], die die Aufrufe der Funktionsbausteine und die Verwendung der Dialogparameter veranschaulichen. Sie können diese Beispielprogramme als Grundlage für die Programmierung Ihrer eigenen Grafikanwendungen verwenden. Weitere Beispielgrafikprogramme können Sie mit dem Transaktionscode gral im R/3-System aufrufen. Überblick über die SAP-Grafikfunktionsbausteine Grafikprogramm
Grafikfunktionen
SAP-Präsentationsgrafik Diagramme etc.
Funktionsbausteine GRAPH_2D GRAPH_3D GRAPH_MATRIX_2D GRAPH_MATRIX_3D GRAPH_MATRIX_4D GRAPH_MATRIX GRAPH_BUSG_MENU_SET
SAP-Hierarchiegrafik
Hierarchiegrafiken
GRAPH_HIERARCHY GRAPH_HIERARCHY_MEN UE
SAP-Drucktastengrafik
Drucktastenblöcke
GRAPH_BUTTON_MATRIX GRAPH_BUTTON_MENUE
SAP-Statistikgrafik
Kurvendiagramme statistischer Daten
STAT_GRAPH STAT_GRAPH_REF
SAP-Gantt-Diagramm
Zeitpläne
GANTT_DIAGRAMM GRAPH_GANTT
SAP-HPGL-Anzeige
April 2001
Grafikdaten im HPGL-Format
GRAPH_HPGL
9
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Grafikprogramme und Funktionsbausteine
SAP-Textmatrix
Textfenster
TEXT_MATRIX
SAP-Netzplangrafik
Netzpläne und Hierarchien
CNET_GRAPHIC_NETWOR K CNET_GRAPHIC_HIERARC HY CNET_GRAPHIC_CLUSTER , CNET_...
SAP-Portfoliografik
Vergleich von Geschäftstendenzen
GRAPH_PORT
SAP-Balkenplangrafik
Balkenpläne
BARC_GRAPHIC_PBO BARC_GRAPHIC_PAI BARC_...
SAP-Strukturgrafik
(kein Grafikprogramm)
Hierarchische Strukturen,
GRAPH_STRUCTURAL
insbesondere für die Personalwirtschaft
(und weitere Funktionsbausteine zur Steuerung der Strukturgrafik)
Definition von Oberflächenelementen
GRAPH_SET_CUA_STATUS
(mit dem Menu Painter) (kein Grafikprogramm)
Definition zusätzlicher Oberflächenelemente
GRAPH_ACTION
(für neue Programme mit GRAPH_SET_CUA_STATUS) (kein Grafikprogramm)
Definition zusätzlicher Oberflächenelemente
CNET_GRAPH_ACTION
(nur für SAP-Netzplangrafik, für neue Programme mit GRAPH_SET_CUA_STATUS) (kein Grafikprogramm)
10
Schließen von Fenstern, Wartefunktionen (für neue Programme mit GRAPH_RECEIVE)
GRAPH_DIALOG
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Grafikprogramme und Funktionsbausteine
(kein Grafikprogramm)
Wartefunktionen, Entgegennahme von Nachrichten über Benutzereingaben vom Grafikprogramm
GRAPH_RECEIVE
(kein Grafikprogramm)
Abruf von korrekten Exportparametern
GET_xxxx_PARAM
April 2001
11
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Dialogfunktionen
Dialogfunktionen Die ABAP-Programme, die die Grafikfunktionsbausteine aufrufen, und die UtilityFunktionsbausteine stellen dem Benutzer umfassende Dialogmöglichkeiten zur Verfügung. Der Dialogbenutzer kann mehrere Fenster öffnen, verschiedene Grafikprogramme darin starten und Eingaben in beliebigen Fenstern vornehmen. Diese Interaktion wird durch die Funktionsbausteine ermöglicht, die die Kommunikation zwischen Anwendungsprogramm und Grafikprogramm übernehmen. Zusätzlich führen die Funktionsbausteine folgende Aktionen aus: ·
Fenster auf dem Bildschirm des Benutzers öffnen
·
Grafikprogramm im Fenster starten
·
Daten an das gestartete Grafikprogramm senden
·
Nachrichten vom Grafikprogramm entgegennehmen
·
Nachrichten an das ABAP-Programm zurückmelden
Der Funktionsbaustein bildet also die Kommunikationsschnittstelle zwischen ABAP-Programm und Grafikprogramm, wie in der folgenden Abbildung verdeutlicht. R/3-Anwendungsserver ABAP/4Programm
Frontend
Grafikfunktionsbaustein
(CALL 'STAT_GRAPH'
(STAT_GRAPH
CALL 'GRAPH_RECEIV
GRAPH_RECEIV
Grafikprogramm (SAP-
(CALL
GET_XXXX_PARA (GET_STAT_PARAM
Da in diesem Handbuch häufig auf die drei Komponenten (ABAP-Programm, Funktionsbaustein und Grafikprogramm) verwiesen wird, sollten Sie sich diese Abbildung gut einprägen. Ihre Programmierarbeit wird wesentlich erleichtert, wenn Sie sich über die Aufgaben der einzelnen Komponenten im klaren sind.
12
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Präsentationsgrafik aufrufen
SAP-Präsentationsgrafik aufrufen Ein ABAP-Programm gibt die Daten an und ruft einen geeigneten Funktionsbaustein auf. Das SAP-Präsentationsgrafikprogramm generiert aus den übergebenen Daten ein zwei- oder dreidimensionales Präsentationsdiagramm. Überblick [Seite 14] Der Funktionsbaustein GRAPH_2D [Seite 17] Der Funktionsbaustein GRAPH_3D [Seite 19] Der Funktionsbaustein GRAPH_MATRIX_2D [Seite 21] Der Funktionsbaustein GRAPH_MATRIX_3D [Seite 23] Der Funktionsbaustein GRAPH_MATRIX_4D [Seite 25] Der Funktionsbaustein GRAPH_MATRIX [Seite 27] Der Funktionsbaustein GRAPH_BUSG_MENU_SET [Seite 29] Der Funktionsbaustein GET_BUSG_PARAM [Seite 30] Beispielprogramme [Seite 31]
April 2001
13
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Das SAP-Präsentationsgrafikprogramm generiert zwei- oder dreidimensionale Präsentationsdiagramme (Balkendiagramme, Tortendiagramme usw.). Der Dialogbenutzer kann die Anzeige über verschiedene Menüeinträge verändern. Die folgende Abbildung zeigt eine typische Präsentationsgrafik.
Funktionsbausteine zum Zeichnen von Präsentationsgrafiken Sie können das SAP-Präsentationsgrafikprogramm von einem ABAP-Programm aus aufrufen und anschließend auf der Workstation des Benutzers eine Präsentationsgrafik generieren. Das Programm gibt die Daten an und ruft einen der folgenden Funktionsbausteine auf: ·
GRAPH_2D
·
GRAPH_3D
·
GRAPH_MATRIX_2D
·
GRAPH_MATRIX_3D
·
GRAPH_MATRIX_4D
·
GRAPH_MATRIX
Der Hauptunterschied zwischen diesen Funktionsbausteinen liegt in der Benutzerfreundlichkeit. Die Funktionsbausteine des Typs GRAPH_MATRIX sind zwar flexibler, aber auch komplizierter. ·
14
Sie können alle Funktionsbausteine des Typs GRAPH_MATRIX mit umfangreichen Datentabellen aufrufen. Anschließend bestimmen Sie, welche Teile der Tabelle im Diagramm berücksichtigt werden sollen.
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Bei den Funktionsbausteinen GRAPH_2D und GRAPH_3D werden dagegen alle gesendeten Daten im Diagramm dargestellt. ·
Bei den Funktionsbausteinen des Typs GRAPH_MATRIX können Sie die Anfangsoptionen für die Anzeige festlegen. Dies sind dieselben Anzeigeoptionen, die der Dialogbenutzer über Menüs wählen kann. Bei den Funktionsbausteinen GRAPH_2D und GRAPH_3D wird die erstmalige Anzeige von Standardoptionen bestimmt. Der Dialogbenutzer kann diese Optionen später jedoch wie gewünscht verändern.
Sonderfunktionen Zur Definition von zusätzlichen Drucktasten steht Ihnen der folgende Funktionsbaustein zur Verfügung: ·
GRAPH_BUSG_MENU_SET
Wenn Sie diesen Funktionsbaustein verwenden möchten, müssen Sie ihn vor den anderen oben aufgeführten Funktionsbausteinen aufrufen. GRAPH_BUSG_MENU_SET öffnet kein Grafikfenster, sondern zeichnet lediglich die Informationen über die definierten Drucktasten in einem statischen Speicher auf. (Einzelheiten hierzu finden Sie unter dem Thema GRAPH_BUSG_MENU_SET.)
In der SAP-Präsentationsgrafik stehen Ihnen zur Definition von Drucktasten die Utility-Funktionsbausteine GRAPH_SET_CUA_STATUS bzw. GRAPH_ACTION nicht zur Verfügung.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1 Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID
·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine: -
GRAPH_RECEIVE (mit Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
-
GET_xxxx_PARAM
Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm.
April 2001
15
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick Weitere Einzelheiten finden Sie unter Dialoganwendungen programmieren [Seite 91].
16
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_2D
Der Funktionsbaustein GRAPH_2D Der Funktionsbaustein GRAPH_2D ruft das SAP-Präsentationsgrafikprogramm auf. Sie stellen eine Liste mit Werten zur Verfügung, die anschließend in einer zweidimensionalen Darstellung angezeigt werden. In der folgenden Tabelle sind alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Nur der Tabellenparameter DATA ist unbedingt erforderlich. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_2D Name
Status
Standardwert
INBUF **
Import
SPACE
INFORM
Import
SPACE
MAIL_ALLOW
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
Nicht verwenden
TITL
Import
SPACE
TYPE
Import
SPACE
VALT
Import
SPACE
WDID
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
X_OPT
Import
Nicht verwenden
B_KEY
Export
B_TYP
Export
M_TYP **
Export
MOD_COL
Export
MOD_ROW
Export
MOD_VAL
Export
RBUFF **
Export
April 2001
17
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_2D RWNID **
Export
DATA
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter
18
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_3D
Der Funktionsbaustein GRAPH_3D Der Funktionsbaustein GRAPH_3D ruft das SAP-Präsentationsgrafikprogramm auf. Sie stellen eine Liste mit Werten zur Verfügung, die anschließend in einer dreidimensionalen Darstellung angezeigt werden. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Nur der Tabellenparameter DATA ist unbedingt erforderlich. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_3D Name
Status
Standardwert
DIM1,DIM2
Import
SPACE
INBUF **
Import
SPACE
INFORM
Import
SPACE
MAIL_ALLOW
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
Nicht verwenden
TITL
Import
SPACE
TYPE
Import
SPACE
VALT
Import
SPACE
WDID
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
X_OPT
Import
Nicht verwenden
B_KEY
Export
B_TYP
Export
M_TYP **
Export
MOD_COL
Export
MOD_ROW
Export
April 2001
19
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_3D MOD_VAL
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Mit dem Funktionsbaustein GRAPH_3D können zwar einzelne Zeilen in einem Diagramm benannt werden (Parameter DATA), nicht jedoch einzelne Spalten. Mit den Parametern DIM1 und DIM2 können Zeilen- und Spaltenachsen benannt werden. Sollte dies nicht ausreichen, verwenden Sie den Funktionsbaustein GRAPH_MATRIX_3D.
20
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_MATRIX_2D
Der Funktionsbaustein GRAPH_MATRIX_2D Der Funktionsbaustein GRAPH_MATRIX_2D ruft das SAP-Präsentationsgrafikprogramm auf und generiert eine zweidimensionale Darstellung Ihrer Daten. Sie können eine Tabelle aller Werte zur Verfügung stellen und anschließend mit zusätzlichen Parametern bestimmen, welche Teile der Tabelle berücksichtigt werden sollen. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_MATRIX_2D Name
Status
Standardwert
INBUF **
Import
SPACE
INFORM
Import
SPACE
MAIL_ALLOW
Import
SPACE
NCOL
Import
SPACE
NROW
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
Nicht verwenden
TITL
Import
SPACE
VALT
Import
SPACE
WDID
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
X_OPT
Import
Nicht verwenden
B_KEY
Export
B_TYP
Export
M_TYP **
Export
MOD_COL
Export
MOD_ROW
Export
April 2001
21
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_MATRIX_2D MOD_VAL
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
OPTS
Interne Tabelle
TCOL
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Nur die Parameter DATA, OPTS und TCOL sind unbedingt erforderlich.
22
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_MATRIX_3D
Der Funktionsbaustein GRAPH_MATRIX_3D Der Funktionsbaustein GRAPH_MATRIX_3D ruft das SAP-Präsentationsgrafikprogramm auf und generiert eine dreidimensionale Darstellung der Daten. Sie können eine Tabelle aller Werte zur Verfügung stellen und anschließend mit zusätzlichen Parametern bestimmen, welche Teile der Tabelle berücksichtigt werden sollen. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_MATRIX_3D Name
Status
Standardwert
COL1,COL2,...COL6
Import
SPACE
DIM1,DIM2
Import
SPACE
INBUF **
Import
SPACE
INFORM
Import
SPACE
MAIL_ALLOW
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
Nicht verwenden
TITL
Import
SPACE
VALT
Import
SPACE
WDID
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
X_OPT
Import
Nicht verwenden
B_KEY
Export
B_TYP
Export
M_TYP **
Export
MOD_COL
Export
MOD_ROW
Export
April 2001
23
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_MATRIX_3D MOD_VAL
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
OPTS
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Nur die Parameter DATA und OPTS sowie mindestens einer der Parameter COLn (COL1, COL2,..., COL6) sind unbedingt erforderlich.
24
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_MATRIX_4D
Der Funktionsbaustein GRAPH_MATRIX_4D Der Funktionsbaustein GRAPH_MATRIX_4D ruft das SAP-Präsentationsgrafikprogramm auf und generiert eine "vierdimensionale" Diagrammdarstellung der Daten. Das vierdimensionale Diagramm wird dabei aus mehreren dreidimensionalen Diagrammen gebildet, durch die Sie auf dem Bildschirm blättern können. Die einzelnen 3D-Diagramme entsprechen je einer Seite, die enthaltenen Elemente entsprechen Zeilen und Spalten. Der Hauptparameter (DATA) ist eine Tabelle mit Werten, und weitere Parameter bestimmen, welche Teile der Tabelle in der Anzeige berücksichtigt werden sollen. Weiterhin können Sie mit zusätzlichen Parametern Anzeigeoptionen festlegen. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_MATRIX_4D Name
Status
Standardwert
DIM1,DIM2,DIM3
Import
SPACE
DIM1_1...DIM1_6
Import
SPACE
DIM2_1...DIM2_6
Import
SPACE
INBUF **
Import
SPACE
INFORM
Import
SPACE
MAIL_ALLOW
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
Nicht verwenden
TITL
Import
SPACE
VALT
Import
SPACE
WDID
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
X_OPT
Import
Nicht verwenden
B_KEY
Export
B_TYP
Export
April 2001
25
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_MATRIX_4D M_TYP **
Export
MOD_COL
Export
MOD_ROW
Export
MOD_VAL
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
OPTS
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Dabei sind die Parameter DATA und OPTS sowie mindestens einer der Parameter DIM1_1...DIM1_6 und einer der Parameter DIM2_1...DIM2_6 unbedingt erforderlich.
26
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_MATRIX
Der Funktionsbaustein GRAPH_MATRIX Der Funktionsbaustein GRAPH_MATRIX nimmt im SAP-Präsentationsgrafikprogramm allgemeine Aufgaben wahr. Mit diesem Baustein können Sie Daten im gleichen "vierdimensionalen" Format senden, das unter GRAPH_MATRIX_4D bereits beschrieben wurde. Ein vierdimensionales Diagramm wird aus mehreren dreidimensionalen Diagrammen gebildet, durch die Sie auf dem Bildschirm blättern können. Die einzelnen 3D-Diagramme entsprechen je einer Seite, die enthaltenen Elemente entsprechen Zeilen und Spalten. Der Hauptparameter (DATA) ist eine Tabelle mit Werten, und weitere Parameter bestimmen, welche Teile der Tabelle in der Anzeige berücksichtigt werden sollen. Weiterhin können Sie mit zusätzlichen Parametern Anzeigeoptionen festlegen. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_MATRIX Name
Status
Standardwert
DIM1,DIM2,DIM3
Import
SPACE
INBUF **
Import
SPACE
INFORM
Import
SPACE
MAIL_ALLOW
Import
SPACE
MAX1,MAX2,MAX3
Import
SPACE
PWDID **
Import
SPACE
SET_FOCUS
Import
Nicht verwenden
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
Nicht verwenden
TITL
Import
SPACE
VALT
Import
SPACE
WDID
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
X_OPT
Import
Nicht verwenden
April 2001
27
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_MATRIX B_KEY
Export
B_TYP
Export
M_TYP **
Export
MOD_COL
Export
MOD_ROW
Export
MOD_VAL
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
OPTS
Interne Tabelle
TDIM1,TDIM2,TDIM3
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Die Parameter DATA, OPTS, TDIM1, TDIM2 und TDIM3 sind unbedingt erforderlich.
28
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_BUSG_MENU_SET
Der Funktionsbaustein GRAPH_BUSG_MENU_SET Beim Funktionsbaustein GRAPH_BUSG_MENU_SET handelt es sich um eine Sonderroutine, mit der Sie eine Grafik-Toolbox definieren können. Eine Toolbox gehört zum Präsentationsgrafikfenster und besteht aus mehreren Tasten mit bestimmten Beschriftungen. Wenn der Benutzer eine der Tasten durch Klicken auswählt, leitet die SAP-Präsentationsgrafik die Auswahl an das ABAP-Programm weiter.
In der SAP-Präsentationsgrafik stehen Ihnen zur Definition von Drucktasten die Utility-Funktionsbausteine GRAPH_SET_CUA_STATUS bzw. GRAPH_ACTION nicht zur Verfügung. Das ABAP-Programm muß GRAPH_BUSG_MENU_SET vor dem Funktionsbaustein aufrufen, für den die Toolbox definiert werden soll. GRAPH_BUSG_MENU_SET öffnet kein Grafikfenster, sondern zeichnet lediglich die Toolbox-Informationen in einem statischen Speicher auf. Der nächste SAP-Präsentationsgrafik-Funktionsbaustein, mit dem ein Fenster geöffnet oder der Bildschirm aktualisiert wird, findet diese Informationen und zeigt die Toolbox-Tasten im Fenster an. Mit GRAPH_BUSG_MENU_SET können Sie die Tasten nur in ein einziges Fenster einfügen. Möchten Sie die Tasten auch in andere Präsentationsgrafikfenster aufnehmen, müssen Sie GRAPH_BUSG_MENU_SET noch einmal aufrufen. Dabei spielt es keine Rolle, ob die Fenster bereits geöffnet wurden oder nicht. Für den Aufruf von GRAPH_BUSG_MENU_SET verwendet das Programm einen einzigen Tabellenparameter mit Beschriftungen für die Toolbox-Tasten. Wenn der Dialogbenutzer eine dieser Tasten durch Klicken auswählt, meldet der Funktionsbaustein dies dem ABAP-Programm mit den Parametern B_TYP und B_KEY. (B_TYP hat dabei den Wert 'C', und B_KEY enthält den Index in MENU_TAB der gedrückten Taste.) Da der Parameter STAT für GRAPH_BUSG_MENU_SET nicht zulässig ist, können Sie diesen Funktionsbaustein nicht verwenden, um auf Eingaben zu warten. Der folgende Parameter kann mit diesem Funktionsbaustein verwendet werden. Parameter für GRAPH_MATRIX Name MENU_TAB
Status
Standardwert
Interne Tabelle
Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37).
April 2001
29
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GET_BUSG_PARAM
Der Funktionsbaustein GET_BUSG_PARAM Der Funktionsbaustein GET_BUSG_PARAM ruft das SAP-Präsentationsgrafikprogramm auf, um die korrekten Exportparameter abzurufen. Verwenden Sie GET_BUSG_PARAM, wenn das ABAP-Programm die Rückgabewerte MCODE='I' und RWNID='BUSGn' erhalten hat. Einzelheiten hierzu finden Sie in Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117]. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Parameter für GET_BUSG_PARAM Name
Status
B_KEY
Export
B_TYP
Export
CUA_ID
Export
MOD_COL
Export
MOD_ROW
Export
MOD_VAL
Export
Standardwert
Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37).
30
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Beispielprogramme
Beispielprogramme Die folgenden ABAP-Programme enthalten Funktionsbausteine, die die SAP-Präsentationsgrafik aufrufen. Weitere Beispielprogramme für die SAP-Grafikanwendungen können Sie im R/3-System mit Transaktionscode gral aufrufen. SAP-Präsentationsgrafik ohne Dialog aufrufen [Seite 123] SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen [Seite 125] SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_XXXX_PARAM aufrufen [Seite 137]
April 2001
31
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik aufrufen
SAP-Hierarchiegrafik aufrufen Ein ABAP-Programm gibt die Daten an und ruft einen geeigneten Funktionsbaustein auf. Das SAP-Hierarchiegrafikprogramm generiert aus den übergebenen Daten eine grafische Hierarchie von Knoten. Überblick [Seite 33] Der Funktionsbaustein GRAPH_HIERARCHY [Seite 35] Der Funktionsbaustein GRAPH_HIERARCHY_MENUE [Seite 37] Der Funktionsbaustein GET_HIER_PARAM [Seite 40] Beispielprogramm [Seite 148]
32
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Überblick Das SAP-Hierarchiegrafikprogramm generiert eine grafische Hierarchie von Knoten, die der Dialogbenutzer durch Klicken auswählen kann. Die folgende Abbildung zeigt eine typische Hierarchie.
Sie können die SAP-Hierarchiegrafik von einem ABAP-Programm aufrufen und auf der Workstation des Benutzers eine Hierarchie generieren. Ihr Programm gibt dabei die Knoten der Hierarchie an und ruft einen der folgenden Funktionsbausteine auf: ·
GRAPH_HIERARCHY: Darstellung einer einfachen Hierarchie. Wenn der Benutzer Knoten auswählt, reagiert das ABAP-Programm mit bestimmten Aktionen.
·
GRAPH_HIERARCHY_MENUE: Darstellung einer Hierarchie mit Menüfunktionen. Wenn der Benutzer Knoten auswählt, zeigt der Funktionsbaustein ein Menü mit verschiedenen Funktionen an. Das ABAP-Programm bestimmt, welches Menü angezeigt wird.
Ihr Programm bestimmt auch die Darstellung der Hierarchie (z. B. Text und Farbe der einzelnen Knoten). Sie können die Knoten in verschiedenen Farben anzeigen, indem Sie ihnen unterschiedliche numerische Werte zuweisen.
April 2001
33
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1 Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID
·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine: -
GRAPH_RECEIVE (mit den Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
-
GET_xxxx_PARAM
Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm. Weitere Einzelheiten hierzu finden Sie unter Dialoganwendungen programmieren [Seite 100]. Sie können auch die Standardgrafikanzeige ändern oder zusätzliche Grafikfunktionen für Dialogbenutzer definieren, so daß beim Start von SAP-Hierarchie geänderte bzw. zusätzliche Menüs oder Drucktasten zur Verfügung stehen. Möchten Sie diese Funktionen definieren, müssen Sie den entsprechenden Funktionsbaustein aufrufen, bevor Sie einen SAPHierarchiefunktionsbaustein aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 91]. Wenn Sie mit GRAPH_ACTION arbeiten, müssen beim Aufruf von SAPHierarchiefunktionsbausteinen die Parameter CUA_ID und H_MES verwendet werden. Diese Parameter teilen dem ABAP-Programm mit, daß der Benutzer zusätzliche Funktionen ausgewählt hat.
34
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_HIERARCHY
Der Funktionsbaustein GRAPH_HIERARCHY Der Funktionsbaustein GRAPH_HIERARCHY bewirkt einen Aufruf des SAPHierarchiegrafikprogramms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_HIERARCHY Name
Status
Standardwert
BOXLN
Import
SPACE
COL11...COL16
Import
SPACE
COL21...COL26
Import
SPACE
COL31...COL36
Import
SPACE
COL_BACK
Import
SPACE
COL_LINE
Import
SPACE
COL_NODE
Import
SPACE
CONF
Import
Nicht verwenden
DMODE
Import
SPACE
INBUF **
Import
SPACE
LMODE
Import
SPACE
MAIL_ALLOW
Import
SPACE
MODIF
Import
Nicht verwenden
NDIMS
Import
SPACE
NLOOK
Import
SPACE
NLVAL
Import
SPACE
NTEXT
Import
SPACE
NTXHL
Import
SPACE
ORDER
Import
SPACE
PWDID **
Import
SPACE
RELBOXHT
Import
0
RELBOXWD
Import
0
RELWD_HT
Import
0
RMODE
Import
SPACE
April 2001
35
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_HIERARCHY SHAPE
Import
SPACE
SMODE
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TINDX
Import
'0'
TTEXT
Import
SPACE
VALD1...VALD3
Import
0
VALU1...VALU3
Import
100
VAL11...VAL15
Import
0
VAL21...VAL25
Import
0
VAL31...VAL35
Import
0
VINDX
Import
SPACE
VTXT1...VTXT3
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
ZOOMFAC
Import
0
CUA_ID
Export
H_MES
Export
M_TYP **
Export
NODES
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Für GRAPH_HIERARCHY ist nur der Parameter DATA unbedingt erforderlich.
36
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_HIERARCHY_MENUE
Der Funktionsbaustein GRAPH_HIERARCHY_MENUE Der Funktionsbaustein GRAPH_HIERARCHY_MENUE bewirkt einen Aufruf des SAPHierarchiegrafikprogramms. Im Gegensatz zu GRAPH_HIERARCHY können Sie mit GRAPH_HIERARCHY_MENUE Menüs in die Hierarchieanzeige aufnehmen. In diesem Fall wird ein Menü mit Optionen angezeigt, sobald der Benutzer einen Knoten durch Klicken auswählt. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_HIERARCHY_MENUE Name
Status
Standardwert
BOXLN
Import
SPACE
COL11...COL16
Import
SPACE
COL21...COL26
Import
SPACE
COL31...COL36
Import
SPACE
COL_BACK
Import
SPACE
COL_LINE
Import
SPACE
COL_NODE
Import
SPACE
CONF
Import
Nicht verwenden
DMODE
Import
SPACE
INBUF **
Import
SPACE
LMODE
Import
SPACE
MAIL_ALLOW
Import
SPACE
MENPOS
Import
SPACE
MODIF
Import
Nicht verwenden
MTITL
Import
SPACE
NDIMS
Import
SPACE
NLOOK
Import
SPACE
NLVAL
Import
SPACE
NTEXT
Import
SPACE
NTXHL
Import
SPACE
ORDER
Import
SPACE
PWDID **
Import
SPACE
April 2001
37
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_HIERARCHY_MENUE
38
REGION
Import
Nicht verwenden
RELBOXHT
Import
0
RELBOXWD
Import
0
RELWD_HT
Import
0
RMODE
Import
SPACE
SHAPE
Import
SPACE
SMODE
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TINDX
Import
'0'
TTEXT
Import
SPACE
USEHLE
Import
SPACE
VALD1...VALD3
Import
0
VALU1...VALU3
Import
100
VAL11...VAL15
Import
0
VAL21...VAL25
Import
0
VAL31...VAL35
Import
0
VINDX
Import
SPACE
VTXT1...VTXT3
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
ZOOMFAC
Import
0
CUA_ID
Export
H_MES
Export
M_TYP **
Export
MENNR
Export
NODES
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
MENU
Interne Tabelle
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_HIERARCHY_MENUE
Hinweis: ** kennzeichnet einen Dialogparameter Für GRAPH_HIERARCHY_MENUE sind nur die Parameter DATA und MENU unbedingt erforderlich. Wenn das ABAP-Programm diesen Funktionsbaustein aufruft, muß unbedingt der Parameter STAT verwendet werden. Weiterhin muß mindestens ein Grafikfunktionsbaustein mit dem STATWert 'Auf Eingabe warten' aufgerufen werden (dabei muß es sich jedoch nicht unbedingt um den Funktionsbaustein GRAPH_HIERARCHY_MENUE handeln). Sobald die Hierarchie angezeigt wird, kann der Dialogbenutzer entweder das Fenster schließen oder einen Knoten auswählen. Wählt er einen Knoten, zeigt SAP-Hierarchie das entsprechende Menü an, und der Benutzer kann einen Eintrag auswählen. Daraufhin stellt SAP-Hierarchie eine Benutzereingabenachricht in die Nachrichtenwarteschlange. Der wartende Funktionsbaustein erhält die Nachricht und teilt dem ABAP-Programm die Nummer des Eintrags mit. (Einzelheiten hierzu finden Sie unter den Parametern MENU und MENNR.)
April 2001
39
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GET_HIER_PARAM
Der Funktionsbaustein GET_HIER_PARAM Der Funktionsbaustein GET_HIER_PARAM ruft das SAP-Hierarchiegrafikprogramm auf, um Exportparameter mit korrekten Werten abzurufen. Sie sollten GET_HIER_PARAM verwenden, wenn das ABAP-Programm die Rückgabewerte MCODE='I' und RWNID='HIERn' erhalten hat. Einzelheiten finden Sie unter Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117]. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GET_HIER_PARAM Name
40
Status
CUA_ID
Export
H_MES
Export
H_NODE_2
Export
H_TEXT
Export
H_VAL1
Export
H_VAL2
Export
H_VAL3
Export
H_VALCOUNT
Export
MENNR
Export
NODES
Export
Standardwert
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktastengrafik aufrufen
SAP-Drucktastengrafik aufrufen Ein ABAP-Programm gibt die Daten an und ruft einen geeigneten Funktionsbaustein auf. Das SAP-Drucktastenprogramm generiert einen Block mit Drucktasten, über die Informationen oder Funktionen aufgerufen werden können. Überblick [Seite 42] Der Funktionsbaustein GRAPH_BUTTON_MATRIX [Seite 44] Der Funktionsbaustein GRAPH_BUTTON_MENUE [Seite 46] Der Funktionsbaustein GET_BMAT_PARAM [Seite 48] Beispielprogramme [Seite 49]
April 2001
41
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Das SAP-Drucktastenprogramm generiert einen Block mit Drucktasten, die die Dialogbenutzer durch Klicken auswählen können. Die folgende Abbildung zeigt einen typischen Drucktastenblock.
Sie können das SAP-Drucktastenprogramm von einem ABAP-Programm aufrufen und anschließend auf der Workstation des Benutzers einen Drucktastenblock generieren. Ihr Programm definiert die Drucktasten des Blocks und ruft einen der folgenden Funktionsbausteine auf: ·
GRAPH_BUTTON_MATRIX: stellt einen einfachen Drucktastenblock dar. Sobald der Benutzer eine Drucktaste auswählt, nimmt das ABAP-Programm entsprechende Aktionen vor.
·
GRAPH_BUTTON_MENUE: stellt einen Drucktastenblock mit Menüfunktionen dar. Wenn der Benutzer eine Drucktaste auswählt, zeigt der Funktionsbaustein ein Menü mit verschiedenen Funktionen an. Das ABAP-Programm bestimmt, welches Menü angezeigt wird.
Ihr Programm kann die Darstellung des Blocks (Text und Farbe der einzelnen Drucktasten) bestimmen. Weiterhin können Sie den Drucktasten über numerische Werte unterschiedliche Farben zuweisen.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Bei Verwendung der Funktionsbausteine in diesem Abschnitt handelt es sich stets um eine Dialoganwendung, da das SAP-Drucktastengrafikprogramm die Benutzerauswahl durch Klicken immer an das ABAPProgramm zurückmeldet.
42
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1 Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID
·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine: -
GRAPH_RECEIVE (mit den Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
-
GET_xxxx_PARAM
Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm. Weitere Einzelheiten hierzu finden Sie in Dialoganwendungen programmieren [Seite 100]. Sie können auch die Standardgrafikanzeige ändern und weitere Grafikfunktionen für Dialogbenutzer definieren, so daß beim Start des SAP-Drucktastenprogramms geänderte bzw. zusätzliche Menüs oder Drucktasten zur Verfügung stehen. Möchten Sie diese Funktionen definieren, müssen Sie den entsprechenden Funktionsbaustein aufrufen, bevor Sie einen Funktionsbaustein des SAP-Drucktastenprogramms aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 91]. Wenn Sie mit GRAPH_ACTION arbeiten, müssen Sie beim Aufruf von GRAPH_BUTTON_MATRIX oder GRAPH_BUTTON_MENU die Parameter CUA_ID und B_TYP verwenden. Diese Parameter teilen dem ABAP-Programm mit, daß der Benutzer zusätzliche Funktionen ausgewählt hat.
April 2001
43
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_BUTTON_MATRIX
Der Funktionsbaustein GRAPH_BUTTON_MATRIX Der Funktionsbaustein GRAPH_BUTTON_MATRIX bewirkt einen Aufruf des SAPDrucktastenprogramms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_BUTTON_MATRIX Name
44
Status
Standardwert
COLLN
Import
15
COL11...COL16
Import
SPACE
CTXT1...CTXT9
Import
SPACE
INBUF **
Import
SPACE
MODIF
Import
'X'
OUTFT
Import
SPACE
PWDID **
Import
SPACE
ROWLN
Import
1
STAT **
Import
SPACE
STITL
Import
SPACE
SUPER **
Import
SPACE
TTEXT
Import
SPACE
VALD1
Import
0
VALU1
Import
100
VAL11...VAL15
Import
0
VTXT1
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
B_TYP
Export
COLNR
Export
CUA_ID
Export
M_TYP **
Export
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_BUTTON_MATRIX
RBUFF **
Export
ROWNR
Export
RWNID **
Export
ATTR
Interne Tabelle
DATA
Interne Tabelle
SIZE
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Nur die Parameter DATA und ATTR sowie mindestens einer der Parameter CTXT1 bis CTXT9 sind unbedingt erforderlich.
April 2001
45
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_BUTTON_MENUE
Der Funktionsbaustein GRAPH_BUTTON_MENUE Der Funktionsbaustein GRAPH_BUTTON_MENUE bewirkt einen Aufruf des SAPDrucktastenprogramms. Im Gegensatz zu GRAPH_BUTTON_MATRIX können Sie mit GRAPH_BUTTON_MENUE Menüs in die Drucktastenanzeige aufnehmen. Wenn der Benutzer anschließend eine Drucktaste durch Klicken auswählt, wird statt einer statischen Anzeige ein Menü mit unterschiedlichen Optionen angezeigt. Die Parameter für GRAPH_BUTTON_MENUE sind mit denen für GRAPH_BUTTON_MATRIX identisch. Zusätzlich stehen jedoch noch die Parameter MTITL, MCOLN, MROWN und MENU zur Verfügung (siehe folgende Tabelle). Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_BUTTON_MENUE Name
46
Status
Standardwert
COLLN
Import
15
COL11...COL16
Import
SPACE
COL21...COL26
Import
SPACE
COL31...COL36
Import
SPACE
CTXT1...CTXT9
Import
SPACE
INBUF **
Import
SPACE
MODIF
Import
'X'
MTITL
Import
SPACE
OUTFT
Import
SPACE
PWDID **
Import
SPACE
ROWLN
Import
1
STAT **
Import
SPACE
STITL
Import
SPACE
SUPER **
Import
SPACE
TTEXT
Import
SPACE
VALD1
Import
0
VALU1
Import
100
VAL11...VAL15
Import
0
VTXT1
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_BUTTON_MENUE
WINSZX
Import
'50'
WINSZY
Import
'50'
B_TYP
Export
COLNR
Export
CUA_ID
Export
M_TYP **
Export
MCOLN
Export
MROWN
Export
RBUFF **
Export
ROWNR
Export
RWNID **
Export
ATTR
Interne Tabelle
DATA
Interne Tabelle
MENU
Interne Tabelle
SIZE
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Wenn das ABAP-Programm diesen Funktionsbaustein aufruft, muß unbedingt der Parameter STAT verwendet werden. Weiterhin muß mindestens ein Grafikfunktionsbaustein mit dem STATWert 'Auf Eingaben warten' aufgerufen werden (dabei muß es sich jedoch nicht unbedingt um den Funktionsbaustein GRAPH_BUTTON_MENUE handeln). Sobald der Drucktastenblock angezeigt wird, kann der Dialogbenutzer entweder das Fenster schließen oder ein Diagrammelement durch Klicken auswählen. Beim Diagrammelement kann es sich um eine Standarddrucktaste oder, falls vorhanden, um anwendungsdefinierte Menüeinträge oder Drucktasten handeln. Wählt er eine Drucktaste, zeigt die SAP-Drucktastengrafik das entsprechende Menü an, und der Benutzer kann einen Menüeintrag auswählen. Daraufhin stellt das SAP-Drucktastenprogramm eine Benutzereingabenachricht in die Nachrichtenwarteschlange. Der wartende Funktionsbaustein erhält die Nachricht und teilt dem ABAP-Programm die Zeile und Spalte des Menüeintrags mit. (Einzelheiten hierzu finden Sie unter den Parametern MENU, MROWN und MCOLN.) Das SAP-Drucktastenprogramm verarbeitet die mit GRAPH_ACTION definierten Menüeinträge und Drucktasten auf ähnliche Weise. Sobald der Benutzer eines dieser Elemente durch Klicken auswählt, reiht das SAP-Drucktastenprogramm eine entsprechende Nachricht in die Warteschlange ein. Der wartende Funktionsbaustein erhält die Nachricht und übergibt dem ABAP-Programm im Parameter CUA_ID Informationen, die das ausgewählte Element eindeutig identifizieren.
April 2001
47
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GET_BMAT_PARAM
Der Funktionsbaustein GET_BMAT_PARAM Der Funktionsbaustein GET_BMAT_PARAM ruft das SAP-Drucktastenprogramm auf, um Exportparameter mit korrekten Werten abzurufen. Sie sollten GET_BMAT_PARAM verwenden, wenn das ABAP-Programm die Rückgabewerte MCODE='I' und RWNID='BMATn' erhalten hat. Einzelheiten finden Sie unter Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117]. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GET_BMAT_PARAM Name
48
Status
B_KEY
Export
B_TYP
Export
COLNR
Export
CUA_ID
Export
MCOLN
Export
MROWN
Export
ROWNR
Export
Standardwert
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Beispielprogramme
Beispielprogramme Die folgenden ABAP-Programme enthalten Funktionsbausteine, die die SAP-Drucktastengrafik aufrufen. Weitere Beispielprogramme für die SAP-Grafikanwendungen können Sie im R/3-System mit Transaktionscode gral aufrufen. SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen [Seite 125] SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_XXXX_PARAM aufrufen [Seite 137]
April 2001
49
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramm aufrufen
SAP-Gantt-Diagramm aufrufen Ein ABAP-Programm gibt Plandaten an und ruft einen geeigneten Funktionsbaustein auf. Das SAP-Gantt-Programm generiert aus den übergebenen Daten eine Plantafel. Überblick [Seite 51] Der Funktionsbaustein GANTT_DIAGRAMM [Seite 53] Der Funktionsbaustein GRAPH_GANTT [Seite 55] Der Funktionsbaustein GET_GANTT_PARAM [Seite 57] Beispielprogramm [Seite 179]
50
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Überblick Mit dem SAP-Gantt-Programm können Sie eine Plantafel zur anschaulichen Darstellung Ihrer Terminplanung generieren. Der Dialogbenutzer kann die Plantafel anschließend in verschiedenen Formaten anzeigen, durchblättern und die enthaltenen Ereignisse umplanen. Sie können das SAP-Gantt-Programm von einem ABAP-Programm aufrufen und anschließend auf der Workstation des Benutzers eine Plantafel generieren. Das Programm stellt die Plandaten bereit und ruft einen der SAP-Gantt-Funktionsbausteine auf: ·
GRAPH_GANTT
·
GANTT_DIAGRAMM
GANTT_DIAGRAMM ist ein älterer Funktionsbaustein, der nicht für Neuentwicklungen verwendet werden sollte. Die folgende Abbildung zeigt eine Plantafel des SAP-Gantt-Programms.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1
April 2001
51
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID ·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine:
- GRAPH_RECEIVE (mit den Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
- GET_xxxx_PARAM Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm. Weitere Einzelheiten finden Sie unter Dialoganwendungen programmieren [Seite 100]. Mit GRAPH_SET_CUA_STATUS oder GRAPH_GANTT können Sie die Standardgrafikanzeige ändern und zusätzliche Grafikfunktionen für Dialogbenutzer definieren, so daß beim Start von SAP-Gantt geänderte bzw. zusätzliche Menüs oder Drucktasten zur Verfügung stehen. Möchten Sie diese Funktionen definieren, müssen Sie den entsprechenden Funktionsbaustein aufrufen, bevor Sie einen SAP-Gantt-Funktionsbaustein aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 91]. Wenn Sie mit GRAPH_ACTION arbeiten, müssen beim Aufruf von GRAPH_GANTT die Parameter CUA_ID und G_TYP verwendet werden. Diese Parameter teilen dem ABAPProgramm mit, daß der Benutzer zusätzliche Funktionen ausgewählt hat.
52
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GANTT_DIAGRAMM
Der Funktionsbaustein GANTT_DIAGRAMM
GANTT_DIAGRAMM ist ein älterer Funktionsbaustein, der nicht für Neuentwicklungen benutzt werden sollte. Verwenden Sie statt dessen GRAPH_GANTT. Der Funktionsbaustein GANTT_DIAGRAMM bewirkt einen Aufruf des SAP-Gantt-Programms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GANTT_DIAGRAMM Name
Status
Standardwert
COLOR
Import
SPACE
MODIF
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TLENGTH
Import
SPACE
TTEXT
Import
SPACE
TTITLE
Import
SPACE
TUNIT
Import
SPACE
WHEADER
Import
SPACE
WIDTH
Import
SPACE
WINID **
Import
SPACE
M_TYP **
Export
RBUFF **
Export
RWNID **
Export
ELEM
Interne Tabelle und Export
ITEM
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter. Dabei sind nur die Parameter ELEM und ITEM unbedingt erforderlich.
April 2001
53
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GANTT_DIAGRAMM Hinweis
In der Regel können interne Tabellen nicht verändert werden. Bei GANTT_DIAGRAMM kann der Dialogbenutzer jedoch die interne Tabelle ELEM modifizieren, die die Plantafeldaten des ABAP-Programms enthält.
54
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_GANTT
Der Funktionsbaustein GRAPH_GANTT Der Funktionsbaustein GRAPH_GANTT bewirkt einen Aufruf des SAP-Gantt-Programms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_GANTT Name
Status
Ref.-Feld
Standardwert
COMMAND_OK
Import
SPACE
CONFIRM
Import
SPACE
DFEL
Import
GGAEL
SPACE
DFMS
Import
GGAMI
SPACE
GLENGTH
Import
SPACE
HGRID
Import
SPACE
LEGEND
Import
SPACE
MODIF
Import
SPACE
NOTXT
Import
SPACE
NO_EL_POPUP
Import
SPACE
NO_EX_POPUP
Import
SPACE
NO_IT_POPUP
Import
SPACE
NO_MS_POPUP
Import
SPACE
NO_SORT
Import
SPACE
PWDID **
Import
SPACE
SET_FOCUS
Import
'X'
STAT **
Import
SPACE
SUPER **
Import
SPACE
TIMER
Import
TLENGTH
Import
TLINE
Import
GGAEL-BEG
SPACE
TMBEG
Import
GGAEL-BEG
SPACE
TMEND
Import
GGAEL-BEG
SPACE
TMVIEW
Import
GGAEL-BEG
SPACE
April 2001
GGAEL-BEG
Nicht verwenden SPACE
55
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_GANTT TTEXT
Import
SPACE
TTITLE
Import
SPACE
TUNIT
Import
SPACE
VGRID
Import
SPACE
WHEADER
Import
SPACE
WINID **
Import
SPACE
AKT_SVIEW
Export
GGAEL-BEG
AKT_TMBEG
Export
GGAEL-BEG
AKT_TMEND
Export
GGAEL-BEG
AKT_TUNIT
Export
CUA_ID
Export
G_TYP
Export
M_TYP **
Export
RBUFF **
Export
RWNID **
Export
ELEM
Tabelle
GGAEL
ITEM
Tabelle
GGAIT
LGEL
Tabelle
GGAEL
LGMS
Tabelle
GGAMI
MIST
Tabelle
GGAMI
MSGT
Tabelle
GGABA
Nur die Tabellenparameter sind unbedingt erforderlich. Sie können sie jedoch auch ohne Wert angeben.
56
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GET_GANTT_PARAM
Der Funktionsbaustein GET_GANTT_PARAM Der Funktionsbaustein GET_GANTT_PARAM ruft das SAP-Gantt-Programm auf, um Exportparameter mit korrekten Werten abzurufen. Sie sollten GET_GANTT_PARAM verwenden, wenn das ABAP-Programm die Rückgabewerte MCODE='I' und RWNID='GANTn' erhalten hat. Einzelheiten finden Sie unter Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117]. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GET_GANTT_PARAM Name
Status
Ref.-Feld
AKT_SVIEW
Export
GGAEL-BEG
KT_TMBEG
Export
GGAEL-BEG
AKT_TMEND
Export
GGAEL-BEG
AKT_TUNIT
Export
CUA_ID
Export
G_TYP
Export
MSGT
Tabelle
April 2001
Standardwert
GGABA
57
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-HPGL-Anzeige aufrufen
SAP-HPGL-Anzeige aufrufen Mit dem SAP-HPGL-Anzeigeprogramm können Sie Vektorgrafikdaten anzeigen, die im HPGLFormat kodiert sind. Ein ABAP-Programm gibt die Vektorgrafikdaten an und ruft die entsprechenden Funktionsbausteine auf. Das SAP-HPGL-Anzeigeprogramm generiert aus den übergebenen Daten eine Vektorgrafik. Überblick [Seite 59] Der Funktionsbaustein GRAPH_HPG [Seite 61] Der Funktionsbaustein GET_HPGL_PARAM [Seite 62] Beispielprogramm [Seite 199]
58
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Überblick Mit dem SAP-HPGL-Anzeigeprogramm können Sie Vektorgrafikdaten anzeigen, die im HPGLFormat (Hewlett Packard Graphic Language) kodiert sind. Die folgende Abbildung zeigt ein Beispiel einer SAP-HPGL-Grafik.
Sie können das SAP-HPGL-Anzeigeprogramm vom ABAP-Programm aufrufen und anschließend auf der Workstation des Benutzers eine HPGL-Grafik generieren. Ihr Programm sendet die Vektorgrafikdaten (Steuercodes im HPGL-Format) an den folgenden Funktionsbaustein: ·
GRAPH_HPGL: zeigt Vektorgrafiken an.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann.
April 2001
59
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1 Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID
·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine: -
GRAPH_RECEIVE (mit den Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
-
GET_xxxx_PARAM
Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm. Weitere Einzelheiten finden Sie unter Dialoganwendungen programmieren [Seite 100]. Sie können auch die Standardgrafikanzeige ändern und zusätzliche Grafikfunktionen für Dialogbenutzer definieren, so daß beim Start des SAP-HPGL-Anzeigeprogramms geänderte bzw. zusätzliche Menüs oder Drucktasten zur Verfügung stehen. Möchten Sie diese Funktionen definieren, müssen Sie den entsprechenden Funktionsbaustein aufrufen, bevor Sie GRAPH_HPGL aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 91]. Wenn Sie mit GRAPH_ACTION arbeiten, müssen beim Aufruf von GRAPH_HPGL die Parameter CUA_ID und H_TYP verwendet werden. Diese Parameter teilen dem ABAP-Programm mit, daß der Benutzer zusätzliche Funktionen ausgewählt hat.
60
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_HPGL
Der Funktionsbaustein GRAPH_HPGL Der Funktionsbaustein GRAPH_HPGL bewirkt einen Aufruf des SAP-HPGL-Anzeigeprogramms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_HPGL Name
Status
Standardwert
FILE
Import
SPACE
INBUF **
Import
SPACE
INFORM
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
CUA_ID
Export
H_KEY
Export
H_TYP
Export
M_TYP **
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter. Dabei ist nur der Parameter DATA absolut erforderlich, selbst dann, wenn Sie den Parameter FILE verwenden.
April 2001
61
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GET_HPGL_PARAM
Der Funktionsbaustein GET_HPGL_PARAM Der Funktionsbaustein GET_HPGL_PARAM ruft das SAP-HPGL-Anzeigeprogramm auf, um Exportparameter mit korrekten Werten abzurufen. Sie sollten GET_HPGL_PARAM verwenden, wenn das ABAP-Programm die Rückgabewerte MCODE='I' und RWNID='HPGLn' erhalten hat. Einzelheiten finden Sie unter Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117]. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Parameter für GET_HPGL_PARAM Name
Status
CUA_ID
Export
H_KEY
Export
H_TYP
Export
Standardwert
Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37).
62
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Textmatrix aufrufen
SAP-Textmatrix aufrufen Ein ABAP-Programm gibt den anzuzeigenden Text an und ruft den entsprechenden Funktionsbaustein auf. Das SAP-Textmatrixprogramm generiert ein Fenster mit dem Text. Benutzer können darin vertikal oder horizontal blättern. Überblick [Seite 64] Der Funktionsbaustein TEXT_MATRIX [Seite 66]
April 2001
63
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Das SAP-Textmatrixprogramm generiert ein Textfenster, in dem der Benutzer vertikal oder horizontal blättern kann. Der Programmierer kann dem Dialogbenutzer Textanzeigen, wie z. B. Hilfefenster, zur Verfügung stellen. Die folgende Abbildung zeigt ein typisches Textfenster.
Sie können das SAP-Textmatrixprogramm von einem ABAP-Programm aufrufen und anschließend auf der Workstation des Benutzers ein Textfenster generieren. Ihr Programm definiert dabei den anzuzeigenden Text und ruft den folgenden Funktionsbaustein auf: ·
TEXT_MATRIX: stellt ein einfaches Textfenster dar.
Der Funktionsbaustein TEXT_MATRIX ruft das SAP-Drucktastengrafikprogramm auf, um Textfenster zu erstellen. Im Gegensatz zu Drucktastenblocks bieten die Textfenster dem Dialogbenutzer jedoch keine umfassende Funktionalität; der Benutzer kann lediglich im Fenster blättern. Das Programm definiert auch die Größe des Anzeigefensters.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann.
64
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1 Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID
·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine: -
GRAPH_RECEIVE (mit den Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
-
GET_xxxx_PARAM
Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm. Weitere Einzelheiten finden Sie unter Dialoganwendungen programmieren [Seite 100]. Sie können auch die Standardgrafikanzeige ändern und zusätzliche Grafikfunktionen für Dialogbenutzer definieren, so daß beim Start von SAP-Textmatrix geänderte bzw. zusätzliche Menüs oder Drucktasten zur Verfügung stehen. Möchten Sie diese Funktionen definieren, müssen Sie den entsprechenden Funktionsbaustein vor TEXT_MATRIX aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 91]. Wenn Sie mit GRAPH_ACTION arbeiten, müssen beim Aufruf von TEXT_MATRIX die Parameter CUA_ID und B_TYP verwendet werden. Diese Parameter teilen dem ABAPProgramm mit, daß der Benutzer zusätzliche Funktionen ausgewählt hat.
April 2001
65
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein TEXT_MATRIX
Der Funktionsbaustein TEXT_MATRIX Der Funktionsbaustein TEXT_MATRIX bewirkt einen Aufruf des SAP-Drucktastenprogramms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für TEXT_MATRIX Name
Status
Standardwert
CSIZE
Import
'15'
INBUF **
Import
SPACE
PWDID **
Import
SPACE
RSIZE
Import
'0'
STAT **
Import
SPACE
SUPER **
Import
SPACE
TTEXT
Import
SPACE
WINID **
Import
SPACE
WINPOS
Import
SPACE
WINSZX
Import
'50'
WINSZY
Import
'50'
B_TYP **
Export
CUA_ID
Export
M_TYP **
Export
RBUFF **
Export
RWNID **
Export
DATA
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Dabei ist nur der Parameter DATA unbedingt erforderlich.
66
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Netzplangrafik aufrufen
SAP-Netzplangrafik aufrufen Ein ABAP-Programm gibt die Daten an und ruft einen geeigneten Funktionsbaustein auf. Das SAP-Netzplangrafikprogramm generiert aus den übergebenen Daten eine Netzplan- oder Hierarchiedarstellung. Überblick [Seite 68] Verarbeitung von Benutzeraktionen im Bestätigungsmodus [Seite 70] Allgemeine und spezifische Funktionsbausteine [Seite 73] Beispielprogramm [Seite 210]
April 2001
67
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Die Funktionsbausteine des SAP-Netzplangrafikprogramms generieren Diagramme mit Netzplan- oder Hierarchiestrukturen. Netzplanstrukturen enthalten miteinander verbundene Knoten, Knoten-Cluster und andere Objekte. Sie können den Netzplanstrukturen auf allen Ebenen unterschiedliche Eigenschaften (Attribute) zuordnen. So können Sie beispielsweise den Knoten Farben oder Felder mit Texten oder numerischen Werten zuweisen, den Clustern Farben und den Linien Farben und Felder. Die folgende Abbildung zeigt eine SAP-Netzplangrafik.
Sie können das SAP-Netzplangrafikprogramm von einem ABAP-Programm aufrufen und anschließend auf der Workstation des Benutzers eine grafische Darstellung generieren. Die folgenden Funktionsbausteine starten das SAP-Netzplanprogramm auf der Workstation des Benutzers, zeigen die Daten an und melden dem ABAP-Programm einige der Benutzeraktionen. ·
CNET_GRAPHIC_NETWORK Mit diesem Funktionsbaustein können Sie alle Netzpläne anzeigen.
·
68
CNET_GRAPHIC_HIERARCHY
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Dieser Funktionsbaustein wurde speziell für Hierarchien konzipiert. Sie können Hierarchien jedoch auch mit CNET_GRAPHIC_NETWORK anzeigen ·
CNET_GRAPHIC_CLUSTER Dieser Funktionsbaustein ruft den Cluster-Editor auf. Der Cluster-Editor enthält Gruppen von Kästchen, die von einem Rahmen umgeben sind. Sie können Text für die Kästchen angeben, und der Dialogbenutzer kann die Kästchen innerhalb der Rahmen verschieben.
Sie können die Grafikanwendung mit einem Profil an Ihre Anforderungen anpassen. Das Profil wird mit der R/3-Customizing-Funktion definiert (siehe Parameter PROFILE).
Benutzeraktionen zurückmelden Alle oben genannten Funktionsbausteine bieten Dialogfunktionen. Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Wenn Sie im Bestätigungsmodus arbeiten, gibt das Grafikprogramm stets eine Meldung an das ABAP-Programm weiter, wenn der Benutzer versucht, eine Aktion durchzuführen. Weitere Einzelheiten zu Dialoganwendungen finden Sie unter Dialogfunktionen [Seite 91].
Oberflächenelemente ändern oder hinzufügen Sie können das SAP-Netzplangrafikfenster an Ihre Anforderungen anpassen, indem Sie Oberflächenelemente ändern, entfernen oder hinzufügen. Bei diesen Oberflächenelementen kann es sich um Menüs oder um Drucktasten handeln. Möchten Sie neue Funktionen hinzufügen oder Menüs umbenennen, müssen Sie den entsprechenden Funktionsbaustein aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 86].
Netzpläne und Hierarchien Bei einem Netzplan handelt es sich um eine Knotenstruktur, in der die einzelnen Knoten durch Linien miteinander verbunden sind. Direkt miteinander verbundene Knoten bezeichnet man als Vorgänger- bzw. Nachfolgerknoten, wobei Vorgänger sich links, Nachfolger dagegen rechts vom Knoten befinden. Die Knoten können beliebig viele Vorgänger und Nachfolger haben. In einer Hierarchiestruktur kann jeder Knoten zwar beliebig viele Nachfolger, jedoch nur einen Vorgänger haben. Hierarchien verlaufen in der Regel von oben nach unten und bilden so einen Baum, der sich nach unten verzweigt. Ein Vorgängerknoten liegt daher stets oberhalb der Nachfolgerknoten.
April 2001
69
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Verarbeitung von Benutzeraktionen im Bestätigungsmodus
Verarbeitung von Benutzeraktionen im Bestätigungsmodus Das ABAP-Programm kann die SAP-Netzplanfunktionsbausteine im "Bestätigungsmodus" aufrufen. Im Bestätigungsmodus schickt das Grafikprogramm dem ABAP-Programm eine Anfrage, sobald der Benutzer versucht, eine Aktion durchzuführen. Das ABAP-Programm kann die Anfrage bestätigen oder ablehnen. Bei einer Bestätigung kann das ABAP-Programm außerdem: ·
zusätzliche Informationen an das Grafikprogramm senden Wenn der Benutzer beispielsweise einen neuen Knoten erstellen möchte, kann das ABAP-Programm dazu Namen generieren, Daten in der Datenbank nachschlagen und die zusätzlichen Daten an das Grafikprogramm zurückgeben. Möchte der Benutzer Knoten aus dem Netzplan löschen, sendet das Grafikprogramm eine Löschanfrage sowie eine Tabelle der zu löschenden Elemente. Das ABAPProgramm kann nun die Berechtigung prüfen, die Elemente, die nicht gelöscht werden dürfen, aus der Tabelle entfernen und die aktualisierte Tabelle an das Grafikprogramm zurückgeben.
·
sekundäre Aktionen festlegen, die nach der Anfrage ausgeführt werden müssen Dies ist wichtig, wenn eine Benutzeraktion sekundäre Aktionen zur Folge hat, die nicht ausdrücklich angefordert wurden.
·
eigene Queries an das Grafikprogramm senden Das ABAP-Programm kann Queries an das Grafikprogramm senden, die das Grafikprogramm anschließend beantworten kann.
Beachten Sie, daß der Bestätigungsmodus im SAP-Netzplanprogramm anders als im SAPGantt-Programm eingesetzt wird. Wenn Sie im SAP-Gantt-Programm den Bestätigungsmodus aktivieren, kann das ABAP-Programm die Anfragen nur bestätigen oder ablehnen, es kann jedoch selbst keine Aktionen auslösen. Im Gantt-Programm können Sie den Bestätigungsmodus während der Verarbeitung aktivieren und wieder deaktivieren; im SAP-Netzplangrafikprogramm wird dies dagegen nicht empfohlen. Wenn das Grafikprogramm eine Nachricht sendet, gibt der Funktionsbaustein den Nachrichtentyp in der Regel im Parameter GR_MES zurück. Sendet dagegen das ABAPProgramm eine Nachricht, sollte der Nachrichtentyp im Parameter ABAP_CMD zurückgegeben werden. Im Bestätigungsmodus kopiert das ABAP-Programm lediglich GR_MES in ABAP_CMD, aktualisiert die zur Nachricht gehörenden Daten und sendet sie an das Grafikprogramm zurück. Dabei werden die Import- und die Exporttabellenparameter aktualisiert.
Das Grafikprogramm kann zahlreiche Nachrichten sowohl im Bestätigungsmodus als auch im Nichtbestätigungsmodus senden. Im Bestätigungsmodus handelt es sich bei der Nachricht um eine Anfrage. Bestätigt das ABAP-Programm die Anfrage, wird die entsprechende Aktion ausgeführt. Im Nichtbestätigungsmodus teilt die Nachricht dem ABAP-Programm lediglich mit, daß die Aktion bereits ausgeführt wurde. Das ABAP-Programm muß weder eine Bestätigung senden noch die Tabellenparameter aktualisieren.
70
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Verarbeitung von Benutzeraktionen im Bestätigungsmodus
Netzpläne im Bestätigungsmodus aktualisieren Im SAP-Netzplangrafikprogramm können Sie mit folgenden Tabellenparametern Daten und Datenänderungen zwischen dem ABAP-Programm und dem Grafikprogramm übertragen: NODES
Knotenobjekte
NVALS
Attributeinstellungen für Knoten
LINES
Linienobjekte (Knotenverbindungen)
LVALS
Attributeinstellungen für Linien
CLUSTERS
Cluster-Objekte (Gruppe von Knoten und Linien)
CVALS
Attributeinstellungen für Cluster
POSITIONS
Position der Knoten/Linien
(LINES und LVALS sind nur in Verbindung mit CNET_GRAPH_NETWORK gültig.) Im Bestätigungsmodus wird eine Anfrage zur Diagrammaktualisierung normalerweise mit den Nachrichtenarten 'AINS', 'ADUP', 'ADEL', 'ACON' und 'AMOD' gesendet. Das SAPNetzplangrafikprogramm sollte für jede dieser Nachrichten überprüfen, ob die folgenden Parameter relevante Daten enthalten: 'AINS' (Einfügeanforderung)
NODES, LINES, CLUSTERS; POSITIONS
'ADUP' (Kopieranforderung)
NODES, LINES, CLUSTERS; POSITIONS
'ADEL' (Löschanforderung)
DELETIONS
'ACON' (Verbindungsanforderung)
LINES, LVALS
'AMOD' (Modifizierungsanforderung)
NVALS, LVALS, CVALS
Im Bestätigungsmodus muß das SAP-Netzplangrafikprogramm jedoch davon ausgehen, daß sowohl primäre als auch sekundäre Aktionen angefordert werden. Primäre Aktionen werden in den Nachrichtenparametern ABAP_CMD oder GR_MES angegeben. Sekundäre Aktionen gehören zwar zu primären Aktionen, erfordern jedoch einen anderen Aktionscode. Angenommen, der Dialogbenutzer möchte einen Knoten in den Netzplan einfügen. In diesem Fall sendet das Grafikprogramm zunächst eine entsprechende Anfrage. Das ABAP-Programm bestätigt die Anfrage, indem es die Nachricht ABAP_CMD='AINS' sowie vollständige Knoteninformationen in NODES zurückgibt. Das SAP-Netzplanprogramm sollte nun die Daten in NODES überprüfen und die angegebenen Knoten in das Diagramm einfügen. Eventuell ist es jedoch beim Einfügen eines Knotens erforderlich, daß andere Objekte, wie z. B. Linien oder Cluster, eingefügt und ihre Attribute definiert werden. Möglicherweise müssen sogar bestimmte andere Objekte gelöscht werden. Das ABAP-Programm kann diese Aktualisierungen als sekundäre Aktionen in den oben aufgeführten Tabellenparametern angeben. Die Aktualisierungen werden mit dem Nachrichtencode 'AINS' zurückgegeben, auch wenn es sich um Änderungs- oder Löschvorgänge etc. handelt. Wenn das SAP-Netzplanprogramm bei der Aktualisierung im Bestätigungsmodus einen der oben aufgeführten Nachrichtencodes erhält, sucht es daher in allen Tabellenparametern nach möglichen Informationen. Hinzugefügte oder geänderte Elemente können in NODES, LINES und
April 2001
71
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Verarbeitung von Benutzeraktionen im Bestätigungsmodus CLUSTERS angegeben sein, gelöschte Elemente in DELETIONS und Attributaktualisierungen in NVALS, LVAL und CVALS. Zur Bestätigung einer Aktion muß das ABAP-Programm daher nur diese Tabellen aktualisieren und den gleichen Nachrichtencode zurückgeben. Soll die Aktion dagegen abgelehnt werden, muß das ABAP-Programm die Datentabellen löschen. Das ABAP-Programm kann auch nur einen Teil der Aktionen bestätigen, indem es die nicht zugelassenen Aktionen aus der Tabelle löscht.
72
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Allgemeine und spezifische Funktionsbausteine
Allgemeine und spezifische Funktionsbausteine In der folgenden Liste werden die Funktionsbausteine beschrieben, die im SAPNetzplangrafikprogramm zur Verfügung stehen. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Allgemeine Funktionsbausteine Funktionsbaustein
Verwendung
CNET_FIELD_TO_INDEX_NVALS
Angabe von Knotenwerten
CNET_FIELD_TO_INDEX_LVALS
Angaben von Verbindungswerten
CNET_FIELD_TO_INDEX_CVALS
Umsetzung von Feldnamen in Textindices für Rahmen
CNET_GET_PROFILE_CONTENTS
Abruf von Profilinhalten für benutzerdefinierte Diagramme
CNET_SET_OPTIONS
Einstellung von Optionen
CNET_SET_TIMEEGG_TEXT
Eingabe von Text in das Zeitei
CNET_MAKE_BOXES
Erstellung von Kästchen
CNET_SET_LABEL
Eingabe von Grafiksuchtext
CNET_SET_LEGEND
Erstellung von Grafiklegenden
CNET_GRAPH_ACTION
Hinzufügen von Oberflächenelementen für Netzplangrafiken
CNET_GRAPHIC_PAI
Analyse von zurückgegebenen Daten
Hierarchiespezifische Funktionsbausteine Funktionsbaustein CNET_GRAPHIC_HIERARCHY*
Verwendung Start der Hierarchiegrafik Kombination der beiden folgenden Funktionsbausteine plus CNET_GRAPHIC_PAI und GRAPH_RECEIVE [Seite 117]
CNET_GRAPHIC_HIERARCHY_PBO
Starten der Hierarchiegrafik bei PBO mit Grafikprofil (Parameter PROFILE)
CNET_CONVERT_TO_HIERARCHY
Umsetzung von Verbindungen in Knotenattribute
CNET_GET_NODES_ORDERED
Abruf der Knotenreihenfolge in der Hierarchie
Netzplanspezifische Funktionsbausteine Funktionsbaustein
April 2001
Verwendung
73
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Allgemeine und spezifische Funktionsbausteine CNET_GRAPHIC_NETWORK*
Start der Netzplangrafik Kombination von CNET_GRAPHIC_NETWORK_PBO plus CNET_GRAPHIC_PAI und GRAPH_RECEIVE [Seite 117]
CNET_GRAPHIC_NETWORK_PBO *
Start der Netzplangrafik bei PBO
Die Schnittstelle der Funktionsbausteine CNET_GRAPHIC_HIERARCHY und CNET_GRAPHIC_NETWORK ist weitgehend identisch; CNET_GRAPHIC_NETWORK verfügt jedoch über zwei zusätzliche Parameter (LINES und LVALS). Weiterhin greifen die NODES-Tabellen der beiden Funktionsbausteine auf unterschiedliche Referenztabellen zu (CNG_NODES und CHG_NODES).
Funktionsbausteine für den Cluster-Editor Funktionsbaustein CNET_GRAPHIC_CLUSTER
Verwendung Start des Cluster-Editors Kombination von CNET_GRAPHIC_CLUSTER_PBO plus CNET_GRAPHIC_PAI und GRAPH_RECEIVE [Seite 117]
CNET_GRAPHIC_CLUSTER_PBO
74
Start des Cluster-Editors bei PBO mit Grafikprofil (Parameter PROFILE)
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Portfoliografik aufrufen
SAP-Portfoliografik aufrufen Ein ABAP-Programm gibt Portfoliodaten an und ruft den entsprechenden Funktionsbaustein auf. Das SAP-Portfoliografikprogramm generiert aus den übergebenen Daten eine Portfoliodarstellung. Überblick [Seite 76] Der Funktionsbaustein GRAPH_PORT [Seite 78] Der Funktionsbaustein GET_PORT_PARAM [Seite 80] Beispielprogramm [Seite 200]
April 2001
75
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Das SAP-Portfoliografikprogramm generiert Portfoliorepräsentationen. Diese Diagramme können beispielsweise Marktgegebenheiten darstellen, wie einen Vergleich verschiedener Erzeugnisgruppen, wobei Sie die relative Größe, die Wachstumstendenzen usw. der einzelnen Objekte abbilden. Zur Darstellung eines solchen Vergleichs definieren Sie die gewünschten Objekte, ihre Größe sowie ihre Position im Diagramm, die Verbindungen zwischen den Objekten, Quadranten usw. Der Dialogbenutzer kann anschließend durch das Diagramm blättern, numerische Werte ändern und die Anzeige vergrößern, verkleinern oder mit Anzeigeoptionen formatieren. Die folgende Abbildung zeigt eine SAP-Portfoliografik.
Sie können das SAP-Portfoliografikprogramm von einem ABAP-Programm aufrufen und anschließend auf der Workstation des Benutzers ein Portfoliodiagramm generieren. Ihr Programm sendet dabei die Grafikdaten und ruft den SAP-Portfoliofunktionsbaustein auf: ·
76
GRAPH_PORT
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Da das SAPPortfoliografikprogramm die Benutzerauswahl durch Mausklick stets an das ABAP-Programm zurückmeldet, handelt es sich bei GRAPH_PORT grundsätzlich um eine Dialoganwendung. Mit zwei Mechanismen können Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern: ·
Dialogprogrammierung vor Release 2.1 Grafikfunktionsbausteine mit den Dialogparametern STAT, M_TYP, PWDID, SUPER, WINID und RWNID
·
Aktuelle Dialogprogrammierung Grafikfunktionsbausteine mit den Dialogparametern STAT, PWDID, SUPER und WINID plus Utility-Funktionsbausteine: -
GRAPH_RECEIVE (mit den Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID)
-
GET_PORT_PARAM
Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit Utility-Funktionsbausteinen. Hinweis
Verwenden Sie nicht beide Mechanismen zusammen in einem Programm. Weitere Einzelheiten finden Sie unter Dialoganwendungen programmieren [Seite 100]. Sie können auch die Standardgrafikanzeige ändern und zusätzliche Grafikfunktionen für Dialogbenutzer definieren, so daß beim Start von SAP-Portfoliografik geänderte bzw. zusätzliche Menüs oder Drucktasten zur Verfügung stehen. Möchten Sie diese Funktionen definieren, müssen Sie den entsprechenden Funktionsbaustein aufrufen, bevor Sie den SAPPortfoliofunktionsbaustein aufrufen. Weitere Einzelheiten hierzu finden Sie unter Standardgrafikanzeige ändern [Seite 91]. Wenn Sie mit GRAPH_ACTION arbeiten, müssen beim Aufruf von GRAPH_PORT die Parameter CUA_ID und P_TYP verwendet werden. Diese Parameter teilen dem ABAPProgramm mit, daß der Benutzer zusätzliche Funktionen ausgewählt hat.
April 2001
77
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GRAPH_PORT
Der Funktionsbaustein GRAPH_PORT Der Funktionsbaustein GRAPH_PORT bewirkt einen Aufruf des SAP-Portfoliografikprogramms. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_PORT Name
78
Status
Ref.-Feld
Standardwert
FRM_BACKCLR
Import
SPACE
FRM_FRAMCLR
Import
SPACE
FRM_GRIDX
Import
SPACE
FRM_GRIDY
Import
SPACE
FRM_SCALCLR
Import
SPACE
FRM_SCALMOD
Import
SPACE
FRM_SHADOW
Import
SPACE
INBUF **
Import
SPACE
OBJ_SIZE
Import
SPACE
OBJ_SVAL
Import
SPACE
OBJ_XARR
Import
SPACE
OBJ_XVAL
Import
SPACE
OBJ_YARR
Import
SPACE
OBJ_YVAL
Import
SPACE
PWDID **
Import
SPACE
STAT **
Import
SPACE
SUPER **
Import
SPACE
TITLE_BACKCLR
Import
SPACE
TITLE_INFO
Import
SPACE
TITLE_SIZE
Import
SPACE
TITLE_TEXTCLR
Import
SPACE
TITLE_TITLE
Import
SPACE
WINID **
Import
SPACE
CUA_ID
Export
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Der Funktionsbaustein GRAPH_PORT
M_TYP **
Export
OBJ_ID
Export
P_TYP
Export
RBUFF **
Export
RWNID **
Export
AREA_TAB
Tabelle
GPOAREA
AXIS
Tabelle
GPOAXIS
COL_TEXT
Tabelle
OBJT
Tabelle
VALUES
Tabelle
April 2001
GPOOBJT
79
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Der Funktionsbaustein GET_PORT_PARAM
Der Funktionsbaustein GET_PORT_PARAM Der Funktionsbaustein GET_PORT_PARAM ruft das SAP-Portfoliografikprogramm auf, um Exportparameter mit korrekten Werten abzurufen. Sie sollten GET_PORT_PARAM verwenden, wenn das ABAP-Programm die Rückgabewerte MCODE='I' und RWNID='PORTn' erhalten hat. Einzelheiten hierzu finden Sie unter Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117]. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GET_PORT_PARAM Name
80
Status
CUA_ID
Export
OBJ_ID
Export
P_TYP
Export
Standardwert
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Balkenplangrafik aufrufen
SAP-Balkenplangrafik aufrufen Ein ABAP-Programm gibt Plandaten an und ruft den entsprechenden Funktionsbaustein auf. Das SAP-Balkenplanprogramm generiert aus den übergebenen Daten eine Balkenplangrafik. Überblick [Seite 82] Die Funktionsbausteine [Seite 84] Beispielprogramm [Seite 216]
April 2001
81
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Mit dem SAP-Balkenplanprogramm können Sie eine Übersicht über die Ereignisse innerhalb eines bestimmten Zeitraums anzeigen. Die Dialogbenutzer können die enthaltenen Ereignisse umplanen.
Das Fenster der SAP-Balkenplangrafik enthält neben den Standardelementen (Menüleiste, Symbolleiste und Drucktastenleiste) maximal folgende Bestandteile: ·
Titel in der Titelleiste des Fensters Dieser Titel ist im zugrundeliegenden ABAP-Programm definiert.
·
Zeitrahmensleiste Die Zeitrahmensleiste gibt den Zeitrahmen für die acht möglichen Grafikdarstellungen vor. Darstellungen (maximal 8) Sie können maximal acht Balkenplangrafiken in einem Grafikfenster darstellen. Jede Darstellung enthält einen Titel, der im zugrundeliegenden ABAP-Programm definiert ist. Jede Darstellung besteht aus folgenden Bereichen: -
Zeitskala Der Benutzer kann für jede Darstellung eine der verfügbaren Zeiteinheiten wählen. Der Zeitrahmen ist durch die Zeitrahmensleiste festgelegt.
-
Tabellenbereich Dieser Bereich auf der linken Seite enthält den Tabellentitel und Tabellenfelder zum jeweiligen Diagrammbereich. Der Benutzer kann die Breite der Spalten verändern.
82
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Ebenso kann der Benutzer die Breite des Tabellenbereichs in Abhängigkeit von der Breite des Diagrammbereichs verändern. -
Diagrammbereich Der Diagrammbereich enthält Objekte (Zeitblöcke), die die Dauer von Ereignissen darstellen. Jeder der acht möglichen Diagrammbereiche verfügt über eine eigene Zeitskala innerhalb des vorgegeben Zeitrahmens, für die der Benutzer jeweils eine Zeiteinheit (Tag, Woche, etc.) wählen kann.
Über die Standarddrucktasten am oberen Rand der Benutzer die Darstellung vergrößern und verkleinern. Welche Bestandteile im Grafikfenster enthalten sein sollen, wird im ABAP-Programm festgelegt. Sie können weitere Menüs mit zusätzlichen Funktionen definieren oder Standardfunktionen und Symbole ausblenden. Weitere Informationen hierzu finden Sie in Ihrer anwendungsspezifischen Dokumentation zur SAP-Balkenplangrafik. Mit der Transaktion gral können Sie im R/3-System Beispielprogramme ablaufen lassen, die das SAP-Balkenplanprogramm aufrufen.
April 2001
83
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Die Funktionsbausteine
Die Funktionsbausteine In der folgenden Tabelle werden die verfügbaren Funktionsbausteine beschrieben. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench ® Funktionsbibliothek oder Transaktion SE37). Sie können die Grafikanwendung mit einem Profil an Ihre Anforderungen anpassen. Dieses Profil wird mit der R/3-Customizing-Funktion definiert (siehe Parameter PROFILE). Möchten Sie die Standardgrafikanzeige ändern, bearbeiten Sie den Referenzbildschirm SAPLBARC mit dem Menu Painter [Seite 95], und rufen Sie den Funktionsbaustein GRAPH_SET_CUA_STATUS [Seite 96] vor BARC_GRAPHIC_PBO auf. GRAPH_SET_CUA_STATUS sendet Oberflächeninformationen an das Grafikprogramm. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Die Funktionsbausteine des SAP-Balkenplans Funktionsbaustein
84
Verwendung
BARC_GRAPHIC_PBO
Balkenplan bei PBO mit einem Grafikprofil starten (Parameter PROFILE)
BARC_GRAPHIC_PAI
Analyse der zurückgegebenen Daten
BARC_SET_TIME_AXIS
Anfang und Ende der Zeitachse festlegen
BARC_SET_OPTIONS
Einstellung von Optionen
BARC_ADD_CHART
Erstellung eines Plans
BARC_SET_CHART_ATTRIB
Einstellung von Planattributen
BARC_ADD_SECTION
Erstellung eines Zeitachsenabschnitts
BARC_SET_SECTION_ATTRIB
Einstellung von Abschnittsattributen
BARC_ADD_RIBBON
Hinzufügen von Ribbons zur Zeitachse
BARC_SET_RIBBON_ATTRIB
Einstellung von Ribbon-Attributen
BARC_ADD_GRID
Hinzufügen eines Zeitgitters
BARC_SET_GRID_ATTRIB
Einstellung von Gitterattributen
BARC_ADD_LAYER
Hinzufügen eines Layers (Grafikelemente)
BARC_SET_LAYER_ATTRIB
Einstellung von Layer-Attributen
BARC_ADD_LINE
Hinzufügen einer Zeile
BARC_ADD_CALENDAR
Erstellung eines Kalenders
BARC_SET_CALENDAR_ATTRIB
Einstellung von Kalenderattributen
BARC_ADD_TIME_PROFILE
Erstellung von Zeitprofilen
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Die Funktionsbausteine
BARC_SET_TIME_PROFILE_ATTRIB
Einstellung von Zeitprofilattributen
BARC_ADD_INTERVAL
Hinzufügen von Zeitintervallen
BARC_SET_INTERVAL_ATTRIB
Einstellung von Zeitintervallattributen
BARC_ADD_TIME_OBJECT
Erstellung eines Zeitobjekts
BARC_CONVERT_DATE
Erstellung eines Datumstrings im Balkenplanformat
BARC_REVERT_DATE
Umwandlung eines Datumstrings im Balkenplanformat in Datum und Uhrzeit
BARC_ADD_DATELINE
Erstellung einer Datumslinie
BARC_SET_DATELINE_ATTRIB
Einstellung von Datumslinienattributen
BARC_GET_PROFILE_CONTENTS
Ermitteln des Profilinhalts für DiagrammCustomizing
BARC_GET_COLUMN_WIDTH
Wahl einer neuen Spaltenbreite
BARC_SET_COLUMN_WIDTH
Einstellung der Spaltenbreite
BARC_GET_TEXTINDEX
Ermitteln des zu einem Feld gehörenden Textindex
BARC_SET_LABELS
Positionierung des Plans
BARC_SET_COLUMN_ATTRIB
Einstellung von Spaltenattributen
BARC_SET_ROW_ATTRIB
Einstellung von Reihenattributen
BARC_SET_ROW_HEIGHT
Einstellung der Zeilenhöhe
BARC_SET_MAXCHARTS
Einstellung der Höchstanzahl der gesendeten Diagramme
April 2001
85
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Strukturgrafik aufrufen
SAP-Strukturgrafik aufrufen Mit der SAP-Strukturgrafik können beliebige hierarchisch darstellbare Strukturen angezeigt und bearbeitet werden. Ein ABAP-Programm gibt Hierarchiestrukturdaten an und ruft den entsprechenden Funktionsbaustein auf. Das SAP-Strukturgrafikgrafikprogramm generiert aus den übergebenen Daten eine Strukturgrafik. Überblick [Seite 87] Die Funktionsbausteine [Seite 88] Beispielprogramm [Seite 227]
86
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Überblick Mit der SAP-Strukturgrafik können beliebige hierarchisch darstellbare Strukturen angezeigt und bearbeitet werden. Sie können die SAP-Strukturgrafik von einem ABAP-Programm aufrufen und auf der Workstation des Benutzers eine Hierarchie generieren. Ihr Programm gibt dabei die Knoten der Hierarchie an und ruft den folgenden Funktionsbaustein auf: ·
GRAPH_STRUCTURAL
Neben dem Funktionsbaustein GRAPH_STRUCTURAL gibt es noch weitere Funktionsbausteine, die der Steuerung der Strukturgrafik dienen.
Alle Oberflächenelemente der SAP-Strukturgrafik sind statisch. Die Funktionsbausteine GRAPH_ACTION und GRAPH_SET_CUA_STATUS sind nicht anwendbar.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Für die SAP-Strukturgrafik steht Ihnen für diesen Zweck der Funktionsbaustein GRAPH_STRU_SET_TOOLBOX zur Verfügung.
April 2001
87
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Die Funktionsbausteine
Die Funktionsbausteine Der Funktionsbaustein GRAPH_STRUCTURAL bewirkt einen Aufruf des SAPStrukturgrafikprogramms. Der einzige obligatorische Parameter ist die Objekttabelle. Darin enthalten sind auch die Verknüpfungen zwischen den Objekten. Darüberhinaus gibt es einige Standard-Dialogparameter zur Steuerung von mehreren SAP-Grafiken gleichzeitig sowie zum Layout der Strukturgrafik beim Start. Anstatt die Strukturgrafik direkt am Bildschirm anzuzeigen, kann sie auch als SAPoffice-Objekt an einen anderen Benutzer verschickt werden. Dabei wird ein Dokument vom Typ 'GRA' erzeugt, sodaß beim Auswählen des Dokuments im Eingangskorb die Strukturgrafik mit den gesendeten Daten geöffnet wird. Der Funktionsbaustein wird verlassen, wenn entweder eine Nachricht von der Strukturgrafik empfangen wurde (z.B. Bearbeitungsfunktionen) oder eine Nachricht von einer anderen Grafik vorliegt, die ebenfalls gestartet wurde. Als Rückgabeparameter erhält man das Handle der Grafik, die die Nachricht ausgelöst hat, sowie einen Nachrichtentyp. Zur weiteren Auswertung der empfangenen Nachricht steht der Funktionsbaustein GET_STRU_PARAM für die Strukturgrafik oder je ein Funktionsbaustein GET_xxxx_PARAM für die anderen Grafiktypen zur Verfügung. Eine Ausnahme wird ausgelöst, wenn entweder beim Start oder beim Nachladen die Objekttabelle leer ist oder wenn der Zugriff auf die Datenbankstruktur GSUOBJC gescheitert ist. Letzteres gilt nur bei der Verwendung des Werkzeugkastens.
Der Funktionsbaustein GRAPH_STRUCTURAL Der Funktionsbaustein GRAPH_STRUCTURAL dient als Grafiktreiber für die SAP Strukturgrafik. In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_STRUCTURAL Name
88
Status
Standardwert
ADDSHAPES
Import
SPACE
EDITABLE
Import
X
EXTACTBAR
Import
SPACE
FOCUS
Import
X
NEWFORMAT
Import
X
PATTERN
Import
SPACE
PWDID **
Import
SPACE
REFRESH **
Import
SPACE
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Die Funktionsbausteine
SO_SEND
Import
SPACE
TBOXOPEN
Import
SPACE
TBOXPOSX
Import
SPACE
TBOXPOSY
Import
SPACE
TBOXSIZEX
Import
SPACE
TBOXSIZEY
Import
SPACE
WINPOSX
Import
SPACE
WINPOSXY
Import
SPACE
WINSIZEX
Import
SPACE
WINSIZEY
Import
SPACE
M_TYP **
Export
RWNID **
Export
OBJECTS
Interne Tabelle
Hinweis: ** kennzeichnet einen Dialogparameter Dabei ist nur der Parameter OBJECTS unbedingt erforderlich.
Weitere Funktionsbausteine Neben dem Funktionsbaustein GRAPH_STRUCTURAL gibt es noch weitere Funktionsbausteine, die der Steuerung der Strukturgrafik dienen: GRAPH_STRU_SET_DISPLAY Mit diesem Funktionsbaustein kann ein beliebiger Text in einem kleinen Info-Fenster angezeigt werden. Dieser Funktionsbaustein ist u.a. dann sinnvoll, wenn beim Auswählen von Objekten in der Grafik Infos zum markierten Objekt angezeigt werden sollen. GRAPH_STRU_SET_MESSAGE Mit diesem Funktionsbaustein kann eine Nachricht an die Grafik geschickt werden, die dort in der Statuszeile angezeigt wird. GRAPH_STRU_SET_OPTIONS Es gibt in der Strukturgrafik zahlreiche Einstellungsmöglichkeiten, die nicht alle von dem Funktionsbaustein GRAPH_STRUCTURAL verwaltet werden können. Diese Einstellungen können vor dem Start der Grafik mit Hilfe dieses Funktionsbausteins voreingestellt werden. GRAPH_STRU_SET_PROFILES Zur Farb- und Formgestaltung von Objekten und Verknüpfungslinien gibt es in der Strukturgrafik die Möglichkeit, zwei Design-Profile zu verwenden, und zwar ein typorientiertes Design (abhängig vom Objekttyp bzw. der Verknüpfungsart) und ein statusorientiertes Design (abhängig vom Status des Objekts bzw. der Verknüpfung). Diese Profile werden der Strukturgrafik vor dem Start mithilfe dieses Funktionsbausteins bekanntgemacht. GRAPH_STRU_SET_TOOLBOX
April 2001
89
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Die Funktionsbausteine Eine wichtige Funktionalität der Strukturgrafik ist die Bearbeitung der Struktur bzw. der Objekte. Die gewünschten Bearbeitungsfunktionen werden in einem Werkzeugkasten in Form eines amodalen Fensters und wahlweise als Erweiterung der Menüleiste bereitgestellt. Vor dem Start der Grafik kann mit diesem Funktionsbaustein der Werkzeugkasten definiert werden.
90
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Standardgrafikanzeige ändern
Standardgrafikanzeige ändern Mit speziellen Funktionsbausteinen können Sie die Oberflächenelemente der Standardgrafikanzeige ändern oder erweitern. Überblick [Seite 92] GRAPH_SET_CUA_STATUS [Seite 96] GRAPH_ACTION oder CNET_GRAPH_ACTION [Seite 98]
April 2001
91
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Mit den folgenden Funktionsbausteinen können Sie die Standardgrafikanzeige ändern. ·
GRAPH_SET_CUA_STATUS Mit diesem Funktionsbaustein können Sie Oberflächenelemente [Seite 94] ändern bzw. hinzufügen. Dazu verwenden Sie den Menu Painter [Seite 95]. GRAPH_SET_CUA_STATUS muß vor dem Grafikprogramm aufgerufen werden. Hinweis
Verwenden Sie diesen Funktionsbaustein für die Entwicklung neuer Programme. Beachten Sie jedoch, daß GRAPH_SET_CUA_STATUS für die SAPPräsentationsgrafik, die SAP-HPGL-Anzeige und die SAP-Strukturgrafik nicht zur Verfügung steht. ·
GRAPH_ACTION Mit diesem Funktionsbaustein können Sie der Standardgrafikanzeige neue Oberflächenelemente hinzufügen. GRAPH_ACTION muß vor allen anderen Grafikfunktionsbausteinen aufgerufen werden; für die SAP-Netzplangrafik und die SAP-Balkenplangrafik steht dieser Funktionsbaustein jedoch nicht zur Verfügung. Wenn Sie mit der SAP-Netzplangrafik arbeiten, verwenden Sie CNET_GRAPH_ACTION. Auch dieser Funktionsbaustein muß vor dem entsprechenden Grafikfunktionsbaustein aufgerufen werden. Achtung
Verwenden Sie GRAPH_SET_CUA_STATUS und GRAPH_ACTION (oder CNET_GRAPH_ACTION) nicht zusammen im gleichen Programm, da dadurch die Daten zu den Oberflächenelementen überschrieben würden.
Aufgaben der Funktionsbausteine Mit den Funktionsbausteinen können Sie die Oberflächenelemente der Standardgrafikanzeige ändern oder erweitern: ·
Menüs (in der Menüleiste) Für jedes Menü können Sie bis zu acht Untermenüs definieren. Der Benutzer kann mit F1 Hilfe zu diesen Menüs aufrufen.
·
Drucktasten Die Funktionsbausteine legen die Informationen in einem statischen Speicher ab. Sobald Sie das nächste Mal ein Grafikprogramm aufrufen, werden die Informationen abgerufen, in das Grafikfenster eingefügt und anschließend aus dem statischen Speicher gelöscht. Auf diese Weise wird verhindert, daß bei weiteren Aufrufen erneut auf die Informationen zugegriffen wird. Wenn der Benutzer anschließend eines der neuen Elemente durch Klicken auswählt, gibt der wartende Funktionsbaustein eine entsprechende Nachricht an das ABAP-
92
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Überblick
Programm zurück, und Ihr Programm beantwortet die Benutzeranforderung wie erforderlich.
April 2001
93
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Oberflächenelemente
Oberflächenelemente Oberflächenelemente, die dem CUA-Standard (Common User Access) entsprechen, beispielsweise Menüs und Drucktasten. ABAP-Programme können die Standardgrafikanzeige ändern, indem sie vorhandene Menüs und Drucktasten umbenennen oder zusätzliche Grafikfunktionen definieren. Dies ist in allen Grafikprogrammen mit Ausnahme der SAP-Präsentationsgrafik und der SAP-HPGL-Anzeige möglich.
94
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Menu Painter
Menu Painter Der Menu Painter ist eines der Werkzeuge, die über die ABAP Development Workbench zur Verfügung stehen. Mit diesem Werkzeug können Sie die in einem Programm integrierten Funktionen bestimmten Menüs, Funktions- oder Drucktasten zuweisen. Sie rufen den Menu Painter über Transaktion SE41 auf.
April 2001
95
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
GRAPH_SET_CUA_STATUS
GRAPH_SET_CUA_STATUS Wenn Sie mit dem Menu Painter Oberflächenelemente definiert haben, sendet GRAPH_SET_CUA_STATUS diese Informationen an das Grafikprogramm. Dieser Funktionsbaustein ist nicht für die SAP-Präsentationsgrafik, die SAP-HPGL-Anzeige und die SAP-Strukturgrafik verfügbar. Menüeinträge, die im Grafikprogramm direkte Aktionen auslösen, werden von Standardfunktionscodes definiert. Diese Funktionscodes sind im Referenzbildschirm definiert; Sie können über Include-Menüs darauf zugreifen. Folgende Referenzbildschirme stehen zur Verfügung: SAP-Hierarchiegrafik
SAPLHIER / MAIN
SAP-Netzplangrafik
SAPLCNET / GRAFIK
SAP-Balkenplangrafik
SAPLBARC / GRAFIK
SAP-Statistikgrafik
SAPLSTAT / MAIN
SAP-Gantt-Diagramm
SAPLGANT / MAIN
SAP-Drucktastengrafik
SAPLBMAT / MAIN
SAP-Textmatrix
SAPLBMAT / MAIN
SAP-Portfoliografik
SAPLPORT / MAIN
Für die Erstellung von anwendungsspezifischen Menüeinträgen verwenden Sie Funktionscodes, die mit den Buchstaben X, Y oder Z beginnen. Wenn der Dialogbenutzer einen Menüeintrag auswählt, wird der Funktionscode direkt an das ABAP-Programm gemeldet. Das ABAP-Programm analysiert den Funktionscode mit den folgenden Rückgabeparametern der jeweiligen Funktionsbausteine: ·
SAP-Netzplangrafik:
GR_MES
·
SAP-Balkenplangrafik:
GRAPH_CMD
·
Alle anderen Grafikprogramme: M_TYP = 'I', = '0' ® CUA_ID =
Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Hinweis
Wenn Sie eine kundendefinierte Benutzeroberfläche verwenden, müssen Sie vor dem Aufruf des Grafikprogramms den Oberflächenstatus festlegen. Dazu verwenden Sie die entsprechenden Parameter des Funktionsbausteins GRAPH_SET_CUA_STATUS.
96
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen GRAPH_SET_CUA_STATUS Achtung
Verwenden Sie GRAPH_SET_CUA_STATUS und GRAPH_ACTION (bzw. CNET_GRAPH_ACTION) nicht zusammen im gleichen Programm, da dadurch die Daten zu den Oberflächenelementen überschrieben würden.
April 2001
97
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
GRAPH_ACTION oder CNET_GRAPH_ACTION
GRAPH_ACTION oder CNET_GRAPH_ACTION Diese Funktionsbausteine senden Informationen über zusätzliche Oberflächenelemente an das Grafikprogramm. GRAPH_ACTION und CNET_GRAPH_ACTION stehen für die SAP-Präsentationsgrafik und die SAP-Strukturgrafik nicht zur Verfügung. So definieren Sie zusätzliche Oberflächenelemente: 1. Rufen Sie GRAPH_ACTION oder CNET_GRAPH_ACTION mit den gewünschten Oberflächeninformationen auf. 2. Rufen Sie den Funktionsbaustein des Grafikprogramms auf, das in dem Fenster läuft, dem Sie die neuen Oberflächenelemente hinzufügen möchten. Dieser Aufruf muß eine Bildschirmaktualisierung anfordern (mit STAT='3' oder '5'), damit die neuen Oberflächenelemente im Fenster angezeigt werden können. Verwendung von GRAPH_ACTION: Das ABAP-Programm muß sicherstellen, daß unmittelbar nach GRAPH_ACTION das Grafikprogramm aufgerufen wird, in dessen Fenster Sie die neuen Elemente einfügen möchten. Wird zwischen diesen beiden Aufrufen ein anderes Grafikprogramm aufgerufen, werden die neuen Oberflächenelemente in das falsche Fenster eingefügt. Wenn Sie beispielsweise neue Oberflächenelemente in ein SAP-Statistikfenster einfügen möchten, aber GRAPH_GANTT vor dem Statistikfunktionsbaustein aufrufen, werden die neuen Elemente in das GANTT-Fenster eingefügt. Eine Ausnahme hierzu bildet das SAP-Präsentationsgrafikprogramm, das die Oberflächenelemente ignoriert. Sie können daher beliebig viele BUSG-Funktionsbausteine aufrufen, ohne daß die Oberflächeninformationen aus dem statischen Speicher gelöscht werden. (In zukünftigen Releases kann sich dies jedoch ändern.) Verwendung von CNET_GRAPH_ACTION: Die Oberflächeninformationen in CNET_GRAPH_ACTION werden ausschließlich von den SAP-Netzplanfunktionsbausteinen berücksichtigt; Sie können also auch andere Grafikprogramme aufrufen, ohne daß die Oberflächeninformationen aus dem statischen Speicher gelöscht werden. Allgemein: Sie können durch den Aufruf von GRAPH_ACTION oder CNET_GRAPH_ACTION neue oder bereits geöffnete Fenster aktualisieren und bei jedem Aufruf eines Funktionsbausteins des Grafikprogramms Oberflächenelemente ändern oder hinzufügen. Haben Sie in Ihrem Grafikprogramm mehrere Fenster geöffnet, wird nur das nächste Fenster aktualisiert. Für GRAPH_ACTION und CNET_GRAPH_ACTION werden die gleichen Parameter verwendet. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_ACTION und CNET_GRAPH_ACTION Name
98
Status
ACTBAR
Interne Tabelle
ACTION
Interne Tabelle
HELP
Interne Tabelle
Standardwert
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen GRAPH_ACTION oder CNET_GRAPH_ACTION
Diese Tabellenparameter verwenden keine im Data Dictionary definierten Referenztabellen. Sie müssen jedoch die Strukturen in der Parameterbeschreibung genau beachten.
Nach dem Aufruf von GRAPH_ACTION Die Grafikfunktionsbausteine, die Sie nach GRAPH_ACTION aufrufen, melden in einem Typenparameter und im Parameter CUA_ID, welche Oberflächenelemente der Benutzer ausgewählt hat. Die verwendeten Typenparameter sind beispielsweise B_TYP, G_TYP, S_TYP usw., je nach Grafikprogramm. Ihre Werte haben folgende Bedeutung: '0': Der Benutzer hat einen Menüeintrag ausgewählt. CUA_ID gibt den Inhalt des Felds ACTBAR zurück. '1': Der Benutzer hat Hilfe zu einem Menüeintrag angefordert. CUA_ID gibt den Inhalt des Felds ACTBAR- zurück. '2': Der Benutzer hat eine Drucktaste ausgewählt. CUA_ID gibt den Inhalt des Felds ACTION zurück.
Nach dem Aufruf von CNET_GRAPH_ACTION Die Funktionbausteine des SAP-Netzplangrafikprogramms melden mit dem Exportparameter GR_MES, welche Oberflächenelemente der Benutzer ausgewählt hat. GR_MES kann sowohl feste als auch variable Benutzeraktionen melden (feste Werte werden unter den Funktionsbausteinen des SAP-Netzplangrafikprogramms aufgelistet). Bei einem variablen Wert muß es sich um einen der CUA-Werte handeln, die beim Aufruf von CNET_GRAPH_ACTION angegeben wurden. Die CUA-Werte befinden sich in den folgenden Parameterfeldern: –
ACTBAR-
–
ACTBAR-
–
ACTION-
April 2001
99
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Dialoganwendungen programmieren
Dialoganwendungen programmieren Wenn eine Anwendung eine Benutzereingaben zulassen soll, dann ist Dialogprogrammierung erforderlich. Einführung in die Dialogprogrammierung [Seite 101] Dialogprogrammierung vor Release 2.1 [Seite 110] Aktuelle Dialogprogrammierung [Seite 116]
100
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Einführung in die Dialogprogrammierung
Einführung in die Dialogprogrammierung Die folgenden Themen erläutern die Grundlagen der Dialogprogrammierung. Überblick [Seite 102] Für welche ABAP-Programme ist Dialogprogrammierung erforderlich? [Seite 103] Dialogfunktionen [Seite 105] Mehrere Fenster verwalten [Seite 107] Zusammenfassung der Dialogprogrammierung [Seite 108]
April 2001
101
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Überblick
Überblick Wenn der Dialogbenutzer mehrere Fenster öffnen und Eingaben über die Maus oder die Tastatur vornehmen kann, ist die Anwendung interaktiv. In diesem Fall ist Dialogprogrammierung erforderlich. ABAP-Programme, die Grafikfunktionsbausteine aufrufen, können entweder einfach oder komplex sein. Bei den einfachsten Anwendungen läuft eventuell nur ein Grafikprogramm in einem einzigen Fenster ab. Dabei wird der Funktionsbaustein aufgerufen und ein Fenster zur Datenanzeige geöffnet. Anschließend wartet die Anwendung darauf, daß der Dialogbenutzer das Fenster wieder schließt. Bei diesen Anwendungen müssen Sie eventuell überhaupt keine Dialogprogrammierung vornehmen. Eine etwas komplexere Anwendung verwendet zwar auch nur ein Fenster, ermöglicht jedoch eine begrenzte Interaktion zwischen ABAP-Programm und dem Dialogbenutzer. Bei sehr komplexen Anwendungen kann die Interaktion über mehrere Fenster erfolgen. Wenn Sie nicht genau wissen, ob für Ihre Anwendung Dialogprogrammierung notwendig ist, lesen Sie den Abschnitt "Für welche ABAP-Programme ist Dialogprogrammierung erforderlich?". Hier werden "einfache" Programme definiert und Hinweise dazu gegeben, wie Sie die Dialogprogrammierung umgehen können. In diesem Abschnitt werden die Mechanismen beschrieben, mit denen Sie die Interaktion zwischen ABAP-Programm und Dialogbenutzer steuern können: ·
Dialogprogrammierung vor Release 2.1 In bereits vorhandenen ABAP-Programmen werden Dialogparameter beim Aufruf von Grafikfunktionsbausteinen verwendet. Sie weisen die Funktionsbausteine an, auf Benutzereingaben zu warten und Benutzereingaben entgegenzunehmen. Diese Methode sollten Sie nur für bereits vorhandene Programme, nicht jedoch für neue Programme verwenden.
·
Aktuelle Dialogprogrammierung In neuen ABAP-Programmen müssen Sie zusammen mit den Grafikfunktionsbausteinen auch GRAPH_RECEIVE aufrufen. Dieser Utility-Funktionsbaustein übernimmt die Wartefunktion. Sobald eine Nachricht entgegengenommen wurde, müssen Sie mit GET_xxxx_PARAM Einzelheiten der Nachricht abrufen. Hinweis
In der SAP-Netzplangrafik und der SAP-Balkenplangrafik steht der Funktionsbaustein GET_xxxx_PARAM nicht zur Verfügung.
102
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Für welche ABAP-Programme ist Dialogprogrammierung erforderlich?
Für welche ABAP-Programme ist Dialogprogrammierung erforderlich? Der ABAP-Programmierer kann die Interaktion zwischen ABAP-Programm und Dialogbenutzer mit zwei Mechanismen steuern: ·
Grafikfunktionsbausteine mit Dialogparametern (Parameter STAT, M_TYP, PWDID, SUPER, WINID und RWNID)
·
Grafikfunktionsbausteine mit Dialogparametern (Parameter STAT, PWDID, SUPER und WINID) plus Utility-Funktionsbausteine:
GRAPH_RECEIVE (mit Dialogparametern ACTIVATE_RAISE, ERRORCODE, MCODE und RWNID) GET_xxxx_PARAM Bei neuen Programmen sollten Sie nur den zweiten Mechanismus verwenden, also Grafikfunktionsbausteine zusammen mit den Utility-Funktionsbausteinen. Eventuell ist für Ihre Anwendung überhaupt keine Dialogprogrammierung erforderlich; dies richtet sich danach, ob die Anwendung einfach, komplex oder äußerst komplex ist. ·
"Sehr einfache" Anwendungen haben folgende Merkmale: -
Im Programm kann immer nur ein Fenster geöffnet werden. Da Ihr Programm nicht mehrere Fenster gleichzeitig verwalten muß, sind auch die Dialogparameter WINID, PWDID und SUPER nicht erforderlich.
-
Ihr Programm startet lediglich das Grafikprogramm, reagiert danach aber nicht auf Benutzereingaben über Maus oder Tastatur. Mindestens einer der vom ABAP-Programm aufgerufenen Funktionsbausteine muß ein wartender Funktionsbaustein sein. Deshalb muß das Programm den Funktionsbaustein anweisen, auf Eingaben zu warten, obwohl es selbst auf Benutzereingaben nicht reagiert. (Eine genauere Erklärung finden Sie unter "Auf Benutzereingaben warten" unter den Themen Steuerung des Dialogs mit Dialogparametern [Seite 111] und Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen [Seite 117].) Für diese Programmart sind keine Dialogparameter erforderlich. Da der Standardwert für STAT die Wartefunktion vorsieht, brauchen Sie für diesen Parameter keinen Wert anzugeben. Da Ihr Programm Benutzereingaben nicht berücksichtigt, sind auch die Dialogparameter nicht erforderlich, mit denen Benutzereingaben gemeldet werden.
·
"Komplexe" Anwendungen: -
April 2001
Ihr Programm öffnet nur ein Fenster und wartet anschließend darauf, daß der Benutzer Menüeinträge auswählt. (Die Funktionsbausteine GRAPH_HIERARCHY_MENUE und GRAPH_BUTTON_MENUE generieren Menüs und melden dem ABAP-Programm, welchen Menüeintrag der Benutzer ausgewählt
103
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Für welche ABAP-Programme ist Dialogprogrammierung erforderlich? hat. Dabei geben die Menüparameter nicht nur den Menüeintrag, sondern auch den jeweiligen Hierarchieknoten bzw. die entsprechende Drucktaste zurück.) Da der Standardwert für STAT die Wartefunktion spezifiziert, brauchen Sie diesen Parameter nicht anzugeben. Die Nachrichtencodeparameter MCODE oder M_TYP sind dagegen erforderlich; sie teilen dem Programm mit, daß der Benutzer das Fenster geschlossen hat. Alle anderen Dialogparameter können Sie ignorieren. ·
"Äußerst komplexe" Anwendungen: -
Ihr Programm öffnet mehrere Fenster und wartet darauf, daß der Benutzer Eingaben über diese Fenster vornimmt. Sie müssen die Parameter STAT, MCODE (M_TYP), WINID und PWDID (eventuell auch SUPER) verwenden.
-
Ihr Programm reagiert nicht nur auf die Auswahl von Menüeinträgen, sondern auch auf andere Benutzereingaben (beispielsweise Tastatureingaben oder ENTER). Sie müssen STAT, MCODE (M_TYP) und RWNID verwenden. Der Dialogbenutzer kann beispielsweise im ersten Fenster einen Menüeintrag auswählen, wodurch ein zweites Fenster aufgerufen wird. In den beiden Fenstern kann das gleiche Programm ablaufen; es kann sich aber auch um verschiedene Programme handeln. Angenommen, im ersten Fenster läuft das SAP-Hierarchieprogramm. Wenn der Benutzer einen Knoten auswählt, kann dadurch ein zweites Fenster geöffnet werden, in dem das SAP-Statistikprogramm gestartet und ein Diagramm für den ausgewählten Knoten angezeigt wird.
104
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Dialogfunktionen
Dialogfunktionen ABAP-Programme können unterschiedliche Benutzereingaben zulassen, und die Grafikfunktionsbausteine können entweder alle oder nur bestimmte der folgenden Benutzeraktionen melden: ·
Auswahl von Elementen im Grafikfenster, beispielsweise Hierarchieknoten, Drucktasten, Diagrammbalken, Kurvenpunkte usw. Der Funktionsbaustein meldet dem Anwendungsprogramm, welches Element der Benutzer ausgewählt hat.
·
Auswahl von Elementen im Grafikfenster. Dies entspricht im wesentlichen dem oben genannten Punkt, der Funktionsbaustein zeigt jedoch zusätzlich ein Menü an, aus dem der Dialogbenutzer einen Eintrag auswählen kann. Anschließend meldet der Funktionsbaustein dem Anwendungsprogramm, welches Element und welchen Menüeintrag der Benutzer ausgewählt hat.
·
Bearbeitung der numerischen Werte eines Diagrammelements (beispielsweise Diagrammbalken). Der Funktionsbaustein meldet dem Anwendungsprogramm das ausgewählte Element sowie seinen neuen Wert.
·
Tastatureingaben: Der Funktionsbaustein meldet dem Anwendungsprogramm, welche Taste der Benutzer gedrückt hat.
·
Schließen des Grafikfensters über Menüeinträge oder die Taste F3 unten im Fenster. Der Funktionsbaustein meldet dem Anwendungsprogramm, daß das Grafikprogramm beendet wurde.
Die Reaktion des ABAP-Programms auf diese Benutzeraktionen richtet sich nach dem jeweiligen Anwendungsprogramm. Verwechseln Sie die oben genannten Benutzereingaben nicht mit den Menüs und Drucktasten, die das Grafikprogramm selbst unterstützt. Grundsätzlich sind zwei verschiedene Arten von Benutzeraktionen zu unterscheiden, die folgende Funktionen aufrufen: ·
Funktionen, die nicht zum Grafikprogramm gehören, d. h., alle oben aufgelisteten Aktionen. Die im zweiten Punkt genannte Auswahl von Menüeinträgen bezieht sich auf Menüs, die angezeigt werden, wenn der Benutzer ein Diagrammobjekt durch Klicken auswählt. Diese Funktionen können nicht vom Grafikprogramm allein ausgeführt werden, sondern nur vom ABAP-Programm und vom Funktionsbaustein zusammen.
·
Benutzeraktionen, die ausschließlich lokale Funktionen des Grafikprogramms aufrufen. Diese Funktionen werden vom Grafikprogramm alleine ausgeführt. Es erfolgt keine Rückmeldung an den Funktionsbaustein. Es handelt sich um lokale Funktionen, wenn: -
der Benutzer Drucktasten im Fenster durch Klicken auswählt
-
der Benutzer einen Menüeintrag in der Menüleiste des Grafikfensters durch Klicken auswählt.
Die einzige Ausnahme bildet das Beenden des Grafikprogramms. Der Benutzer kann das Grafikprogramm über einen Menüeintrag oder eine Drucktaste beenden; diese Anforderung wird zwar vom Grafikprogramm ausgeführt, aber auch an das ABAPProgramm gemeldet. Das ABAP-Programm ignoriert alle Benutzeraktionen der zweiten Kategorie, jedoch nicht das Beenden des Grafikprogramms.
April 2001
105
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Dialogfunktionen
106
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Mehrere Fenster verwalten
Mehrere Fenster verwalten Das in einem Fenster laufende Grafikprogramm ist auf der Workstation des Benutzers aktiv, selbst wenn der Funktionsbaustein, der das Programm aufgerufen hat, bereits zurückgekehrt ist. Wenn der Benutzer auf seiner Workstation zwei Fenster geöffnet hat, in denen das gleiche Grafikprogramm läuft, wurden zwei Programmkopien gestartet. Dabei verarbeitet jede Kopie nur die Anforderungen des zugehörigen Fensters. Schließt der Benutzer eines der Fenster, bleibt das andere trotzdem aktiv. Das ABAP-Programm muß alle folgenden Fensterfunktionen verarbeiten können: ·
Fenster-ID zuweisen, wenn das Fenster geöffnet wird. Wenn Sie die Fenster-ID nicht ausdrücklich angeben, erhält das Fenster einen Standardnamen (siehe Parameter WINID).
·
Benutzereingaben von einem beliebigen Fenster entgegennehmen. Das Programm muß nicht nur die Fenster-IDs erkennen, sondern auch die Funktionsbausteine, die die Fenster erstellt haben (siehe Parameter RWNID).
·
Neue Daten an beliebige Fenster senden (siehe Parameter WINID).
·
Das Schließen von Fenstern registrieren. Das ABAP-Programm darf keine Daten an ein Fenster senden, das bereits geschlossen wurde. Das geschlossene Fenster kann jedoch unter dem gleichen Namen wieder geöffnet werden.
·
Dem Funktionsbaustein den Namen des Vorgängerfensters mitteilen, wenn ein Nachfolgerfenster geöffnet wird (siehe Parameter PWDID).
Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Das ABAP-Programm muß die Baumstruktur der Fenster nicht verwalten, da dies die Aufgabe des Grafikprogramms ist. Dabei spielt es keine Rolle, welche Grafikprogramme gerade ablaufen oder welche Funktionsbausteine auf Benutzereingaben warten. Mit den Parametern SUPER oder PWDID weist das ABAP-Programm den Funktionsbaustein an, wie die Fenster geschlossen werden sollen. Diese Informationen werden an das Grafikprogramm weitergeleitet. Sobald der Dialogbenutzer das Fenster schließt, wird das Grafikprogramm beendet und das Fenster (sowie eventuell vorhandene Nachfolgerfenster) geschlossen.
April 2001
107
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Zusammenfassung der Dialogprogrammierung
Zusammenfassung der Dialogprogrammierung Der ABAP-Programmierer steuert die Interaktion zwischen ABAP-Programm und Dialogbenutzer mit zwei Mechanismen. Eventuell sind in Ihrem Programm nicht alle der verfügbaren Funktionen erforderlich. Beachten Sie, daß die beiden Mechanismen nicht in einem Programm zusammen verwendet werden dürfen. Folgende Mechanismen stehen zur Verfügung: ·
Dialogprogrammierung mit Dialogparametern In bereits vorhandenen ABAP-Programmen werden Dialogparameter beim Aufruf von Grafikfunktionsbausteinen verwendet. Sie weisen die Funktionsbausteine an, auf Benutzereingaben zu warten und Benutzereingaben entgegenzunehmen. Der wartende Funktionsbaustein fängt alle Nachrichten der Warteschlange ab und setzt die Werte der Exportparameter. Dabei spielt es keine Rolle, von welchem Programm die Nachrichten stammen. Sie müssen also jeweils nur einen Funktionsbaustein anweisen, auf Benutzereingaben zu warten.
Die Grafikfunktionsbausteine ohne Utility-Funktion können zur Rückgabe ihrer eigenen Exportparameter verwendet werden, um die Kompatibilität mit älteren ABAP-Programmen zu gewährleisten. Dazu sind die Parameter RWNID und M_TYP sowie zusätzliche Werte für STAT erforderlich. Für neue Programme sollte diese Methode jedoch nicht verwendet werden. ·
Dialogprogrammierung mit GRAPH_RECEIVE und GET_xxxx_PARAM Bei neuen Programmen sollten Sie ausschließlich diesen Mechanismus verwenden. Nach dem Aufruf eines Grafikfunktionsbausteins müssen Sie den Funktionsbaustein GRAPH_RECEIVE aufrufen, der auf Nachrichten wartet. (Eine genaue Erklärung finden Sie unter "Auf Benutzereingaben warten" im Abschnitt Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen [Seite 117].) Jedes ABAP/-Programm, das auf die von GRAPH_RECEIVE gemeldeten Benutzereingaben reagiert, muß GET_xxxx_PARAM für das entsprechende Grafikprogramm aufrufen. Zahlreiche Exportparameter der Grafikfunktionsbausteine werden erst aktiviert, wenn der Funktionsbaustein GET_xxxx_PARAM aufgerufen wird. Die regulären Grafikfunktionsbausteine haben im wesentlichen nur Import- und Tabellenparameter, die Funktionsbausteine GET_xxxx_PARAM dagegen nur Export- und Tabellenparameter. Bei GET_xxxx_PARAM handelt es sich um die Funktionsbausteine der einzelnen Grafikprogramme. Die Buchstaben xxxx sind Platzhalter für BMAT, BUSG, GANTT, HIER, HPGL, NETZ, PORT oder STAT. Die folgenden Dialogparameter können Sie mit dem Funktionsbaustein verwenden, der Ihr Grafikprogramm aufruft. -
STAT Der Parameter STAT ist erforderlich, wenn Ihr Programm Daten an ein bereits geöffnetes Fenster überträgt.
-
108
WINID
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Zusammenfassung der Dialogprogrammierung
In der Regel ist WINID erforderlich, wenn Ihr Programm mehrere Fenster öffnet und Daten selektiv zwischen den geöffneten Fenstern überträgt. -
PWDID und SUPER Mit PWDID und SUPER legen Sie fest, wie das Programm Fenster schließen soll, wenn mehrere Fenster gleichzeitig geöffnet sind. Beide Parameter sind optional; sie schließen sich jedoch gegenseitig aus.
·
Sie müssen die Dialogparameter in Ihrem Anwendungsprogramm nicht angeben, da die Funktionsbausteine automatisch Standardwerte für die Parameter verwenden. Die Standardwerte sind für alle Funktionsbausteine identisch. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37).
April 2001
109
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Dialogprogrammierung vor Release 2.1
Dialogprogrammierung vor Release 2.1 Die Interaktion zwischen Dialogbenutzer und ABAP-Programm wird vor Release 2.1 ausschließlich mit Dialogparametern gesteuert. Steuerung des Dialogs mit Dialogparametern [Seite 111] Mit GRAPH_DIALOG Fenster vom ABAP-Programm aus schließen [Seite 114]
110
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Steuerung des Dialogs mit Dialogparametern
Steuerung des Dialogs mit Dialogparametern Sie steuern die Interaktion zwischen Dialogbenutzer und ABAP-Programm mit mehreren Dialogparametern: Funktionsbaustein anweisen, welche Aufgaben auszuführen sind ·
STAT: Status, mit dem der Funktionsbaustein aufgerufen wurde Benutzereingabe erhalten
·
M_TYP:
Art der Nachricht, die vom Grafikprogramm zurückgegeben wurde
·
RWNID:
ID des Fensters, in dem der Benutzer eine Eingabe vorgenommen hat
Fenster öffnen und schließen ·
PWDID:
·
WINID: ID des aktuellen Fensters (bereits vorhanden oder noch zu öffnen)
·
SUPER:
Vorgängerfenster des neu geöffneten Fensters
markiert das aktuelle Fenster als "Exit-Fenster"
Der Hauptparameter STAT teilt dem Funktionsbaustein mit, welche Funktionen beim Aufruf ausgeführt werden sollen: ·
Fenster öffnen und Grafikprogramm darin starten
·
Daten an das Grafikfenster übertragen
·
auf Eingaben im Fenster warten
Wenn in Ihrem Programm mehrere Fenster geöffnet werden können, werden die Funktionsbausteinaufrufe in der Regel in eine Programmschleife eingereiht. Sobald der Funktionsbaustein eine neue Benutzereingabe entgegennimmt, wird die Programmschleife gestartet. (Einzelheiten hierzu finden Sie im Beispielprogramm im Abschnitt "Auf Benutzereingaben warten".) Der STAT-Wert zum Aufruf eines Funktionsbausteins richtet sich danach, welche der drei oben genannten Funktionen benötigt wird. So ist das Öffnen eines Fensters normalerweise nur beim ersten Aufruf erforderlich. Wenn Sie die Dialogparameter in Ihrem Anwendungsprogramm nicht verwenden, gibt der Funktionsbaustein bestimmte Standardwerte dafür vor. Diese Standardwerte ändern sich nie, egal, welche Funktionsbausteine Sie aufrufen.
Auf Benutzereingaben warten Mit dem Parameter STAT weisen Sie den Funktionsbaustein an, auf Benutzereingaben zu warten. Ein wartender Funktionsbaustein gibt erst Daten an das ABAP-Programm zurück, wenn er eine Eingabe vom Grafikprogramm erhalten hat. Bei dieser Eingabe kann es sich auch um die Nachricht handeln, daß ein Grafikfenster geschlossen wurde. Das ABAP-Programm muß einem der aufgerufenen Grafikfunktionsbausteine die Wartefunktion übertragen, da durch den Aufruf des Funktionsbausteins mit Wartestatus die Aktionen "realisiert" werden, die mit den Funktionsbausteinen ohne Wartestatus angefordert wurden: ·
Fenster, die in Aufrufen ohne Wartestatus erstellt wurden, werden erst auf dem Bildschirm angezeigt, wenn der wartende Funktionsbaustein aufgerufen wird.
April 2001
111
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Steuerung des Dialogs mit Dialogparametern ·
Daten, die in Aufrufen ohne Wartestatus an bereits vorhandene Fenster gesendet wurden, werden erst angezeigt, wenn ein Funktionsbaustein mit Wartestatus aufgerufen wird.
Ein wartender Funktionsbaustein nimmt nicht nur die Eingaben seines eigenen Programms entgegen, sondern die Eingaben aller Grafikprogramme. Sämtliche zurückgegebenen Nachrichten der aktiven Grafikprogramme werden in eine gemeinsame Warteschlange eingereiht. Der Funktionsbaustein meldet dem ABAP-Programm jedoch jeweils nur eine Nachricht. Sie sollten die Wartefunktion daher jeweils nur einem Funktionsbaustein übertragen. Dieser Funktionsbaustein reiht alle Nachrichten in die Warteschlange ein und stellt sie dem Programm zur Verfügung. Alle anderen Funktionsbausteine werden mit dem STAT-Wert "Nicht warten" aufgerufen. Sie haben eine "Nur-Ausgabe-Funktion", d. h., sie öffnen lediglich neue Grafikfenster und übertragen Daten an diese Fenster, bevor sie zum ABAP/-Programm zurückkehren. Grafikprogramme, die von Funktionsbausteinen ohne Wartestatus aufgerufen werden, bleiben jedoch auch dann aktiv, wenn der Funktionsbaustein bereits zum ABAP-Programm zurückgekehrt ist. Das folgende Beispiel zeigt, wie mehrere Funktionsbausteinaufrufe auf einfache Weise in einem Programm kombiniert werden können. LOOP UNTIL (Benutzereingabe verfügbar) ... CALL Funktionsbaustein1 EXPORTING STAT = STAT1.
"nicht warten
CALL Funktionsbaustein 2 EXPORTING STAT = STAT2.
"nicht warten
CALL Funktionsbaustein 3 EXPORTING STAT = STAT3.
"nicht warten
CALL Funktionsbaustein 4 EXPORTING
STAT = STAT4
"warten
... [Mit STAT-Werten festlegen, wie die Funktionsbausteine zukünftig aufgerufen werden sollen] ... ENDLOOP Dieses Beispiel zeigt lediglich die Verwendung des Parameters STAT. Andere Dialogparameter, wie z. B. Fensterparameter, wurden nicht berücksichtigt. In diesem Programm können zwar mehrere Fenster geöffnet werden; Benutzereingaben werden jedoch erst entgegengenommen, wenn auch das letzte Fenster geöffnet wurde. Die STAT-Werte sollten nach jeder abgeschlossenen Programmschleife geändert werden. Die genauen Werte richten sich dabei nach der Eingabe, die Funktionsbaustein 4 gemeldet hat.
112
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Steuerung des Dialogs mit Dialogparametern
Die Fenster, die in den drei ersten Aufrufen erstellt wurden, werden erst auf dem Bildschirm angezeigt, wenn auch der letzte Funktionsbaustein aufgerufen wurde. Auf diese Weise wird sichergestellt, daß keine Benutzereingaben in den verschiedenen Fenstern verlorengehen.
So verarbeitet der wartende Funktionsbaustein die Rückgabeparameter Der wartende Funktionsbaustein verarbeitet die zurückgegebenen Nachrichten auf unterschiedliche Weise, je nachdem, welches Grafikprogramm die Nachrichten gesendet hat. Wurden die Nachrichten vom eigenen Grafikprogramm gesendet (beispielsweise erhielt GRAPH_3D eine Nachricht vom SAP-Präsentationsgrafikprogramm), setzt der Funktionsbaustein die Werte aller Exportparameter und kehrt zum ABAP-Programm zurück.
Im oben genannten Beispiel kann GRAPH_3D die Rückgabeparameter für alle Nachrichten setzen, die das SAP-Präsentationsgrafikprogramm gesendet hat. Dies gilt für alle Parameter des SAP-Präsentationsgrafikprogramms, unabhängig davon, ob GRAPH_3D sie verwendet oder nicht. Mit anderen Worten: Ein Funktionsbaustein eines Grafikprogramms kann alle Rückgabeparameter dieses Grafikprogramms setzen, einschließlich der Parameter anderer Funktionsbausteine. Die einzige Voraussetzung ist, daß die anderen Funktionsbausteine das gleiche Grafikprogramm aufrufen. Wenn der wartende Funktionsbaustein dagegen Nachrichten von einem anderen Grafikprogramm erhält (GRAPH_3D erhält beispielsweise eine Nachricht vom SAPStatistikprogramm), stehen ihm keine Informationen über die entsprechenden Exportparameter und die erforderlichen Werte zur Verfügung. In diesem Fall kann der wartende Funktionsbaustein nur ungültige Exportparameter zurückgeben.
So verarbeitet das ABAP-Programm die Rückgabeparameter Wenn der wartende Funktionsbaustein zurückkehrt, ermittelt das ABAP-Programm mit Hilfe des Parameters M_TYP, ob die Werte der zurückgegebenen Parameter gültig sind. Ist dies nicht der Fall, ist eine besondere Verarbeitungsmethode erforderlich, um die korrekten Werte anzufordern. Über den Parameter RWNID kann das ABAP-Programm feststellen, welches Grafikprogramm die erhaltene Nachricht gesendet hat. RWNID bezeichnet den Namen des Fensters, in dem der Benutzer eine Eingabe vorgenommen hat, sowie das Grafikprogramm, das in diesem Fenster läuft. (Einzelheiten zu den Formaten der Fenster-IDs finden Sie unter den Parametern WINID und RWNID.) Wenn der Parameter M_TYP bestätigt, daß die Werte der Exportparameter korrekt sind, kann das ABAP-Programm diese Informationen sofort verwenden. Sind die Werte der Exportparameter dagegen nicht gültig, muß das ABAP-Programm einen beliebigen Funktionsbaustein des Grafikprogramms mit dem STAT-Wert 'R' (Reuse) aufrufen. Dadurch wird der Funktionsbaustein angewiesen, die Parameterwerte dem statischen Speicher zu entnehmen und die korrekten Rückgabeparameter zu setzen. Angenommen, das SAP-Präsentationsgrafikprogramm hat die Nachricht gesendet. In diesem Fall kann das ABAP-Programm einen beliebigen Funktionsbaustein dieses Programms aufrufen. Es muß sich dabei nicht um den Funktionsbaustein handeln, der das Fenster geöffnet hat.
April 2001
113
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Mit GRAPH_DIALOG Fenster vom ABAP-Programm aus schließen
Mit GRAPH_DIALOG Fenster vom ABAP-Programm aus schließen Dieser Funktionsbaustein gehört zum alten Wartemechanismus, der für neue Programme nicht mehr verwendet werden sollte. Der Funktionsbaustein GRAPH_DIALOG ruft keine Grafikprogramme auf, sondern stellt bestimmte Utility-Funktionen zur Verfügung: ·
Schließen von Fenstern
·
Wartefunktion
Parameter In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_DIALOG Name
Status
Standardwert
CLOSE
Import
SPACE
INBUF **
Import
SPACE
KWDID
Import
SPACE
STAT **
Import
SPACE
M_TYP **
Export
RBUFF **
Export
RWNID **
Export
Hinweis: ** kennzeichnet einen Dialogparameter Möchten Sie nur Fenster schließen, sind lediglich die Parameter KWNID oder CLOSE erforderlich. Wenn der Funktionsbaustein dagegen nur eine Wartefunktion wahrnehmen soll, benötigen Sie nur die Parameter M_TYP und RWNID. Für STAT wird standardmäßig der Wartewert SPACE verwendet. (INBUF und RBUFF sind ältere Parameter, die nicht mehr benötigt werden. Sie sollten sie daher zur Aktualisierung bereits vorhandener Programme nicht verwenden.)
Fenster mit GRAPH_DIALOG schließen GRAPH_DIALOG dient in erster Linie dazu, ein Fenster vom ABAP-Programm aus zu schließen. Dabei kann das ABAP-Programm entweder alle oder nur ein Fenster schließen.
114
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Mit GRAPH_DIALOG Fenster vom ABAP-Programm aus schließen
In der Regel werden die Fenster vom Dialogbenutzer geschlossen. Der auf Benutzereingaben wartende Funktionsbaustein meldet dem ABAP-Programm, daß das Fenster geschlossen wurde. In manchen Fällen muß das ABAP-Programm jedoch selbst ein Fenster schließen. In diesem Fall sollte das ABAP-Programm den Funktionsbaustein GRAPH_DIALOG aufrufen und dabei den Parameter KWDID auf den Wert einer gültigen Fenster-ID setzen.
GRAPH_DIALOG als wartenden Funktionsbaustein verwenden Sie können GRAPH_DIALOG auch zum Warten auf Benutzereingaben einsetzen und dadurch die Verwendung der Rückgabeparameter vereinfachen. Da GRAPH_DIALOG kein Grafikprogramm aufruft, werden alle Nachrichten von Grafikprogrammen konsistent verarbeitet; es spielt dabei keine Rolle, ob die Nachricht vom Grafikprogramm des wartenden Funktionsbausteins oder einem anderen Grafikprogramm gesendet wurde. Wenn GRAPH_DIALOG als wartender Funktionsbaustein eingesetzt wird, ist für M_TYP (Nachrichtenart) der Wert 'I' nicht möglich. Unter Steuerung des Dialogs mit Dialogparametern [Seite 111] wird genauer beschrieben, wie die Rückgabeparameter verarbeitet werden.
Dialoganwendungen programmieren Eine Dialoganwendung wird dadurch gekennzeichnet, daß der Dialogbenutzer mehrere Fenster öffnen darf und Daten über Maus und Tastatur eingeben kann. Sie steuern die Interaktion zwischen Dialogbenutzer und ABAP-Programm mit den Dialogparametern STAT, INBUF, M_TYP, RBUFF, RWNID, PWDID, WINID und SUPER. (INBUF und RBUFF sind alte Parameter, die nicht mehr benötigt werden. Sie sollten sie daher nicht für neue Programme verwenden.) Weitere Einzelheiten finden Sie unter Dialogprogrammierung vor Release 2.1 [Seite 110]. In neuen Programmen sollten Sie den Dialogprogrammierungsmechanismus mit GRAPH_RECEIVE und GET_xxxx_PARAM verwenden.
April 2001
115
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Aktuelle Dialogprogrammierung
Aktuelle Dialogprogrammierung Die Interaktion zwischen Dialogbenutzer und ABAP-Programm wird ab Release 2.1 mit Dialogparametern und speziellen Funktionsbausteinen gesteuert. Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen [Seite 117] Vergleich mit der Wartefunktion vor Release 2.1 [Seite 121]
116
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen
Steuerung des Dialogs mit Parametern und UtilityFunktionsbausteinen Sie steuern die Interaktion zwischen Dialogbenutzer und ABAP-Programm mit den folgenden Mechanismen: Funktionsbaustein anweisen, welche Aufgaben auszuführen sind (Parameter) ·
STAT: Status, mit dem der Funktionsbaustein aufgerufen wird Benutzereingaben erhalten (Utility-Funktionsbausteine)
·
GRAPH_RECEIVE:
wartet auf Benutzereingaben
·
GET_xxxx_PARAM:
gibt die Exportparameter zurück, die das
–
Grafikprogramm zur Verarbeitung der
–
Benutzereingaben benötigt
Fenster öffnen und schließen (Parameter) ·
PWDID:
·
WINID: ID des aktuellen Fensters (bereits vorhanden oder noch zu erstellen)
·
SUPER:
Vorgängerfenster des neu geöffneten Fensters
markiert das aktuelle Fenster als "Exit-Fenster"
Der Hauptparameter STAT teilt dem Funktionsbaustein mit, welche Aktionen beim Aufruf ausgeführt werden sollen: ·
Fenster öffnen und Grafikprogramm darin starten
·
Daten an das Grafikfenster übertragen
Der Funktionsbaustein GRAPH_RECEIVE ermöglicht es Ihnen, auf Benutzereingaben zu warten. Das Grafikprogramm meldet GRAPH_RECEIVE alle Eingaben, die der Benutzer im Grafikfenster vornimmt (Mausklicks, Auswahl von Menüeinträgen, Tastatureingaben, Schließen von Fenstern). Anschließend muß das ABAP-Programm den jeweiligen Funktionsbaustein GET_xxxx_PARAM aufrufen, um die Rückgabeparameterwerte für das Grafikprogramm zu aktivieren. Wenn in Ihrem Programm mehrere Fenster geöffnet werden können, werden die Funktionsbausteinaufrufe in der Regel in eine Programmschleife eingereiht. Sobald GRAPH_RECEIVE eine neue Benutzereingabe meldet, wird die Programmschleife gestartet. (Einzelheiten hierzu finden Sie im Beispielprogramm im Abschnitt "Auf Benutzereingaben warten".)
Bereits vorhandene ABAP-Programme, die mit dem alten Wartemechanismus arbeiten, laufen nach wie vor korrekt ab; für neue Programme sollten Sie jedoch GRAPH_RECEIVE verwenden. Benutzen Sie nicht beide Wartemechanismen zusammen in einem Programm.
Auf Benutzereingaben warten Jedes ABAP-Programm, das mit Grafikfunktionsbausteinen arbeitet, muß GRAPH_RECEIVE aufrufen, um die Wartefunktion zu aktivieren. Die Wartefunktion "realisiert" die mit STAT
April 2001
117
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen angeforderten Aktionen und ist daher auch dann notwendig, wenn Ihr Programm nicht auf Benutzereingaben reagiert. ·
Neu erstellte Fenster werden erst auf dem Bildschirm angezeigt, wenn GRAPH_RECEIVE aufgerufen wird.
·
An bereits vorhandene Fenster gesendete Daten werden erst angezeigt, wenn GRAPH_RECEIVE aufgerufen wird.
Die Grafikprogramme melden die Eingaben, die der Benutzer über Maus und Tastatur vornimmt, wie z. B. Auswahl von Diagrammobjekten, Menüeinträgen oder Drucktasten. Der Funktionsbaustein GRAPH_RECEIVE nimmt Nachrichten von allen Grafikprogrammen entgegen, die auf der Workstation des Benutzers laufen, und kehrt erst zurück, wenn er eine Eingabenachricht erhalten hat. Dabei spielt es keine Rolle, welche Benutzeraktion die Nachricht meldet, es kann sich auch nur um das Schließen eines Fensters handeln. Das ABAP-Programm verwendet GRAPH_RECEIVE zusammen mit den Funktionsbausteinen GET_xxxx_PARAM der jeweiligen Grafikprogramme. (Die Buchstaben xxxx sind Platzhalter für die Akronyme der Grafikprogramme: BMAT, BUSG, GANTT, HIER, HPGL, PORT oder STAT.)
GRAPH_RECEIVE wird implizit von den Funktionsbausteinen CNET_GRAPHIC_NETWORK, CNET_GRAPHIC_HIERARCHY und CNET_GRAPHIC_CLUSTER des SAP-Netzplanprogramms verwendet. Bei diesen Funktionsbausteinen handelt es sich um eine Kombination verschiedener Funktionsbausteine. Parameter In der folgenden Tabelle werden alle Parameter aufgelistet, die Sie mit diesem Funktionsbaustein verwenden können. Eine ausführliche Beschreibung der Parameter und Ausnahmeregelungen finden Sie in der ABAP-Funktionsbibliothek (Werkzeuge ® ABAP Workbench, Funktionsbibliothek oder Transaktion SE37). Parameter für GRAPH_RECEIVE Name
Status
ACTIVATE_RAISE
Import
ERRORCODE
Export
MCODE **
Export
RWNID **
Export
Standardwert SPACE
Hinweis: ** kennzeichnet einen Dialogparameter Sobald GRAPH_RECEIVE den Eingang einer Nachricht meldet, ruft das ABAP-Programm mit dem entsprechenden Funktionsbaustein GET_xxxx_PARAM Einzelheiten zu dieser Nachricht auf. GRAPH_xxxx_PARAM gibt für jedes Grafikprogramm die Exportparameter zurück, die zur Bearbeitung der Benutzereingabe erforderlich sind.
118
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen
Das ABAP-Programm ermittelt anhand des von GRAPH_RECEIVE zurückgegebenen Parameters RWNID, welches Grafikprogramm die Nachricht gesendet hat. RWNID enthält die ID des Fensters, in dem der Benutzer eine Eingabe vorgenommen hat, und identifiziert das Grafikprogramm, das in diesem Fenster läuft. (Weitere Einzelheiten zu Fenster-IDs finden Sie unter dem Parameter WINID.) Wie in früheren SAP-Grafik-Releases ist die Wartefunktion auch ohne die Funktionsbausteine GRAPH_RECEIVE und GET_xxxx_PARAM möglich. Funktionsbausteine, die ein Grafikprogramm aufrufen, können die Wartefunktion übernehmen und so ihre eigenen Exportparameter zurückgeben. Dazu sind jedoch beim Aufruf eines jeglichen Grafikfunktionsbausteins die Parameter RWNID und M_TYP sowie zusätzliche STAT-Werte erforderlich. Diese Methode ist noch verfügbar, um die Kompatibilität mit älteren Programmen zu gewährleisten; für neue Programme sollten Sie jedoch statt dessen GRAPH_RECEIVE wie oben beschrieben verwenden. Funktionsbausteine, die ein Grafikprogramm aufrufen, sind "NurAusgabe-Funktionen", die Funktionsbausteine GET_xxxx_PARAM dagegen "Nur-EingabeFunktionen". Das folgende Beispiel zeigt, wie Sie mehrere Funktionsbausteinaufrufe in einem Programm kombinieren können. Dabei können zwar mehrere Fenster gleichzeitig geöffnet werden, Benutzereingaben werden jedoch erst akzeptiert, wenn das letzte Fenster geöffnet wurde. Genauso werden im ersten Aufruf erstellte Fenster und neu übertragene Daten erst auf dem Bildschirm angezeigt, wenn GRAPH_RECEIVE aufgerufen wurde. CALL FUNCTION 'GRAPH_MATRIX_4D' EXPORTING STAT = '2' Daten senden
"Fenster öffnen und
WINID = 'BUSG01' CALL FUNCTION 'GRAPH_BUTTON_MENUE' EXPORTING STAT = '2' Daten senden
"Fenster öffnen und
WINID = 'BMAT03' CALL FUNCTION 'GRAPH_RECEIVE' IMPORTING MCODE = MCODE RWNID = RWNID. WHILE MCODE NE 'D'. CASE RWNID(4). WHEN 'BUSG'. IF MCODE EQ 'Q'......
ENDIF. "Fenster geschlossen?
ELSE. CALL FUNCTION 'GET_BUSG_PARAM' IMPORTING.... .....
April 2001
119
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Steuerung des Dialogs mit Parametern und Utility-Funktionsbausteinen CALL FUNCTION 'GRAPH_MATRIX_4D' EXPORTING STAT = '5'
"neue Daten senden
WINID = 'BUSG01' .... ENDIF. WHEN 'BMAT'. IF MCODE EQ 'Q'......
ENDIF. "Fenster geschlossen?
ELSE. CALL FUNCTION 'GET_BMAT_PARAM' IMPORTING.... ..... CALL FUNCTION 'GRAPH_BUTTON_MENUE' EXPORTING STAT = '5'
"neue Daten senden
WINID = 'BMAT03' .... ENDIF. CALL FUNCTION 'GRAPH_RECEIVE' IMPORTING MCODE = MCODE RWNID = RWNID. ENDWHILE.
120
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen Vergleich mit der Wartefunktion vor Release 2.1
Vergleich mit der Wartefunktion vor Release 2.1 GRAPH_RECEIVE ermöglicht einen einfacheren Wartemechanismus als in früheren Releases: ·
Die Wartefunktion mit GRAPH_RECEIVE läuft reibungsloser ab, als es mit den Funktionsbausteinen der Grafikprogramme möglich ist, da GRAPH_RECEIVE alle erhaltenen Nachrichten auf die gleiche Weise meldet; es spielt dabei keine Rolle, welches Grafikprogramm die Nachricht gesendet hat. Daher kann das ABAP-Programm die Nachrichten einheitlich verarbeiten.
·
Beim Aufruf der Grafikfunktionsbausteine sind für STAT jetzt nur noch zwei Werte möglich:
·
-
'2': neues Fenster öffnen und Daten senden
-
'5': Daten an ein geöffnetes Fenster senden
Die Parameter RWNID und M_TYP sind nur noch zum Aufruf von GRAPH_RECEIVE, nicht jedoch für andere Grafikfunktionsbausteine erforderlich. (Für GRAPH_RECEIVE wurde M_TYP in MCODE umbenannt.) Hinweis
Ältere ABAP-Programme mit früheren Wartemechanismen können nach wie vor korrekt ablaufen; für Neuentwicklungen sollten Sie jedoch nur GRAPH_RECEIVE benutzen. Verwenden Sie nicht beide Mechanismen zusammen in einem Programm.
April 2001
121
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
Beispielprogramme
Beispielprogramme Die folgenden Beispielprogramme sind in dieser Dokumentation enthalten. Weitere Beispielprogramme für die SAP-Grafikanwendungen können Sie im R/3-System mit Transaktionscode gral aufrufen. SAP-Präsentationsgrafik ohne Dialog aufrufen [Seite 123] SAP-Präsentationsgrafik mit Dialog aufrufen [Seite 196] SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen [Seite 125] SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_XXXX_PARAM aufrufen [Seite 137] SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen [Seite 148] SAP-Statistikgrafik ohne Dialog aufrufen [Seite 175] SAP-Gantt-Diagramms mit Dialog aufrufen [Seite 179] SAP-HPGL-Anzeige aufrufen [Seite 199] SAP-Portfoliografik mit Dialog aufrufen [Seite 200] SAP-Netzplangrafik ohne Dialog aufrufen [Seite 210] SAP-Balkenplangrafik ohne Dialog aufrufen [Seite 216] SAP-Strukturgrafik aufrufen [Seite 227]
122
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Präsentationsgrafik ohne Dialog aufrufen
SAP-Präsentationsgrafik ohne Dialog aufrufen Das folgende ABAP-Programm veranschaulicht den Aufruf des Funktionsbausteins GRAPH_2D.. Es erlaubt keinen Benutzerdialog. PROGRAM G_BUSG_1. *------------------------------------------------------------* *
*
*------------------------------------------------------------* * Dieses Programm zeigt einen Aufruf des
*
* SAP-Präsentationsgrafikprogramms.
*
*
*
* Jede Zeile in der DATA-Tabelle enthält eine Beschriftung
*
* und einen einzelnen numerischen Wert.
*
*------------------------------------------------------------* DATA: BEGIN OF DATA
OCCURS 1,
TEXT(25), VALUE TYPE P, END OF DATA. DATA: TCOL1(5) VALUE '#1991'. DATA: TITLE(25) VALUE 'Sales'. SET PF-STATUS 'GRAF'. DATA-TEXT
= 'Product_1'.
DATA-VALUE = 153470. APPEND DATA. DATA-TEXT
= 'Product_2'.
DATA-VALUE = 253150. APPEND DATA. DATA-TEXT
= 'Product_3'.
DATA-VALUE = 53470. APPEND DATA. DATA-TEXT
= 'Product_4'.
DATA-VALUE = 182000. APPEND DATA.
April 2001
123
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Präsentationsgrafik ohne Dialog aufrufen DATA-TEXT
= 'Product_5'.
DATA-VALUE = 92410. APPEND DATA. WRITE: / 'Products',22 TCOL1. SKIP 2. LOOP AT DATA. WRITE: / DATA-TEXT, 12 DATA-VALUE. ENDLOOP. *------------------------------------------------------------* * F11: Ausgabe eines 2D-Diagramms
*
*------------------------------------------------------------* AT PF11. CALL FUNCTION 'GRAPH_2D' EXPORTING TITL = TITLE TABLES
124
DATA = DATA.
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen Das folgende ABAP-Programm veranschaulicht einige der Funktionsbausteinaufrufe, die in den vorhergehenden Themen behandelt wurden. PROGRAM G_BMAT_2. *--------------------------------------------------------* *
*
*--------------------------------------------------------* * Dieser Report ruft das SAP-Drucktastengrafikprogramm
*
* auf.
*
*
*
* Wenn der Benutzer auf eine Drucktaste klickt,
*
* erscheint ein Menü, über das zusätzliche Informationen * * angefordert werden können. Durch diese Anforderung
*
* werden Fenster des SAP-Statistik- oder des
*
* SAP-Präsentationsgrafikprogramms geöffnet.
*
*
*
* Wenn der Benutzer eine ganze Zeile oder Spalte
*
* auswählt (durch Klicken auf den Zeilen- oder Spalten-
*
* Header), wird ein 2D-Diagramm oder eine einzelne
*
* Kurve angezeigt. Klickt der Benutzer auf die Taste
*
* oben links, wird ein 3D-Diagramm oder eine Gruppe
*
* von Kurven angezeigt.
*
*--------------------------------------------------------* DATA: BEGIN OF MATRIX OCCURS 1,
"// Daten für BMAT
COL1(20), COL2 TYPE P, COL3 TYPE P, COL4 TYPE P, COL5 TYPE P, END OF MATRIX. DATA: BEGIN OF ATTR OCCURS 1,
April 2001
"// ATTR-Tabelle für BMAT
125
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen COL1(20), COL2 TYPE P, COL3 TYPE P, COL4 TYPE P, COL5 TYPE P, END OF ATTR. DATA: BEGIN OF SIZE OCCURS 1,
"// SIZE-Tabelle für BMAT
C(10) TYPE C, END OF SIZE. DATA: BEGIN OF MENUE OCCURS 1,
"// MENU-Tabelle für BMAT
TEXT(40), TEXT2(20), END OF MENUE. DATA: BEGIN OF SDATA OCCURS 1,
"// Daten für STAT
X TYPE P, Y TYPE P, END OF SDATA. DATA: BEGIN OF OPTS OCCURS 1,
"// OPTS-Tabelle für STAT "// und BUSG
C(80) TYPE C, END OF OPTS. DATA: BEGIN OF TCOL OCCURS 1,
"// TCOL-Tabelle für BUSG
C(20) TYPE C, END OF TCOL. DATA: RWNID(10), M_TYP(1). DATA: BUSG_STAT, STAT_STAT, BMAT_STAT. DATA STAT_ART(3). DATA IND LIKE SY-INDEX. DATA: NROW(2), NCOL(2). DATA: MENROW(2). DATA: MENCOL(2). MENUE-TEXT = 'Business Graphics'.
126
"// BMAT-Popup füllen
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen
MENUE-TEXT2 = 'Business Graphics'. APPEND MENUE. MENUE-TEXT = 'Statistics Graphics'. MENUE-TEXT2 = '(logarithmic)'. APPEND MENUE. MATRIX-COL1 = 'Row 1'.
"// BMAT-Daten füllen
MATRIX-COL2 = 11. MATRIX-COL3 = 12. MATRIX-COL4 = 13. MATRIX-COL5 = 14. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'Row 2'. MATRIX-COL2 = 21. MATRIX-COL3 = 22. MATRIX-COL4 = 23. MATRIX-COL5 = 24. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'Sub-total'. MATRIX-COL2 = 32. MATRIX-COL3 = 34. MATRIX-COL4 = 36. MATRIX-COL5 = 38. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'Row 4'. MATRIX-COL2 = 41.
April 2001
127
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen MATRIX-COL3 = 42. MATRIX-COL4 = 43. MATRIX-COL5 = 44. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'T O T A L'. MATRIX-COL2 = 73. MATRIX-COL3 = 76. MATRIX-COL4 = 79. MATRIX-COL5 = 82. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. WRITE: /,/ 'Label',22 'Column 1',37 'Column 2', 52 'Column 3',67 'Column 4',/. LOOP AT MATRIX. WRITE: /(15) MATRIX-COL1, (14) MATRIX-COL2,(14) MATRIX-COL3, (14) MATRIX-COL4,(14) MATRIX-COL5. ENDLOOP. WRITE: /,/,/ 'Function keys:'. WRITE: /,/ 'F10 starts SAP Pushbutton Graphics'. WRITE: /,/ 'F3
ends SAP Pushbutton Graphics'.
AT PF10. TCOL = 'Column 1'. APPEND TCOL.
"// TCOL für BUSG füllen
TCOL = 'Column 2'. APPEND TCOL. TCOL = 'Column 3'. APPEND TCOL. TCOL = 'Column 4'. APPEND TCOL. SIZE = 'C
128
1
30'. APPEND SIZE.
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen
SIZE = 'R
1
2 '. APPEND SIZE.
*------------------------------------------------------------* * Dialogschleife
*
*------------------------------------------------------------* BUSG_STAT = '2'.
"// starten, nicht warten
STAT_STAT = '2'.
"// starten, nicht warten
CLEAR BMAT_STAT.
"// starten und warten
DO. CALL FUNCTION 'GRAPH_BUTTON_MENUE' "// Drucktastenblock mit Menü EXPORTING TTEXT = SY-TITLE
"// Titel
CTXT1 = 'Label'
"// 5 Spalten
CTXT2 = 'Column 1' CTXT3 = 'Column 2' CTXT4 = 'Column 3' CTXT5 = 'Column 4' VTXT1 = 'Display Criterion 1' VALD1 = 1 VAL11 = 10 VAL12 = 30 VAL13 = 40 VAL14 = 50 COL11 = 'CYAN' COL12 = 'GRAY' COL13 = 'YELLOW' COL14 = 'GRAY' COL15 = 'RED' MTITL = 'Menu'
"// Menütitel
STAT
"// Dialogparameter
= BMAT_STAT
SUPER = 'X'
"// Schließen von 'BMAT' "// schließt alle anderen "// Fenster
April 2001
129
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen WINID = 'BMAT'
"// Fenster-ID
IMPORTING ROWNR = NROW
"// Ausgewählte Zeile
COLNR = NCOL
"// Ausgewählte Spalte
MROWN = MENROW
"// Ausgewählte Menüzeile
MCOLN = MENCOL
"// Ausgewählte Menüspalte
M_TYP = M_TYP
"// Nachrichtentyp
RWNID = RWNID
"// ID des sendenden Fensters
TABLES DATA
= MATRIX
"// Definiert die Matrix
MENU
= MENUE
"// Definiert das Menü
ATTR
= ATTR
"// Definiert Farben etc.
SIZE
= SIZE.
"// Definiert Größen
BMAT_STAT = '4'.
"// Nächstes Mal nur warten
*------------------------------------------------------------* * Nachricht lesen und wie erforderlich vorgehen
*
*------------------------------------------------------------* *
*
* M_TYP: 'D': Letztes Fenster wurde geschlossen (keine
*
*
*
Fenster mehr geöffnet)
*
'I': Nachricht von BMAT
*
*
'0': Nachricht von einem anderen Fenster
*
*
(nicht BMAT)
*
*
*
*------------------------------------------------------------* CASE M_TYP. WHEN 'D'.
"// BMAT wurde geschlossen
EXIT. WHEN ' '. WHEN '0'.
"// Nachricht von anderem "//
IF RWNID(4) EQ 'BUSG'.
130
Fenster (nicht BMAT)
"// Bei BUSG-Fenster ist
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen "//
BUSG_STAT = '2'.
'Q' erforderlich
"// BUSG nächstes Mal starten
ENDIF. IF RWNID(4) EQ 'STAT'. STAT_STAT = '2'.
"// Bei STAT-Fenster, "// STAT nächstes Mal starten
ENDIF. WHEN 'Q'.
"// Sollte bei Verwendung von "//
WHEN 'I'.
SUPER nicht passieren.
"// Nachricht von BMAT "// Vorgehen je nach "//
ausgewähltem Element:
CASE MENROW. WHEN 1.
"// BUSG starten oder neu laden
REFRESH OPTS. IF NROW(1) EQ '1' AND NCOL(1) EQ '0'. "// Element oben links -> 3D BUSG CALL FUNCTION 'GRAPH_3D' EXPORTING TITL = 'Overview' DIM1 = 'Columns' DIM2 = 'Rows' STAT = BUSG_STAT TABLES DATA = MATRIX. BUSG_STAT = '5'.
"// Nächstes Mal neu laden
ENDIF. IF NROW(1) EQ '1' AND NCOL(1) NE '0'. "// Spalten-Header -> 2D BUSG READ TABLE TCOL INDEX NCOL. CALL FUNCTION 'GRAPH_MATRIX_2D' EXPORTING TITL = TCOL NCOL = NCOL STAT = BUSG_STAT TABLES
April 2001
131
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen DATA = MATRIX OPTS = OPTS TCOL = TCOL. BUSG_STAT = '5'.
"// Nächstes Mal neu laden
ENDIF. IF NROW(1) NE '1' AND NCOL(1) EQ '0'. "// Zeilen-Header -> 2D "// BUSG NROW = NROW - 1. READ TABLE MATRIX INDEX NROW. CALL FUNCTION 'GRAPH_MATRIX_2D' EXPORTING TITL = MATRIX-COL1 NROW = NROW STAT = BUSG_STAT TABLES DATA = MATRIX OPTS = OPTS TCOL = TCOL. BUSG_STAT = '5'.
"// Nächstes Mal neu laden
ENDIF. WHEN 2.
"// STAT starten oder neu laden
IF MENCOL(1) EQ '1'. STAT_ART = 'LOG'. ELSE. STAT_ART = 'LIN'. ENDIF. REFRESH SDATA. REFRESH OPTS. IF NROW(1) EQ '1' AND NCOL(1) EQ '0'. "// Element oben links -> 4 "// Kurven DO 4 TIMES. IND = SY-INDEX.
132
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen DO 5 TIMES. READ TABLE MATRIX INDEX SY-INDEX. SDATA-X = SY-INDEX. CASE IND. WHEN 1. SDATA-Y = MATRIX-COL2. WHEN 2. SDATA-Y = MATRIX-COL3. WHEN 3. SDATA-Y = MATRIX-COL4. WHEN 4. SDATA-Y = MATRIX-COL5. ENDCASE. APPEND SDATA. ENDDO. OPTS = '$5'. APPEND OPTS. OPTS = 'COLOR=7'. APPEND OPTS. OPTS = 'THICK=1'. APPEND OPTS. ENDDO. CALL FUNCTION 'STAT_GRAPH' EXPORTING TTEXT = 'Overview' STAT
= STAT_STAT
Y_ART = STAT_ART NOPOS = 'X' TABLES OPTS
= OPTS
DATA
= SDATA.
STAT_STAT = '5'.
"// Nächstes Mal neu laden
ENDIF.
April 2001
133
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen
IF NROW(1) EQ '1' AND NCOL(1) NE '0'. "// Spalten-Header -> 1 "// Kurve DO 5 TIMES. READ TABLE MATRIX INDEX SY-INDEX. SDATA-X = SY-INDEX. CASE NCOL. WHEN 1. SDATA-Y = MATRIX-COL2. WHEN 2. SDATA-Y = MATRIX-COL3. WHEN 3. SDATA-Y = MATRIX-COL4. WHEN 4. SDATA-Y = MATRIX-COL5. ENDCASE. APPEND SDATA. ENDDO. OPTS = '$5'. APPEND OPTS. OPTS = 'COLOR=7'. APPEND OPTS. OPTS = 'THICK=1'. APPEND OPTS. READ TABLE TCOL INDEX NCOL. CALL FUNCTION 'STAT_GRAPH' EXPORTING TTEXT = TCOL STAT
= STAT_STAT
Y_ART = STAT_ART NOPOS = 'X' TABLES OPTS
134
= OPTS
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen DATA
= SDATA.
STAT_STAT = '5'.
"// Nächstes Mal neu laden
ENDIF. IF NROW(1) NE '1' AND NCOL(1) EQ '0'. "// Zeilen-Header -> 1 "// Kurve NROW = NROW - 1. READ TABLE MATRIX INDEX NROW. SDATA-X = 1. SDATA-Y = MATRIX-COL2. APPEND SDATA. SDATA-X = 2. SDATA-Y = MATRIX-COL3. APPEND SDATA. SDATA-X = 3. SDATA-Y = MATRIX-COL4. APPEND SDATA. SDATA-X = 4. SDATA-Y = MATRIX-COL5. APPEND SDATA. OPTS = '$4'. APPEND OPTS. OPTS = 'COLOR=7'. APPEND OPTS. OPTS = 'THICK=1'. APPEND OPTS. CALL FUNCTION 'STAT_GRAPH' EXPORTING TTEXT = MATRIX-COL1 STAT
= STAT_STAT
Y_ART = STAT_ART NOPOS = 'X'
April 2001
135
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten-, Statistik- und Präsentationsgrafik mit Dialog aufrufen TABLES OPTS
= OPTS
DATA
= SDATA.
STAT_STAT = '5'.
"// Nächstes Mal neu laden
ENDIF. ENDCASE. ENDCASE. ENDDO.
136
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM a
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen Das folgende ABAP-Programm veranschaulicht einige Aufrufe der Grafikfunktionsbausteine und der Utility-Funktionsbausteine GRAPH_RECEIVE und GET_xxxx_PARAM, die in den vorhergehenden Themen behandelt wurden. *-------------------------------------------------------------* * Dieses Programm ruft das SAP-Drucktastengrafikprogramm auf. * *
*
* Durch Auswahl einer Drucktaste wird ein BUSG-Fenster
*
* aufgerufen. Durch erneutes Auswählen der Drucktaste wird
*
* kein neues BUSG-Fenster aufgerufen; statt dessen wird der
*
* Inhalt des aktuellen BUSG-Fensters überschrieben.
*
* Beim Schließen von BMAT wird auch das BUSG-Fenster
*
* entfernt. Dies wird vom Parameter SUPER bewirkt.
*
*-------------------------------------------------------------*
PROGRAM GRBMAT01.
* GL 5.7.1993 : NEW DIALOG LOOP DATA: MCODE, B_TYP. DATA: OPEN_LOAD VALUE '2'. DATA: RELOAD VALUE '5'.
DATA: BEGIN OF MATRIX OCCURS 1, COL1(20), COL2 TYPE P, COL3 TYPE P, COL4 TYPE P, COL5 TYPE P,
April 2001
137
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen END OF MATRIX. DATA: BEGIN OF ATTR OCCURS 1, COL1(20), COL2 TYPE P, COL3 TYPE P, COL4 TYPE P, COL5 TYPE P, END OF ATTR. DATA: BEGIN OF SIZE OCCURS 1, C(10) TYPE C, END OF SIZE. DATA: BEGIN OF MTEXT OCCURS 1, TEXT(40), END OF MTEXT. DATA: BEGIN OF OPTS OCCURS 1, C(80) TYPE C, END OF OPTS. DATA: BEGIN OF TCOL OCCURS 1, C(20) TYPE C, END OF TCOL. DATA TEXT(64). DATA WINID(10). DATA INDEX LIKE SY-INDEX. DATA BUSG_STAT. DATA BMAT_STAT. DATA TWIN_STAT. DATA: NROW(9), NCOL(1). FIELD-SYMBOLS: .
138
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM a SET PF-STATUS 'GRAF'.
MATRIX-COL1 = 'Line 1'. MATRIX-COL2 = 11. MATRIX-COL3 = 12. MATRIX-COL4 = 13. MATRIX-COL5 = 14. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'Line 2'. MATRIX-COL2 = 21. MATRIX-COL3 = 22. MATRIX-COL4 = 23. MATRIX-COL5 = 24. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'Subtotal'. MATRIX-COL2 = 32. MATRIX-COL3 = 34. MATRIX-COL4 = 36. MATRIX-COL5 = 38. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR.
April 2001
139
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen MATRIX-COL1 = 'Line 4'. MATRIX-COL2 = 41. MATRIX-COL3 = 42. MATRIX-COL4 = 43. MATRIX-COL5 = 44. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR. MATRIX-COL1 = 'Sum total'. MATRIX-COL2 = 73. MATRIX-COL3 = 76. MATRIX-COL4 = 79. MATRIX-COL5 = 82. APPEND MATRIX. MOVE-CORRESPONDING MATRIX TO ATTR. ATTR-COL1 = 0. APPEND ATTR.
WRITE: /,/ 'Designation',22 'Column 1',37 'Column 2', 52 'Column 3',67 'Column 4',/. LOOP AT MATRIX. WRITE: /(15) MATRIX-COL1, (14) MATRIX-COL2,(14) MATRIX-COL3,(14) MATRIX-COL4,(14) MATRIX-COL5. ENDLOOP. TCOL = 'Column 1'. APPEND TCOL. TCOL = 'Column 2'. APPEND TCOL. TCOL = 'Column 3'. APPEND TCOL. TCOL = 'Column 4'. APPEND TCOL.
140
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM a SIZE = 'C
1
30'. APPEND SIZE.
SIZE = 'R
1
2 '. APPEND SIZE.
AT PF11. BUSG_STAT = OPEN_LOAD. TWIN_STAT = OPEN_LOAD. BMAT_STAT = OPEN_LOAD. CALL FUNCTION 'GRAPH_BUTTON_MATRIX'
"// Drucktastenblock
EXPORTING STAT = BMAT_STAT
"// Fenster öffnen und Daten übertragen
WINID = 'BMAT01' TTEXT = SY-TITLE CTXT1 = 'Designation' CTXT2 = 'Column 1' CTXT3 = 'Column 2' CTXT4 = 'Column 3' CTXT5 = 'Column 4' VTXT1 = 'ID number 1' VALD1 = 1 VAL11 = 10 VAL12 = 30 VAL13 = 40 VAL14 = 50 COL11 = 'CYAN' COL12 = 'GRAY' COL13 = 'YELLOW' COL14 = 'GRAY' COL15 = 'RED' *
April 2001
SUPER = 'X'
141
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen TABLES DATA
= MATRIX
ATTR
= ATTR
SIZE
= SIZE.
DO. CALL FUNCTION 'GRAPH_RECEIVE' IMPORTING RWNID = WINID MCODE = MCODE.
* Mögliche Bewertungsstrategien * ============================= * * 1)
IF MCODE = 'D'. EXIT. ENDIF.
*
CASE RWNID.
*
WHEN 'win1'.
*
IF MCODE = 'Q'.
*
"// Schließungscode
*
ELSE.
*
"// Aktionscode
* *
ENDIF. WHEN 'win2'.
* * * *
('I')
... ENDCASE. ... ENDDO.
* * 1a)
IF MCODE = 'D'. EXIT. ENDIF.
*
MOVE formname(MCODE, RWNID) TO FORMNAME
142
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM a *
"// Tabelle (I/Q, WINID, Formularname)
*
PERFORM FORMNAME.
* * 2)
CASE MCODE.
*
WHEN 'D'.
*
EXIT.
*
WHEN 'Q'.
*
CASE RWNID.
*
WHEN 'win1'.
*
"// Schließungscode 'win1'.
*
WHEN 'win2'.
*
"// Schließungscode 'win2'.
*
...
*
ENDCASE.
*
WHEN 'I'.
*
CASE RWNID.
*
WHEN 'win1'.
*
"// Aktionscode 'win1'.
*
WHEN 'win2'.
*
"// Aktionscode 'win2'.
*
...
*
ENDCASE.
* *
ENDCASE.
* *
... ENDDO.
IF MCODE = 'D'. EXIT. ENDIF.
April 2001
143
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen CASE WINID(4). WHEN 'TEMA'.
"// Nachfolger wurde geschlossen "// mcode MUSS Q sein
TWIN_STAT = OPEN_LOAD. WHEN 'BUSG'.
"// Nächstes Mal neu starten "// Nachfolger wurde geschlossen "// mcode MUSS Q sein
BUSG_STAT = OPEN_LOAD. WHEN 'BMAT'.
"// Nächstes Mal neu starten "// Nachricht von BMAT
IF MCODE = 'Q'. "// BMAT wurde geschlossen "// nicht möglich mit SUPER = 'X' ELSE.
CALL FUNCTION 'GET_BMAT_PARAM' IMPORTING B_TYP = B_TYP ROWNR = NROW COLNR = NCOL.
IF NROW(1) EQ '1' AND NCOL(1) EQ '0'.
" 3D-Diagramm
CALL FUNCTION 'GRAPH_3D' EXPORTING TITL = TEXT DIM1 = 'Columns' DIM2 = 'Lines' STAT = BUSG_STAT TABLES DATA = MATRIX. BUSG_STAT = RELOAD.
144
" Daten neu laden
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM a ENDIF. IF NROW(1) EQ '1' AND NCOL(1) NE '0'.
" 2D-Diagrammspalte
READ TABLE TCOL INDEX NCOL. CALL FUNCTION 'GRAPH_MATRIX_2D' EXPORTING TITL = TCOL NCOL = NCOL STAT = BUSG_STAT TABLES DATA = MATRIX OPTS = OPTS TCOL = TCOL. BUSG_STAT = RELOAD.
" Daten neu laden
ENDIF. IF NROW(1) NE '1' AND NCOL(1) EQ '0'. " 2D-Diagrammlinie NROW = NROW - 1. READ TABLE MATRIX INDEX NROW. CALL FUNCTION 'GRAPH_MATRIX_2D' EXPORTING TITL = MATRIX-COL1 NROW = NROW STAT = BUSG_STAT TABLES DATA = MATRIX OPTS = OPTS TCOL = TCOL. BUSG_STAT = RELOAD.
" Daten neu laden
ENDIF. IF NROW(1) GT '1' AND NCOL(1) GT '0'.
April 2001
" Zellentext anzeigen
145
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM aufrufen NROW = NROW - 1. NCOL = NCOL + 1. PERFORM GET_TEXT TABLES MTEXT USING NROW NCOL. MOVE 'Info für Element ' TO TEXT. WRITE NROW TO TEXT+17(2). WRITE NCOL TO TEXT+19(2). CALL FUNCTION 'TEXT_MATRIX' EXPORTING TTEXT = TEXT RSIZE = '5' CSIZE = '20' STAT
= TWIN_STAT
TABLES DATA
= MTEXT.
TWIN_STAT = RELOAD.
" Daten neu laden
ENDIF. ENDIF. WHEN OTHERS. ENDCASE.
"// WINID 'BMAT', MCODE 'I' "// unbekanntes Fenster "// WINID
ENDDO.
*-------------------------------------------------------------* *
FORM GET_TEXT
*
*-------------------------------------------------------------* *
text
*
*-------------------------------------------------------------* *
NROW
*
*
NCOL
*
*-------------------------------------------------------------*
146
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen
SAP-Drucktasten- und Präsentationsgrafik mit Dialog und GRAPH_RECEIVE und GET_xxxx_PARAM a FORM GET_TEXT TABLES MTEXT USING NROW NCOL. REFRESH MTEXT. READ TABLE MATRIX INDEX NROW. DO. ASSIGN COMPONENT SY-INDEX OF STRUCTURE MATRIX TO . IF SY-SUBRC NE 0. EXIT. ENDIF. IF SY-INDEX EQ NCOL. EXIT. ENDIF. ENDDO. CLEAR MTEXT. * APPEND MTEXT. MOVE ' Previous year
: ' TO MTEXT.
= - 1. WRITE TO MTEXT+12(5). APPEND MTEXT. MOVE ' Current year
: ' TO MTEXT.
= + 1. WRITE TO MTEXT+12(5). APPEND MTEXT. MOVE ' Following year : ' TO MTEXT. = + 1. WRITE TO MTEXT+12(5). APPEND MTEXT. ENDFORM.
April 2001
147
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen Das folgende ABAP-Programm veranschaulicht einige der Funktionsbausteinaufrufe, die in den vorhergehenden Themen behandelt wurden. PROGRAM G_HIER_2. *-----------------------------------------------------------* *
*
*-----------------------------------------------------------* * Dieser Report startet die SAP-Hierarchiegrafik.
*
*
*
* Er zeigt mehrere Dialoge, je nachdem, welche F-Taste
*
* gedrückt wurde. Jeder Dialog startet ein oder mehrere
*
* SAP-Grafikprogramme. Folgende Dialoge sind möglich:
*
*
Start von SAP-Hierarchie: Durch Knotenauswahl
*
wird ein Textfenster geöffnet.
*
Start von SAP-Hierarchie: Durch Knotenauswahl
*
*
wird ein zweites Hierarchiefenster geöffnet,
*
*
das einen Teilbaum der Hierarchie anzeigt.
*
*
Die Knotenauswahl im zweiten Hierarchiefenster
*
*
hat keinerlei Auswirkung.
*
Start von SAP-Hierarchie: Durch Knotenauswahl
*
*
wird ein Fenster für das SAP-Präsentations-
*
*
grafikprogramm geöffnet.
*
Start von SAP-Hierarchie: Durch Knotenauswahl
*
*
wird ein Fenster für das SAP-Statistikprogramm
*
*
geöffnet. Durch Auswahl eines Kurvenpunkts im
*
*
Statistikfenster wird ein Textfenster geöffnet.
*
Start von SAP-Hierarchie: Durch Knotenauswahl
*
*
werden vier verschiedene Fenster geöffnet:
*
*
1. SAP-Hierarchiefenster, zeigt einen Teilbaum
*
F10:
* *
*
*
*
*
F11:
F12:
F13:
F14:
der Hierarchie
*
*
2. SAP-Statistikfenster
*
*
3. SAP-Präsentationsgrafikfenster
*
148
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
*
4. SAP-Textmatrixfenster
*
*
Durch Auswahl eines Kurvenpunkts im Statistik-
*
*
fenster wird ein Textfenster geöffnet.
*
* Die Dialoge werden unter dem Code der jeweiligen F-Taste
*
* (F10-F14) genauer beschrieben.
*
*-----------------------------------------------------------* DATA: BEGIN OF HIER OCCURS 1, ELKEY(11), UEKEY(11), ETEXT(20), VAL1 TYPE P, VAL2 TYPE P, END OF HIER. DATA: BEGIN OF PHIER OCCURS 1, ELKEY(11), UEKEY(11), ETEXT(20), END OF PHIER. DATA: BEGIN OF BUSGDATA OCCURS 1, ELKEY(11), VAL1 TYPE P, VAL2 TYPE P, VAL3 TYPE P, VAL4 TYPE P, END OF BUSGDATA. DATA: BEGIN OF MTEXT OCCURS 1, TEXT(100), END OF MTEXT. DATA: RBUFF(64), M_TYP(1), RWNID(5), STAT_TYP. DATA: INDEX LIKE SY-INDEX. DATA: HIER1_STAT, HIER2_STAT. DATA: TEMA_STAT, TEMA1_STAT. DATA: STAT_STAT, BUSG_STAT..
April 2001
149
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen DATA: NODE(64), KURVE(5), PUNKT(5). DATA: BEGIN OF TCOL OCCURS 1, TEXT(20), END OF TCOL, BEGIN OF GOPTS OCCURS 1, C(20), END OF GOPTS. SET PF-STATUS 'GRAF'. HIER-UEKEY = SPACE.
"// Daten angeben
HIER-ELKEY = '10000000001'. HIER-ETEXT = 'El.1 - S1'. HIER-VAL1
= 10.
HIER-VAL2
= 15.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 1234. BUSGDATA-VAL2 = 2345. BUSGDATA-VAL3 = 3456. BUSGDATA-VAL4 = 4567. APPEND BUSGDATA. HIER-UEKEY = '10000000001'. HIER-ELKEY = '11000000002'. HIER-ETEXT = 'El.1 - S2'. HIER-VAL1
= 20.
HIER-VAL2
= 25.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 3534. BUSGDATA-VAL2 = 7845. BUSGDATA-VAL3 = 1256. BUSGDATA-VAL4 = 3467.
150
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
APPEND BUSGDATA. HIER-UEKEY = '10000000001'. HIER-ELKEY = '12000000002'. HIER-ETEXT = 'El.2 - S2'. HIER-VAL1
= 30.
HIER-VAL2
= 35.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 1734. BUSGDATA-VAL2 = 2345. BUSGDATA-VAL3 = 4256. BUSGDATA-VAL4 = 3767. APPEND BUSGDATA. HIER-UEKEY = '10000000001'. HIER-ELKEY = '13000000002'. HIER-ETEXT = 'El.3 - S2'. HIER-VAL1
= 40.
HIER-VAL2
= 45.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 8734. BUSGDATA-VAL2 = 1345. BUSGDATA-VAL3 = 5256. BUSGDATA-VAL4 = 3767. APPEND BUSGDATA. HIER-UEKEY = '10000000001'. HIER-ELKEY = '14000000002'. HIER-ETEXT = 'El.4 - S2'. HIER-VAL1
= 50.
HIER-VAL2
= 55.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY.
April 2001
151
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen BUSGDATA-VAL1 = 5890. BUSGDATA-VAL2 = 3245. BUSGDATA-VAL3 = 1786. BUSGDATA-VAL4 = 3647. APPEND BUSGDATA. HIER-UEKEY = '11000000002'. HIER-ELKEY = '11100000003'. HIER-ETEXT = 'El.11 - S3'. HIER-VAL1
= 60.
HIER-VAL2
= 65.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 2370. BUSGDATA-VAL2 = 2845. BUSGDATA-VAL3 = 1286. BUSGDATA-VAL4 = 7311. APPEND BUSGDATA. HIER-UEKEY = '11000000002'. HIER-ELKEY = '11200000003'. HIER-ETEXT = 'El.12 - S3'. HIER-VAL1
= 70.
HIER-VAL2
= 75.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 1210. BUSGDATA-VAL2 = 2165. BUSGDATA-VAL3 = 3290. BUSGDATA-VAL4 = 1311. APPEND BUSGDATA. HIER-UEKEY = '11000000002'. HIER-ELKEY = '11300000003'. HIER-ETEXT = 'El.13 - S3'.
152
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
HIER-VAL1
= 80.
HIER-VAL2
= 85.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 4578. BUSGDATA-VAL2 = 2789. BUSGDATA-VAL3 = 5412. BUSGDATA-VAL4 = 4678. APPEND BUSGDATA. HIER-UEKEY = '12000000002'. HIER-ELKEY = '12100000003'. HIER-ETEXT = 'El.21 - S3'. HIER-VAL1
= 90.
HIER-VAL2
= 95.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 4782. BUSGDATA-VAL2 = 3571. BUSGDATA-VAL3 = 1672. BUSGDATA-VAL4 = 2690. APPEND BUSGDATA. HIER-UEKEY = '12000000002'. HIER-ELKEY = '12200000003'. HIER-ETEXT = 'El.22 - S3'. HIER-VAL1
= 18.
HIER-VAL2
= 24.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 3710. BUSGDATA-VAL2 = 3125. BUSGDATA-VAL3 = 5178. BUSGDATA-VAL4 = 3730. APPEND BUSGDATA.
April 2001
153
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
HIER-UEKEY = '12200000003'. HIER-ELKEY = '12210000004'. HIER-ETEXT = 'El.221-S4'. HIER-VAL1
= 37.
HIER-VAL2
= 45.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 2710. BUSGDATA-VAL2 = 4125. BUSGDATA-VAL3 = 1278. BUSGDATA-VAL4 = 1730. APPEND BUSGDATA. HIER-UEKEY = '12200000003'. HIER-ELKEY = '12220000004'. HIER-ETEXT = 'El.222-S4'. HIER-VAL1
= 67.
HIER-VAL2
= 72.
APPEND HIER. BUSGDATA-ELKEY = HIER-ELKEY. BUSGDATA-VAL1 = 2710. BUSGDATA-VAL2 = 1125. BUSGDATA-VAL3 = 4178. BUSGDATA-VAL4 = 3570. APPEND BUSGDATA. SORT HIER. LOOP AT HIER. WRITE: / HIER-ELKEY,20 HIER-UEKEY,50 HIER-ETEXT. ENDLOOP.
*-------------------------------------------------------------* * F10
154
*
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
*
*
* Aufruf eines SAP-Hierarchiefensters
*
*
*
*-------------------------------------------------------------* * Wenn der Benutzer durch Klicken einen Knoten auswählt,
*
* wird ein Textfenster angezeigt.
*
*-------------------------------------------------------------* * Sobald der Benutzer das SAP-Hierarchiefenster schließt,
*
* wird auch der Dialog beendet.
*
* Das Schließen des Textfensters bewirkt das nächste Mal
*
* einen Neustart.
*
*-------------------------------------------------------------*
AT PF10. CLEAR HIER1_STAT. TEMA_STAT = '2'.
"// Starten, nicht warten
DO. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING NLVAL = '2/1' TTEXT = SY-TITLE NDIMS = 4 SMODE = 2 VTXT1 = 'Display Criterion 1' "// Kriterium 1 hat VAL11 = 20
"// 2 Schwellenwerte "// und
VAL12 = 50
"// 3 Farben.
COL11 = 'DARKBLUE' COL12 = 'DARKYELLOW' COL13 = 'RED' VTXT2 = 'Display Criterion 2' "// Kriterium 2 hat VAL21 = 30
April 2001
"// 2 Schwellenwerte
155
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen "// und VAL22 = 60
"// 3 Farben.
COL21 = 'BLUE' COL22 = 'YELLOW' COL23 = 'BLACK' NTEXT = 'WHITE' STAT
= HIER1_STAT
SUPER = 'X' IMPORTING NODES = HIER-ELKEY M_TYP = M_TYP TABLES DATA
= HIER.
HIER1_STAT = '4'.
"// Nächstes Mal nur warten
CASE M_TYP. WHEN 'D'. EXIT.
"// Bedingung beenden
WHEN ' '. WHEN '0'. "// Von Nicht-HIER-Fenster "// Muß vom Textfenster
TEMA_STAT = '2'.
"//
stammen, muß
"//
'Q' gewesen sein.
"// TEMA nächstes Mal "//
neu starten
WHEN 'Q'. WHEN 'I'. READ TABLE HIER WITH KEY HIER-ELKEY. READ TABLE BUSGDATA WITH KEY HIER-ELKEY. PERFORM DISPLAY_TEXT TABLES MTEXT
USING HIER BUSGDATA.
CALL FUNCTION 'TEXT_MATRIX' EXPORTING TTEXT = 'Info Window' RSIZE = '6' CSIZE = '40'
156
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen STAT
= TEMA_STAT
TABLES DATA
= MTEXT.
TEMA_STAT = '5'.
"// Daten nächstes Mal "//
neu laden
ENDCASE. ENDDO. *-------------------------------------------------------------* * F11
*
* Aufruf eines SAP-Hierarchiefensters.
*
*
*
* Wenn der Benutzer auf einen Knoten klickt, wird ein
*
* zweites SAP-Hierarchiefenster geöffnet, in dem ein
*
* Teilbaum der Hierarchie angezeigt wird.
*
* Das Klicken auf Knoten im zweiten Fenster hat keinerlei
*
* Auswirkungen.
*
*-------------------------------------------------------------* * Sobald der Benutzer das erste SAP-Hierarchiefenster
*
* schließt, wird der Dialog beendet. Wenn der Benutzer das
*
* zweite Hierarchiefenster zuerst schließt, wird
*
* SAP-Hierarchie in einem zweiten Fenster neu gestartet,
*
* wenn der Benutzer auf weitere Hierarchieknoten klickt.
*
*-------------------------------------------------------------* AT PF11. CLEAR HIER1_STAT.
"// Starten und warten
HIER2_STAT = '2'.
"// Starten, nicht warten
DO. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING WINID = 'HIER1' TTEXT = SY-TITLE VTXT1 = 'Display Criterion 1' "// Kriterium 1 hat
April 2001
157
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen VAL11 = 20
"// 2 Schwellenwerte
VAL12 = 50
"// 3 Farben
COL11 = 'DARKBLUE' COL12 = 'DARKYELLOW' COL13 = 'RED' VTXT2 = 'Display Criterion 2' "// Kriterium 2 hat keine STAT
= HIER1_STAT
"// Schwellenwerte
SMODE = 2 NTEXT = 'WHITE' SUPER = 'X' IMPORTING NODES = HIER-ELKEY M_TYP = M_TYP RWNID = RWNID TABLES DATA
= HIER.
HIER1_STAT = '4'. CASE M_TYP. WHEN 'D'. EXIT. WHEN '0'. WHEN 'Q'.
"// HIER2 wurde geschlossen. "// (Schließen von HIER1 hätte
HIER2_STAT = '2'.
"//
wegen SUPER eine 'D'-
"//
Nachricht zur Folge
"// HIER2 nächstes Mal neu "//
WHEN 'I'.
starten
"// Nachricht von einem SAP"//
Hierarchiefenster
"//
(HIER1 oder HIER2)
IF RWNID EQ 'HIER1'. PERFORM DISPLAY_NODES USING HIER-ELKEY. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING
158
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen TTEXT = 'Partial Hierarchy Display' SMODE = '2' STAT
= HIER2_STAT
WINID = 'HIER2' TABLES DATA
= PHIER.
HIER2_STAT = '5'.
"// Daten nächstes Mal "//
neu laden
ELSE. "// Klicken im HIER2-Fenster "//
ignorieren
ENDIF. ENDCASE. ENDDO.
*-------------------------------------------------------------* * F12
*
*
*
* Aufruf eines SAP-Hierarchiefensters
*
*
*
*-------------------------------------------------------------* * Wenn der Benutzer auf einen Knoten klickt, werden die
*
* Daten in einem SAP-Präsentationsgrafikfenster angezeigt.
*
*-------------------------------------------------------------* * Sobald der Benutzer das Hierarchiefenster schließt, wird
*
* der Dialog beendet.
*
* Wenn der Benutzer das SAP-Präsentationsgrafikfenster
*
* zuerst schließt, kann es nicht mehr geöffnet werden. Das
*
* heißt, daß kein neues SAP-Präsentationsgrafikfenster
*
* geöffnet wird, wenn nach dem Schließen eines solchen
*
* Fensters weitere Knoten ausgewählt werden.
*
*-------------------------------------------------------------* AT PF12.
April 2001
159
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen TCOL = 'Column 1'. APPEND TCOL. TCOL = 'Column 2'. APPEND TCOL. TCOL = 'Column 3'. APPEND TCOL. TCOL = 'Column 4'. APPEND TCOL. CLEAR HIER1_STAT. BUSG_STAT = '2'.
"// Starten, nicht warten
DO. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING TTEXT = SY-TITLE NDIMS = 4 SMODE = 2 VTXT1 = 'Display Criterion 1' VAL11 = 20 VAL12 = 50 COL11 = 'DARKBLUE' COL12 = 'DARKYELLOW' COL13 = 'RED' VTXT2 = 'Display Criterion 2' NTEXT = 'WHITE' STAT
= HIER1_STAT
SUPER = 'X' IMPORTING NODES = HIER-ELKEY M_TYP = M_TYP TABLES DATA
= HIER.
HIER1_STAT = '4'.
"// Nächstes Mal warten
CASE M_TYP. WHEN 'D'. EXIT. WHEN 'I'. READ TABLE HIER WITH KEY HIER-ELKEY. READ TABLE BUSGDATA WITH KEY HIER-ELKEY. CALL FUNCTION 'GRAPH_MATRIX_2D'
160
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen EXPORTING TITL = HIER-ETEXT NROW = SY-TABIX STAT = BUSG_STAT TABLES DATA = BUSGDATA OPTS = GOPTS TCOL = TCOL.
BUSG_STAT = '5'. WHEN '0'.
"// Muß aus BUSG stammen "// Muß 'Q' sein "// BUSG hier NICHT "//
neu starten.
ENDCASE. ENDDO.
*-------------------------------------------------------------* * F13
*
*
*
* Aufruf eines SAP-Hierarchiefensters
*
*
*
*-------------------------------------------------------------* * Wenn der Benutzer auf einen Knoten klickt, werden die
*
* Daten in einem SAP-Statistikfenster angezeigt. Klickt der
*
* Benutzer dann auf einen Punkt in der Statistikkurve, wird
*
* ein Textfenster angezeigt.
*
*-------------------------------------------------------------* * Sobald der Benutzer das Hierarchiefenster schließt, wird
*
* der Dialog beendet. Schließt der Benutzer entweder das
*
* Statistik- oder das Textfenster, wird das jeweilige
*
* Programm (Statistik oder Textmatrix) neu gestartet, wenn
*
* der Benutzer das nächste Mal auf einen Knoten oder einen
*
* Kurvenpunkt klickt.
*
*-------------------------------------------------------------*
April 2001
161
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
AT PF13. DATA: BEGIN OF STATDATA OCCURS 1, X TYPE P, Y TYPE P, END OF STATDATA. CLEAR HIER1_STAT. STAT_STAT = '2'.
"// Starten, nicht warten
TEMA_STAT = '2'.
"// Starten, nicht warten
DO. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING TTEXT = SY-TITLE NDIMS = 4 SMODE = 2 VTXT1 = 'Display Criterion 1' VAL11 = 20 VAL12 = 50 COL11 = 'DARKBLUE' COL12 = 'DARKYELLOW' COL13 = 'RED' VTXT2 = 'Display Criterion 2' NTEXT = 'WHITE' STAT
= HIER1_STAT
SUPER = 'X' IMPORTING NODES = NODE RBUFF = RBUFF RWNID = RWNID M_TYP = M_TYP TABLES DATA
= HIER.
HIER1_STAT = '4'.
"// Nächstes Mal warten
CASE M_TYP.
162
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
WHEN 'D'. EXIT. WHEN 'Q'. WHEN ' '. WHEN 'I'. MOVE NODE TO HIER-ELKEY. READ TABLE HIER WITH KEY HIER-ELKEY. READ TABLE BUSGDATA WITH KEY HIER-ELKEY. REFRESH GOPTS. GOPTS = '$ 4'. APPEND GOPTS. GOPTS = 'C_ART=1'. APPEND GOPTS. GOPTS = 'CTYPE=3'. APPEND GOPTS. GOPTS = 'COLOR=3'. APPEND GOPTS. GOPTS = 'LTEXT=Monthly Salary'. APPEND GOPTS. REFRESH STATDATA. STATDATA-X = 1. STATDATA-Y = BUSGDATA-VAL1. APPEND STATDATA. STATDATA-X = 2. STATDATA-Y = BUSGDATA-VAL2. APPEND STATDATA. STATDATA-X = 3. STATDATA-Y = BUSGDATA-VAL3. APPEND STATDATA. STATDATA-X = 4. STATDATA-Y = BUSGDATA-VAL4. APPEND STATDATA. MOVE 'Additional Info: ' TO NODE. WRITE HIER-ETEXT TO NODE+17(20). CALL FUNCTION 'STAT_GRAPH' EXPORTING INFORM = 'X'
April 2001
NOPOS
= 'X'
STAT
= STAT_STAT
TTEXT
= NODE
TAXIS
= 'Personnel'
SCALE
= 'MAN'
XRNGU
= 5
XTCKS
= '6'
163
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen YRNGU
= 10000
YTCKS
= '11'
TABLES DATA
= STATDATA
OPTS
= GOPTS.
STAT_STAT = '5'. WHEN '0'.
"// Ein anderes Fenster
IF RWNID(4) = 'STAT'.
"// vom Statistikfenster
CALL FUNCTION 'STAT_GRAPH' EXPORTING STAT
= 'R'
INBUF = RBUFF IMPORTING KURVE = KURVE INDEX = PUNKT M_TYP = STAT_TYP TABLES DATA
= STATDATA
"// Hier nicht verwendet
OPTS
= GOPTS.
"// Hier nicht verwendet
IF STAT_TYP = 'I'. PERFORM DISPLAY_STAT TABLES MTEXT USING KURVE PUNKT HIER-ETEXT BUSGDATA. CALL FUNCTION 'TEXT_MATRIX' EXPORTING TTEXT = 'Additional information window' RSIZE = '4' CSIZE = '30' STAT
= TEMA_STAT
TABLES DATA TEMA_STAT = '5'.
= MTEXT. "// Daten nächstes Mal "//
neu laden
ELSE. STAT_STAT = '2'.
164
"// STAT nächstes Mal
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen "//
neu starten
ENDIF. ENDIF. IF RWNID(4) = 'TEMA'.
"// Nachricht vom Textfenster: "//
TEMA_STAT = '2'.
muß 'Q' gewesen sein.
"// TEMA nächstes Mal neu "//
starten
ENDIF. ENDCASE. ENDDO. *-------------------------------------------------------------* * F14
*
*
*
* Aufruf eines SAP-Hierarchiefensters
*
*
*
*-------------------------------------------------------------* * Wenn der Benutzer einen Hierarchieknoten auswählt, werden
*
* folgende Fenster geöffnet:
*
* - SAP-Hierarchiefenster, in dem eine partielle Hierarchie
*
*
*
angezeigt wird
* - SAP-Statistikfenster
*
* - SAP-Präsentationsgrafikfenster
*
* - SAP-Textmatrixfenster (Textfenster)
*
* Wenn der Benutzer einen Kurvenpunkt im Statistikfenster
*
* auswählt, wird ein zusätzliches Textfenster angezeigt.
*
*-------------------------------------------------------------* * Sobald das erste Hierarchiefenster geschlossen wird, wird
*
* der Dialog beendet.
*
* Das Schließen eines anderen Fensters (außer dem ersten)
*
* wird vermerkt:
*
* Werden die entsprechenden Programme noch einmal
*
* angefordert, werden sie neu gestartet.
*
*-------------------------------------------------------------*
April 2001
165
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen AT PF14. TCOL = 'Column 1'. APPEND TCOL. TCOL = 'Column 2'. APPEND TCOL. TCOL = 'Column 3'. APPEND TCOL. TCOL = 'Column 4'. APPEND TCOL. CLEAR HIER1_STAT.
"// Starten, Daten senden "//
und warten
BUSG_STAT = '2'.
"// Starten, nicht warten
STAT_STAT = '2'.
"// --"--
HIER2_STAT = '2'.
"// --"--
TEMA_STAT = '2'.
"// --"--
TEMA1_STAT = '2'.
"// --"--
DO. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING TTEXT = SY-TITLE NDIMS = 4 SMODE = 2 VTXT1 = 'Display Criterion 1' VAL11 = 20 VAL12 = 50 COL11 = 'DARKBLUE' COL12 = 'DARKYELLOW' COL13 = 'RED' VTXT2 = 'Display Criterion 2' NTEXT = 'WHITE' STAT
= HIER1_STAT
SUPER = 'X' WINID = 'HIER1' IMPORTING M_TYP = M_TYP RBUFF = RBUFF NODES = HIER-ELKEY RWNID = RWNID TABLES
166
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen DATA
= HIER.
HIER1_STAT = '4'. CASE M_TYP. WHEN 'D'. EXIT. WHEN 'Q'.
"// Muß von HIER2 stammen "// (da Beenden von HIER1
HIER2_STAT = '2'.
"//
wegen SUPER 'D'
"//
verursachen würde)
"// Nächstes Mal neu starten
WHEN ' '. WHEN 'I'. IF RWNID(5) = 'HIER1'.
"// Nachricht von HIER1
MOVE HIER-ELKEY TO NODE. READ TABLE HIER WITH KEY HIER-ELKEY. READ TABLE BUSGDATA WITH KEY HIER-ELKEY. REFRESH GOPTS. CALL FUNCTION 'GRAPH_MATRIX_2D' EXPORTING TITL = HIER-ETEXT NROW = SY-TABIX STAT = BUSG_STAT TABLES DATA = BUSGDATA OPTS = GOPTS TCOL = TCOL. BUSG_STAT = '5'. PERFORM DISPLAY_TEXT TABLES MTEXT
USING HIER BUSGDATA.
CALL FUNCTION 'TEXT_MATRIX' EXPORTING TTEXT = 'Information window' RSIZE = '6' CSIZE = '30'
April 2001
167
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen STAT
= TEMA_STAT
TABLES DATA
= MTEXT.
TEMA_STAT = '5'.
"// Daten nächstes Mal "//
neu laden
PERFORM DISPLAY_NODES USING HIER-ELKEY. CALL FUNCTION 'GRAPH_HIERARCHY' EXPORTING TTEXT = 'Partial Hierarchy Display' SMODE = '2' STAT
= HIER2_STAT
WINID = 'HIER2' TABLES DATA
= PHIER.
HIER2_STAT = '5'.
"// Daten nächstes Mal "//
neu laden
MOVE NODE TO HIER-ELKEY. READ TABLE HIER WITH KEY HIER-ELKEY. REFRESH GOPTS. GOPTS = '$ 4'. APPEND GOPTS. GOPTS = 'C_ART=1'. APPEND GOPTS. GOPTS = 'CTYPE=3'. APPEND GOPTS. GOPTS = 'COLOR=3'. APPEND GOPTS. GOPTS = 'LTEXT=Monthly Salary'. APPEND GOPTS. REFRESH STATDATA. STATDATA-X = 1. STATDATA-Y = BUSGDATA-VAL1. APPEND STATDATA. STATDATA-X = 2. STATDATA-Y = BUSGDATA-VAL2. APPEND STATDATA. STATDATA-X = 3. STATDATA-Y = BUSGDATA-VAL3. APPEND STATDATA. STATDATA-X = 4. STATDATA-Y = BUSGDATA-VAL4. APPEND STATDATA. MOVE 'Additional Info: ' TO NODE. WRITE HIER-ETEXT TO NODE+17(20).
168
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen CALL FUNCTION 'STAT_GRAPH' EXPORTING INFORM = 'X' NOPOS
= 'X'
STAT
= STAT_STAT
TTEXT
= NODE
TAXIS
= 'Personnel'
SCALE
= 'MAN'
XRNGU
= 5
XTCKS
= '6'
YRNGU
= 10000
YTCKS
= '11'
TABLES DATA
= STATDATA
OPTS
= GOPTS.
STAT_STAT = '5'. ELSE.
"// Nachricht muß von HIER2 "//
stammen: ignorieren.
ENDIF. WHEN '0'.
"// Von einem beliebigen "//
IF RWNID(4) = 'STAT'.
"// Nachricht ist von "//
CALL FUNCTION 'STAT_GRAPH' EXPORTING
STAT-Fenster
"// RBUFF noch einmal "// verwenden, um Rückgabe"//
STAT
Nicht-Hierarchiefenster
parameter zu füllen
= 'R'
INBUF = RBUFF IMPORTING KURVE = KURVE INDEX = PUNKT M_TYP = STAT_TYP TABLES
April 2001
DATA
= STATDATA
"// Hier nicht verwendet
OPTS
= GOPTS.
"// Hier nicht verwendet
169
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen IF STAT_TYP = 'I'. PERFORM DISPLAY_STAT TABLES MTEXT USING KURVE PUNKT HIER-ETEXT BUSGDATA. CALL FUNCTION 'TEXT_MATRIX' EXPORTING TTEXT = 'Statistics information window' RSIZE = '4' CSIZE = '30' STAT
= TEMA1_STAT
WINID = 'TEMA1' TABLES DATA
= MTEXT.
TEMA1_STAT = '5'. ELSE. STAT_STAT = '2'.
"// Nächstes Mal neu laden "// Muß 'Q' gewesen sein "// Nächstes Mal neu starten
ENDIF. ENDIF. IF RWNID(4) = 'BUSG'. "// Muß 'Q'-Nachricht sein BUSG_STAT = '2'.
"// BUSG nächstes Mal neu "//
starten
ENDIF. IF RWNID(4) = 'TEMA'. "// Muß TEMA oder "// IF RWNID EQ 'TEMA1'.
TEMA1 sein
"// TEMA1 nächstes Mal "//
neu starten
TEMA1_STAT = '2'. ELSE. TEMA_STAT = '2'.
"// TEMA nächstes Mal "//
neu starten
ENDIF. ENDIF. ENDCASE.
170
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
ENDDO. *-------------------------------------------------------------* *
FORM DISPLAY_NODES
*
*-------------------------------------------------------------* FORM DISPLAY_NODES USING ELKEY. FIELD-SYMBOLS: ,. DATA KEY(11). DATA S. MOVE ELKEY TO KEY.
"//Taste Sichern!
REFRESH PHIER. LOOP AT HIER. IF HIER-ELKEY GE KEY. ASSIGN KEY+10(1) TO . ASSIGN HIER-ELKEY+10(1) TO . IF LE AND S NE SPACE. EXIT. ENDIF. S = 'X'. MOVE HIER TO PHIER. MOVE HIER-ELKEY TO PHIER-ETEXT. APPEND PHIER. ENDIF. ENDLOOP. ENDFORM. *-------------------------------------------------------------* *
FORM DISPLAY_TEXT
*
*-------------------------------------------------------------* FORM DISPLAY_TEXT TABLES MTEXT USING ETEXT EDATA. DATA: BEGIN OF TEXT, ELKEY(11), UEKEY(11), ETEXT(20), VAL1 TYPE P, VAL2 TYPE P, END OF TEXT.
April 2001
171
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen DATA: BEGIN OF DATA, ELKEY(11), VAL1 TYPE P, VAL2 TYPE P, VAL3 TYPE P, VAL4 TYPE P, END OF DATA. DATA FELD(40). MOVE ETEXT TO TEXT. MOVE EDATA TO DATA. REFRESH MTEXT. MOVE: 'Element: MOVE: TEXT-ELKEY
' TO FELD. TO FELD+14.
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Parent Elem.: ' to FELD. MOVE: TEXT-UEKEY
TO FELD+14.
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Label: MOVE: TEXT-ETEXT
' TO FELD. TO FELD+14.
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Value: MOVE: TEXT-VAL1
' TO FELD. TO FELD+14(10).
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Column 1: MOVE: DATA-VAL1
' TO FELD. TO FELD+14(10).
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Column 2: MOVE: DATA-VAL2
' TO FELD. TO FELD+14(10).
MOVE FELD TO MTEXT. APPEND MTEXT.
172
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen
MOVE: 'Column 3: MOVE: DATA-VAL3
' TO FELD. TO FELD+14(10).
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Column 4: MOVE: DATA-VAL4
' TO FELD. TO FELD+14(10).
MOVE FELD TO MTEXT. APPEND MTEXT. ENDFORM. *-------------------------------------------------------------* *
FORM DISPLAY_STAT
*
*-------------------------------------------------------------* FORM DISPLAY_STAT TABLES MTEXT USING KURVE PUNKT ETEXT EDATA. DATA: BEGIN OF DATA, ELKEY(11), VAL1 TYPE P, VAL2 TYPE P, VAL3 TYPE P, VAL4 TYPE P, END OF DATA. DATA FELD(40). DATA PU_1. MOVE EDATA TO DATA. REFRESH MTEXT. MOVE: 'Title......: ' TO FELD. MOVE: ETEXT
TO FELD+13.
MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Curve Nr...: ' TO FELD. WRITE KURVE TO FELD+13. MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Point Nr...: ' TO FELD. WRITE PUNKT TO FELD+13.
April 2001
173
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Hierarchiegrafik und andere Programme mit Dialog aufrufen MOVE FELD TO MTEXT. APPEND MTEXT. MOVE: 'Value......: ' TO FELD. PU_1 = PUNKT. CASE PU_1. WHEN '1'. WRITE DATA-VAL1 TO FELD+13(8). WHEN '2'. WRITE DATA-VAL2 TO FELD+13(8). WHEN '3'. WRITE DATA-VAL3 TO FELD+13(8). WHEN '4'. WRITE DATA-VAL4 TO FELD+13(8). ENDCASE. MOVE FELD TO MTEXT. APPEND MTEXT. ENDFORM.
174
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Statistikgrafik ohne Dialog aufrufen
SAP-Statistikgrafik ohne Dialog aufrufen Das folgende ABAP-Programm veranschaulicht den Aufruf des Funktionsbausteins STAT_GRAPH. PROGRAM G_STAT_1. *------------------------------------------------------------* *
*
*------------------------------------------------------------* * Dieser Report ruft SAP-Statistik ohne Dialog auf.
*
*------------------------------------------------------------* * Darstellung der Sinus- und Cosinusfunktionen
*
*
*
* Eingabe: die Anzahl der Kreisunterteilungen (360 Grad)
*
* Der Bericht wird beendet, wenn im Statistikfenster F3
*
* gedrückt wird.
*
*------------------------------------------------------------* DATA: D
TYPE F,
W
TYPE F,
F
TYPE F,
PI TYPE F. DATA: BEGIN OF OPTS OCCURS 1,
"// Optionentabelle
C(80), END OF OPTS. DATA: BEGIN OF DATA OCCURS 1,
"// Datentabelle
W TYPE P, F TYPE F, END OF DATA. PARAMETER: NUMBER TYPE P DEFAULT '30'. PI = '3.14159' / 180. D
= 360 / ( NUMBER - 1).
*------------*
April 2001
175
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Statistikgrafik ohne Dialog aufrufen * Funktion 1 * *------------* DO NUMBER TIMES.
"// Datentabelle füllen
DATA-W = W. DATA-F = COS( W * PI). APPEND DATA. ADD D TO W. ENDDO. OPTS = '$'.
"// Optionentabelle füllen
WRITE NUMBER TO OPTS+1.
"// Anzahl der Kurvenpunkte "//
angeben
APPEND OPTS. OPTS = 'COLOR=7'.
"// Kurvenfarbe
APPEND OPTS. OPTS = 'THICK=1'.
"// Kurvendicke
APPEND OPTS. OPTS = 'LTEXT=COSINE Curve'.
"// Legendentext
APPEND OPTS. OPTS = 'DTEXT=Description text for representing a COS curve'. APPEND OPTS. *------------* * Funktion 2 * *------------* W = 0. DO NUMBER TIMES. DATA-W = W. DATA-F = SIN( W * PI). APPEND DATA. ADD D TO W. ENDDO. OPTS = '$'. WRITE NUMBER TO OPTS+1.
176
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Statistikgrafik ohne Dialog aufrufen
APPEND OPTS. OPTS = 'COLOR=4'. APPEND OPTS. OPTS = 'THICK=1'. APPEND OPTS. OPTS = 'LTEXT=SINE Curve'. APPEND OPTS. OPTS = 'DTEXT=Representation of a SIN curve'. APPEND OPTS. *------------* * Funktion 3 * *------------* W = 0. DO NUMBER TIMES. DATA-W = W. DATA-F = COS( W * PI) * SIN( W * PI). APPEND DATA. ADD D TO W. ENDDO. OPTS = '$'. WRITE NUMBER TO OPTS+1. APPEND OPTS. OPTS = 'C_ART=1'. APPEND OPTS. OPTS = 'CTYPE=4'. APPEND OPTS. OPTS = 'COLOR=3'. APPEND OPTS. OPTS = 'LTEXT=COSINE-SINE Curve'. APPEND OPTS. OPTS = 'DTEXT=Description text for representing a COSINE-SINE curve'. APPEND OPTS.
April 2001
177
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Statistikgrafik ohne Dialog aufrufen *-------------------------------------------------------------* * Grafische Ausgabe
*
*-------------------------------------------------------------* DATA X1 TYPE F VALUE '0'. DATA X2 TYPE F VALUE '360'. DATA Y1 TYPE F VALUE '-1.0'. DATA Y2 TYPE F VALUE '1.0'. CALL FUNCTION 'STAT_GRAPH' EXPORTING TTEXT = 'Wave Functions' UTEXT = 'Sine and Cosine Functions' TAXIS = 'Angle in Degrees' X_ART = 'LIN' Y_ART = 'LIN' SCALE = 'MAN' XRNGL = X1 XRNGU = X2 YRNGL = Y1 YRNGU = Y2 XTCKS = '13' YTCKS = '11' TABLES
178
OPTS
= OPTS
DATA
= DATA.
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen
SAP-Gantt-Diagramms mit Dialog aufrufen Das folgende ABAP-Programm veranschaulicht einige der Funktionsbausteinaufrufe, die in den vorhergehenden Themen behandelt wurden. *-------------------------------------------------------------* * Dieses Programm ruft das SAP-Gantt-Diagramm auf.
*
*
*
* GRGANT_2 ruft GRAPH_GANTT auf und sendet Diagrammdaten
*
* (Zeilen-Items, Ereignisse und Meilensteine). Der
*
* Dialogbenutzer kann nun das Diagramm aktualisieren, indem
*
* er Elemente verschiebt, ändert, löscht oder neue Elemente
*
* hinzufügt. Daraufhin aktualisiert das ABAP-Programm
*
* seine eigenen Daten.
*
*-------------------------------------------------------------* REPORT NO STANDARD PAGE HEADING. *-------------------------------------------------------------* * Definition der ITEM-Tabelle (Zeilen-Items im Diagramm)
*
*-------------------------------------------------------------* DATA: BEGIN OF ITEM OCCURS 1. INCLUDE STRUCTURE GGAIT. DATA:
NEWNUM LIKE SY-TABIX,
"// zum Verschieben von ITEMS
MODIF(1),
"// `X` (ändern), 'D' (löschen)
END OF ITEM. *------------------------------------------------------------* * Definition der ELEM-Tabelle (Ereignisse im Diagramm)
*
*------------------------------------------------------------* DATA: BEGIN OF ELEM OCCURS 1. INCLUDE STRUCTURE GGAEL. DATA:
TBEG TYPE T,
"// nicht gesendet
MODIF(1),
"// 'X' = geändert, 'D' = gelöscht
END OF ELEM. DATA: BEGIN OF LGEL OCCURS 1. INCLUDE STRUCTURE GGAEL. DATA: END OF LGEL. DATA: BEGIN OF DFEL OCCURS 1.
April 2001
179
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramms mit Dialog aufrufen INCLUDE STRUCTURE GGAEL. DATA: END OF DFEL. *-------------------------------------------------------------* * Definition der MIST-Tabelle (Meilensteine im Diagramm)
*
*-------------------------------------------------------------* DATA: BEGIN OF MIST OCCURS 1. INCLUDE STRUCTURE GGAMI. DATA:
TBEG TYPE T,
"// nicht gesendet
MODIF(1),
"// 'X' = geändert, 'D' = gelöscht
END OF MIST. DATA: BEGIN OF LGMS OCCURS 1. INCLUDE STRUCTURE GGAMI. DATA: END OF LGMS. DATA: BEGIN OF DFMS OCCURS 1. INCLUDE STRUCTURE GGAMI. DATA: END OF DFMS. *-------------------------------------------------------------* * Definition der Tabelle zurückgegebener Nachrichten
*
(HINWEIS: DEF. MUSS GENAUSO AUSSEHEN!!)
*
*-------------------------------------------------------------* DATA: BEGIN OF BACK OCCURS 1. INCLUDE STRUCTURE GGABA. DATA: END OF BACK. *-------------------------------------------------------------* * Weitere Angaben
*
*-------------------------------------------------------------* DATA: DATE_NULL TYPE D VALUE '18991230'. DATA: GANTT_STAT, DAYS(3). DATA: TABIX LIKE SY-TABIX, TAB_INDEX LIKE SY-TABIX. DATA: T TYPE T,
180
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen
D TYPE D. DATA
C(10).
DATA: M_TYP(1), G_TYP(1), CUA_ID(10).
"// Dialogrückmeldung
DATA ITEMNO TYPE P.
SET PF-STATUS 'GRAF'. ITEM-ITEXT = 'ARD'. ITEM-UCOLOR = 'GREEN'. APPEND ITEM. CLEAR ITEM-UCOLOR. ITEMNO = 1. PERFORM FILL_ELEM USING 'Today Show' '19931126' '200000' 15 'M' 'BLUE' '15' 'C'. PERFORM FILL_ELEM USING 'Play Romeo & Julia' '19931126' '201800' 90 'M' 'GREEN' '15' 'L'. PERFORM FILL_ELEM USING 'Current Issues' '19931126' '223000' 30 'M' 'BLUE' '15' 'C'. ITEM-ITEXT = 'ZDF'. APPEND ITEM. ITEMNO = 2. PERFORM FILL_ELEM USING 'Football DFB League' '19931127' '203000' 120 'M' 'GREEN' '15' 'L'. ITEM-ITEXT = 'SAT 1'. APPEND ITEM. ITEMNO = 3. PERFORM FILL_ELEM USING 'Today Show' '19931128' '200000' 15 'M' 'BLUE' '15' 'C'. PERFORM FILL_ELEM USING 'Focus
'
'19931128' '201600' 45 'M' 'GREEN' '15' 'L'. ITEM-ITEXT = 'Cable channel'. APPEND ITEM. ITEMNO = 4. PERFORM FILL_ELEM USING 'Sport Highlights' '19931130' '210000' 90 'M' 'BLUE' '15' 'C'. ITEM-ITEXT = 'PRO 7'. APPEND ITEM. ITEMNO = 5. PERFORM FILL_ELEM USING 'Rambo I' '19931201' '150000' 170 'M' 'GREEN' '15' 'L'.
April 2001
181
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramms mit Dialog aufrufen
MIST-ITEMNO = 1. MIST-BEG
= ELEM-BEG.
MIST-TBEG
= ELEM-TBEG.
MIST-TXT
= 'TV Coord. Committee'.
MIST-FORM
= 'SQUARE'.
MIST-COLOR
= 'BLACK'.
APPEND MIST. PERFORM AUSGABE.
AT PF8. SY-LSIND = 0. GANTT_STAT = SPACE. DO. REFRESH BACK. DFEL-FILLD = '1'. DFEL-BRDON = '1'. DATA: BEG LIKE GGAEL-BEG. DATA: END LIKE GGAEL-BEG. DATA: LIN LIKE GGAEL-BEG. DATA: VIW LIKE GGAEL-BEG. DATA: TIM LIKE GGAEL-BEG. READ TABLE ELEM INDEX 1. BEG = ELEM-BEG. END = ELEM-BEG + 9000000. VIW = ELEM-BEG + 3000000. LIN = ELEM-BEG + 7200. CALL FUNCTION 'GRAPH_GANTT'
182
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen
EXPORTING *
VGRID
= 'X'
HGRID
= 'X'
WHEADER = 'Studio Schedule' TTITLE
= 'SAP AG : Studio 3'
TTEXT
= 'Programs'
LEGEND
= 'Legend'
*
TLENGTH = '5'
*
TMBEG
= BEG
*
TMEND
= END
*
TLINE
= LIN
*
TMVIEW
= VIW
NOTXT
= SPACE
TUNIT
= 'H'
DFEL
= DFEL
DFMS
= DFMS
MODIF
= 'ON'
STAT
= GANTT_STAT
"// Zeiteinheit: Stunde
IMPORTING M_TYP
= M_TYP
G_TYP
= G_TYP
CUA_ID
= CUA_ID
"// 'C', 'S', '0', '1', '2'
TABLES ITEM
= ITEM
MIST
= MIST
ELEM
= ELEM
LGMS
= MIST
LGEL
= ELEM
MSGT
= BACK.
GANTT_STAT = '4'.
"// nächstes Mal nur warten
*----------------------------------------* * Nachricht des Grafikprogramms bewerten * *----------------------------------------*
April 2001
183
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramms mit Dialog aufrufen
IF M_TYP = 'D'. EXIT. ENDIF.
"// Diagramm geschlossen
CASE G_TYP. WHEN 'C'.
"// Pickup, ignorieren
WHEN 'U'.
"// Timer, ignorieren
WHEN 'S'.
"// Sichern, beenden
EXIT.
"// Dialogschleife
WHEN '0'.
"// CUA-Menüleiste "// CUA_ID enthält ACT_ID "// passiert nicht
WHEN '1'.
"// CUA-Hilfeanforderung "// noch nicht "// passiert nicht
WHEN '2'.
"// CUA-Drucktastenleiste "// CUA_ID enthält ACTSTRING "// passiert nicht
ENDCASE. ENDDO.
"// Dialogschleife
* Schließen hat keine Wirkung, wenn bereits geschlossen. CALL FUNCTION 'GRAPH_DIALOG' EXPORTING CLOSE = 'X'.
* ----------------------------------------------------------- * * Bei der Verarbeitung mehrerer Sicherungsvorgänge werden
*
* Ereignisse, Meilensteine und Zeilen-Items nicht aus der
*
* Ausgabetabelle gelöscht, sondern nur als gelöscht markiert
*
* (ELEM-MODIF = 'D'). Bevor das nächste Mal Daten an das
*
* Grafikprogramm übertragen werden, müssen diese Elemente
*
* jedoch aus den jeweiligen Tabellen entfernt werden, damit
*
184
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen
* die Objekte, die dem Grafikprogramm intern bekannt sind,
*
* den entsprechenden Tabellenzeilen richtig zugeordnet
*
* werden können.
*
(PACK DURCHFÜHREN)
* ----------------------------------------------------------- * * BACK mit Originaldaten mischen * Änderungen markieren LOOP AT BACK. IF BACK-OBJ = 'E'.
"// ELEMENTE
CASE BACK-ACT. WHEN 'M'.
"// Verschieben
TABIX = BACK-ELM. READ TABLE ELEM INDEX TABIX. ELEM-MODIF = 'X'. ELEM-TBEG = BACK-BEG - ( ( BACK-DAT - DATE_NULL) * 86400). ELEM-BEG = BACK-BEG. ELEM-TXT = BACK-TXT. ELEM-DUR = BACK-DUR. ELEM-ITEMNO = BACK-ITM. MODIFY ELEM INDEX TABIX. DELETE BACK. WHEN 'A'.
"// Bearbeiten (Länge etc.)
TABIX = BACK-ELM. READ TABLE ELEM INDEX TABIX. ELEM-MODIF = 'X'. ELEM-TBEG = BACK-BEG - ( ( BACK-DAT - DATE_NULL) * 86400). ELEM-BEG = BACK-BEG. ELEM-TXT = BACK-TXT. ELEM-DUR = BACK-DUR. ELEM-ITEMNO = BACK-ITM. MODIFY ELEM INDEX TABIX. DELETE BACK.
April 2001
185
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramms mit Dialog aufrufen WHEN 'I'.
"// Neues einfügen
ELEM-MODIF = 'X'. ELEM-TBEG = BACK-BEG - ( ( BACK-DAT - DATE_NULL) * 86400). ELEM-BEG = BACK-BEG. ELEM-TXT = BACK-TXT. ELEM-DUR = BACK-DUR. ELEM-ITEMNO = BACK-ITM. APPEND ELEM. DELETE BACK. WHEN 'D'.
"// Element löschen
TABIX = BACK-ELM. READ TABLE ELEM INDEX TABIX. ELEM-MODIF = 'D'. MODIFY ELEM INDEX TABIX. DELETE BACK. ENDCASE. ENDIF.
"// ELEMENTE
IF BACK-OBJ = 'M'.
"// MEILENSTEINE
CASE BACK-ACT. WHEN 'M'. TABIX = BACK-ELM. READ TABLE MIST INDEX TABIX. MIST-MODIF = 'X'. MIST-TBEG = BACK-BEG - ( ( BACK-DAT - DATE_NULL) * 86400). MIST-BEG = BACK-BEG. MIST-TXT = BACK-TXT. MIST-ITEMNO = BACK-ITM. MODIFY MIST INDEX TABIX. DELETE BACK. WHEN 'A'. TABIX = BACK-ELM. READ TABLE MIST INDEX TABIX.
186
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen MIST-MODIF = 'X'. MIST-TBEG = BACK-BEG - ( ( BACK-DAT - DATE_NULL) * 86400). MIST-BEG = BACK-BEG. MIST-TXT = BACK-TXT. MIST-ITEMNO = BACK-ITM. MODIFY MIST INDEX TABIX. DELETE BACK.
WHEN 'I'. MIST-MODIF = 'X'. MIST-TBEG = BACK-BEG - ( ( BACK-DAT - DATE_NULL) * 86400). MIST-BEG = BACK-BEG. MIST-TXT = BACK-TXT. MIST-ITEMNO = BACK-ITM. APPEND MIST. DELETE BACK. WHEN 'D'. TABIX = BACK-ELM. READ TABLE MIST INDEX TABIX. MIST-MODIF = 'D'. MODIFY MIST INDEX TABIX. DELETE BACK. ENDCASE. ENDIF.
"// MEILENSTEINE
IF BACK-OBJ = 'I'.
"// ITEMS
CASE BACK-ACT. WHEN 'A'.
"// Ändern ohne Verschieben -> nur Text
TABIX = BACK-ITM. READ TABLE ITEM INDEX TABIX. ITEM-MODIF = 'X'. ITEM-ITEXT = BACK-TXT. MODIFY ITEM INDEX TABIX. DELETE BACK.
April 2001
187
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramms mit Dialog aufrufen WHEN 'I'. "// Einfügen -> neue Nummer anfügen ITEM-MODIF = 'N'. ITEM-ITEXT = BACK-TXT. APPEND ITEM. DELETE BACK. WHEN 'M'. "// Verschieben -> Reihenfolge ändern "// ITM: alte Nummer, ELM: neue Nummer TABIX = BACK-ITM. READ TABLE ITEM INDEX TABIX. ITEM-NEWNUM = BACK-ELM. IF BACK-ITM NE BACK-ELM. IF ITEM-MODIF NE 'N'. ITEM-MODIF = 'M'.
"// 'NEW'-Info sichern "// Markierung für PACK "// nichts durchzuführen
ENDIF. MODIFY ITEM INDEX TABIX. ELSE. "// nicht geändertes Element "// Elemente einfügen "// Berichte "//
ALLE Elemente
"// dies ist kein Fehler "// bitte ignorieren ENDIF. DELETE BACK. WHEN 'D'. "// Löschen -> ELEM und MIST absichtlich gelöscht TABIX = BACK-ITM. READ TABLE ITEM INDEX TABIX. ITEM-MODIF = 'D'. MODIFY ITEM INDEX TABIX. DELETE BACK. ENDCASE. ENDIF. *
"// ITEMS
DELETE BACK. "// global in allen Fällen ENDLOOP.
188
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen
* ELEM nach ITEM-Verschiebung neu organisieren LOOP AT ELEM. TABIX = ELEM-ITEMNO. READ TABLE ITEM INDEX TABIX. IF ITEM-MODIF = 'M' OR ITEM-MODIF EQ 'N'. ELEM-ITEMNO = ITEM-NEWNUM. MODIFY ELEM. ENDIF. ENDLOOP. * MIST nach ITEM-Verschiebung neu organisieren LOOP AT MIST. TABIX = MIST-ITEMNO. READ TABLE ITEM INDEX TABIX. IF ITEM-MODIF = 'M' OR ITEM-MODIF EQ 'N'. MIST-ITEMNO = ITEM-NEWNUM. MODIFY MIST. ENDIF. ENDLOOP. LOOP AT ITEM.
"// Zeilen anpassen
IF ITEM-MODIF = 'M' OR ITEM-MODIF EQ 'N'. "// hat bereits neue "//
Nummer
ELSE. ITEM-NEWNUM = SY-TABIX.
"// aktuelle Nummer
MODIFY ITEM. ENDIF. ENDLOOP. SORT ITEM BY NEWNUM. * Ende des Mischvorgangs * Änderungen sind markiert PERFORM AUSGABE.
April 2001
189
BC - SAP-Grafik: Programmierschnittstellen
SAP AG
SAP-Gantt-Diagramms mit Dialog aufrufen SET PF-STATUS 'GRAF'. * Markierungen löschen * physisch löschen PERFORM PACK. *-------------------------------------------------------------* *
FORM AUSGABE
(Kein USING-Parameter)
*
*-------------------------------------------------------------* FORM AUSGABE. DETAIL. TAB_INDEX = 0. LOOP AT ITEM. TAB_INDEX = TAB_INDEX + 1. CASE ITEM-MODIF. WHEN SPACE. WRITE: / ITEM-ITEXT. WHEN 'X'. WRITE: / ITEM-ITEXT INPUT ON. WHEN 'M'. WRITE: / ITEM-ITEXT, '' INPUT ON. WHEN 'N'. WRITE: / ITEM-ITEXT, '' INPUT ON. WHEN 'D'. WRITE: '' INPUT ON. ENDCASE. LOOP AT ELEM. *
ONLY IF SORTED
*
IF ELEM-ITEMNO GT TAB_INDEX.
* *
EXIT. ENDIF. IF ELEM-ITEMNO EQ TAB_INDEX. D = ( ( ELEM-BEG - ELEM-TBEG) / 86400) + DATE_NULL.
190
April 2001
SAP AG
BC - SAP-Grafik: Programmierschnittstellen SAP-Gantt-Diagramms mit Dialog aufrufen
T = ELEM-DUR. DAYS = ( ELEM-DUR - T) / 86400. CASE ELEM-MODIF. WHEN 'X'. WRITE: /2 ELEM-TXT(29) INPUT ON. MOVE D TO C. WRITE C USING EDIT MASK '____.__.__' INPUT ON. MOVE ELEM-TBEG TO C. WRITE: C USING EDIT MASK '__:__:__' INPUT ON. IF DAYS = 0. WRITE: '
0' INPUT ON, ':' INPUT ON.
ELSE. WRITE: DAYS INPUT ON, ':' INPUT ON. ENDIF. MOVE T TO C. WRITE: C USING EDIT MASK '__:__:__' INPUT ON. WHEN 'D'. WRITE: /2 '