Fehler bei der Berechnung. Konstanten werden nicht berechnet

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Fehler bei der Berechnung. Konstanten werden nicht berechnet

Beitrag von reca (ForumUser / 3 / 0 / 0 ) »
Hallo,
ich hoffe ihr könnt mir weiterhelfen, ich kann nicht auf die Konstanten zugreifen.
hier zuerst mal die Aufgabenstellung:
Währungsumrechnung
Es soll ein Report zur Umrechnung eines Betrages von einer Währung in eine andere erstellt
werden. Dabei soll es möglich sein, auf dem Selektionsbild die Ausgangswährung, die
Zielwährung und den Betrag anzugeben.
Erstellen Sie zur Verwaltung der Umrechnungsfaktoren zwischen verschiedenen Währungen
einen eigenen strukturierten Datentyp t_currency_conversion (→ TYPES), der folgende
Felder umfasst:
• from_currency: Kürzel Ausgangswährung, character(3), Beispiel „EUR“
• to_currency: Kürzel Zielwährung, character(3), Beispiel „AUD“
• from_name: Name Ausgangswährung, character(20), Beispiel „Australischer Dollar“
• to_name: Name der Zielwährung, character(20)
• rate: Umrechnungsfaktor, p decimals 4
Um Code-Wiederholungen zu vermeiden, definieren Sie weitere geeignete Datentypen.
Die einzelnen Umrechnungsfaktoren sollen in einer Internen Tabelle abgelegt werden, die zu
Beginn des Reports initialisiert wird.
Nach Eingabe der Eingabewerte auf dem Selektionsbild soll die Interne Tabelle nach einem
passenden Umrechnungskurs durchsucht werden und der umgerechnete Betrag ausgegeben
werden (siehe Screenshot). Ist kein passender Umrechnungskurs vorhanden, so soll eine
Fehlermeldung ausgegeben werden.
Fremdwährung Umrechnungskurs von
Euro in Fremdwährung
Australische Dollar (AUD) 0,75109
Kanadische Dollar (CAD) 1,43864
Schweizer Franken (CHF) 1,48699
Englisches Pfund (GBP) 0,62035
Japanischer Yen (JPY) 1,10558
7.b) Währungsumrechnung mit DataDictionary
Kopieren Sie den Report aus Teilaufgabe a) in einen neuen Report. Ersetzen Sie die lokalen
Typdefinitionen durch Definitionen im DataDictionary. Legen Sie dazu einen neue Struktur und
die dazugehörigen Datenelemente und Domänen an.



Die interne Tabelle, die Paramater und die Variablen habe ich programmiert, aber ich kann bei der Berechnung nicht auf die Konstanten zugreifen.

Hier mein CODE:

*Felder die aufgerufen werden, Selektionsbilder.
PARAMETERS:
awaehr(3) type c default 'EUR',
zwaehr(3) type c,
betrag type p decimals 4.
*erg type p decimals 2.
*Konstanten kann man nicht ändern, sie sind fest angegeben.
*Angabe der Waehrungen.

CONSTANTS:
aud TYPE p DECIMALS 5 VALUE '0,75109',
cad TYPE p DECIMALS 5 VALUE '1,43864',
chf TYPE p DECIMALS 5 VALUE '1,48699',
gbp TYPE p DECIMALS 5 VALUE '0,62035',
jpy TYPE p DECIMALS 5 VALUE '1,10558'.


*eigener Datentyp: man braucht später nur auf t_currency zugreifen.
*beginnt mit begin of und endet mit end of.
TYPES:
Begin of t_currency_conversion,
from_currency(3) TYPE c,
to_currency(3) TYPE c,
from_name(20) TYPE c,
to_name(20) TYPE c,
rate TYPE p DECIMALS 5,
end of t_currency_conversion,

*eigener Datentyp, (für Datentabelle)
Begin of t_currency_database,
currency(3) type c,
name(20) type c,
rate type p DECIMALS 5,
end of t_currency_database.


