金蝶云星空简单账表动态列名汇总

简单账表基础链接

序言:

本文章是Bos金蝶云星空开发简单账表的进阶版。之前有个小伙伴说不知道怎么汇总动态列数据,一两句话讲不清楚,写下这篇文章。

思路:

1.动态列来自数据库,用公共容器把他存储起来。
2.在汇总方法里面,循环公共容器,达到动态汇总效果。

部分代码案例:

因为代码源来自于自己写的项目,所以不能全列出来,这里只摘取部分代码信息。

第一步:
声明公共容器,放在类里面,方法外面。
DynamicObjectCollection list;

第二步:
获取所有动态列,存储在list容器中

string CustomerSql = string.Format(@"/*dialect*/ select distinct Customer from MainData order by Customer");
list = DBUtils.ExecuteDynamicObject(this.Context, CustomerSql);

第三步:
StringBuilder str拼接查询语句,用子查询的方式,如“select (select Name from Tab) Name from Tab”;这样Name就是列名,而我们将列名Name替换成item[“Customer”]。

foreach (var item in list) {
str.Append($" ,(select Convert(int,isnull(sum(FREALQTY),0)) FREALQTY from MainData b where Substring(Convert(char(7),b.FDate,120),6,2) = a.theMonth and FFORBIDSTATUS = ‘A’ and Customer = ‘{item[“Customer”].ToString()}’) {item[“Customer”]}");
}

第四步:
汇总方法里遍历列名:

public override List GetSummaryColumnInfo(IRptParams filter)
{

var result = base.GetSummaryColumnInfo(filter);
foreach(var item in list){
	result.Add(new SummaryField(item["Customer"], Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
}

return result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值