babap hat geschrieben:Hallo,
ich habe es noch nicht ganz geblickt.
Du hast eine golbale Tabelle it.... .
Du ruftst zwei Form-Routinen auf, mit einem (...) Parameter SPACE, mit noch ein paar Parametern und ein paar Changing-Pararmetern.
Dann LOOPst du in der Form-Routine über die globale Tabelle und suchst da irgendwas.
Sorry, solche Programme findet man zwar noch als Altlast im SAP-Kernel, aber selbst neu machen sollte man sowas nicht.
Schön alle Parameter füllen und alle übergeben, auch die Tabelle, korrekt typisiert etc.
Dann findet man auch was man sucht ... und die Fehlermeldungen sind aussagekräftiger.
Für eine Beantwortung der Frage wäre tatsächlich auch die DATA: Anweisung wichtig.
Und erst mit einer Beschreibung, was in den Tabellen drin ist, was die Parameter enthalten, und was das Programm eigentlich machen soll kann man überhaupt an eine Problemlösung denken ...
Gruß
babap
Code: Alles auswählen.
FORM search USING p_vokabel
p_dyn_vokabel
p_antwort LIKE wa_zvokabel-vokabel_art
CHANGING
p_it_zvokabel LIKE it_zvokabelsearch
p_wa_zvokabel LIKE wa_zvokabel
p_ausgabe LIKE p_vokabel_de.
LOOP AT it_zvokabelsearch INTO p_wa_zvokabel
WHERE vokabel_variable = p_dyn_vokabel.
p_ausgabe = p_antwort.
ENDLOOP.
ENDFORM. "search
Code: Alles auswählen.
FORM search USING p_vokabel
p_dyn_vokabel
p_antwort LIKE wa_zvokabel-vokabel_art
CHANGING
p_it_zvokabel LIKE it_zvokabelsearch
p_wa_zvokabel LIKE wa_zvokabel
p_ausgabe LIKE p_vokabel_de.
DATA: iv_bedingung type char40.
CONCATENATE p_vokabel ' = ''' p_dyn_vokabel '''' INTO iv_bedingung
RESPECTING BLANKS.
LOOP AT it_zvokabelsearch INTO p_wa_zvokabel
WHERE (iv_bedingung).
p_ausgabe = p_antwort.
ENDLOOP.
ENDFORM. "search
Code: Alles auswählen.
alpha = 'ab''c'.
write:/ alpha.
Code: Alles auswählen.
ab'c
Code: Alles auswählen.
p_vokabel = 'VOKABEL_ENG'.
p_dyn_vokabel = 'Vokabel'.
CONCATENATE p_vokabel ' = ''' p_dyn_vokabel '''' INTO iv_bedingung
RESPECTING BLANKS.
Code: Alles auswählen.
VOKABEL_ENG = 'Vokabel'
Code: Alles auswählen.
select * from sflight into it_sflight where (bedingung).
Ich denk nochmal drüber nach...Zusatz 3
... WHERE log_exp
...
Damit sind alle logischen Ausdrücke bis auf IS ASSIGNED, IS REQUESTED und IS SUPPLIED möglich. Die dynamische Angabe einer Komponente über eingeklammerte zeichenartige Datenobjekte ist nicht möglich.
...
Code: Alles auswählen.
FORM search USING p_vokabel
p_dyn_vokabel
p_antwort LIKE wa_zvokabel-vokabel_art
CHANGING
p_it_zvokabel LIKE it_zvokabelsearch
p_wa_zvokabel LIKE wa_zvokabel
p_ausgabe LIKE p_vokabel_de.
LOOP AT it_zvokabelsearch INTO p_wa_zvokabel
WHERE vokabel_variable = p_dyn_vokabel.
p_ausgabe = p_antwort.
ENDLOOP.
ENDFORM. "search
Code: Alles auswählen.
FORM search USING p_vokabel
p_dyn_vokabel
p_antwort LIKE wa_zvokabel-vokabel_art
CHANGING
p_it_zvokabel LIKE it_zvokabelsearch
p_wa_zvokabel LIKE wa_zvokabel
p_ausgabe LIKE p_vokabel_de.
FIELD-SYMBOLS: <fs> TYPE ANY.
LOOP AT it_zvokabelsearch INTO p_wa_zvokabel.
ASSIGN COMPONENT vokabel_variable
OF STRUCTURE p_wa_zvokabel TO <fs>.
IF <fs> = p_dyn_vokabel.
p_ausgabe = p_antwort.
EXIT.
ENDIF.
ENDLOOP.
ENDFORM. "search