Code: Alles auswählen.
CLASS lcl_prettyprinter DEFINITION.
PUBLIC SECTION.
METHODS:
destroy_coding.
ENDCLASS.
CLASS lcl_prettyprinter IMPLEMENTATION.
METHOD destroy_coding.
DATA:
meth_name TYPE string.
FIELD-SYMBOLS:
<anyfield> TYPE any.
TRY.
CALL METHOD (meth_name)
RECEIVING
value(result) = <anyfield>.
CATCH cx_sy_dyn_call_error ##no_handler.
ENDTRY.
ENDMETHOD.
ENDCLASS.
Ohne dynamischen Methodennamen macht das RECEIVING gar keinen Sinn, weil der funktionale Methodenaufruf das obsolet macht. Bei mir wird vom PP wird das "result" entfernt, die erste Klammer jedoch nicht, es steht also dort:a-dead-trousers hat geschrieben:hi!
Ist die Angabe von VALUE( ) an dieser Stelle überhaupt erlaubt?
Ich weiß schon, dass der Syntax-Check hier keinen Fehler anmeckert.
Ist das bei z.B. EXPORTING/IMPORTING an dieser Stelle möglich?
Bei mir:
Im Editor sehe ich, dass "(" als rot hervorgehoben Fehler.
Pretty-Print zerstört nix.
Ohne dyn. Methodennamen schreit die Syntaxprüfung. Also hab ich damit meine vorige Frage schon beantwortet: VALUE( ) ist an dieser Stelle nicht erlaubt.
lg ADT
Code: Alles auswählen.
CALL METHOD (meth_name)
RECEIVING
value(= <anyfield>.
Das steht aber unter dem Abschnitt "Methodendeklaration" und nicht beim Aufruf!ralf.wenzel hat geschrieben:Zudem steht hier: Um Parameter als Wert zu übergeben, muß dies durch die VALUE-Kennung festgelegt werden. Der Rückgabewert (RETURNING-Parameter) muß immer explizit als Wert übergeben werden.
Das hab ich auch schon bemerkt. Ist mitunter nervig, aber wenn man es weiß...ralf.wenzel hat geschrieben:Und warum das Coding im ANZEIGEmodus geändert wird, ist auch nicht nachzuvollziehen.
Richtig.a-dead-trousers hat geschrieben:Das steht aber unter dem Abschnitt "Methodendeklaration" und nicht beim Aufruf!