Abhängigkeit von Select-Options

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

Getting started ... Alles für einen gelungenen Start.
35 Beiträge • Vorherige Seite 2 von 3 (current) Nächste
35 Beiträge Vorherige Seite 2 von 3 (current) Nächste

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Vielen Dank schonmal euch beiden, hat auf jeden Fall für Klarheit gesorgt.
@ Thanatos, habe das so probiert wie du gesagt hast, habe allerdings immernoch das Problem, dass mir im Moment alle Objekte ausgegeben werden und nicht die, welche ich per Select gewählt habe..?
Weiss nicht woran das liegt..ist sonst etwas falsch an meinem Programm?

könnte es daran liegen, dass ich keine Länge für die Parameter mitgeben darf, diesen Fehler bringt er mir nämlich für die USER-COMMAND Anweisung..darum habe ich die (30) dann jeweils entfernen müssen.

gruß

edit.:
Zuletzt geändert von patlau am 14.05.2013 14:20, insgesamt 1-mal geändert.

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


Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
bei modul und gruppe konnte ich die Länge lassen und wenn ich dann bei dem Select-Bildschrim ein Layer+Modul auswähle kommen die richtigen objekte, jedoch wieder doppelt...ich weiss grad echt nciht weiter :(

Re: Abhängigkeit von Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

Ich hab mir dann jetzt nach deiner Info das ALLES selektiert wird deinen Select angeschaut. Und da besteht dann sofort die Frage: was steht in so_odsob drin?
baust du dir irgendwo eine Range-Tabelle die dann mit einem zusammengesetzten Namen aus deinen Auswahlen gefüllt wird?
Gruß,
der Matze

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
in der Select-Option kann ich nur den technsichen Namen eingeben falls ich ihn denn kenne, und das Objekt direkt suchen, liegt da der Fehler und muss ich dies dann weglassen? ich probier das mal aus, denn das brauche ich nicht unbediengt.

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
habe die Select-Option so_odsob mal entfertn, hat aber nichts geändert. Wenn ich nun hier einen technischen Namen eingebe, welchen ich kenne wird er mir ausgegeben, jedoch auch doppelt, d.h. also dass in meinem Code irgendetwas dafür sorgt das dies geschieht...

Re: Abhängigkeit von Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
:twisted: wozu machst du dann select options, wenn du diese nicht in deinem select nutzt?!?!?!?
Du möchtest doch nur das selektieren aus deinen Tabellen, was zu deiner Auswahl passt, oder? Dann muss du deinen Select auch damit befüllen.
Gruß,
der Matze

Re: Abhängigkeit von Select-Options

Beitrag von JHM (Top Expert / 1211 / 2 / 202 ) »
patlau hat geschrieben:könnte es daran liegen, dass ich keine Länge für die Parameter mitgeben darf, diesen Fehler bringt er mir nämlich für die USER-COMMAND Anweisung..darum habe ich die (30) dann jeweils entfernen müssen.

Deine Definition der Listbox ist unvollständig bzw. falsch (ABAP war mal etwas laxer was die Syntax anging, mittlerweile wird strenger geprüft, aber damit die alten Programme noch laufen funktiniert manches noch).

Code: Alles auswählen.

* Du definierst:
PARAMETERS: layer(30)  AS LISTBOX VISIBLE LENGTH 30.

* zerlegt man die Definition und lässt die Listbox weg:
PARAMETERS: layer(30).
* sieht man es eigentlich, das Feld hat keinen Datentyp auf den es sich bezieht. ABAP nimmt dann halt immer C und die Längenangabe 30. 
* Früher hat das auch gepasst, denn AS LISTBOX und USER-COMMAND gab es zu 3.1 eben noch nicht.
* Mit den neuen Zusätzen kommt der Interpreter/Kompiler aber damit nicht mehr klar, also muss man genauer definieren

* Wenn man den Datentyp expliziet mit angibt sollte es funktionieren:
PARAMETERS: layer TYPE c(30)  AS LISTBOX VISIBLE LENGTH 30.

* Wobei dein Key eigentlich nur drei Zeichen lang ist (es wird nur der Key zurück in das Feld gestellt), würde eigentlich dies auch reichen:
PARAMETERS: layer TYPE c(3)  AS LISTBOX VISIBLE LENGTH 30.
Zum Select:
Wenn so_odsob beim Select leer ist, dann wird diese beim Select ignoriert. Es wird also ohne Eingrenzung gelesen => es werden nicht benötigte Daten gelesen.
Dann kommen deine Listboxen zum Zug: Diese löschen die unnötigen Daten wieder. Besser wäre es, wenn du nur die Daten liest, die du auch benötigst.
Aber zuerst sollte der SelScreen mit den Listboxen funktionieren, sonst wird es etwas unübersichtlich.
Gruß Hendrik

Re: Abhängigkeit von Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
soo,

jetzt raff ich erst wo genau das Problem liegt:

ich fasse mal zusammen: du hast Listboxen als Selektionsparameter. Du machst einen Select und willst anschließend nur bestimmte Einträge in der Tabelle behalten.
Daraus folgt: Du musst deine Selektionsparameter auch nutzen, sonst selektiert der dir immer alles. Und das du es doppelt bekommst, liegt an deinem Select über die beiden Tabellen, damit stimmt irgendwas nicht.

Fakt ist jetzt, dass du die Ergebnisse deiner Listboxen zu einem Wert zusammenführen musst --> CONCETENATE
Wenn du die erste Listbox füllst muss in dem Wert dann "D01*" stehen.
Wenn du die erst und die zweite Listbox gefüllt hast, muss in dem Wert "D01S02*" stehen.
und wenn du alle drei Listboxen gefüllt hast muss da irgendwas in Richtung "D01S02A03" stehen. Fehlende Listbox-Angaben musst du durch einen * ersetzen. Und ist einmal ein Stern gesetzt, wird kein zweiter gesetzt.
Damit füllst du dann deinen so_odsob (Achtung, das ist eine Rangetabelle, die muss nach bestimmten Kriterien gefüllt werden). Und mit diesem gefüllten so_odsob kannst du dann deinen Select laufen lassen.

So warum der nun aber doppelt selektiert seh ich auf den ersten Blick nicht. Aber um sicher zu gehen, dass nix doppelt kommt könntest du beispielsweise 2 Selectanweisungen draus machen oder einfach nur mal den INNER JOIN rausnehmen.
Gruß,
der Matze

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Der Typ "C(30)" ist unbekannt.

Habe es so geschrieben:

Code: Alles auswählen.

PARAMETERS:  layer TYPE c(30) AS LISTBOX VISIBLE LENGTH 30 USER-COMMAND dummy,
                 modul(30)  AS LISTBOX VISIBLE LENGTH 30 MODIF ID ID1,
                 gruppe(30)  AS LISTBOX VISIBLE LENGTH 30 MODIF ID ID2.

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
wow danke, und wie genau funktioniert das mit concetenate???
Hört sich logisch an aber auch ein bisschen kompliziert...
und den inner join brauch ich doch um aus 2 Tabellen lesen zu können oder liege ich da falsch?

Grüße

Re: Abhängigkeit von Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
dann nimm CHAR30 bzw. CHAR3, da dir ja eigentlich 3 Stellen reichen.

CONCETANATE macht aus mehreren Strings einen String.

Also angenommen:

Code: Alles auswählen.

string1 = 'Hallo'.
string2 = 'du'.
string3 = 'da'.

* dann nehmen wir uns noch eine weitere Variable um darin das zusammen gefasste zu speichern
DATA: lv_ergebnis TYPE string.

*nun zusammen führen
CONCETANATE string1 string2 string3 INTO lv_ergebnis "SEPARATED BY space (für den Fall dass du ganze Sätze zusammensetzt)
Damit hast du dann in lv_ergebnis: Halloduda stehen.
Musst du halt auf deine gegebenheiten anpassen und vorherschauen, dass du initial listboxen mit einem * ersetzt oder so.

Dann legst du dir eine Rangetabelle an:

Code: Alles auswählen.

DATA: so_odbsob TYPE RANGE OF tdobject.
      ls_range LIKE LINE OF so_odbsob.

ls_range-sign = 'I'.
ls_range-option = 'EQ'.
ls_range-low = lv_ergebnis.
APPEND ls_range TO so_odbsob.
und dann lass deinen Select laufen.

INNER JOIN is eine Möglichkeit die Menge der Selectangaben zu verkürzen, man kann es aber auch über 2 Selectangaben machen.
Gruß,
der Matze

Re: Abhängigkeit von Select-Options

Beitrag von JHM (Top Expert / 1211 / 2 / 202 ) »
patlau hat geschrieben:Der Typ "C(30)" ist unbekannt
Tja da bin ich dann reingefallen auf die alte Syntax.

Code: Alles auswählen.

* so würde es funktionieren, aber nur ohne UserCommand
PARAMETERS:  layer TYPE c LENGTH 30 AS LISTBOX VISIBLE LENGTH 30.

* mit eigener Typdefinition funktioniert es dann auch mit dem UserCommand:
TYPES: t_lb TYPE c LENGTH 30.

PARAMETERS:  layer TYPE t_lb AS LISTBOX VISIBLE LENGTH 30 USER-COMMAND dummy.
Gruß Hendrik

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
verstehe nicht ganz was concatenate in meinem Fall auslöst, das Objekt wird ja richtig ausgegeben, meine select options sind ja nur eine Auswahlkreterie...könntest du das an meinem Beispiel vlcht demonstriere, ich weiss dass ist viel verlangt aber ich finde momentan den Anschluss nicht mehr..
ein weiteres Problem ist, dass wenn ich den Layer auswähle meine Auswahl für das Modul frei wird (wie beabsichtigt), doch nach Modulauswahl bleibt die Auswahl für das Untermodul (Gruppe) farblich markeirt und ich kann nichts aussuchen..

Grüße

Re: Abhängigkeit von Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Mal zu meinem Verständnis:

Die Select-Parameter Layer, Module und Gruppe ergeben zusammen gesetzt doch den Wert für ODSOBJECT oder?
Und du möchtest doch nur die Objekte in der Tabelle selektieren, die zu deiner Auswahl in den Listboxen passen, richtig?

Was heißt farblich markiert?
Wir sollten vielleicht erstmal ein Problem klären bevor du jetzt noch ein weiteres hier einfließen lässt. ;) es wird so langsam unübersichtlich.
Gruß,
der Matze

