Selektionstabelle an Unterprogramm übergeben

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

Selektionstabelle an Unterprogramm übergeben

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo,

ich möchte an ein Unterprogramm eine Selektionstabelle übergeben.

Das Problem ist, dass das Unterprogramm eine Tabelle OHNE Kopfzeile erwartet, die Selektionstabelle aber eine Kopfzeile enthält.

Es gibt hier im Forum einen Thread, in dem es um die gleiche Frage ging.

Danach kann man an ein Unterprogramm eine Selektionstabelle so übergeben:
perform unterprogramm using s_seltab[].
bzw.
perform unterprogramm using s_seltab[].
Das Unterprogramm hat in etwa diese Form:
form unterprogramm using s_seltab[].
..
endform.
bzw.
form unterprogramm using s_seltab[].
..
endform.
Ich erhalte aber die Meldung, dass in unicodefähigen Programmen das Zeichen "[" nicht mehr erlaubt sei.
Was kann ich anders machen?

Danke für die Hilfe.

Gruß

kbit

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


Re: Selektionstabelle an Unterprogramm übergeben

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo kbit,

du musst dem Unterprogramm schon sagen, dass Du eine Tabelle erwartest. Dazu musst Du den Parameter typisieren. Wenn Du die SelTab im Unterprogramm nur in der IN-Klausel eines SELECT benutzen willst, reicht der generische Typ [STANDARD] TABLE.

Code: Alles auswählen.

form unterprogramm using s_seltab TYPE TABLE.
..
  SELECT * FROM dbtab
           WHERE feld IN s_seltab.
endform.
Ansonsten ist es sinnvoll, dir einen Tabellentyp lokal (oder auch global) anzulegen, der eine Rangetabelle darstellt:

Code: Alles auswählen.

TYPES:
  tr_seltab TYPE RANGE OF dbtab-feld.
form unterprogramm using s_seltab TYPE tr_seltab.
..
endform.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Selektionstabelle an Unterprogramm übergeben

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo Ereglam,

danke für deine Antwort.

Entschuldige bitte meine doofe Frage: Aber wie rufe ich dann das Unterprogramm korrekt auf?

Ich erhalte die Fehlermeldung, dass der Aktualparameter s_xy zum Formalparameter sel_xy inkompatibel ist. s_xy ist die Kopfzeile der Tabelle s_xy[].

Code: Alles auswählen.

*---------------------------------------------------------------------*
* Report  ZBRKA01
*
*---------------------------------------------------------------------*
*
*
*---------------------------------------------------------------------*

REPORT  zbrka01.

TABLES:
      eanl,
      zemigt_og_fubast.

TYPES:
  tr_sparte TYPE RANGE OF eanl-sparte.

DATA:
     gt_fubast LIKE TABLE OF zemigt_og_fubast,
     gs_fubast LIKE zemigt_og_fubast.

*-------------------------------------
* S e l e k t i o n
*-------------------------------------
SELECT-OPTIONS:
* Sparte von/bis
     s_sparte FOR eanl-sparte.

START-OF-SELECTION.

  PERFORM get_x_fubast USING s_sparte.

*.....

END-OF-SELECTION.


*---------------------------------------------------------------------*
*      Form  get_x_fubast
*---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->SEL_SPARTE text
*----------------------------------------------------------------------*
FORM get_x_fubast USING sel_sparte TYPE tr_sparte.

  SELECT *
  FROM   zemigt_og_fubast
  INTO   TABLE gt_fubast
  WHERE  sparte  IN sel_sparte.
  IF sy-subrc <> 0.

  ENDIF.



ENDFORM.                    "get_x_fubast
Danke im voraus für deine Mühe.

Gruß

Re: Selektionstabelle an Unterprogramm übergeben

Beitrag von Ratazong (Specialist / 144 / 1 / 14 ) »
PERFORM get_x_fubast USING s_sparte[].

Folgende Benutzer bedankten sich beim Autor Ratazong für den Beitrag:
kbit100


Re: Selektionstabelle an Unterprogramm übergeben

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Vielen Dank! Das funzt.

Mich verwundert nur, dass bei einem meiner Versuche die eckigen Klammern in der Form selbst nicht toleriert wurden, weil die angeblich in einem Unicode-Programm nicht mehr verwendet werden dürfen (siehe oben). Kopfkratz.

Gruß

KBIT

Re: Selektionstabelle an Unterprogramm übergeben

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
kbit100 hat geschrieben:...
Mich verwundert nur, dass bei einem meiner Versuche die eckigen Klammern in der Form selbst nicht toleriert wurden, weil die angeblich in einem Unicode-Programm nicht mehr verwendet werden dürfen (siehe oben). Kopfkratz.
...
Das ist so schon richtig, denn die eckigen Klammern sind kein Bestandteil des Namens, sondern Kennzeichen, dass der Tabellenkörper gemeint ist.

In Unterprogramm-/Methoden-/Funktionsschnittstellen werden Tabellen immer ohne Kopfzeile angelegt, sofern man nicht das veraltete TABLES benutzt.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Seite 1 von 1

Vergleichbare Themen

3
Antw.
4260
Views
Selektionstabelle als Parameter an Form Routine übergeben
von ronin » 01.08.2008 17:00 • Verfasst in ABAP® für Anfänger
9
Antw.
6867
Views
Feldsymbol an Unterprogramm übergeben
von codierknecht » 13.06.2007 11:39 • Verfasst in ABAP® für Anfänger
5
Antw.
919
Views
Referenz-Variable ins Unterprogramm übergeben
von Oliver67 » 17.03.2022 13:54 • Verfasst in ABAP® für Anfänger
17
Antw.
8230
Views
Selektionstabelle (Komponente LOW)
von ServantOfSonata » 21.11.2013 15:31 • Verfasst in ABAP® für Anfänger
2
Antw.
4034
Views
AUTHORITY-CHECK über Selektionstabelle
von stoi » 21.03.2006 11:03 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

IF mit AND und OR
vor 23 Stunden von GastX 6 / 1338
Meine Inbox
Gestern von Rabea1103 1 / 280
PCL2 Cluster auslesen
vor 3 Tagen von DeathAndPain 2 / 1278
FUBA 'HR_INFOTYPES_OPERATION'
vor 3 Tagen von Bright4.5 3 / 6246

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

IF mit AND und OR
vor 23 Stunden von GastX 6 / 1338
Meine Inbox
Gestern von Rabea1103 1 / 280
PCL2 Cluster auslesen
vor 3 Tagen von DeathAndPain 2 / 1278
FUBA 'HR_INFOTYPES_OPERATION'
vor 3 Tagen von Bright4.5 3 / 6246