Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 8 Rechnen mit Datum und Zeit, Mengen und Währungen
Pfeil 8.1 Felddeklarationen
Pfeil 8.2 Rechnen mit Datumsfeldern
Pfeil 8.3 Rechnen mit Zeitfeldern
Pfeil 8.4 Rechnen mit Mengen- und Währungsfeldern
Pfeil 8.5 Codebeispiel zu Datums-, Zeit- und Währungsfeldern
 
Zum Seitenanfang

8.5    Codebeispiel zu Datums-, Zeit- und Währungsfeldern Zur vorigen ÜberschriftZur nächsten Überschrift

Die verschiedenen Berechnungsmöglichkeiten in Datums-, Zeit- und Währungsfeldern zeigen wir Ihnen im Folgenden noch einmal am Beispiel des zusammenhängenden ABAP-Programms Z_TEILNEHMERLISTE08.

  1  *&---------------------------------------------*
2 *& Report Z_TEILNEHMERLISTE08 *
3 *& *
4 *&---------------------------------------------*
5 *& *
6 *& *
7 *&---------------------------------------------*
8
9 REPORT Z_TEILNEHMERLISTE08.
10
11 * Tabellenarbeitsbereich deklarieren
12 DATA: wa_zteilnehmer02 TYPE zteilnehmer02.
13
14 * Zeichenketten deklarieren
15 DATA : aktuelle_uhrzeit TYPE syst-uzeit,
16 alter_dec4 TYPE p DECIMALS 4,
17 alter_integer TYPE i,
18 faelligkeitsdatum TYPE syst-datum,
19 geburtsdatum TYPE syst-datum,
20 jahresanfang TYPE syst-datum,
21 jahresende TYPE syst-datum,
22 mitternacht TYPE syst-uzeit,
23 mwst_betrag TYPE zteilnehmer02-tkurspreis,
24 mwst_satz TYPE p DECIMALS 2,
25 monatsanfang TYPE syst-datum,
26 monatsende TYPE syst-datum,
27 pause TYPE p DECIMALS 2,
28 rechnungsbetrag TYPE zteilnehmer02-tkurspreis,
29 rechnungsdatum TYPE syst-datum,
30 restminuten TYPE i,
31 restsekunden TYPE i,
32 reststunden TYPE i,
33 restzeit TYPE p DECIMALS 4,
34 schichtende TYPE syst-uzeit,
35 tage_vergangen TYPE i,
36 tage_verbleibend TYPE i,
37 tagesdatum TYPE syst-datum,
38 unterrichtsbeginn TYPE syst-uzeit,
39 unterrichtsende TYPE syst-uzeit,
40 unterrichtszeit TYPE p DECIMALS 2,
41 zahlungsziel TYPE i.
42
43 * Feldwerte zuweisen
44 rechnungsdatum = sy-datum.
45 rechnungsdatum = '20150514'.
46 unterrichtsbeginn = sy-uzeit.
47 unterrichtsbeginn = '081500'.
48 SKIP.
49
50 * Fälligkeitsdatum einer Rechnung ermitteln
51 rechnungsdatum = sy-datum.
52 zahlungsziel = 30.
53 faelligkeitsdatum = rechnungsdatum + zahlungsziel.
54 WRITE: / 'Rechnungsdatum', 30 rechnungsdatum,
55 / 'Zahlungsziel in Tagen', 30 zahlungsziel,
56 / 'Fälligkeitsdatum', 30 faelligkeitsdatum.
57 SKIP.
58
59 * Den ersten Tag des laufenden Monats bestimmen
60 monatsanfang = sy-datum.
61 monatsanfang+6(2) = '01'.
62 WRITE: / 'Monatsanfang des laufenden Monats ist',
monatsanfang.
63
64 * Den ersten Tag des folgenden Monats bestimmen
65 monatsanfang = sy-datum.
66 monatsanfang+6(2) = '01'.
67 monatsanfang = monatsanfang + 35.
68 monatsanfang+6(2) = '01'.
69 WRITE: / 'Monatsanfang des folgenden Monats ist',
monatsanfang.
70
71 * Den letzten Tag des Vormonats bestimmen
72 monatsanfang = sy-datum.
73 monatsanfang+6(2) = '01'.
74 monatsende = monatsanfang - 1.
75 WRITE: / 'Monatsende des Vormonats ist',
monatsende.
76
77 * Den letzten Tag des laufenden Monats bestimmen
78 monatsanfang = sy-datum.
79 monatsanfang+6(2) = '01'.
80 monatsanfang = monatsanfang + 35.
81 monatsanfang+6(2) = '01'.
82 monatsende = monatsanfang - 1.
83 WRITE: / 'Monatsende des laufenden Monats ist',
monatsende.
84 SKIP.
85
86 * Vergangene und verbleibende Tage des Jahres bestimmen
87 tagesdatum = sy-datum.
88 jahresanfang = sy-datum.
89 jahresende = sy-datum.
90 jahresanfang+4(4) = '0101'.
91 jahresende+4(4) = '1231'.
92 tage_vergangen = tagesdatum - jahresanfang.
93 tage_verbleibend = jahresende - tagesdatum.
94 WRITE: / 'Jahresanfang', jahresanfang,
95 'Jahresende', jahresende,
96 'heutiges Datum', tagesdatum,
97 / 'vergangene Tage', tage_vergangen,
98 'verbleibende Tage', tage_verbleibend.
99 SKIP.
100
101 * Alter einer Person bestimmen
102 tagesdatum = sy-datum.
103 geburtsdatum = '19671223'.
104 alter_integer = tagesdatum - geburtsdatum.
105 WRITE: / 'Alter ganzzahlig in Tagen',
46 alter_integer.
106 alter_integer = alter_integer / 365.
107 WRITE: / 'Alter ganzzahlig in Jahren kfm. gerundet',
46 alter_integer.
108 alter_dec4 = ( tagesdatum - geburtsdatum )
/ 365.
109 WRITE: / 'Alter mit 4 Nachkommastellen in Jahren',
40 alter_dec4.
110 alter_dec4 = ( tagesdatum - geburtsdatum )
DIV 365.
111 WRITE: / 'Alter ganzzahlige Division',
40 alter_dec4.
112 alter_dec4 = ( tagesdatum - geburtsdatum )
MOD 365.
113 WRITE: / 'Alter ganzzahlige Division Resttage',
40 alter_dec4.
114 SKIP.
115
116 * Unterrichtsdauer inkl. Pause bestimmen
117 unterrichtsbeginn = '081500'.
118 unterrichtsende = '180000'.
119 unterrichtszeit =
unterrichtsende - unterrichtsbeginn.
120 WRITE: / 'Unterrichtszeit in Sekunden',
40 unterrichtszeit.
121 unterrichtszeit =
( unterrichtsende - unterrichtsbeginn ) / 60.
122 WRITE: / 'Unterrichtszeit in Minuten',
40 unterrichtszeit.
123 unterrichtszeit =
( unterrichtsende - unterrichtsbeginn ) / 3600.
124 WRITE: / 'Unterrichtszeit in Stunden',
40 unterrichtszeit.
125
126 * Unterrichtsdauer ohne Pause bestimmen
127 pause = '0.5'.
128 unterrichtszeit =
( unterrichtsende - unterrichtsbeginn ) / 3600.
129 unterrichtszeit = unterrichtszeit - pause.
130 WRITE: / 'Pause in Stunden', 40 pause.

