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.
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.
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.
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)
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.
Tja da bin ich dann reingefallen auf die alte Syntax.patlau hat geschrieben:Der Typ "C(30)" ist unbekannt
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.