19
Erstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 1 Erstellung eines ABAPProgramms zur Auswertung von statistischen Aufnahmebewegungen im SAPUmfeld Manuel Martin 21.08.2009 Facharbeit Berufsbildende Schule I Mainz – Gewerbe und Technik Klasse FI07a Servicecenter für Informationstechnologie Universitätsmedizin der Johannes Gutenberg-Universität Mainz

Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Embed Size (px)

Citation preview

Page 1: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 1

Erstellung eines ABAP‐Programms zur Auswertung von statistischen Aufnah‐

mebewegungen im SAP‐Umfeld  

Manuel Martin

21.08.2009

Facharbeit

Berufsbildende Schule I Mainz – Gewerbe und Technik

Klasse FI07a

Servicecenter für Informationstechnologie

Universitätsmedizin der Johannes Gutenberg-Universität Mainz

Page 2: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 2

Inhalt 

1 Einleitung ..................................................................................................... 3

2 ABAP ........................................................................................................... 4

2.1 ABAP Erläuterung ................................................................................. 4

2.2 ABAP Editor........................................................................................... 4

2.3 Anlegen eines Reports .......................................................................... 5

3 Aufbau eine Reports .................................................................................... 6

3.1 Eingabe der Suchparameter ................................................................. 6

3.2 Selektionsanweisungen ......................................................................... 8

3.3 Ausgabemöglichkeiten .......................................................................... 9

3.3.1 Als Liste ........................................................................................... 9

3.3.2 als ALV Grid Control ...................................................................... 10

4 Transport ................................................................................................... 11

5 Weitere Funktionen ................................................................................... 11

5.1 Bereitstellen einer Wertehilfe (F4-Hilfe) .............................................. 12

5.2 Einrichtung nicht fest verankern .......................................................... 12

6 Programmablauf ........................................................................................ 12

7 Zeitplan ...................................................................................................... 13

8 Kostenplan ................................................................................................. 13

9 Glossar ...................................................................................................... 13

10 Quellenverzeichnis ................................................................................. 14

11 Anlagen .................................................................................................. 15

Page 3: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 3

1 Einleitung 

Ziel dieser Facharbeit ist das Erstellen von ABAP-Reports zu erleichtern und anhand eines praktischen Beispiels mögliche Funktionen zu erläutern.

Diese Facharbeit beschreibt die Erstellung eines Reports, der für alle stationä-ren Aufnahmen eine Zusammenfassung zu Auswertungen ausgibt. Auswahl-kriterien zur Auswertung sind Zeitraum der Aufnahme, fachliche Organisati-onseinheit, pflegerische Organisationseinheit und das Stornokennzeichen.

Die Facharbeit ist an ABAP-Entwickler mit Grundkenntnissen gerichtet. Der fertige Report über die stationären Aufnahmen soll zur Erstellung von internen Statistiken der Patientenverwaltung dienen.

In dem Text wird zunächst die Programmiersprache ABAP kurz erläutert, dann auf den Aufbau eines Reports eingegangen. Desweiteren wird noch eine kurze Beschreibung über den Programmablauf folgen. Anschließend werden noch Zusatzfunktionen, Transport, sowie Zeit- und Kostenplan aufgegriffen.

Entwickelt wird in der Universitätsmedizin Mainz im SAP auf der S01 im 25er-Mandanten, der 40er-Mandant dient hier als Schulungssystem.

Die K01 dient als Testmaschine mit einem älteren Datenabgleich der P01 im 10er Mandant.

Das Produktivsystem läuft auf der P01 ebenfalls im 10er-Mandant.

Page 4: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

2 ABAP 

2.1 ABAP Erläuterung 

ABAP (früher Allgemeiner Berichtsaufbereitungsprozessor, heute Advanced Business Application Programming) ist die Programmiersprache des SAP-Systems und eine Weiterentwicklung von Cobol mit maschinennahen Elemen-ten unter Einbeziehung von SQL (Structured Query Language – eine Daten-banksprache zur Definition, Abfrage und Manipulation von Daten in relationa-len Datenbanken).

