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 / 68 / 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 / 1936 / 256 / 412 ) »
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.
5772
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.
7780
Views
Spalten Interner Tabellen nacheinander auslesen.
von JulDen » 13.02.2018 18:33 • Verfasst in ABAP® für Anfänger
8
Antw.
4488
Views
wert aus Feld auslesen
von bibo » 06.04.2006 13:55 • Verfasst in ABAP® für Anfänger
2
Antw.
2527
Views
Wert des Eingabefeldes vor PAI auslesen
von ABAP_User » 16.05.2012 22:12 • Verfasst in ABAP® für Anfänger
5
Antw.
1712
Views
SPALTEN INTERNER TABELLEN NACHEINANDER AUSLESEN mit einer lOOP.
von Geny » 15.06.2020 15:47 • Verfasst in ABAP® für Anfänger

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 1 / 71
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1718
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8323