DATA:
erg type p decimals 2,
meintype TYPE t_currency_conversion, "meintype ist eine Variable vom eigens angelegtem Type t_currency_conversion.
waehrungsdb TYPE TABLE OF t_currency_database, "Hier legen wir eine Tabelle (Datenbank) für unsere Waehrungen an--> eigener Datentyp
"waehrungszeile TYPE t_currency_database,( macht das gleiche wie LIKE LINE OF) kann man auch so schreiben.
wz LIKE LINE OF waehrungsdb, "Erzeugt eine Variable vom TYP wie eine Zeile aus unserer Datenbank, wird benötigt um die Tabelle befüllen zu können.
tmpwz LIKE LINE OF waehrungsdb.

"rechnen
" Hier werden WErte für die "Interne Tabelle" eingetragen.
wz-currency = 'AUD'.
wz-name = 'Australischer Dollar'.
wz-rate = '0.75109'.
APPEND wz TO waehrungsdb.
wz-currency = 'CAD'.
wz-name = 'Kanadische Dollar'.
wz-rate = '1.43864'.
APPEND wz TO waehrungsdb.
wz-currency = 'CHF'.
wz-name = 'Schweizer Franken'.
wz-rate = '1.48699'.
Append wz to waehrungsdb.
wz-currency = 'GBP'.
wz-name = 'Englischer Pfund'.
wz-rate = '0.62035'.
append wz to waehrungsdb.
wz-currency = 'JPY'.
wz-name = 'Japanischer Yen'.
wz-rate = '1.10558'.
append wz to waehrungsdb.

"bindestrich zwischen meintype und from_currency ist dazu da, damit er Zugriff auf from_currency hat.
meintype-from_currency = awaehr.
meintype-to_currency = zwaehr.

"LOOP AT sagt: gehe durch waerungsdb, Into sagt: nehme jede gefundene Zeile temporär in die Zeilenvariable wz, Where sagst filtere alles herau " currency = meintype-from_currency heraus.
LOOP AT waehrungsdb INTO wz where currency = meintype-from_currency.
tmpwz = wz.
ENDLOOP.

IF tmpwz IS Initial.
WRITE: 'Currrency not found'.
ELSE.
erg = betrag * meintype-rate.

WRITE: / 'Ergebnis: ', erg.
ENDIF.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Fehler bei der Berechnung. Konstanten werden nicht berec

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
reca hat geschrieben:Hallo,

Die interne Tabelle, die Paramater und die Variablen habe ich programmiert, aber ich kann bei der Berechnung nicht auf die Konstanten zugreifen.

Hier mein CODE:

*Felder die aufgerufen werden, Selektionsbilder.
PARAMETERS:
awaehr(3) type c default 'EUR',
zwaehr(3) type c,
betrag type p decimals 4.
*erg type p decimals 2.
*Konstanten kann man nicht ändern, sie sind fest angegeben.
*Angabe der Waehrungen.

CONSTANTS:
aud TYPE p DECIMALS 5 VALUE '0,75109',
cad TYPE p DECIMALS 5 VALUE '1,43864',
chf TYPE p DECIMALS 5 VALUE '1,48699',
gbp TYPE p DECIMALS 5 VALUE '0,62035',
jpy TYPE p DECIMALS 5 VALUE '1,10558'.
Viel Text und viele Fragen. Fragen wie "Konstanten werden nicht berechnet" und " kann bei der Berechnung nicht auf die Konstanten zugreifen." verstehe ich nicht, sorry.

Wenn Du einen oder mehrere Fehler bekommst, was fuer Fehler? Fehlermeldungen? bekommst Du dann???

Bekommst Du diesen Code ueberhaupt ohne Fehler generiert?

Muesste das nicht ohne DecimalKOMMA sonder mit DecimalPUNKT sein??? (interne Darstellung mit Punkt).

Code: Alles auswählen.