SAP bietet eine vollständig integrierte Entwicklungsumgebung, die einem Ent-wickler das Schreiben und Pflegen von ABAP-Programmen ermöglicht. Die sogenannte ABAP Development Workbench kann aus SAP heraus über die Transaktion SE80 aufgerufen werden.

Um den Quelltext eines Programmes besser lesen zu können, werden ABAP-Befehle immer großgeschrieben.

2.2 ABAP Editor 

„Der ABAP Editor ist ein Werkzeug, mit dem Sie ABAP-Programme, Klassen-methoden, Funktionsbausteine, Dynpro-Ablauflogik, Typgruppen und logische Datenbanken entwickeln können.“1

Der Editor ist unter der Transaktion SE38 zu finden, eine erweiterte Version mit weitaus mehr Funktionalität ist über die Transaktion SE80 in die ABAP De-velopment Workbench eingebunden. Im Zuge dieser Facharbeit wird die Tran-saktion SE38 verwendet.

1 Überblick über den ABAP Editor (SAP-Bibliothek) http://help.sap.com/saphelp_470/helpdata/de/d1/801a06454211d189710000e8322d00/content.htm 2009-08-17 09:11

Page 5: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 5

2.3 Anlegen eines Reports 

Zum Anlegen eines Reports der im ABAP Editor (Transaktion SE38) geöffnet sein. Nach Eingabe des Namens für den Report und anschließendem Klicken auf Anlegen muss man einen Titel eingeben sowie einen Typ und Status fest-legen.

Der Name eines Reports muss mit Y oder Z beginnen, das sind die für SAP Kunden zugelassenen Namen für Eigenentwicklungen, die restlichen Buch-staben sind für SAP-Anwendungen reserviert.

Der Titel ist frei wählbar und sollte das Programm beschreiben.

Typ und Status sind vordefinierte Werte und müssen entsprechend ausge-wählt werden.

In diesem Fall ist:

• der Name : „ZNSTATAUF“ • der Titel: „Report zur Auswertung der Aufnahme bewegungen“ • der Typ: „1 Ausführbares Programm“ • der Status „K Produktives Kundenprogramm“

Nach dem Sichern der Eingaben muss der Report noch einem Paket zugeord-net und ein „verantwortlicher Mitarbeiter“ definiert werden. Dieser Report wird dem Paket „ZISH“ zugeordnet. Im Feld „verantwortlicher“ ist das SAP-Kürzel des Mitarbeiters einzutragen.

Mit Klick auf werden die Eingaben gespeichert.

Zuletzt ist noch ein Transportauftrag anzulegen in dem alle Änderungen zu-sammengefasst werden, so dass der Report in einem Stück auf das nächst höhere System transportiert werden kann.

Mit einem Klick auf wird ein neuer Transportauftrag angelegt, zu dem eine Kurzbeschreibung angegeben werden muss. Anschließend müssen die Ände-

rungen mit abgespeichert werden. Der Transportauftrag wird automatisch generiert.

Page 6: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 6

3 Aufbau eine Reports 

Ein Report ist einer der ABAP-Programmtypen. Er lässt sich in drei Teile auf-teilen.

• Einlesen der Daten • Verarbeitung der Daten • Ausgabe der Daten

Der Programmcode besteht aus einem Deklarationsbereich, einer Eingabe-maske, einem Selektionsbereich und einer Ausgabe.

Im Deklarationsbereich werden nötige Variablen, Tabellen, Feldsymbole und Strukturen deklariert die für die Ausführung des Reports benötigt werden.

Die Eingabemaske ermöglicht die Eingabe der gewünschten Selektionskrite-rien.

Im Selektionsbereich werden die vorhandenen Daten mit den Suchkriterien ausgewertet und die selektierten Datensätze werden in einer Tabelle zusam-mengefasst.

In der Ausgabe werden die in der Tabelle zusammengefassten Daten ausge-geben.

3.1 Eingabe der Suchparameter 

