Edited: klingt nach Fall für COLLECT

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Edited: klingt nach Fall für COLLECT

Beitrag von DAniel_RM ( / / 0 / 3 ) »
Hallo Abaper,

ich habe folgendes Problem

ein itab_data
----------------------------------------------------
Parnr -- MATNR-- IDNRK----
-----------------------------------------------
x100 12 1
x100 13 1

c399 12 1


f567 12 1

d566 13 1
d566 12 1

ich muss daten zählen und zwar
im fall parnr x100, da PARNR hat zwei eintraäge hier gilt nur einmal muss gezählt,d.h count = 1,
bei d566 genauso hier muss count = count + 1.

Aber bein den Andren zählt man bsp. c399 je nach anzahl der Einträge in diesem fall anzal = 1.

Immer wo einzeln einträge sind muss addiert, bei ander die doppelt vorkommen muss nur einmal gezählt werden.

Kann jemand mir helfen Bitte.

Gruß-

--- Titel ('Dringend') geändert durch Ereglam ---

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


Beitrag von Gast ( / / 0 / 3 ) »
Lies bitte DRINGEND(!!1!) die F1-Hilfe zu LOOP, ADD, COLLECT, SORT, DELETE, ON, AT, IF, CASE, WHEN, ENDIF.

Dann weißt Du, wie Du diese triviale Aufgabe löst.

Gruupenwechsel

Beitrag von meinrad (ForumUser / 67 / 0 / 0 ) »
Hallo,
Leider wird heutzutage wohl nicht mehr in jedem Programmierkurs die Logik des Gruppenwechsel gelehrt. Früher gehörte er zur Basis jeder "Kaufmännischen Programmierung". Also mache dich mit dem Gruppenwechsel/Gruppenstufen vertraut. (Mit GOOGLE findet man auch noch Seminare für Programmierlogik, in denen der Gruppenwechsel gelehrt wird).
Der Gruppenwechsel sollte unabhängig von ABAP verstanden werden.
In der offiziellen SAP-Doku gibt es auch einen Hinweis auf Gruupenstrukturen und ihre Bearbeitung in Schleifen (LOOP ... AT NEW...ENDAT ... AT END...ENDAT ...ENDLOOP.
Schau also hier nach:
http://help.sap.com/saphelp_46c/helpdat ... ameset.htm
oder in der Editor F1-Hilfe unter "LOOP" oder unter "AT".
Beachte die Anfänger-Fallstricke:
Sortierung,
Reihenfolge der Felder in der Struktur,
Mit * (Stern) gefüllte Felder "rechts" vom Gruppenbegriff.

Beitrag von Gast ( / / 0 / 3 ) »
Beachte die Anfänger-Fallstricke:
Sortierung,
Reihenfolge der Felder in der Struktur,
Mit * (Stern) gefüllte Felder "rechts" vom Gruppenbegriff.
Genau das ist jetzt gerade mein Problem! Ich habe viele Felder die mit * gefüllt sind. Was mache ich Falsch! Interne Tabelle wird zuvor sortiert. mit Sort by

Bitte helft mir mal eben!

Beitrag von Sian (ForumUser / 31 / 0 / 0 ) »
Der Gast war übrigens ich :) Sorry Login vergessen!

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
benutze Feldsymbole für den LOOP ... ASSIGNING, dann umgehst Du die *-Ersetzungen. ;)

PS:
Du machst nichts falsch, denn das ist bei der Verwendung von LOOP ... INTO beabsichtigt.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Sian (ForumUser / 31 / 0 / 0 ) »
So habe mir durch ereglam's Hilfe über Thread und PM mal schlau gemacht. Dabei ist mir aufgefallen, dass AT NEW eigentlich nur benötigt wird, wenn man mit Summen usw. arbeiten will. Für einen einfachen Gruppenwechsel reicht denke ich ON CHANGE OF f aus. Außerdem habe ich etwas erfahren, was ICH noch nicht wusste. Bin aber auch noch nicht so lange im ABAP Geschäft. Bei einem AT NEW kommt es auf die Position des zu vergleichenden Feldes in der Struktur oder ITAB an. Es werden alle Werte links von dem Feld kontrolliert ob sich was geändert hat. Wenn JA dann NEW. Falls das Falsch ist, lasse ich mich gerne eines Besseren belehren.

Re: Edited: klingt nach Fall für COLLECT

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
DAniel_RM hat geschrieben:...
Immer wo einzeln einträge sind muss addiert, bei ander die doppelt vorkommen muss nur einmal gezählt werden.
...
diese Aufgabenbeschreibung läßt immer noch mehrere Interpretationsmöglichkeiten zu.

1. Es sollen alle verschiedenen Einträge aufgelistet werden --> LOOP über alles mit COLLECT in Ergebnistabelle, fertig!

2. Es sollen Gruppen gezählt werden, also, immer wenn mehrere gleiche Schlüsselbegriffe "beieinander" stehen, dann zählt es einmal, wenn sie nach anderen wieder erscheinen, nocheinmal. --> Sowas habe ich schon mal mit DELETE ADJACENT DUPLICATES hinbekommen, ich weiß aber nicht, ob er nur Päärchen "entsorgt" oder auch 3-er und 4-er-Gruppen.

Bei Pärchen bleibt auf jeden Fall nur ein Eintrag übrig, dann hätte man die Anzahl der Gruppen für jeden Schlüsselbegriff.

Gruß
babap

Re: Edited: klingt nach Fall f�r COLLECT

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
babap hat geschrieben:--> Sowas habe ich schon mal mit DELETE ADJACENT DUPLICATES hinbekommen, ich wei� aber nicht, ob er nur P��rchen "entsorgt" oder auch 3-er und 4-er-Gruppen.
(Hm, irgendwie gibt es in der Vorschau Probleme mit Umlauten)

DELETE ADJACENT DUPLICATES laesst von beliebig vielen aufeinanderfolgenden Eintraegen mit identischen Werten in den verglichenen Feldern (z. Doku zum Zusatz COMPARING ...) genau einen uebrig.
Ich meine sogar, es wird immer der erste Eintrag stehen gelassen. (Steht bestimmt auch in der Doku.)

Re: Edited: klingt nach Fall f�r COLLECT

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
Frank Dittrich hat geschrieben:...
DELETE ADJACENT DUPLICATES laesst von beliebig vielen aufeinanderfolgenden Eintraegen mit identischen Werten in den verglichenen Feldern (z. Doku zum Zusatz COMPARING ...) genau einen uebrig.
Ich meine sogar, es wird immer der erste Eintrag stehen gelassen. (Steht bestimmt auch in der Doku.)
dann ist ese ja genau das richtige für den Fall, daß Grüppchen gezählt werden sollen.

Frage an den Fragesteller:
ist die Aufgabenstellung mit COLLECT oder ADJACENT DUPLICATES zu lösen??

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1410
Views
APPEND Fall
von il.ost » 04.04.2019 11:55 • Verfasst in ABAP® für Anfänger
17
Antw.
4248
Views
Collect?
von Fredi » 24.05.2005 13:29 • Verfasst in ABAP® Core
3
Antw.
2175
Views
Collect!
von Parm » 24.09.2007 09:56 • Verfasst in ABAP® für Anfänger
15
Antw.
5087
Views
Collect?
von HH_ABAP » 01.06.2018 10:32 • Verfasst in ABAP® für Anfänger
2
Antw.
2726
Views
COLLECT
von Cola » 30.10.2009 19:16 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 18 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 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 18 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