以用户友好的方式更改表行的顺序

时间:2015-02-03 10:23:47

标签: sap abap

在开始开发之前,我正在寻找一种类似的标准方法:我需要在标准的Dynpro ALV网格中实现用户友好的方式来排序表行。我认为它应该看起来像一个定义过滤列的表单,就像它在标准功能模块LVC_FILTER中实现的那样。

1 个答案:

答案 0 :(得分:0)

不,这没有标准功能。但是,您可以通过在运行时插入/删除行来以编程方式执行此操作(通过拖放手动排序)。这可以使用标准ALV事件来实现:ondragondropondropcomplete。 尝试使用这些代码示例来实现方法:

method handle_grid_ondrag.

data: data_object type ref to drag_drop_object,
      help_row like line of gt_outtab.                  "#EC NEEDED

      read table gt_outtab_2 into help_row index es_row_no-row_id.
      create object data_object.
      move es_row_no-row_id to data_object->index.
      read table gt_outtab_2 into data_object->wa_test index
      es_row_no-row_id.
      e_dragdropobj->object = data_object.

endmethod.     

_

method handle_grid_ondrop.

data: data_object type ref to drag_drop_object,
      drop_index type i,
      help_row like line of gt_outtab.                  "#EC NEEDED

      delete gt_outtab_2 index data_object->index.
      insert data_object->wa_test into gt_outtab_2 index e_row-index

endmethod.

_

 method handle_grid_ondropcomplete.

  if data_cel = ' '.
    call method grid->refresh_table_display.
  endif.

endmethod.

如果您遇到困难,请参阅示例程序BCALV_TEST_DRAG_DROP_02