Die Eingabemaske der Suchkriterien (Abb. 1) kann aus Parametern, Select-Options, Checkboxen oder Radio-Buttons bestehen. Parameter und Select-Options können als Pflichtfelder deklariert werden.

Page 7: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 7

Abb. 1: Eingabemaske des Reports

Mit Hilfe eines Parameters ist es möglich im Selektionsbild ein Eingabefeld zu erstellen. Dieses wird dann als globale Variable deklariert. Die Eingabe der fachlichen und pflegerischen Organisationseinheit erfolgt über einen Parame-ter.

Select-Options nutzt man, wenn man z.B. in einem Wertebereich suchen möchte oder die Eingabe von mehreren Werten ermöglichen will. Die Datums-eingabe erfolgt in so einem Feld. Die Mehrfachselektion ist über hinter den zwei Eingabefeldern möglich.

Checkboxen werden mit einem Häkchen bestätigt oder bleiben leer, in unse-rem Beispiel Report wird hiermit die Möglichkeit gegeben sich alternativ die stornierten Fälle anzeigen zu lassen.

Zur besseren inhaltlichen Gruppierung kann auch man Felder optisch zusam-menfassen, wie in Abb. 1 als blauer Kasten zu sehen.

Eine weitere Funktion die sich hier nicht in Verwendung befindet, ist die Nut-zung von Radiobuttons (Abb. 2). Diese dienen zur Auswahl eines von mehre-ren zur Wahl gestellten Suchkriterien.

Abb. 2: Beispiel für Radiobuttons zur Auswahl verschiedener Sortiermöglichkeiten

Pflichtfelder müssen angegeben werden um mit dem Programm fortzufahren, diese werden durch den Zusatz OBLIGATORY festgelegt. In diesem Report wird die Datumseingabe als ein Pflichtfeld deklariert.

Page 8: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 8

3.2 Selektionsanweisungen 

Der Bereich der Selektionsanweisungen beginnt mit START-OF-SELECTION. Hier folgen dann die SQL Anweisungen zur Auswertung der Suchkriterien.

Die Syntax für eine Select Anweisung aus meinem Beispiel: SELECT *

INTO TABLE lt_nbew

FROM nbew

WHERE einri = se_einri AND

bwidt IN bwidt AND

orgfa like pa_orgfa AND

orgpf LIKE pa_orgpf AND

storn = storn AND

bewty = '1'.

Diese Select Anweisung schreibt alle Inhalte der Tabelle NBEW in die lokale Tabelle LT_NBEW, bei der die Einrichtung, der Aufnahmezeitpunkt, die fachli-che Organisationseinheit, die pflegerische Organisationseinheit und das Stor-nokennzeichen den eingegebenen Selektionskriterien entspricht sowie der Bewegungstyp eine Aufnahme ist. Geschlossen wird die Anweisung mit einem Punkt am Ende.

Es folgt eine Sortierung der lokalen Tabelle NBEW nach der Fallnummer. SORT lt_nbew BY falnr.

Mit Hilfe der folgenden Anweisung wird der Report, wenn keine Datensätze gefunden wurden, mit einem Hinweis beendet.

IF sy-subrc <> 0.

WRITE: 'Keine Aufnahmebewegungen gefunden'.

RETURN.

ENDIF. SY-SUBRC ist eine Systemvariable, die angibt ob die Select Anweisung er-folgreich war oder Fehler aufgetreten sind.

Page 9: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 9

z.B. bedeutet der Wert 0, dass die Selektion erfolgreich war, der Wert 4 hinge-gen gibt zurück, dass keine Tupel gefunden wurden

3.3 Ausgabemöglichkeiten 

Um sich die gewünschten Daten anzeigen zu lassen, gibt es zwei Möglichkei-ten.

1. Die Darstellung über eine Liste, die die Daten mit einer einfachen WRI-TE Anweisung ausgibt (Abb. 3).

2. Mit Hilfe eines ALV Grid Controls die Ausgabe zu realisieren.

Die Realisierung der Ausgabe geschieht mittels eines ALV Grid (Abb. 4).

3.3.1 Als Liste 

