报表界面如何实现表格字段分组下只嵌套一个分组字段显示原创
金蝶云社区-闫方亮
闫方亮
2人赞赏了该文章 972次浏览 未经作者许可,禁止转载编辑于2022年09月01日 10:26:43

一、需求

        报表列表中如何实现如下图所示的样式如图1.1

image.png

图1.1

二、思路与方案

        目前报表列表中默认的是不支持分组下面嵌套一个分组,如果只有一个分组会不显示分组,只显示一层分组,要实现上图所示的效果,需要通过插件去干预,AbstractReportListDataPlugin中getColumns中会获取到分组字段、字段等,字段中可以有一个属性设置是否显示单列

三、实现过程

        3.1、首先根据报表模板创建模板页面,绑定数据源如图3.1所示

image.png

图3.1

        3.2、编写插件,将插件注册到页面如下

public class TestQueryPlugin extends AbstractReportListDataPlugin {

    @Override
    public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
        DataSet dataSet= QueryServiceHelper.queryDataSet(this.getClass().getName(),"kdec_bill0708_1","billstatus,billno",null,null);
        return dataSet;
    }

    @Override
    public List<AbstractReportColumn> getColumns(List<AbstractReportColumn> columns) throws Throwable {
        for (int i=0;i<columns.size();i++){
            ReportColumnGroup reportColumn= (ReportColumnGroup) columns.get(i);
            List<AbstractReportColumn> columnList=reportColumn.getChildren();
            for(int j=0;j<columnList.size();j++){
                columnList.get(j).setHideSingleColumnRow(false);
            }
        }
        return super.getColumns(columns);
    }
}

四、实现的效果

        预览界面,点击查询后效果如下图所示4.1

image.png

图4.1


赞 2