ABAP Mehrfachselektion

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

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

ABAP Mehrfachselektion

Beitrag von SAP-Thomas (ForumUser / 15 / 10 / 0 ) »
Hallo zusammen,

ich bin Student ander Dualen Hochschule!
Mein Projekt welches ich gerade betreue handelt um die automatische Verlustfreie WIP Ermittlung + Buchung!

Kurze Erläuterung:

Ich selektiere mir die WIP-Relevanten Aufträge von der Tabelle BSIS.

Folgende Felder werden hier für genutzt:

TYPES: BEGIN OF type_bsis,
hkont TYPE bsis-hkont,
bukrs TYPE bsis-bukrs,
blart TYPE bsis-blart,
shkzg TYPE bsis-shkzg,
zuonr TYPE bsis-zuonr,
buzei TYPE bsis-buzei,
belnr TYPE bsis-belnr,
dmbtr TYPE bsis-dmbtr,
END OF type_bsis.

Nach dem ich diese Daten habe, ermittliche die Zwischensumme aller Aufträge (Es können auch mehrere Aufträge vorhanden sein, welche zusammengefasst werden, die Summe der Aufträge welche nun 0 sind werden nicht berücksichtigt..

Nach dem dies geschehen ist, möchte ich mit den Aufträgen, welche jetzt noch vorhanden sind, eine weitere Select-Abfrage starten. ( MOVE wa_stdpr-zuonr TO wa_afpo-aufnr. )

SELECTION-SCREEN BEGIN OF BLOCK sel2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_aufnr FOR afpo-aufnr,
s_matnr FOR afpo-matnr,
s_dauat FOR afpo-dauat DEFAULT 'PP01'.
SELECTION-SCREEN END OF BLOCK sel2.


Meine Frage geht dahin, damit ich nicht ganz sicher weiß wie ich aus einer internen Tabelle die einezlen Daten auslesen kann, und für die Selection wieder an der richtigen stelle einlesen kann.

Code:

FORM aktuelle_preise_ermitteln.

REFRESH i_afpo.

LOOP AT i_stdpr INTO wa_stdpr.
MOVE wa_stdpr-zuonr TO wa_afpo-aufnr.


SELECT aufnr matnr dauat FROM afpo INTO (wa_afpo-aufnr, wa_afpo-matnr, wa_afpo-dauat)

WHERE aufnr = wa_afpo-aufnr
AND matnr IN s_matnr
AND dauat IN s_dauat.

APPEND wa_afpo TO i_afpo.


ENDSELECT.
ENDLOOP.


ENDFORM. "aktuelle_preise_ermitteln


Für eure Hilfe bin ich sehr dankbar!

Gruß SAP-Thomas

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


Re: ABAP Mehrfachselektion

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hallo Thomas,

du hast eine interne Tabelle gefüllt und möchtest die Werte für eine zweie Selektion nutzen, um die Daten in eine zweite interne Tabelle zu füllen. Habe ich dich richtig verstanden? Falls ja, dann schau dir die Hilfe für SELECT an, speziell den Zusatz FOR ALL ENTRIES IN, dieser macht genau das was du haben möchtest.

auf dein Beispiel bezogen würde es in etwa so aussehen:

Code: Alles auswählen.


check i_stdpr is not initial. "<-- wichtig, sonst selektierst du ggf. zu viel

select aufnr matnr dauat from afpo 
appending table i_afpo
for all entries in i_stdpr
where aufnr = i_stdpr-zuonr
AND matnr IN s_matnr
AND dauat IN s_dauat.

und das alles ohne LOOP, MOVE, SELECT sowie APPEND ;-)

Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
SAP-Thomas

schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: ABAP Mehrfachselektion

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Alexander D. hat geschrieben:... schau dir die Hilfe für SELECT an, speziell den Zusatz FOR ALL ENTRIES IN, dieser macht genau das was du haben möchtest...
Man sollte nur darauf achten, dass die Tabelle die bei FOR ALL ENTRIES verwendet wird:
- Nicht leer ist
- Keine doppelten Einträge enthält (bezogen auf die Felder, auf die im WHERE zugegriffen wird)

Im ersten Fall würden nämlich dann immer ALLE Einträge aus der Datenbank selektiert werden, egal ob es sonst noch Einschränkungen gibt.
Im zweiten Fall kann es aufgrund der internen Verarbeitung des FOR ALL ENTRIES zu einem ungünstigen Laufzeitverhalten kommen.

lg ADT

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

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: ABAP Mehrfachselektion

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
Punkt eins sollte auf jeden Fall beachtet werden, daher habe ich in dem Beispiel auch ein CHECK vor dem SELECT verwendet. Es wird aber auch in der Hilfe darauf hingewiesen:
Enthält die interne Tabelle itab keine Einträge, so wird dies wie eine fehlende WHERE-Bedingung cond behandelt und es werden alle Zeilen (im aktuellen Mandanten) selektiert.
Punkt zwei lässt sich (je nach Programmlogik) nicht immer vermeiden

Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
SAP-Thomas

schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: ABAP Mehrfachselektion

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Alexander D. hat geschrieben:Punkt zwei lässt sich (je nach Programmlogik) nicht immer vermeiden
Copy, Sort, Delete ;)
Mach ich inzwischen schon aus Gewohnheit. Auch bei ganz "kleinen" Abfragen. Könnt ja mal was größeres draus werden :P

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

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: ABAP Mehrfachselektion

Beitrag von SAP-Thomas (ForumUser / 15 / 10 / 0 ) »
Vielen Dank für die Antworten!
Habe das so umgesetzt und es funktioniert!

Danke!

Seite 1 von 1

Vergleichbare Themen

10
Antw.
7438
Views
Mehrfachselektion
von Orestes » 18.08.2011 16:00 • Verfasst in ABAP® für Anfänger
8
Antw.
2164
Views
Mehrfachselektion
von christof » 18.09.2014 14:24 • Verfasst in ABAP® für Anfänger
6
Antw.
3336
Views
Auf Mehrfachselektion prüfen
von Fistandantilus » 23.07.2013 12:29 • Verfasst in ABAP® für Anfänger
8
Antw.
5087
Views
MB51 - Mehrfachselektion
von Ulrich B. » 15.07.2016 09:31 • Verfasst in ABAP® für Anfänger
3
Antw.
2172
Views
Funktionsbaustein mit Mehrfachselektion testen
von Danjel » 31.07.2006 14:21 • 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

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 2 Tagen von Bright4.5 1 / 566
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2194
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8789