CONSTANTS:
aud TYPE p DECIMALS 5 VALUE '0,75109',
cad TYPE p DECIMALS 5 VALUE '1,43864',
chf TYPE p DECIMALS 5 VALUE '1,48699',
gbp TYPE p DECIMALS 5 VALUE '0,62035',
jpy TYPE p DECIMALS 5 VALUE '1,10558'.

Code: Alles auswählen.

CONSTANTS:
aud TYPE p DECIMALS 5 VALUE '0.75109',
cad TYPE p DECIMALS 5 VALUE '1.43864',
chf TYPE p DECIMALS 5 VALUE '1.48699',
gbp TYPE p DECIMALS 5 VALUE '0.62035',
jpy TYPE p DECIMALS 5 VALUE '1.10558'.

Re: Fehler bei der Berechnung. Konstanten werden nicht berec

Beitrag von reca (ForumUser / 3 / 0 / 0 ) »
Vielleicht habe ich mich zu ungenau ausgedrückt.
Also mein Programm läuft durch. Es kommt keine fehlermeldung. Nur es bringt mir immer die Aussage, dass es keine Währung gefunden hat, was ich in der if Bedingung programmiert habe. Ich muss meine berechnung mit den Konstanten verknüpfen, weiß aber nicht wie...
Die Benennung von den Konstanten stimmt, wir haben es so in der Vorlesung gelernt.
Ich möchte gerne wissen, wie ich in der berechnung(siehe if bedingung) zusätzlich auf die Konstanten zugreifen kann..

Re: Fehler bei der Berechnung. Konstanten werden nicht berec

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Wenn in awaehr 'EUR' steht, kommt kein Ergebnis.

Du sollstest Dir angewoehnen, Coding in diese Code-Tags oben in der Leiste [ code und /code] einzuschliessen, damit es viel besser lesbar ist.


Vorschlag: PARAMETERS im Selektionsbildschirm immer mit P_ am Anfang benennen, also statt AWAEHR nimmst man P_AWAEHR (Nachteil es sind nur 8 Zeichen moeglich)
und fuer SELECT-OPTIONS immer mit S_ beginnen. Das erleichtert das Lesen eines ABAP Programmes immens und Fehler werden schneller erkannt. Gerade bei SELECT statetments.

Einmal gedebuggt beim LOOP AT und durch wirst sofort sehen, was dort falsch laeuft.
Wenn ich annehme, dass Du im Selektionsbildschirm 'EUR' stehen laesst, trifft diese Bedingungen "where currency = meintype-from_currency" nie zu.

"tmpwz = wz" braucht man gar nicht. Man kann nach dem LOOP auch wz direkt abfragen.
"meintype-from_currency" braucht man auch nicht, man kann direkt AWAEHR nehmen.

Meiner Meinung nach lernt ihr jetzt schon einiges falsch, was sich schnell verfestigt und nachher zum Nachteil wird oder ihr muesst spaeter "muehsam" umlernen.

Re: Fehler bei der Berechnung. Konstanten werden nicht berec

Beitrag von reca (ForumUser / 3 / 0 / 0 ) »
Danke für den Tipp :D .
Ich werde es gleich ausprobieren. :wink:

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2000
Views
Konstanten auslagern
von Troilus » 20.10.2007 11:31 • Verfasst in ABAP® für Anfänger
17
Antw.
3463
Views
Konstanten als Domänenfestwerte
von ralf.wenzel » 08.12.2018 13:42 • Verfasst in ABAP® Core
5
Antw.
4401
Views
Konstanten mit Struktur
von black_adept » 11.05.2005 19:08 • Verfasst in ABAP® für Anfänger
1
Antw.
1422
Views
Workflow und Konstanten
von matthes » 02.11.2007 14:33 • Verfasst in ABAP® für Anfänger
4
Antw.
3300
Views
Select mit Konstanten
von codierknecht » 03.01.2007 07:50 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor einer Stunde von msfox 2 / 37
Interne Tabelle
vor 19 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor einer Stunde von msfox 2 / 37
Interne Tabelle
vor 19 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141