131 WRITE: / 'Unterrichtszeit ohne Pause in Stunden',
40 unterrichtszeit.
132 SKIP.
133
134 * Zeit von jetzt bis Mitternacht berechnen
135 aktuelle_uhrzeit = sy-uzeit.
136 WRITE: / 'Aktuelle Uhrzeit',
40 aktuelle_uhrzeit.
137 mitternacht = '240000'.
138 restzeit = mitternacht - aktuelle_uhrzeit.
139 WRITE: / 'Restzeit bis Mitternacht in Sekunden',
40 restzeit.
140 reststunden = ( mitternacht - aktuelle_uhrzeit )
DIV 3600.
141 WRITE: / 'Reststunden bis Mitternacht',
40 reststunden.
142 restminuten =
( ( mitternacht - aktuelle_uhrzeit ) MOD 3600 )
DIV 60.
143 restsekunden = ( mitternacht - aktuelle_uhrzeit )
MOD 60.
144 WRITE: / 'Restzeit bis Mitternacht:',
reststunden, 'Stunden',
restminuten, 'Minuten',
restsekunden, 'Sekunden'.
145 SKIP.
146
147 * Zeit über Mitternacht berechnen
148 aktuelle_uhrzeit = sy-uzeit.
149 schichtende = '052010'.
150 WRITE: / 'Aktuelle Uhrzeit',
40 aktuelle_uhrzeit.
151 WRITE: / 'Schichtende',
40 schichtende.
152 restzeit =
( schichtende - aktuelle_uhrzeit ) MOD 86400.
153 WRITE: / 'Restzeit bis Schichtende in Sekunden',
40 restzeit.
154 reststunden = restzeit DIV 3600.
155 WRITE: / 'Reststunden bis Schichtende',
40 reststunden.
156 restminuten = ( restzeit MOD 3600 ) DIV 60.
157 restsekunden = restzeit MOD 60.

