繁体   English   中英

以编程方式更改 ALV 树的布局

[英]Change layout of ALV tree programmatically

我想以编程方式更改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.

重新绘制树并加载新节点。 甚至列也得到了优化。 一切都在变化,但布局变体没有变化。 它看起来总是像我在树初始化期间使用set_table_for_first_display方法设置的/default布局变体。 我创建了变体/new_variant并且可以通过工具栏加载它。

有没有其他方法可以以编程方式更改树的布局变体?

您是否使用参数I_DEFAULT = space调用SET_TABLE_FOR_FIRST_DISPLAY方法?

默认设置为'X' ,这会导致始终显示默认变体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM