如何给报表添加合计行原创
金蝶云社区-开发者赋能部_吴富彪
开发者赋能部_吴富彪
5人赞赏了该文章 3,985次浏览 未经作者许可,禁止转载编辑于2022年06月24日 13:52:50

关键词:合计行


一、需求

报表中有时候需要统计该列的所有数据之和,比如需要统计所有的金额总和,并在最后添加一行显示。


二、思路与方案

algo中的dataset使用union操作,合并两个dataset结果集,并把合计行添加到最后一行


三、实现过程

1、创建单据A(kdec_bill0326)和报表(kdec_totalrow)

在单据界面添加,文本(kdec_textfield)和整数(kdec_integerfield)两个字段

image.png

图1

2、创建报表(kdec_totalrow),在列表中添加文本(name),整数(amount)

image.png

3、报表页面添加查询插件     

实现代码如下:

public class AddTotalrowRepPlugin extends AbstractReportListDataPlugin {
    @Override
    public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
    // TODO Auto-generated method stub
    String selectFields = "kdec_integerfield as amount,kdec_textfield as name";
    DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "kdec_bill0326", selectFields , null, null);
    DataSet dataSet2 = dataSet.groupBy(null).sum("amount").finish();
    DataSet ds = dataSet2.addField("'合计'","name");
    //需要两个dataset进行union操作,第一个dataset是报表数据,第二个ds是自己计算的合计行数据
    return dataSet.union(ds);
    }
}

四、效果图

        实现的效果图如下图2所示:

image.png


图2


五、开发环境版本

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


六、注意事项

       union操作的第一个dataset1和第二个dataset2字段的类型、个数、和顺序要严格保持一致


七、参考资料

开发平台

学习成长中心

Algo简介

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