Abb. 3: Screenshot einer Ausgabe als Liste mit einer Write Anweisung

Page 10: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 10

Die Ausgabe als feste Liste erfolgt über eine WRITE Anweisung.

Der Vorteil dieser Liste ist, dass Spalten nicht versehentlich deaktiviert werden können und die Ausgabe immer in einem einheitlichen Aussehen dargestellt wird.

Der Nachteil einer einfachen Liste ist, dass diese Liste in der ausgegebenen Version nicht mehr sortierbar ist und keine Zusatzfunktionen anbietet.

3.3.2 Als ALV Grid Control 

Vorteile durch ein ALV Grid Control sind unter anderem bei der Programmie-rung etwas Zeitersparnis, da es einen fertigen Baustein für ALV Grids gibt und so die Anpassung und Formatierung der WRITE Ausgabe wegfällt.

Abb. 4: Ausschnitt aus einem Bsp. für einen Report mit Ausgabe als ALV Grid

Page 11: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 11

Weitere Vorteile sind, dass die Spaltenbreite veränderbar ist und überflüssige Spalten ein- bzw. ausgeblendet werden können. Weiterhin gibt es Funktionen zum Sortieren der Spalten, zur Summenberechnung und die Ausgabe detail-lierter Zeileninformationen.

Zusätzlich ist es möglich auf weitere Programme zu verweisen und diese durch Doppelklicken zu aktivieren

Es wird der 'REUSE_ALV_GRID_DISPLAY' und 'REU-

SE_ALV_FIELDCATALOG_MERGE' Baustein verwendet. Ein Baustein wird über den Button aufgerufen. Hier kann man jetzt nach Bausteinen suchen und an den Report anpassen.

4 Transport 

Wenn der Report fertig ist und transportiert werden soll, muss der angelegte Transportauftrag zunächst freigegeben werden.

Dies geschieht über die Transaktion SE10 (Transport Organizer). Nach dem Anzeigen der Aufträge müssen erst die dem Transport untergeordneten Ar-beitsaufträge freigegeben werden und anschließend erst der Transport. Ist dies geschehen, so kann der Transport auf die K01 und die P01 erfolgen. Nach dem Transport ist der Report unter der angelegten Transaktion in allen Systemen aufrufbar.

5 Weitere Funktionen 

Weitere Funktionen die zur Verwendung bereitstehen, sind unter Anderem die verwendete Include Funktion, diese ermöglicht die einfache Eingabe der Ein-richtung im Selektionsbild.

Desweiteren möchte ich noch kurz auf die Möglichkeit zur Bereitstellung einer Wertehilfe hinweisen.

Dies sind nur zwei Beispiele der vielen Funktionen die es im SAP gibt.

Page 12: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 12

5.1 Bereitstellen einer Wertehilfe (F4‐Hilfe)   

Es besteht die Möglichkeit in der Eingabemaske der Suchkriterien für die Fel-der eine Wertehilfe mit zulässigen Eingabewerten zu hinterlegen. In unserem Fall ist im SAP-System für jedes Feld eine Suchhilfe hinterlegt. Dies könnte bei eigenen Feldern oder Feldern ohne Suchhilfe mit dem Zusatz MATCHCODE OBJEKT und der Angabe einer Suchhilfe hinzugefügt werden.

Diese Wertehilfe ist über ein Symbol am Ende des Eingabefeldes oder über die F4-Taste aufrufbar.

Die Vorschlagswerte können z.B. bei der fachlichen Organisationseinheit eine Liste aller Organisationseinheiten oder für das Datum eine Kalenderfunktion sein.

5.2 Einrichtung nicht fest verankern  

Mit Hilfe des „INCLUDE rnsseinr“ wird im Selektionsbildschirm die Einrich-tung abgefragt. Die Variable dafür lautet se_einri und kann in die Select Anweisungen mit aufgenommen werden.

Die Einrichtung dient als Schlüssel für eine rechtlich und organisatorisch selbstständige Einheit im Krankenhaussystem. Die Einrichtung steht innerhalb eines Mandanten an höchster Stufe der Organisation des Krankenhauses.

