Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von Romaniac (Specialist / 221 / 65 / 27 ) »
Hallo zusammen,

bekomme ich diesen Ausdruck in eine Zeile?

Code: Alles auswählen.

    LOOP AT lt_prfab_ccar ASSIGNING FIELD-SYMBOL(<ls_prfab_ccar>).
      mt_prfab_ccar = VALUE #( BASE mt_prfab_ccar
                              ( fgstnr          = <ls_prfab_ccar>-fgstnr
                                status          = <ls_prfab_ccar>-status
                                manu_aqui_costs = <ls_prfab_ccar>-manu_aqui_costs
                                sign            = COND #( WHEN <ls_prfab_ccar>-manu_aqui_costs < 0 THEN '-' ELSE '+' )
                                company_nr      = <ls_prfab_ccar>-company_nr
                                acc_principle   = <ls_prfab_ccar>-acc_principle ) ).
    ENDLOOP.

Also etwas so:

Code: Alles auswählen.

    LOOP AT lt_prfab_ccar ASSIGNING FIELD-SYMBOL(<ls_prfab_ccar>).
      mt_prfab_ccar = VALUE #( BASE mt_prfab_ccar 
                               ( CORRESPONDING <ls_prfab_ccar> )
                                 sign = COND #( WHEN <ls_prfab_ccar>-manu_aqui_costs < 0 THEN '-' ELSE '+' ) ).
    ENDLOOP.
Hab schon einiges probiert aber nix hat funktioniert, hat jemand einen Tipp?

Vielen Dank und Gruß,

Wolfgang
Geht nicht gibts nicht

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


Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von DeathAndPain (Top Expert / 1952 / 259 / 413 ) »
Ist das nicht der Klassiker für FOR?

Code: Alles auswählen.

mt_prfab_ccar = VALUE #( FOR <zeile> IN lt_prfab_ccar 
                              ( fgstnr          = <zeile>-fgstnr
                                status          = <zeile>-status
                                manu_aqui_costs = <zeile>-manu_aqui_costs
                                sign            = COND #( WHEN <zeile>-manu_aqui_costs < 0 THEN '-' ELSE '+' )
                                company_nr      = <zeile>-company_nr
                                acc_principle   = <zeile>-acc_principle ) ).
So würde ich es in meiner Naivität machen.

Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Ich hab FOR nie wirklich verstanden -- woraus schließt der Compiler, dass <zeile> die Nummer der Zeile ist? Das ist doch nirgends deklariert.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von msfox (Specialist / 366 / 56 / 76 ) »
ralf.wenzel hat geschrieben:
23.01.2022 19:26
dass <zeile> die Nummer der Zeile ist? Das ist doch nirgends deklariert.
Das ist doch die Deklaration. Macht man ja in Java auch so (ähnlich).

Code: Alles auswählen.

for(int i=1;;i++) {
}
Oder mit generischen Typen

Code: Alles auswählen.

for (Iterator<String> it = ts.iterator(); it.hasNext();) {
}

Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
ralf.wenzel hat geschrieben:
23.01.2022 19:26
Ich hab FOR nie wirklich verstanden -- woraus schließt der Compiler, dass <zeile> die Nummer der Zeile ist? Das ist doch nirgends deklariert.
Ähm.
<zeile> ist nicht die NUMMER der Zeile, sondern der Zeileninhalt bzw. der Zeiger darauf.
Zum besseren Verständnis kann man die die ganze Anweisung auch einfach verkehrt rum lesen:
LOOP AT lt_prfab_ccar ASSIGNING FIELD-SYMBOL(<zeile>).
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
DeathAndPain hat geschrieben:
20.10.2021 19:06
Ist das nicht der Klassiker für FOR?
Ohne es gerade ausprobieren zu können: Im Zweifel kann man das noch kompakter und verständlicher bauen mit CORRESPONDING und EXCEPT....


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
a-dead-trousers hat geschrieben:
23.01.2022 22:35
<zeile> ist nicht die NUMMER der Zeile, sondern der Zeileninhalt bzw. der Zeiger darauf.
Zum besseren Verständnis kann man die die ganze Anweisung auch einfach verkehrt rum lesen:
LOOP AT lt_prfab_ccar ASSIGNING FIELD-SYMBOL(<zeile>).
Und wenn ich das mit einer WHERE-Bedingung verknüpfen will? Also ein LOOP AT ... ASSIGNING ... WHERE... als FOR-Konstrukt aufrufen will?

Also, angenommen die Tabelle lt_prfab_ccar aus dem Ausgangsbeispiel hätte ein Feld "indicator" (CHAR01) und ich möchte mt_prfab_ccar nur mit den Sätzen füllen, wo "indicator" den Wert A enthält.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Itab füllen mit value# und corresponding# und Einzelzuweisung Feld

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
dann benutzt du FOR mit WHERE.
Code-Dojo
Blog

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
a-dead-trousers


Seite 1 von 1

Vergleichbare Themen

2
Antw.
18423
Views
Listbox mit Werten aus Itab füllen
von peripe » 22.01.2018 12:22 • Verfasst in ABAP® für Anfänger
3
Antw.
2754
Views
Füllen einer itab mit APPEND
von GAST » 06.12.2004 11:34 • Verfasst in ABAP® Core
2
Antw.
2526
Views
itab mit eigener typendefinition füllen (headerline?)
von Andy » 14.10.2005 09:41 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
4712
Views
Select über 3 Tabellen: Wie? Join? Subquery? füllen ITAB?
von ASchreier » 13.06.2007 10:28 • Verfasst in ABAP® für Anfänger
5
Antw.
5074
Views
Autowert für Feld in Pflegeview füllen
von Gast » 21.07.2005 10:45 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Regex in where
vor 6 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 20 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 6 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 20 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822