代码先锋网 代码片段及技术文章聚合

SAP-ABAP-ALV- 设置某一列排序/过滤

无论是fuction ALV 还是OOALV 其实在设置过滤时候 都是把gt_sort的内表传进去就好,目前我没见过OOALV设置过滤时候,需要声明类、实例化等操作。如果你写过,欢迎指导,我们一起交流啊~~~~、

首先定义过滤内表,它参照的参考结构是 lvc_t_sort.

DATA: gt_sort TYPE lvc_t_sort。

设置排序的子例程,up表示升序 down表示降序

*  字段排序
  PERFORM frm_sort_matnr .
  
  FORM frm_sort_matnr.
  DATA ls_sort TYPE lvc_s_sort .
  ls_sort-spos = '1' .
  ls_sort-fieldname = 'MATNR' .
  ls_sort-up = 'X' . "A to Z
  ls_sort-down = space .
  APPEND ls_sort TO gt_sort .

ENDFORM.

如果是OOALV可以传递给set_table_for_first_display///这个方法的‘IT_SORT’ 参数来初始化一个排序.
如果是FUNCTION ALV可以传递给REUSE_ALV_GRID_DISPLAY_LVC这个方法的 ‘IT_SORT_LVC’ 参数来初始化一个排序.

 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
         IT_SORT_LVC     = gt_sort
             TABLES
      t_outtab        = gt_mseg
    EXCEPTIONS
      program_error   = 1
      OTHERS          = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

```bash
 CALL METHOD lcl_grid->set_table_for_first_display
    EXPORTING
      is_layout            = gs_layo         "显示格式
      is_variant           = lv_variant               "变式布局
      it_toolbar_excluding = gt_exclubar       "排除按钮
      i_save               = 'A'
    CHANGING
      it_sort              = gt_sort          "排序
      it_fieldcatalog      = gt_fcat         "显示列
      it_outtab            = gt_mseg.            "数据

在设置过滤时候 和排序是一个方法,这里直接展示代码

* 过滤
DATA: gt_filter TYPE lvc_t_filt.
**1过滤**
  PERFORM frm_filter_table .
**2**
FORM frm_filter_table .

  DATA: ls_filter TYPE lvc_s_filt.

  ls_filter-fieldname = 'BWART'.
  ls_filter-sign = 'E'.
  ls_filter-option = 'BT'.
*  ls_filter-valut = '101'.
  ls_filter-low = '501'.
  ls_filter-high = '502'.
  APPEND ls_filter TO gt_filter.

ENDFORM.

这里ls_filter-low = ‘501’. 是剔除低值501到高值502范围之间得数据。
ls_filter-high = ‘502’. ls_filter-option = ‘BT’.包含范围
如果要只选出某个值得那些数据应该这样写
ls_filter-option = ‘EQ’. ls_filter-low = ‘601’. ls_filter-sign = ‘I’.这样只会选出值为601得所有数据

FORM frm_filter_table .

  DATA: ls_filter TYPE lvc_s_filt.

  ls_filter-fieldname = 'BWART'.
  ls_filter-sign = 'I'.
  ls_filter-option = 'EQ'.
  ls_filter-low = '601'.
  APPEND ls_filter TO gt_filter.

ENDFORM.

最后将内表gt_filter传到ALV展示函数里即可。

版权声明:本文为weixin_43885987原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43885987/article/details/106685691

智能推荐

js表格根据某一列排序

嗯哼,直接上代码~...

matlab 对矩阵按照某一列排序

升序: 降序:  ...

bootstrap table默认按照某一列排序

bootstrap table默认按照某一列排序 $(’#vTableDataTable’).bootstrapTable({ 只需添加 //默认排序字段 sortName: ‘lastTime’, //默认排序倒叙 sortOrder: ‘desc’, 属性即可 这样就可以打开表格时默认按照lastTime倒叙排序...

猜你喜欢

Numpy根据某一列进行排序

按照数组的第一列进行排序,结果如下 ...

Numpy根据某一列进行排序

按照数组的第一列进行排序,结果如下    转自:Numpy根据某一列进行排序_学如不及,犹恐失之-CSDN博客_numpy按某一列排序...

pandas按照某一列的值排序 按照多列的值排序

welcome to my blog 按照某一列排序 按照多列排序...

C语言文件操作-总是打不开文本文档

如果你新建一个名为“dictionary”的文本文档,就按下面样子加.txt 如果本来就是名为“dictionary。txt”,那就要再加.txt 苦苦折腾了许久,为什么就是打不开文件? 就是这个小问题。...