6 Programmablauf  

Wenn das Programm über die Transaktion gestartet wird, erscheint zuerst das Selektionsbild. Es sind die gewünschten Selektionskriterien einzugeben, diese sind mindestens das Datum.

Nach dem Ausführen des Programms werden zuerst alle zutreffenden Werte aus den Tabellen ausgelesen und in einer neuen lokalen Tabelle miteinander verknüpft.

Page 13: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 13

Nach erfolgreicher Selektion erfolgt die Ausgabe der Datensätze über das ALV Grid.

7 Zeitplan 

Die unten stehende Tabelle (Tab.1) zeigt die geschätzte Zeit, die für die Um-setzung und die Konzeption nötig ist.

Tab. 1: Zeitplanung

Arbeitsschritt Dauer Konzeption ca. 2 Stunden Programmierung ca. 6 Stunden Test ca. 2 Stunden

Gesamtdauer: ca. 10 Stunden

8 Kostenplan 

Als anfallende Kosten sind die bestehenden Personalkosten zu berücksichti-gen.

Diese belaufen sich bei 10 Std Arbeitsaufwand, mit der Grundlage einer 38,5 Stunden Woche und einem Bruttogehalt im 2. Lehrjahr eines Auszubildenden von 660,00 € im Monat, was einem Stundenlohn von 4,28 € entspricht, auf 42,80 €.

9 Glossar 

ABAP – Advanced Business Application Programming

ALV Grid – ABAP List Viewer.

Page 14: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 14

Feldsymbole – Symbolischer Name für ein Datenobjekt, dem zur Programm-laufzeit konkrete Speicherbereiche zugewiesen werden kön-nen 2

Report – ABAP-Programm, das Daten aus Datenbanktabellen liest, auswertet und in manchen Fällen auch ändert.3

SAP – Systeme, Anwendungen und Produkte in der Datenverarbeitung

SE10 – Transaktion für Transport Organizer

SE38 – Transaktion für ABAP Editor

SE80 – Transaktion für die ABAP Development Workbench

Transaktion – Aus der Sicht der ABAP-Programmierung ist eine Transaktion eine der zwei Möglichkeiten, wie ein Benutzer ein ABAP-Programm aufrufen kann.

Tupel – Entspricht einer Zeile einer Tabelle, auch Datensatz

10 Quellenverzeichnis 

Alle verwendete Abbildungen und Piktogramme sind selbst erstellte Screens-hots, die aus dem SAP-System stammen.

Die zu sehenden Patientendaten sind keine echte Daten, sie stammen aus dem Entwicklungssystem.

SAP Labs / Hochlehnert, Bernhard (Hg.): SAP R/3-Reporting. 1. Auflage, Bonn: Galileo, Press 2004

2 Keller, Horst / Jacobitz Joachim / Hochlehnert, Bernhard (Hg.): ABAP Objects Referenz. 1. Auflage, Bonn: Galileo Press 2002

3 http://help.sap.com/saphelp_46c/helpdata/DE/35/26b1acafab52b9e10000009b38f974/content.htm 2009-08-21 09:20

Page 15: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 15

Keller, Horst / Jacobitz Joachim / Hochlehnert, Bernhard (Hg.): ABAP Objects Referenz. 1. Auflage, Bonn: Galileo Press 2002

[1] Überblick über den ABAP Editor (SAP-Bibliothek) http://help.sap.com/saphelp_470/helpdata/de/d1/801a06454211d189710000e8322d00/content.htm 2009-08-17 09:11

SAP-Bibliothek http://help.sap.com/saphelp_47x200/helpdata/de/e1/8e51341a06084de10000009b38f83b/frameset.htm 2009-01-06 10:08

http://help.sap.com/saphelp_45b/helpdata/de/15/5184ab7b35d111950d0060b03c6b76/content.htm 2009-08-21 9:10

http://help.sap.com/printdocu/core/print46b/de/data/de/pdf/BCDWBTOOREP.pdf 2009-08-21 09:13

