Code: Alles auswählen.
METHOD FLUSH .
* ...
data: rc like sy-subrc, msgli like sy-msgli.
CALL FUNCTION 'AC_FLUSH_CALL'
EXPORTING
SYSTEM_FLUSH = ' '
IMPORTING
MESSAGE_NR = rc
MESSAGE_TEXT = msgli.
sy-subrc = rc.
sy-msgli = msgli.
CASE SY-SUBRC.
WHEN 0.
WHEN 1.
* system_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 007 RAISING CNTL_SYSTEM_ERROR.
WHEN 2.
* method_call_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 006 RAISING CNTL_ERROR.
WHEN 3.
* property_set_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 006 RAISING CNTL_ERROR.
WHEN 4.
* property_get_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 006 RAISING CNTL_ERROR.
WHEN 8.
* maximal number of modi reached
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 011 RAISING CNTL_SYSTEM_ERROR.
WHEN OTHERS.
RAISE CNTL_ERROR.
ENDCASE.
ENDMETHOD.
Code: Alles auswählen.
method GET_CONTROL_VERSION.
STATICS: version TYPE string,
release(4) TYPE n,
sp TYPE string,
patch TYPE string.
IF version IS INITIAL.
CALL METHOD i_ctrl->call_method
EXPORTING
method = 'GetProperty'
p_count = 2
p1 = 'Control'
p2 = 'Version'
queue_only = space
IMPORTING
result = version.
[b] CALL METHOD cl_gui_cfw=>flush.[/b]
SPLIT version AT '.' INTO release sp patch version.
ENDIF.
e_release = release.
e_version = version.
endmethod.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Basler84
Was ich schon ein paar mal erwähnt hab: Besser ein Tree-Model verwenden als ein Tree-Control. Da werden die Fehler schon vorab in einer verständlichen Fehlermeldung abgefackelt.ewx hat geschrieben:Solche Fehler passieren meistens in TreeControls, weil z.B. eine Knoten-ID doppelt vergeben wurde.