158 WRITE: / 'Restzeit bis Schichtende:',
reststunden, 'Stunden',
restminuten, 'Minuten',
restsekunden, 'Sekunden'.
159 SKIP.
160
161 * Rechnen mit Währungsfeldern
162 mwst_satz = '0.19'.
163 SELECT * FROM zteilnehmer02 INTO wa_zteilnehmer02.
164 WRITE: / wa_zteilnehmer02-tname,
wa_zteilnehmer02-tkurspreis,
wa_zteilnehmer02-twaehrung.
165 mwst_betrag =
mwst_satz * wa_zteilnehmer02-tkurspreis.
166 rechnungsbetrag =
mwst_betrag + wa_zteilnehmer02-tkurspreis.
167 WRITE : mwst_betrag, wa_zteilnehmer02-twaehrung,
rechnungsbetrag,
wa_zteilnehmer02-twaehrung.
168 ENDSELECT.

Listing 8.1    Report Z_TEILNEHMERLISTE08

Anmerkungen zum Quellcode

In dem Report führen wir verschiedene Berechnungen im Zusammenhang mit den Teilnehmern und der Dauer eines Kurses aus.

Zeile 9

Um die Kapitelnummerierung und die des Reports zusammenzuführen, trägt der ABAP-Report in Listing 8.1 die 08 im Namen. Sie können Ihre Reports aber ohnehin so benennen, wie Sie möchten – vorausgesetzt, Sie bleiben im Kundennamensraum.

Zeile 12

Für die Arbeit mit der Tabelle ZTEILNEHMER02 wird eine Workarea deklariert.

Zeile 15 bis 41

Alle benötigten Variablen werden mit einem Kettensatz der DATA-Anweisung deklariert. Die Art und Weise der Deklarationen erfolgt nicht nach betriebswirtschaftlichen Anforderungen, sondern dient dem Lerneffekt des Beispiels.

Zeile 44 bis 47

Den Variablen werden Werte zugewiesen. Das Feld RECHNUNGSDATUM erhält als Beispiel für eine Wertezuweisung zuerst das aktuell gültige Systemdatum und dann den Wert »14.05.2015«. Ähnlich wird mit dem Feld UNTERRICHTSBEGINN verfahren.

Zeile 51 bis 56

Die Ermittlung des Fälligkeitsdatums beginnt. Dem Feld RECHNUNGS-DATUM wird das aktuelle Systemdatum zugewiesen, und das Feld ZAHLUNGSZIEL erhält den Wert 30. Durch die Addition von Zahlungsziel und Rechnungsdatum wird das Fälligkeitsdatum ermittelt. Die Listausgabe erzeugt den Text »Rechnungsdatum« in einer neuen Zeile. Das Feld RECHNUNGSDATUM wird in derselben Zeile ab Position 30 ausgegeben. Die Ausgabe von Zahlungsziel und Fälligkeitsdatum erfolgt in jeweils eigenen Zeilen nach demselben Muster.

[»]  Noch ist alles hart codiert

An dieser Stelle nochmals ein Hinweis: Nach Ihrem augenblicklichen Wissensstand erfolgt die Ausgabe von Texten in der Liste durch hart codierte Literale, die nicht sprachabhängig gepflegt werden können. Denken Sie daran, dass bei der späteren Arbeit in der Praxis bei solchen Gelegenheiten nicht mit Literalen, sondern mit Textelementen gearbeitet wird. Mehr zu Textelementen erfahren Sie in Kapitel 11, »Selektionsbildschirme«.

Zeile 60 bis 62

