Wert aus interner Tabelle auslesen

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

Wert aus interner Tabelle auslesen

Beitrag von dominoblau (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

ich bräuchte wieder mal euere Hilfe bei folgendem Thema:

Ich habe eine interne Tabelle itab_z9aupidt und eine zur Laufzeit generierte Tabelle gt_ausgabe.

Die zur Laufzeit generierte Tabelle wird per Loop zeilenweise (gs_ausgabe) mit der internen Tabelle z9aupidt inkl. Selects von anderen internen Tabellen gefüllt. Dies funktioniert eigentlich soweit alles, bis auf folgendes Problem und zwar:
In der internen Tabelle itab-Z9aupidt befindet sich das Feld/Spalte Nett2 (Euro Wert); nun möchte ich diesbezüglich in einer anderen Spalte, wenn dieser Euro-Wert >0 ist, einen Select zu einer anderen internen Tabelle ausführen, wenn der Wert aber hingegen < 0 ist, soll der Wert 0 ausgegeben werden.
Nur leider schaffe ich dies nicht...
Würde dies mit einer IF-Bedingung funktionieren und wenn ja wo müsste ich diese ansetzen?

Anbei übersende ich Euch meinen Code:

Code: Alles auswählen.

data: gt_ausgabe TYPE tyt_ausgabe.
data: gs_ausgabe TYPE LINE OF tyt_ausgabe.

DATA: itab_z9aupidt TYPE STANDARD TABLE OF z9aupidt WITH EMPTY KEY,


loop at ITAB_Z9AUPIDT ASSIGNING FIELD-SYMBOL(<lfs_aupidt>).


  GS_AUSGABE-NETT2 = <LFS_AUPIDT>-NETT2.
  GS_AUSGABE-matnr = <LFS_AUPIDT>-matnr.
  Select...
  
  append gs_ausgabe to gt_ausgabe.
ENDLOOP.
Besten Dank im Voraus

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


Re: Wert aus interner Tabelle auslesen

Beitrag von Lukas Sanders (ForumUser / 69 / 7 / 34 ) »
Hallo,

sind interne Tabellen oder Datenbanktabellen gemeint und wie ist denn die andere interne Tabelle aufgebaut?

Aus einer internen Tabelle könnte man mit READ TABLE Werte auslesen, man muss aber wissen, wie man an die jeweilige Zeile kommt (Schlüsselfelder oder Index der Zeile):

Code: Alles auswählen.

IF <lfs_aupidt>-nett2 GT 0. 
    READ TABLE andere_itab INTO andere_wa WITH KEY schluessel = <lfs_aupidt>-schluessel TRANSPORTING feld. 
    gs_ausgabe-spalte = andere_wa-feld.
ELSE. 
    gs_ausgabe-spalte = 0.
ENDIF. 
Mit modernen Mitteln ginge es auch so (direkter Zugriff auf die Zeile ohne Umweg über eine Struktur):

Code: Alles auswählen.

IF <lfs_aupidt>-nett2 GT 0. 
    gs_ausgabe-spalte = andere_itab[ schluessel = <lfs_aupidt>-schluessel ]-feld.
ELSE. 
    gs_ausgabe-spalte = 0.
ENDIF. 

Re: Wert aus interner Tabelle auslesen

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Beides recht riskant, weil Du nicht prüfst, ob Du zu dem Schlüssel <lfs_aupidt>-schluessel tatsächlich einen Wert in der andere_itab gefunden hast. Wenn nicht, wird Deine "moderne" Version dumpen, und Deine herkömmliche Version wird Werte aus dem vorhergehenden Loopdurchlauf (mit anderen Worten: falsche Werte) verwenden, was noch schlimmer ist.

Davon abgesehen würde ich bei Einsatz "moderner" Mittel (d.h. Release >= 7.40) auf den IF ganz verzichten und Folgendes schreiben:

Code: Alles auswählen.

gs_ausgabe-spalte = COND #( WHEN <lfs_aupidt>-nett2 > 0 THEN VALUE #( andere_itab[ schluessel = <lfs_aupidt>-schluessel ]-feld OPTIONAL ) ).
Jedenfalls sofern 0 als Ergebniswert akzeptabel ist, wenn in der andere_itab kein Wert gefunden wird. Muss dieser Fehlerfall abgefangen werden, ist statt des VALUE ... OPTIONAL ein TRY-ENDTRY-CATCH-Block angesagt, der den Dump abfängt und behandelt.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
5780
Views
Gleiche Datensätze aus interner Tabelle auslesen
von Marc K. » 06.03.2012 09:36 • Verfasst in ABAP® für Anfänger
17
Antw.
7787
Views
Spalten Interner Tabellen nacheinander auslesen.
von JulDen » 13.02.2018 18:33 • Verfasst in ABAP® für Anfänger
8
Antw.
4498
Views
wert aus Feld auslesen
von bibo » 06.04.2006 13:55 • Verfasst in ABAP® für Anfänger
2
Antw.
2533
Views
Wert des Eingabefeldes vor PAI auslesen
von ABAP_User » 16.05.2012 22:12 • Verfasst in ABAP® für Anfänger
5
Antw.
1717
Views
SPALTEN INTERNER TABELLEN NACHEINANDER AUSLESEN mit einer lOOP.
von Geny » 15.06.2020 15:47 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 13 Stunden von DeathAndPain gelöst 22 / 3173
Daten an Tabelle binden
vor 18 Stunden von Lukas Sanders 2 / 1043
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 617

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

Dialog-Container mit Toolbar/Status
vor 13 Stunden von DeathAndPain gelöst 22 / 3173
Daten an Tabelle binden
vor 18 Stunden von Lukas Sanders 2 / 1043
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 617

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2612
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9201