Selektionstabelle als Parameter an Form Routine übergeben

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

Selektionstabelle als Parameter an Form Routine übergeben

Beitrag von ronin (ForumUser / 2 / 0 / 0 ) »
Hallo,

ich suche einen Weg, eine Selektionstabelle als Parameter an eine Form Routine zu übergeben, bin aber leider bisher daran kläglich gescheitert.
Das Ganze sieht ungefähr so aus:

Code: Alles auswählen.

...
DATA: g_role TYPE agr_name.
...
SELECT-OPTIONS so_i_r FOR g_role.
...
PERFORM get_users_by_role
  USING so_i_r.
...
FORM get_users_by_role
  USING c_so_r TYPE RANGE OF agr_name.
...
ENDFORM.
...
In der ABAP Onlinehilfe wird erklärt, wie man mit RANGE OF interne Tabellen vom gleichen Typ wie Selektionstabellen anlegen kann. So bin ich auf das "USING c_so_r TYPE RANGE OF agr_name" gekommen.

Der Syntaxcheck quittiert das aber mit folgender Fehlermeldung
Program XYZ
Different number of parameters in FORM and PERFORM (routine:
GET_USERS_BY_ROLE, number of formal parameters: 3, number of actual
parameters: 1).
Die mich leider vollends verwirrt. Ich habe doch in beiden Fällen die gleiche Anzahl an Parametern. Nämlich genau einen.

Hat jemand einen Tipp parat, was ich hier falsch mache, bzw. wie es richtiger aussehen sollte.

Herzlichen Dank.
Ronin

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


Selektionstabelle als Parameter an Form Routine übergeben

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo, so sollte es klappen, beachte bitte die eckigen Klammern beim Perform.
Mit Select-Options definierst du eine interne Tabelle mit Kopfzeile, mit TYPE RANGE OF definierst du eine int. Tabelle ohne Kopfzeile. Genau diesen Unterschied meckert der Syntaxcheck aber an...

Code: Alles auswählen.

...
DATA: g_role TYPE agr_name.
...
SELECT-OPTIONS so_i_r FOR g_role.
...
PERFORM get_users_by_role
  USING so_i_r[].
...
FORM get_users_by_role
  USING c_so_r TYPE RANGE OF agr_name.
...
ENDFORM.
...

Gruß

Frank

Beitrag von ronin (ForumUser / 2 / 0 / 0 ) »
Hallo Frank,

Vielen Dank für die Antwort.
Leider klappt es selbst mit nachgestellter eckiger Klammer nicht. Gleiche Fehlermeldung. Laut ABAP Doku soll durch die eckige Klammt ja eigentlich bei einer Tabelle mit Kopfzeile nur der Tabelleninhalt betrachtet werden. Die Form Routine weiß davon aber wohl nichts und meint eine Struktur anstatt einer Tabelle übergeben zu bekommen.

Ein Kollege hat mich jetzt auf folgenden Workaround gebracht, der auch funktionert.
- Selbst einen Tabellentyp anlegen mit Zeilenstruktur
.INCLUDE RSDSSELOPT
SIGN TVARV_SIGN
OPTION TVARV_OPTI
LOW RSDSSELOP_
HIGH RSDSSELOP_
- Einen interne Tabelle dieses Typs anlegen und den Inhalt der Selektionstabelle hineinloopen.
- Dann diese interne Tabelle anstelle der Selektionstabelle übergeben.

Von hinten durch die Brust ins Auge, aber Hauptsache es funktioniert. :)

Gruß,
Ronin

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo,

Sonntag abends sollte man nicht posten sondern auf der Couch liegen ;-)

so geht es definitiv....

Code: Alles auswählen.

DATA: g_role TYPE agr_name.

SELECT-OPTIONS so_i_r FOR g_role.

PERFORM get_users_by_role USING so_i_r[].

*&---------------------------------------------------------------------*
*&      Form  get_users_by_role
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->SO_I_R     text
*----------------------------------------------------------------------*
FORM get_users_by_role USING so_i_r LIKE so_i_r[].
  BREAK-POINT.
ENDFORM.                    "get_users_by_role

Seite 1 von 1

Vergleichbare Themen

5
Antw.
5439
Views
Selektionstabelle an Unterprogramm übergeben
von kbit100 » 30.03.2010 09:54 • Verfasst in ABAP® für Anfänger
2
Antw.
1757
Views
Änderung per Form Routine
von thr74 » 23.07.2011 00:48 • Verfasst in ABAP® für Anfänger
5
Antw.
8424
Views
Form-routine dynamisch aufrufen
von Pyro » 20.08.2010 09:20 • Verfasst in ABAP® für Anfänger
4
Antw.
4160
Views
dynamische Maßnahme in externe Form-Routine
von donny » 06.04.2006 17:38 • Verfasst in Human Resources
3
Antw.
6772
Views
Übergabe einer SELECT-OPTIONS Tabelle an FORM Routine
von m4rkusr » 20.09.2006 09:04 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 6 Stunden von black_adept 2 / 61
Programm anlegen mit Vorlage
vor 13 Stunden von DeathAndPain 2 / 112
IT0024 Qualifikationen CP-ID
vor 13 Stunden von DeathAndPain 2 / 351
BUSOBJEKT zu CMIS PHIO ermitteln
vor 15 Stunden von snooga87 1 / 84

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 6 Stunden von black_adept 2 / 61
Programm anlegen mit Vorlage
vor 13 Stunden von DeathAndPain 2 / 112
IT0024 Qualifikationen CP-ID
vor 13 Stunden von DeathAndPain 2 / 351
BUSOBJEKT zu CMIS PHIO ermitteln
vor 15 Stunden von snooga87 1 / 84

Unbeantwortete Forenbeiträge

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