Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

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

Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von cecslucas (ForumUser / 8 / 0 / 0 ) » 04.12.2019 11:55
Hallo zusammen,

lange habe ich mich gescheut die Frage zu stellen, aber gut ich komme nicht voran...
Ich stehe vor folgendem Problem:

Ich muss über eine Tabelle loopen und prüfen ob eine zweite Zeile vorhanden ist, ist eine zweite Zeile vorhanden, so sollen dies zwei Zeilen auf ein Feld verglichen werden und der Wert des Feldes aus Zeile1 in die variable z1_feld geschrieben und der Wert des Feldes aus Zeile2 in die variable z2_feld geschrieben werden.

Ich hoffe es ist etwas verständlich? Wie kann ich dieses Problem smart lösen?

LG


Re: Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von jesse001 (ForumUser / 6 / 2 / 0 ) » 04.12.2019 12:55
wenn ich es richtig verstanden habe, hast du ja schon fast die Lösung beschrieben, zwei Variablen definieren und dann den loop starten. sy-tabix = 1 erste Variable mit dem gewünschten Feldinhalt füllen, bei sy-tabix = 2 die zweite etc.

Re: Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von a-dead-trousers (Top Expert / 3451 / 105 / 891 ) » 04.12.2019 13:37
Ich geh mal davon aus, dass du mehr als nur zwei Zeilen in der Tabelle hast und die Zeilen immer als "Pärchen" betrachten möchtest. Die ganze Lösung will ich jetzt auch nicht verraten 😜 (weil sie ja auch nicht so kompliziert ist) aber für eine elegante Lösung wirst du höchstwahrscheinlich den Operator MOD benötigen.
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.07
Basis: 7.40

Re: Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von cecslucas (ForumUser / 8 / 0 / 0 ) » 04.12.2019 13:47
Ich stand einfach total auf dem Schlauch ... dieser kleine Gedankenanstoß hat mir schon geholfen! Vielen Dank

Re: Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von a-dead-trousers (Top Expert / 3451 / 105 / 891 ) » 05.12.2019 13:13
Nachdem ich per PM gerügt wurde MOD sei keine "elegante" Lösung möchte ich meine Aussage von gestern relativieren und festhalten das MOD "eine einfache" Lösung ist aber eben nicht die eleganteste und bei weitem nicht die performanteste. 😅
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.07
Basis: 7.40

Re: Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von DeathAndPain (Top Expert / 1383 / 147 / 324 ) » 06.12.2019 08:12
Ich verstehe noch nicht einmal, was MOD da bringen soll. MOD liefert den Rest einer Division. Was willst Du da dividieren? Möglicherweise sind die beteiligten Felder noch nicht mal Zahlenfelder.

Ich würde so da rangehen:

Code: Alles auswählen.

  LOOP AT tabelle ASSIGNING FIELD-SYMBOL(<tabelle>) FROM 2.
    ASSIGN PLANS_ZU_PERNR[ SY-TABIX - 1 ] TO FIELD-SYMBOL(<VORIGE_ZEILE>).
    check <tabelle>-feld <> <vorige_zeile>-feld.
    z1_feld = <vorige_zeile>-feld.
    z2_feld = <tabelle>-feld.
  ENDLOOP.
Nützlich ist der obenstehende Code so natürlich noch nicht (da müsste noch ergänzendes Coding rein, das die Felder verwertet), aber das ist das, was ich als Anforderung verstanden habe.

Re: Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit

Beitrag von a-dead-trousers (Top Expert / 3451 / 105 / 891 ) » 06.12.2019 21:45
Naja, so beziehst du dich IMMER auf die vorherige Zeile ( 1 + 2, 2 + 3, 3 + 4 usw..).
Meine Vermutung war eher, dass die Zeilen in zweier Pärchen ( 1 + 2, 3 + 4, 5 + 6 usw..) betrachtet werden sollen. Mir ging es darum den Rest von SY-TABIX MOD 2 zu prüfen um zu erkennen ob gerade die erste oder zweite Zeile des Pärchens betrachtet wird.

@cecslucas: Huch, jetzt hab ich die Lösung verraten. 😜

Aber wie gesagt hab ich per PM inzwischen eine meines Erachtens bessere Vorgehensweise dafür bekommen.
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.07
Basis: 7.40

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Vergleichbare Themen

Überprüfen, ob Dynpro im BI vorhanden
von Schmarsi » 03.01.2012 11:47
iTab-Zeile in ein Feld eintragen
von Nordlicht » 11.04.2019 12:34
Problem mit Filter auf Gleichheit im ALV Grid
von denno » 22.02.2005 11:11
Neues Logo die Zweite
von commolus » 06.06.2013 13:09
Zweite Spaltenüberschrift im ALV Grid
von Sven » 22.11.2004 10:13