Select Option dynamisch erstellen

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

Select Option dynamisch erstellen

Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Ich würde gerne die Select Options dynamisch erstellen.
Erstmal habe ich eine Tabelle mit 2 Spalten. Die erste Spalte beinhaltet Name des Select Options und die zweite Spalte beinhaltet den Datentyp von dem Select Option.
Also z.B.
Spalte1 Spalte2
VKORG KOMG-VKORG
VTWEG KOMG-VTWEG

So ich habe in meinem Report folgendes gemacht:

INITIALIZATION
...

loop at table into structure.
name = structure-feld1.
select-options (name) FOR (structure-feld2).
endloop.

Geht es leider nicht. Entweder wird nur die letzte Zeile angezeigt, oder Fehler Längenangabe name stimmt nicht.

Was habe ich falsch gemacht?
Gruss
Irian

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



Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Hi Enno,

Danke, aber mein Problem ist eigentlich nicht so kompliziert.
Ich möchte nur die Select Options nacheinander ausgeben.
Mehr nicht. Andere Idee?

Gruss
Irian

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
irian hat geschrieben:Danke, aber mein Problem ist eigentlich nicht so kompliziert.
Hi Irian,
wenn du die Select-Options dynamisch einbauen willst, dann ist dein Problem so kompliziert. Oder wenigstens die Lösung... :lol:
irian hat geschrieben:Ich möchte nur die Select Options nacheinander ausgeben.
Also nicht dynamisch...?

Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Hi,

Doch schon dynamisch.
Aber ich kann ja nicht den Standardbaustein FREE_SELECTIONS_DIALOG benutzen, weil ich kein Windows definieren will ( vielleicht nur ein Teil von dem Baustein, aber der Baustein ist ja riesig).

Ich will einfach nur die Felder nacheinander in Form von Select OPtions in meinem Report anzeigen. Gibt es vielleicht einen kompakteren Baustein als FREE_SELECTIONS_DIALOG?

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Tut mir leid, ich versteh dich immer noch nicht.
Wenn du die Select-Options definierst, dann hast du ein Selektionsbild.
Was meinst du mit "ausgeben"? Du kannst ja die Inhalte nur ausgeben, wenn die Sel-Options bereits definiert wurden.

Oder meinst du allgemein: Ranges-Tabellen?
Die brauchst du nicht dynamisch erstellen, sondern kannst die generisch verwenden, wenn du TYPE RANGE OF CHAR80 z. B. nimmst.

Was ist denn Sinn und Zweck der Übung?

Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Hi Ewx,

sorry wenn ich Dich sogar verwirrt habe.

So, ich habe eine Tabelle, diese Tabelle hat 2 Spalten (Name des SelOpt) und Datentyp des SelOpts. Diese Tabelle ist dynamisch, kann daher beim nächsten Aufruf wieder ganz anders aussehen.
Z.B.

Tabelle:
Feld1 Feld2
VKORG KOMG-VKORG
VTWEG KOMG-VTWEG
..

Ich habe mir gedacht, dass ich in der INITIALIZATION Phase von meinem Report die Select Options dynamisch anzeige:

INITIALIZATION.

loop at table into structure.
name = stucture-feld1
select options (name) FOR (structure-feld2).
endloop.

Das geht aber so nicht, weil ich die Fehlermeldung bekomme, dass die Langenangabe name ist bei SELECT OPTIONS nicht erlaubt.

Bin gerade ratlos. Wie kann ich den Namen eines Select Option dynamisch erzeugen? Bin für jede Hilfe sehr dankbar.

Gruss
Irian

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Das geht meines Wissens nur mit dem FREE_SELECTIONS_DIALOG Baustein.
Ansonsten musst du einen Report dynamisch erzeugen (INSERT REPORT) und dann per SUBMIT mit deinen Werten aufrufen. Das macht ja aber alles nur Sinn, wenn man hinterher auch eine Verarbeitung mit den RANGES-Tabellen/ Select-options hat. Das heisst, die SELECT-Anweisung dafür musst du dann auch dynamisch aufbauen.

