报表实现表头过滤,并实现自定义比较符。原创
金蝶云社区-bigTiger
bigTiger
1人赞赏了该文章 1,122次浏览 未经作者许可,禁止转载编辑于2023年08月12日 16:50:30

先上效果图:
image.png

代码:

//报表字段标识
String field = "name";
//开启字段表头过滤
@Override
public void setSortAndFilter(List<SortAndFilterEvent> allColumns) {
    super.setSortAndFilter(allColumns);
    for (SortAndFilterEvent allColumn : allColumns) {
        if(StringUtils.equals(field ,allColumn.getColumnName())){
            allColumn.setFilter(true);
            allColumn.setSort(true);
        }
    }
}
//为字段添加自定义比较符号
@Override
public void beforeCreateFilterInfo(CreateFilterInfoEvent event) {
    super.beforeCreateFilterInfo(event);
    if (event.getFieldKey().equals(field )) {
        ArrayList<HashMap> filterItemList = new ArrayList();
        HashMap filterItem = new HashMap();
        filterItem.put("name", new LocaleString("等于"));
        filterItem.put("value", "");
        filterItem.put("inputCtlType", 1);
        //17是in ,67是=
        filterItem.put("id", "67");
        filterItemList.add(filterItem);
        Map filterInfoMap = new HashMap();
        filterInfoMap.put("filterItems", filterItemList);
        event.setFilterInfo(filterInfoMap);
        event.setCancel(true);
    }
    super.beforeCreateFilterInfo(event);
}

如何获取自己想要的比较符号:

   更改下面的id

filterItem.put("id", "67");

  获取自己想要的id:在下面的代码加断点调试,分析一下数据。

       kd.bos.entity.filter.FilterMetadata#getCompareTypeByCompareTypeId


图标赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!