http://help.sap.com/printdocu/core/Print46c/de/data/pdf/BCSRVALV/BCSRVALV.pdf 2009-08-21 09:15

http://help.sap.com/saphelp_46c/helpdata/DE/35/26b1acafab52b9e10000009b38f974/content.htm 2009-08-21 09:20

http://sapwiki.iwoars.net/index.php 2009-08-20 08:49

11 Anlagen 

Programmcode:

REPORT ZNSTATAUf. ***Deklarationsbereich*** TABLES: nbew. DATA: wa_outtab TYPE zn2_znstatauf, it_outtab TYPE TABLE OF zn2_znstatauf, lt_nbew TYPE ish_t_nbew, lt_nfal TYPE ish_t_nfal, lt_ndia TYPE ish_t_ndia, lt_ncir TYPE ish_yt_ncir, lt_npat TYPE ishmed_t_npat, lt_ngpa1 TYPE ishmed_t_ngpa, lt_ngpa2 TYPE ishmed_t_ngpa.

Page 16: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 16

FIELD-SYMBOLS: <fs_npat> TYPE npat, <fs_nbew> TYPE nbew, <fs_ncir> TYPE ncir, <fs_ndia> TYPE ndia, <fs_nfal> TYPE nfal, <fs_ngpa1> TYPE ngpa, <fs_ngpa2> TYPE ngpa. ***Deklaration für ALV Grid*** TYPE-POOLS: slis. DATA: lt_fieldcat TYPE slis_t_fieldcat_alv. DATA: ls_layout TYPE slis_layout_alv. DATA: ls_variant TYPE disvariant. DATA: l_repid TYPE sy-repid. ***Include für Einrichtungs Überprüfung*** INCLUDE rnsseinr. ***Eingabemaske*** SELECTION-SCREEN: BEGIN OF BLOCK prog WITH FRAME TITLE text-001. PARAMETERS pa_orgfa TYPE nbew-orgfa. PARAMETERS pa_orgpf TYPE nbew-orgpf. SELECT-OPTIONS: bwidt FOR nbew-bwidt OBLIGATORY. PARAMETERS storn AS CHECKBOX. SELECTION-SCREEN: END OF BLOCK prog. * bleibt die Eingabe der Fach. OE und der Pflege. OE leer * werden alle Daten angezeigt in zutreffenden Zeitraum * hierfür werden Platzhalter in die Variablen geschrieben IF pa_orgfa IS INITIAL. pa_orgfa = '%'. ENDIF. IF pa_orgpf IS INITIAL. pa_orgpf = '%'. ENDIF. ***Selektionsbereich*** START-OF-SELECTION. SELECT * INTO TABLE lt_nbew FROM nbew WHERE einri = se_einri AND bwidt IN bwidt AND orgfa LIKE pa_orgfa AND orgpf LIKE pa_orgpf AND storn = storn AND bewty = '1'. SORT lt_nbew BY falnr. ***Prüfung ob Daten gefunden wurden*** IF sy-subrc <> 0. WRITE: 'Keine Aufnahmebewegungen gefunden'. RETURN. ENDIF. SELECT *

Page 17: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 17

INTO TABLE lt_nfal FROM nfal FOR ALL ENTRIES IN lt_nbew WHERE einri = se_einri AND falnr = lt_nbew-falnr. SORT lt_nfal BY falnr. SELECT * INTO TABLE lt_ndia FROM ndia FOR ALL ENTRIES IN lt_nfal WHERE falnr = lt_nfal-falnr. SORT lt_ndia BY falnr. SELECT * INTO TABLE lt_ncir FROM ncir FOR ALL ENTRIES IN lt_nfal WHERE falnr = lt_nfal-falnr. SORT lt_ncir BY falnr. SELECT * INTO TABLE lt_npat FROM npat FOR ALL ENTRIES IN lt_nfal WHERE patnr = lt_nfal-patnr. SORT lt_npat BY patnr. SELECT * INTO TABLE lt_ngpa1 FROM ngpa FOR ALL ENTRIES IN lt_ncir WHERE gpart = lt_ncir-kostr. SORT lt_ngpa1 BY gpart. SELECT * INTO TABLE lt_ngpa2 FROM ngpa FOR ALL ENTRIES IN lt_npat WHERE gpart = lt_npat-earnr. SORT lt_ngpa2 BY gpart. REFRESH it_outtab. LOOP AT lt_nfal ASSIGNING <fs_nfal>. CLEAR: wa_outtab. wa_outtab-falnr = <fs_nfal>-falnr. wa_outtab-patnr = <fs_nfal>-patnr. wa_outtab-bekat = <fs_nfal>-bekat. READ TABLE lt_nbew ASSIGNING <fs_nbew> WITH KEY falnr = <fs_nfal>-falnr BINARY SEARCH. IF sy-subrc = 0. wa_outtab-orgfa = <fs_nbew>-orgfa. wa_outtab-orgpf = <fs_nbew>-orgpf.

Page 18: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 18

wa_outtab-bwidt = <fs_nbew>-bwidt. wa_outtab-bwizt = <fs_nbew>-bwizt. wa_outtab-storn = <fs_nbew>-storn. ENDIF. READ TABLE lt_ndia ASSIGNING <fs_ndia> WITH KEY falnr = <fs_nfal>-falnr BINARY SEARCH. IF sy-subrc = 0. wa_outtab-ditxt = <fs_ndia>-ditxt. ENDIF. READ TABLE lt_ncir ASSIGNING <fs_ncir> WITH KEY falnr = <fs_nfal>-falnr BINARY SEARCH. IF sy-subrc = 0. wa_outtab-mgart = <fs_ncir>-mgart. wa_outtab-kostr = <fs_ncir>-kostr. READ TABLE lt_ngpa1 ASSIGNING <fs_ngpa2> WITH KEY gpart = <fs_ncir>-kostr BINARY SEARCH. IF sy-subrc = 0. wa_outtab-kotna = <fs_ngpa2>-name1. ENDIF. ENDIF. READ TABLE lt_npat ASSIGNING <fs_npat> WITH KEY patnr = <fs_nfal>-patnr BINARY SEARCH. IF sy-subrc = 0. wa_outtab-nname = <fs_npat>-nname. wa_outtab-vname = <fs_npat>-vname. wa_outtab-gbdat = <fs_npat>-gbdat. wa_outtab-earnr = <fs_npat>-earnr. * Änderung der geschlechtsanzeige von 1,2,3 in M,W,U IF <fs_npat>-gschl = 1. wa_outtab-gschl = 'M'. " Männlich ELSEIF <fs_npat>-gschl = 2. wa_outtab-gschl = 'W'. " Weiblich ELSEIF <fs_npat>-gschl = 3. wa_outtab-gschl = 'U'. " Unbekannt ENDIF. READ TABLE lt_ngpa2 ASSIGNING <fs_ngpa1> WITH KEY gpart = <fs_npat>-earnr BINARY SEARCH. IF sy-subrc = 0. wa_outtab-einwa = <fs_ngpa1>-name1. ENDIF. ENDIF. APPEND wa_outtab TO it_outtab. ENDLOOP. SORT it_outtab BY orgfa orgpf nname. *Ausgabe ALV l_repid = sy-repid. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZN2_ZNSTATAUF' CHANGING ct_fieldcat = lt_fieldcat EXCEPTIONS

Page 19: Erstellung eines SAP-Reports - leinhos- · PDF fileErstellung eines Reports 21.08.2009 ©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 4

Erstellung eines Reports 21.08.2009

©Manuel Martin | Servicecenter Informationstechnologie | Universitätsmedizin Mainz Seite 19

inconsistent_interface = 1 program_error = 2 OTHERS = 3. *--->ALV-Ausgabe CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = l_repid i_grid_title = 'Stationäre aufnahmen: ' is_layout = ls_layout it_fieldcat = lt_fieldcat i_save = 'A' "speichern der Variante erl. is_variant = ls_variant TABLES t_outtab = it_outtab EXCEPTIONS program_error = 1 OTHERS = 2.