Für den ersten Tag des laufenden Monats wird zunächst in das Feld MONATSANFANG das Systemdatum geschrieben. Bei Datumsfeldern steht an Stelle 7 und 8 der Wert für den Tag. Deshalb wird mittels String-Operation nach Stelle 6 an den Stellen 7 und 8 die Zeichenkette 01 für den ersten Tag des Monats eingesetzt. Danach wird der Monatsanfang des laufenden Monats in der Liste ausgegeben.

Zeile 65 bis 69

Um den ersten Tag des Folgemonats zu bestimmen, erhält das Feld MONATSANFANG zunächst wieder den Wert des Systemdatums. Dann wird der Feldwert auf den ersten Tag des laufenden Monats gesetzt. Zum Datumswert werden 35 Tage addiert und damit ein Tag mitten im folgenden Monat ermittelt; die Bestimmung von Jahres- und Monatswechseln wird damit fehlerfrei durch die eingebaute Kalenderfunktion des SAP-Systems übernommen. Im nächsten Schritt wird der Tag wieder auf 01 gesetzt. Da Sie die letzte String-Operation bereits für den Folgemonat durchgeführt haben, steht nun im Feld MONATSANFANG der erste Tag des Folgemonats.

Zeile 72 bis 75

Zur Berechnung des letzten Tages des Vormonats wird vom aktuellen Monat der Datumswert des ersten Tages ermittelt. Nachdem dann im Feld MONATSANFANG der erste Tag des aktuellen Monats steht, wird von diesem Datumswert ein Tag subtrahiert. Automatisch ermittelt das System den Vortag und damit den letzten Tag des Vormonats.

Zeile 78 bis 83

Für den letzten Tag des laufenden Monats ermitteln Sie zunächst den ersten Tag des Folgemonats. Durch Subtraktion eines Tages vom ersten Tag des Folgemonats erhalten Sie den Vortag und damit den letzten Tag Ihres aktuellen Monats.

Zeile 87 bis 98

Um die bereits im Jahr vergangenen Tage zu ermitteln, erhält das Feld JAHRESANFANG im ersten Schritt den Wert des Systemdatums und über eine String-Operation im zweiten Schritt an den Stellen 5 und 6 den Wert 01 für den ersten Monat des Jahres sowie an den Stellen 7 und 8 den Wert 01 für den ersten Tag des Monats. Über die Differenz vom Tagesdatum zum Jahresanfang werden die vergangenen Tage ermittelt und in das Feld TAGE_VERGANGEN geschrieben.

Entsprechend wird im Feld JAHRESENDE der 31.12. des laufenden Jahres eingesetzt. Analog zum Vorgehen zu den bereits vergangenen Tagen werden über die Differenz von Jahresende und Tagesdatum die verbleibenden Tage des Jahres berechnet.

Zeile 106

Für die Bestimmung des Lebensalters einer Person, bezogen auf den heutigen Tag, benötigen Sie das Tagesdatum und das Geburtsdatum. Die Differenz zwischen zwei Datumswerten wird in Tagen ausgedrückt. Dividieren Sie die Tage durch 365, erhalten Sie die Jahre – zumindest nach dem bei uns üblichen gregorianischen Kalender, allerdings ohne Berücksichtigung der Schaltjahre.

[»]  Zur Vereinfachung sind keine Schaltjahre berücksichtigt

Schaltjahre werden hier nicht berücksichtigt. Bei der Division durch 365 mit dem Schrägstrich wird zwar der genaue Wert ausgerechnet, da aber das Zielfeld vom Typ i ist, wird nur der gerundete ganzzahlige Wert dort eingetragen.

Zeile 108

Ist das Zielfeld vom Typ p mit beispielsweise vier Nachkommastellen, ergibt die Division der Differenz aus Tagesdatum und Geburtsdatum eine Dezimalzahl. Die Nachkommastellen drücken dabei die Bruchteile von Jahren aus, d. h. Monate und Tage.

Zeile 110

Bei der ganzzahligen Division steht im Zielfeld immer eine natürliche Zahl. Eigentlich bietet sich deshalb in solchen Fällen eher ein Zielfeld vom Typ i an. Abhängig von der weiteren Verwendung des Feldes, könnte es aber auch sinnvoll sein, mit einem Zielfeld eines anderen Datentyps zu arbeiten. Wie so oft hängt diese Entscheidung von der betriebswirtschaftlichen Aufgabenstellung ab. Hier wurde für die Demonstration der Wirkungsweise ein Feld vom Typ p mit vier Nachkommastellen gewählt.