Re: Abhängigkeit von Select-Options

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
upps sorry, naja grau hinterlegt, sodass ich die Gruppe halt ncht mehr auswählen kann, erst nachdem ich es einmal ausgeführt hab und wieder zurück geh kann ich zusätzlich die Gruppe auswählen.

Die Select PArameter sollten eig dazu dienen die OBjekte aus der Tabelle zu filtern, heißt dass ich einen layer auswählen möchte und schonmla nur noch die Objekt eerscheinen, welche mit meiner Auswahl übereinstimmen. Dasselbe dann auch für Modul und Gruppe...zusammengesetzt ergeben sie praktisch solch ein Objekt

Über 2 SELECT Anweisungen hat es übrigens geklappt mit der doppelten Ausgabe danke schonmal hierfür!!!

Vergleichbare Themen

25
Antw.
7613
Views
SELECT in interne Tabelle in Abhängigkeit von..
von fl0w » 25.06.2007 10:51 • Verfasst in ABAP® für Anfänger
0
Antw.
2650
Views
select-options depend on select-options.
von dragospirnut1 » 19.07.2017 09:54 • Verfasst in ABAP® Core
4
Antw.
19346
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger
2
Antw.
4153
Views
SELECT - Options & SELECT Abfrage
von Mavrix » 14.05.2007 08:41 • Verfasst in ABAP® für Anfänger
2
Antw.
1567
Views
SELECT-OPTIONS -> RFC
von uwe » 01.02.2006 11:33 • Verfasst in Basis

Ü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

RFC vs. ODATA
vor 4 Stunden von DeathAndPain 8 / 754
FUBA 'HR_INFOTYPES_OPERATION'
vor 4 Stunden von DeathAndPain 2 / 163
Frage zur redefinierten Methode
vor 2 Tagen von ralf.wenzel 12 / 1121

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.