我在主程式中第一次去 CALL SCREEN 9000, 一切都很正常,
離開 SCREEN 9000 前, 我執行 CALL METHOD gz_container->free.. 指令
回到主程式中, 我改變了資料, 再次執行 CALL SCREEN 9000 指令時, 顯示的圖形資料全部為 "空值"
如果離開 SCREEN 9000 前, 我沒有執行 CALL METHOD g_ce_container->free.. 指令
在主程式中, 我改變了資料, 再次執行 CALL SCREEN 9000 指令時, 顯示的資料和第一次的資料一樣, 而不是我改變後的值
以上的現象, 表示 我在執行 FREE 的指令時,並沒讓系統真正的將 CONTAINER 刪除, 而只是將資料 "歸零", 因此才會有此現象
請教各位先進高手 如何 真正的 去除 CONTAINER; 使的第二次使用時也能正常運作
以下為我的 部份宣告及程式片段
DATA: gz_container TYPE REF TO cl_gui_custom_container,
gz_viewer TYPE REF TO cl_gui_chart_engine,
gz_ixml TYPE REF TO if_ixml,
gz_ixml_sf TYPE REF TO if_ixml_stream_factory,
DATA: gZ_container_name TYPE scrfname VALUE 'G_CONTA'.
......
gz_ixml = cl_ixml=>create( ).
gz_ixml_sf = g_ixml->create_stream_factory( ).
CREATE OBJECT gz_container
EXPORTING container_name = gz_container_name.
CREATE OBJECT gz_viewer
EXPORTING parent = gz_container.
.....
謝謝各位 不吝賜教