Zeile 112

Der Rest der ganzzahligen Division liefert den verbleibenden Rest der vollen Jahre in Tagen. Zwar sind die Zeiten vorbei, in denen man mit Ressourcen so sparsam umgehen musste, dass man Felder mehrfach verwendete; aus Vereinfachungsgründen werden im Beispiel aber auch die verbleibenden Resttage in dasselbe Zielfeld geschrieben. Wer es anders machen möchte, legt sich für das Zielfeld eine eigene Variable an.

Zeile 119

Bei Zeitfeldern wird die Differenz immer in Sekunden gemessen. 60 Sekunden ergeben eine Minute, 3.600 Sekunden eine Stunde und 86.400 Sekunden einen Tag. Der Inhalt des Feldes UNTERRICHTSZEIT enthält daher nach der Subtraktion den Wert der Zeitdifferenz in Sekunden.

Zeile 121

Nach der Division durch 60 erhalten Sie den genauen Wert der Zeitdifferenz in Minuten. Abhängig vom Datentyp des Zielfeldes, wird das Ergebnis mit der entsprechenden Genauigkeit und dem entsprechenden Format dort eingetragen.

Zeile 123

Die Division durch 3.600 ermittelt das Ergebnis der Zeitdifferenz in Stunden. Je nach Datentyp des Zielfeldes steht anschließend dort das Ergebnis in entsprechender Genauigkeit. Nachkommastellen des Zielfeldes bilden die Bruchteile von Stunden ab; sie werden je nach betriebswirtschaftlicher Anwendung auch als Industrieminuten bezeichnet.

Zeile 129

Stunden, Minuten und Sekunden im Dezimalsystem zu verarbeiten hat den Vorteil, dass eine halbe Stunde nicht in Form von 30 Minuten betrachtet wird, sondern als 0,5 Stunden. Dies erleichtert die weitere Verarbeitung wesentlich. Sie subtrahieren von der Differenz aus Unterrichtsende und Unterrichtsbeginn einfach noch die Pause und erhalten die reine Unterrichtszeit.

Zeile 135 bis 139

Um die Zeit von jetzt bis Mitternacht zu berechnen, erhält das Feld AKTUELLE_UHRZEIT den Wert der Systemuhrzeit. Das Zeitfeld hat sechs Stellen. Die Stellen 1 und 2 sind für die Stunden vorgesehen, die Stellen 3 und 4 für die Minuten und die Stellen 5 und 6 für die Sekunden. Mit dem Literal '240000' erhält das Feld MITTERNACHT den Wert für 24:00:00 Uhr. Die Differenz zwischen Mitternacht und der aktuellen Uhrzeit wird wieder in Sekunden gemessen und in das Feld RESTZEIT geschrieben.

Zeile 140

Durch die ganzzahlige Division der Zeitdifferenz durch 3.600 werden die verbleibenden Stunden bis Mitternacht berechnet.

Zeile 142

Der Rest der ganzzahligen Division wird wiederum in Sekunden gemessen. Dieser Wert durch 60 geteilt ergibt die Restminuten. Die Idee für die Ausgabe, die hinter diesem Vorgehen steckt, läuft darauf hinaus, dass die Zeit im Uhrzeitformat ausgegeben werden soll, z. B.: »Bis Mitternacht sind es noch 3 Stunden, 4 Minuten und 5 Sekunden«.

Zeile 143

Um außer den Stunden und Minuten auch die fehlenden Sekunden ermitteln zu können, genügt es, den Rest der ganzzahligen Division der Zeitdifferenz durch 60 zu berechnen, denn dieser Rest wird in Sekunden ausgedrückt. Die Anzahl der Minuten interessiert an dieser Stelle nicht. Die restlichen Sekunden stehen richtig im Zielfeld RESTSEKUNDEN.

Zeile 149

