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 '