Hallo,
bin zwar kein Anfänger mehr aber ich fühle mich grad wie einer. Mein Ziel ist es eine Abfrage an eine Datenbank zu stellen, bei der ich die Range Tabelle aus den
SELECT-OPTIONS mitgebe und diese nicht nur bei tatsächlichen Werten, sondern auch mit Wildcards funktioniert. Jedoch funktioniert das (aus welchem Grund auch immer) bei der Materialnummer nicht. Wenn ich die Nummer
4711 eingebe kommt auch ein Ergebnis daher. Wenn ich
47* eintrage gibt es keine Ausgabe.
Code: Alles auswählen.
tables:
mara.
data:
alv_table type ref to cl_salv_table.
selection-screen begin of block b01 with frame.
select-options:
so_matnr for mara-matnr.
selection-screen end of block b01.
select
matnr,
matkl
from
mara
where
matnr in @so_matnr
into table
@data(mara_content).
cl_salv_table=>factory(
exporting
list_display = if_salv_c_bool_sap=>false
importing
r_salv_table = alv_table
changing
t_table = mara_content " Ausgabentabellenname
).
alv_table->display( ).
Wenn ich als Suchwert
4711 eintrage und diesen Code durchsteppe wird in der Tabelle
so_matnr folgender Inhalt gespeichert:
1 I EQ 000000000000004711
Wenn ich jedoch
47* eingebe, steht in der Tabelle
1 I CP 47*
Der Operator
CP ist (soweit ich das verstanden habe) ein Pattern-Matching Operator der vergleicht ob der Suchwert im Zellenwert enthalten ist.
Wenn ich anstelle von
47* den Wert
*47* eintrage, steht in
so_matnr der Wert
1 I CP *47*
drinnen, dieser gibt mir alle Materialnummern aus, die den Wert
47 enthalten. Also *fast* das, was ich haben will. In diesem Fall will ich die Materialien, die "irgendwo" die 47 drinnen haben *nicht* dabei haben sondern alle die mit 47 anfangen.
Muss ich die
so_matnr nochmal anfassen und sie modifizieren oder kann ich das irgendwie anders lösen?
Also bei Eingabe von 4711 nur das Material 4711 ausgeben. Bei 47* alle Materialien, die mit 47 anfangen und bei *47* alle Materialien, die 47 enthalten, ausgeben.
Komischerweise funktioniert die Suche nach Text-basierten Werten (Materialbezeichnung) wunderbar, nur bei der Materialnummer halt nicht :(
Bin mir nicht sicher, ob das relevant ist, aber als Info:
Bei der Tabelle, in der ich suchen will, handelt es sich nicht um die
MARA selbst, sondern um eine Z-Tabelle mit Feld MATNR Datenelement MATNR und Textfeldern Datentyp CHAR Länge 40 bzw CHAR Länge 30.
Danke schon mal! Bin für jede Idee offen!