In der Standardauslieferung des ERP-Systems gibt es Muster und Vorlagen für Schichtpläne. Trotzdem kommt es immer wieder vor, dass Sie mit Zeitintervallen arbeiten müssen, die über Mitternacht hinweg laufen. Deshalb wird in diesem Beispiel das Schichtende übungshalber auf 5 Uhr, 20 Minuten und 10 Sekunden des nächsten Tages gesetzt. Bei dieser – zugegebenermaßen unrealistischen – Schlusszeit einer Schicht können Sie gut verfolgen, ob Ihr Programm die verbleibende Zeit in Stunden, Minuten und Sekunden richtig und genau berechnet.

Zeile 152 bis 157

Als Erstes wird die Differenz zwischen Schichtende und der aktuellen Uhrzeit ermittelt. Um das Beispiel einfach zu halten, wird angenommen, dass die aktuelle Uhrzeit nach 05:20:10 Uhr liegt. Damit ist die Schlusszeit immer kleiner als die Anfangszeit und die Zeitdifferenz negativ. Der Betrag für den Rest der ganzzahligen Division durch 86.400, d. h. der Rest bis 24 Stunden, wird in das Zielfeld RESTZEIT geschrieben. Damit steht im Zielfeld die echte Zeitdifferenz in Sekunden. Die verbleibenden Berechnungen laufen nach den vorgestellten Mustern ab.

Zeile 162

Die Mehrwertsteuer im Beispiel wird als Faktor '0.19' nicht als Prozentwert angegeben und in das Zielfeld MWST_SATZ geschrieben. In der Praxis ist dieser Wert nicht hart im Quellcode codiert, sondern wird aus entsprechenden Tabellenwerten gelesen und dort auch gepflegt.

Zeile 163 bis 168

Sie lesen Satz für Satz aus der Tabelle und verarbeiten jeden Satz. Das satzweise Lesen kann mit einer Schleife verglichen werden, die so lange läuft, wie noch ein Satz aus der Tabelle gelesen werden kann. Die Schleife beginnt mit der SELECT-Anweisung und endet mit ENDSELECT. Beide Anweisungen gehören zusammen und definieren Beginn und Ende der Lesestruktur; dazwischen stehen die Anweisungen für die Verarbeitung eines gelesenen Satzes.

In unserem Beispiel wird für jeden Datensatz durch die Multiplikation von Kurspreis und Mehrwertsteuersatz der Mehrwertsteuerbetrag ermittelt. Anschließend ergibt die Addition von Mehrwertsteuerbetrag und Kurspreis den Rechnungsbetrag. Die relevanten Felder werden als Zeile in einer Liste ausgegeben; jeder Datensatz führt zu einer neuen Listzeile. Die Rechenoperationen im Beispiel sind allerdings nicht primär, wichtig sind vielmehr die Datendeklarationen der verwendeten Felder. Die Felder MWST_BETRAG und RECHNUNGSBETRAG verweisen hinsichtlich ihrer Deklaration auf das Tabellenfeld ZTEILNEHMER02-TKURSPREIS, um Konvertierungsfehler zu vermeiden.

Ausgabe des Quellcodes

Im Folgenden finden Sie die Bildschirmausgaben, die bei einem erfolgreichen Programmverlauf ausgegeben werden.

Fälligkeitsdatum einer Rechnung (Zeile 50 bis 56)

Abbildung 8.1    Fälligkeitsdatum einer Rechnung (Zeile 50 bis 56)

Erste und letzte Tage eines Monats (Zeile 59 bis 83)

Abbildung 8.2    Erste und letzte Tage eines Monats (Zeile 59 bis 83)

Vergangene und verbleibende Tage eines Jahres (Zeile 86 bis 98)

Abbildung 8.3    Vergangene und verbleibende Tage eines Jahres (Zeile 86 bis 98)

Alter einer Person (Zeile 101 bis 113)

Abbildung 8.4    Alter einer Person (Zeile 101 bis 113)

Unterrichtszeit (Zeile 116 bis 131)

Abbildung 8.5    Unterrichtszeit (Zeile 116 bis 131)

Restzeit bis 24:00 Uhr (Zeile 134 bis 144)

Abbildung 8.6    Restzeit bis 24:00 Uhr (Zeile 134 bis 144)

Restzeit bis zum nächsten Morgen (Zeile 147 bis 158)

Abbildung 8.7    Restzeit bis zum nächsten Morgen (Zeile 147 bis 158)

Rechnen mit Währungsfeldern (Zeile 161 bis 168)

Abbildung 8.8    Rechnen mit Währungsfeldern (Zeile 161 bis 168)

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern