2 Select-Options zu einem für Select zusammenfügen

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

2 Select-Options zu einem für Select zusammenfügen

Beitrag von manuk (Specialist / 108 / 0 / 0 ) »
Hallo zusammen!

Wenn ich eine Datei zu einem Objekt über die generischen Objektdienste ablege, wird in der Tabelle toaXX ein Eintrag erzeugt, in dem die ID-Paramter einfach zusammengefügt werden.
Beispiel:
Ich lege zum Auftrag 0000000356 zur Position 10 ein Dokument ab, wird der Eintrag mit der ID:
0000000356000010
erzeugt.

Nun möchte ich in einem Programm, in dem beide Felder (Auftragsnummer und Position) als Select-Options definiert bin die passenden Einträge in der Tabelle toaXX suchen. ist es möglich die 2 Selektoptions logisch richtig miteinander zu vereinen?

Viele Grüße Manu

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


Re: 2 Select-Options zu einem für Select zusammenfügen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
manuk hat geschrieben:Hallo zusammen!

Wenn ich eine Datei zu einem Objekt über die generischen Objektdienste ablege, wird in der Tabelle toaXX ein Eintrag erzeugt, in dem die ID-Paramter einfach zusammengefügt werden.
Beispiel:
Ich lege zum Auftrag 0000000356 zur Position 10 ein Dokument ab, wird der Eintrag mit der ID:
0000000356000010
erzeugt.

Nun möchte ich in einem Programm, in dem beide Felder (Auftragsnummer und Position) als Select-Options definiert bin die passenden Einträge in der Tabelle toaXX suchen. ist es möglich die 2 Selektoptions logisch richtig miteinander zu vereinen?

Viele Grüße Manu
dann wirst Du jedes Element der Auftragsnummern mit jeden Element der Positionen verknüpfen müssen und selbst wieder in ein RANGE-Tabelle stellen müssen.

Code: Alles auswählen.

id-sign = 'I'.
id-option = 'EQ'.
LOOP AT aufnr.
  LOOP AT posnr.
    CONCATENATE
      aufnr-low
      posnr-low
      INTO id-low.
    APPEND id FROM id.
  ENDLOOP.
ENDLOOP. 
Sollte der Anwender Wildcards (*+?) benutzt haben, wird es richtig lustig...

Beitrag von Gast ( / / 0 / 3 ) »
Hallo manuk,

wenn ich dich richtig verstanden habe, dann hast du zur Zeit zwei getrennte Select-Options: eine für die Auftragsnummer und eine für die Position. Wenn es so ist, dann macht eine Zusammenführung eigentlich keinen Sinn, weil man nicht exakt sagen kann, welche Selektion der Anwender mit seinen Eingaben meint. Abgesehen davon kann er auch verschieden viele Einträge in beiden Select-options machen.

Ich würde aus den zwei Select-Options eine Select-Option machen, z.B.:
data: begin of vbpos,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of vbpos.
Select-options: S_vbpos for vbpos.

select ... from TOAxx
where OBJECT_ID in s_vbpos
.......
.......


mfg dele

Beitrag von manuk (Specialist / 108 / 0 / 0 ) »
Hey ereglam,

ich hab nur ein Problem, was ist wenn der User eine Position oder eine Auftrag ausschließen möchte????
Mit der Rangetabelle arbeite ich schon,w enn ich alles zu einer Auftrasgnummer haben möchte
also 0000000356000010 bis 0000000356999999

Hey dele,

danke aber das geht leider nicht, weil ich in der Verarbietung zuvor die 2 Select-Options separat brauche, leider.

gruß Manu

Beitrag von manuk (Specialist / 108 / 0 / 0 ) »
Hey ereglam,

ich hab nur ein Problem, was ist wenn der User eine Position oder eine Auftrag ausschließen möchte????
Mit der Rangetabelle arbeite ich schon,w enn ich alles zu einer Auftrasgnummer haben möchte
also 0000000356000010 bis 0000000356999999

Hey dele,

danke aber das geht leider nicht, weil ich in der Verarbietung zuvor die 2 Select-Options separat brauche, leider.

gruß Manu

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
manuk hat geschrieben:Hey ereglam,

ich hab nur ein Problem, was ist wenn der User eine Position oder eine Auftrag ausschließen möchte????
Mit der Rangetabelle arbeite ich schon,w enn ich alles zu einer Auftrasgnummer haben möchte
also 0000000356000010 bis 0000000356999999

Hey dele,

danke aber das geht leider nicht, weil ich in der Verarbietung zuvor die 2 Select-Options separat brauche, leider.

gruß Manu
hmm, ja, da hatte ich nicht weiter drüber nachgedacht.
Demnach müsstest Du id-sign auf 'E' setzen, wenn wenigstens eine der beiden Quellen-sign auf 'E' steht.
Ob damit aber dann alle Eventualitäten abgedeckt sind, bin ich mir jetzt auch nicht sicher.
Wie gesagt, bei Verwendung von Wildcards fängt es an richtig schwierig zu werden.

Beitrag von manuk (Specialist / 108 / 0 / 0 ) »
Stimmt. Gut, dann werd ichs wohl von Hand programmieren, ist halt leider etwas Fehleranfällig.

DANKE euch!

Beitrag von black_adept (Top Expert / 4098 / 128 / 941 ) »
Hi Manu,

so ganz klar ist mir die Frage nicht - aber ich probiers mal.

1.) Falls du aus den beiden SELECT-OPTIONS eine machen möchtest ( für das lange Feld dann). Das wird ( wenns denn möglich ist ) extrem kompliziert. Beispiel:
Der 2. Select-option hat etwa eine GT Bedingung oder arbeitet mit exkludierenden Bereichen.

2.) Du möchtest schon im SELECT mit den beiden SELECT-OPTIONS die selektierte Menge reduzieren. Dafür müsstest du einen Teilfeldzugriff auf das Feld gestattet sein - und das ist meines Wissens nicht möglich.

Das einzige was ich als machbar sehe wäre folgendes.
Mach deinen SELECT (into Table itab )ohne die beiden SELECT-OPTIONS.
Danach dann wäre es möglich via Teilfeldzugriff die nicht gewünschten Sätze direkt zu entfernen

Code: Alles auswählen.

DELETE itab WHERE NOT id(10) I  N selopt1 
               OR NOT id+10(6) IN selopt2.
Hat aber den Nachteil, dass du evtl. extrem viel selektierst. Das Problem könnte man vielleicht über eine Teilselektion (z.B. nur das 1. Selektionsfeld ) etwas entschärfen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von popeiko (ForumUser / 47 / 0 / 1 ) »
Hallo Manu,

ich stand vor dem gleichen Problem. Wenn alle Selektionsmöglichkeiten offen bleiben sollen, lässt sich das meiner Meinung nach auch nicht in den Griff bekommen, weil sich die Angaben (insbesondere beim Ausschluss von Werten) widersprechen können.

Ich habe daher per FuBa SELECT_OPTIONS_RESTRICT die Möglichkeiten für die Select-Options so weit eingeschränkt, dass sinnvolle Kombinationen möglich sind. Vielleicht hilft dir das ja auch.

Gruß, Heiko.
Zuletzt geändert von popeiko am 23.03.2005 14:37, insgesamt 1-mal geändert.

Beitrag von manuk (Specialist / 108 / 0 / 0 ) »
Hey black_adept,

der Vorschlag ist gut, ich werd dann halt so selektieren, dass ich möglichst viel vorabeinschränken kann (Auftragsnummer mit allen Positionen),klasse, danke!

Gruß Manu

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Manu und Stefan,

ich finde den Vorschlag von Stefan auch gut. Das mit der Teilselektion hat mich noch auf eine andere Idee gebracht. Vielleicht könnte man mit den beiden Selektoptionen über die entsprechenden Anwendungstabellen (z.B.VBAK/VBAP) selektieren. Aus der Ergebnismenge (nur Auftrags- und Positionsnummer) könnte man eine intere Tabelle aufbauen und diese dann mit FOR ALL ENTRIES im Select auf die Tabelle TOAxx anwenden. Je nach Datenmenge in der TOAxx kann sich der Umweg sehr schnell lohnen.

mfg dele

Seite 1 von 1

Vergleichbare Themen

4
Antw.
18699
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger
0
Antw.
2290
Views
select-options depend on select-options.
von dragospirnut1 » 19.07.2017 09:54 • Verfasst in ABAP® Core
2
Antw.
3822
Views
SELECT - Options & SELECT Abfrage
von Mavrix » 14.05.2007 08:41 • Verfasst in ABAP® für Anfänger
3
Antw.
4819
Views
Select Options im Select
von SaskuAc » 03.06.2015 13:17 • Verfasst in ABAP® für Anfänger
5
Antw.
2735
Views
Select * from mit where in select-options
von debianfan » 26.03.2018 14:43 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Regex in where
vor 5 Minuten von edwin 1 / 1
Programm anlegen mit Vorlage
vor 4 Stunden von DeathAndPain 2 / 70
IT0024 Qualifikationen CP-ID
vor 4 Stunden von DeathAndPain 2 / 310
BUSOBJEKT zu CMIS PHIO ermitteln
vor 6 Stunden von snooga87 1 / 49

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 Minuten von edwin 1 / 1
Programm anlegen mit Vorlage
vor 4 Stunden von DeathAndPain 2 / 70
IT0024 Qualifikationen CP-ID
vor 4 Stunden von DeathAndPain 2 / 310
BUSOBJEKT zu CMIS PHIO ermitteln
vor 6 Stunden von snooga87 1 / 49

Unbeantwortete Forenbeiträge

Regex in where
vor 5 Minuten von edwin 1 / 1
BUSOBJEKT zu CMIS PHIO ermitteln
vor 6 Stunden von snooga87 1 / 49
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3226