我想以编程方式更改cl_gui_alv_tree
的布局。我目前的方法不起作用。到目前为止,这是我的代码,在屏幕的PBO中执行:
CALL METHOD gs_0700-s_tree-r_tree->delete_all_nodes
EXCEPTIONS
failed = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
PERFORM load_new_tree_nodes.
ls_vari-report = gs_0700-repid.
ls_vari-handle = 'TREE'.
ls_vari-variant = '/new_variant'
(...)
CALL METHOD gs_0700-s_tree-r_tree->set_variant_key
EXPORTING
is_variant = ls_vari.
CALL METHOD gs_0700-s_tree-r_tree->column_optimize.
CALL METHOD gs_0700-s_tree-r_tree->update_calculations.
CALL METHOD gs_0700-s_tree-r_tree->frontend_update.
重绘树并加载新节点。甚至列也得到优化。一切都在变化,但不是布局变体。它看起来总是像/default
布局变量我在树的初始化期间使用set_table_for_first_display
方法设置的。我创建了变体/new_variant
,我可以通过工具栏加载它。
还有其他方法可以通过编程方式更改树的布局变体吗?
答案 0 :(得分:0)
您是否使用参数SET_TABLE_FOR_FIRST_DISPLAY
调用I_DEFAULT = space
方法?
默认设置为'X'
,这会导致始终显示默认变体。