Wenn das immer die gleichen Felder sind, kannst du vielleicht auch einfach alle definieren, die vorkommen können und die, die nicht benötigt werden, blendest du mittels LOOP-AT-SCREEN aus.

Sinn und Zweck erschliesst sich mir übrigens immer noch nicht. Soll heissen: WARUM machst du das alles?

Gruß,
Enno

Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Die Tabelle ist voll dynamisch. D.h. Die spätere Select Anweisung ist auch dynamisch, muss also beim nächsten Aufruf auch dynamisch aufgerufen werden. Als Beispiel kenne ich die Transaktion vk13 in R3. Basierend auf die Konditionsart und die Schlüsselkombination werden die Select Options dynamisch aufgebaut.

Wie gesagt, jetzt habe ich schon die Information herausgefunden welche Felder als Select Options ausgegeben werden (KOMG-VKORG z.B.) Es geht jetzt nur um die Ausgabe beim Dynpro. und da kann ich leider nicht so einfach die Tabelle loppen.

Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Hast du zufällig ein Beispiel mit Insert Report und Submit?

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
irian hat geschrieben:Als Beispiel kenne ich die Transaktion vk13 in R3. Basierend auf die Konditionsart und die Schlüsselkombination werden die Select Options dynamisch aufgebaut.
Das stimmt nicht ganz... Die werden einmal je Kond.Art generiert. Über Tabellen wird dann ermittelt, welcher Report dazu gehört.
Die Hilfe zu INSERT REPORT hilft dir gut weiter. Du musst halt alles, was du sonst als statischen Quelltext schreiben würdest im Programm Zeile für Zeile aufbauen und dann INSERT REPORT xyz und dann SUBMIT xyz.
also. z.B.

Code: Alles auswählen.

concatenate 'DATA$XX_' lv_feldname '$TYPE$' lv_feldbezug '.' into zeile.
translate zeile using '$ '.
append zeile to quellcode_Tab.
concatenate 'SELECT-OPTIONS$S_' lv_feldname 'FOR$XX_' lv_feldname '.'.
translate zeile using '$ '.
append zeile to quellcode_Tab.
' 
oder so ähnlich...

Beitrag von irian (ForumUser / 7 / 0 / 0 ) »
Hallo ewx,

Vielen Dank, du hast mir jetzt sehr viel weitergeholfen.

Ich habe von Program A diesen neuen Report (mit allen Select Options) erzeugt. Wenn ich das neue Program aufruft, funktioniert es ja auch, aber wie kann ich so machen, wenn ich vom Program A "on the fly" den neuen Report erzeugt und gleich ausführt, so dass wenn man das Program A ausführt, dann würde man direkt die Select Options sehen?

Gruss
Irian

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Was funktioniert denn nicht? Du kannst doch den INSERT REPORT machen und danach SUBMIT newreport VIA SELECTION-SCREEN.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1585
Views
SELECT * Where Datum = select-option-low
von abapfreshman » 17.09.2021 00:24 • Verfasst in ABAP® für Anfänger
2
Antw.
2295
Views
SELECT Wertepaar Select-Option
von myllertym » 12.08.2013 10:39 • Verfasst in ABAP® für Anfänger
10
Antw.
1010
Views
SELECT-OPTION
von ABAPLover » 09.08.2023 09:53 • Verfasst in ABAP® für Anfänger
1
Antw.
1270
Views
SELECT-OPTION
von SAP_ENTWICKLER » 21.09.2017 14:13 • Verfasst in ABAP® Core
2
Antw.
1726
Views
Select-Option => iinput = 0
von c0lt.seavers » 07.05.2008 09:56 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 3 / 1476
Regex in where
vor 6 Stunden von tar 6 / 143
Programm anlegen mit Vorlage
vor 21 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 21 Stunden von DeathAndPain 2 / 355

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

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 3 / 1476
Regex in where
vor 6 Stunden von tar 6 / 143
Programm anlegen mit Vorlage
vor 21 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 21 Stunden von DeathAndPain 2 / 355

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 23 Stunden von snooga87 1 / 86
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821