如何实现根据查询条件设置报表列表标题原创
金蝶云社区-闫方亮
闫方亮
3人赞赏了该文章 953次浏览 未经作者许可,禁止转载编辑于2022年05月05日 10:55:53

一、需求背景

        根据查询条件动态修改列表标题,需要获取查询条件,然后将查询条件赋值列表标题。

二、实现方案

        实现报表插件,将报表插件注册到报表页面上,需要重新插件里面的方法query、getColumns方法,query方法里面获取查询条件,getColumns方法中重新设置列表标题。getColumns方法中可根据自身需求重新设置标题

三、实现过程

        3.1 创建报表页面,添加查询条件,如下图3.1所示

image.png

图3.1

        3.2 编写插件类,将插件注册到页面上如图3.2

public class ReportDemoPlugin extends AbstractReportListDataPlugin{

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式

    Object object=null;

    @Override
    public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
        FilterInfo filterInfo=reportQueryParam.getFilter();
        //获取常用过滤条件
        List<FilterItemInfo> itemInfos=filterInfo.getFilterItems();
        for (FilterItemInfo item:itemInfos) {
            if(item.getPropName().equals("kdec_date")){
                object=item.getValue();
            }
        }
        //查询的方法根据个人需求是否重新查询数据
        DataSet dataSet= QueryServiceHelper.queryDataSet(this.getClass().getName(),"kdec_personleave","kdec_basedatafield,kdec_userfield,kdec_userfield.name,kdec_kdec_integerfield,kdec_integerfield,((kdec_kdec_integerfield-kdec_integerfield)*100) as kdec_integerfield2",null,null);
        return dataSet;
    }

    @Override
    public List<AbstractReportColumn> getColumns(List<AbstractReportColumn> columns) throws Throwable {
        // TODO Auto-generated method stub
        for(int i = 0; i < columns.size(); i ++) {
            ReportColumn rColumn = (ReportColumn) columns.get(i);
            String key = rColumn.getFieldKey();
            if(key.equals("kdec_integerfield1")) { //匹配字段
                if(object!=null){
                    rColumn.setCaption(new LocaleString(df.format(object)));
                }
                rColumn.setFreeze(true);
                columns.set(i, rColumn);
            }
        }
        return columns;
    }
}

image.png

图3.2       

四、效果图

        4.1选择查询条件日期后,产生的效果图如下图4.1所示

image.png

图4.1

五、开发环境版本

        不限,本样例采用的轻量级环境,版本是: 苍穹版本号 COSMICV4.0.018.0  星瀚版本号 CONSTELLATIONV4.0.018.0

六、注意事项

        注意修改标题列的标识要对应

七、参考资料

报表取数插件

学习成长中心

参考附件中的代码补丁

  1. 元数据直接在开发平台导入

  2. 源代码直接在开发工具idea/eclipse中导入



赞 3