实现对数据进行分组小计并计算合计的实例 asp.net
2013-10-11 11:10
741 查看
可以通过数据绑定来实现 通过union all 来实现数据库
SELECT * FROM v3_pay_list2 where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001'))
union all select 'XXXXXXXXXX', corp_id,dep_id,dep_name,vendor_id,'','', sum(amt),'','',vendor_pay,vendor_approval from (select * from v3_pay_list where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001')) ) u1 group by corp_id,dep_id,dep_name,vendor_id,vendor_pay,vendor_approval
union all select 'YYYYYYYYYY', corp_id,dep_id,dep_name,'Z','','',sum(amt),'','',vendor_pay,vendor_approval from (select * from v3_pay_list where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001')) ) u2 group by corp_id,dep_id,dep_name,vendor_pay,vendor_approval
union all select '','','ZZZZZZZZZZ','','','','',sum(amt),'','',max(vendor_pay),max(vendor_approval) from (select * from v3_pay_list where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001'))) u3 having sum(amt) is not null order by dep_id ,vendor_id ,compare_list_id
查出的结果类似于:
这样的结果集 然后在Gridview OnRowDataBound 事件中进行绑定修改:
SELECT * FROM v3_pay_list2 where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001'))
union all select 'XXXXXXXXXX', corp_id,dep_id,dep_name,vendor_id,'','', sum(amt),'','',vendor_pay,vendor_approval from (select * from v3_pay_list where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001')) ) u1 group by corp_id,dep_id,dep_name,vendor_id,vendor_pay,vendor_approval
union all select 'YYYYYYYYYY', corp_id,dep_id,dep_name,'Z','','',sum(amt),'','',vendor_pay,vendor_approval from (select * from v3_pay_list where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001')) ) u2 group by corp_id,dep_id,dep_name,vendor_pay,vendor_approval
union all select '','','ZZZZZZZZZZ','','','','',sum(amt),'','',max(vendor_pay),max(vendor_approval) from (select * from v3_pay_list where ( (ought_date >= '2012-12-06') and (ought_date <'2013/9/16 0:00:00') and (corp_id = '0001'))) u3 having sum(amt) is not null order by dep_id ,vendor_id ,compare_list_id
查出的结果类似于:
这样的结果集 然后在Gridview OnRowDataBound 事件中进行绑定修改:
protected void dgResult_ItemDataBound(object sender, DataGridItemEventArgs e) { //设置datagrid的颜色 e.Item.BackColor = CommonTools.getDGRowColor(e.Item.ItemIndex + 1); //设置小计和合计 DataRowView drv = (DataRowView)e.Item.DataItem; if (drv != null) { if (drv["compare_list_id"].ToString().Trim().Equals("XXXXXXXXXX")) { e.Item.BackColor = CommonTools.SubRowColor; e.Item.Cells[0].Text = "小计:"; e.Item.Cells[0].ColumnSpan = 5; for (int i = 1; i < 5; i++) e.Item.Cells.RemoveAt(1); e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Right; e.Item.Cells[1].HorizontalAlign = HorizontalAlign.Right; e.Item.Cells[2].Text = " "; e.Item.Cells[3].Text = " "; } else if (drv["compare_list_id"].ToString().Trim().Equals("YYYYYYYYYY")) { e.Item.BackColor = CommonTools.TotalRowColor; e.Item.Cells[0].Text = "合计:"; e.Item.Cells[0].ColumnSpan = 5; for (int i = 1; i < 5; i++) e.Item.Cells.RemoveAt(1); e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Right; e.Item.Cells[1].HorizontalAlign = HorizontalAlign.Right; e.Item.Cells[2].Text = " "; e.Item.Cells[3].Text = " "; } else if (drv["dep_id"].ToString().Trim().Equals("ZZZZZZZZZZ")) { e.Item.BackColor = CommonTools.TotalRowColor; e.Item.Cells[0].Text = "总计:"; e.Item.Cells[0].ColumnSpan = 5; for (int i = 1; i < 5; i++) e.Item.Cells.RemoveAt(1); e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Right; e.Item.Cells[1].HorizontalAlign = HorizontalAlign.Right; e.Item.Cells[2].Text = " "; e.Item.Cells[3].Text = " "; } else { e.Item.Cells[1].Text = CommonTools.TrimZeroLeft(e.Item.Cells[1].Text.Trim()); } } }
相关文章推荐
- MVC3 数据分页 ASP.NET实现无刷新分页实例
- asp.net 站内搜索功能的实现及利用datatable绑定数据并进行分页
- Winform实现调用asp.net数据接口实例
- SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计
- ASP.NET中实现导出ppt文件数据的实例分享
- SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计
- Asp.net配合easyui实现返回json数据实例
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- Highcharts结合Asp.net实现动态数据股票式图形显示实例 .【转】
- asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- Highcharts结合Asp.net实现动态数据股票式图形显示实例
- asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- Asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- Highcharts结合Asp.net实现动态数据股票式图形显示实例
- ASP.NET GridView 直接进行数据的修改和分页的实现
- Asp.net配合easyui实现返回json数据实例
- asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- ASP.NET中实现导出ppt文件数据的实例分享
- asp.net实现Postgresql快速写入/读取大量数据实例
- Asp.Net中C#实现的DataGrid小计,合计和纵向合并的通用方法