报表这样也可以做---实现数据的合计和摘要在DataGrid中!

 

  在这里下载源码

  

我们在实现报表时通常使用水晶报表或者其他的报表工具,其实在SQL Server和DataGrid的协调下,也能实现一些报表的功能,这片文章描述了如何实现在DataGrid上实现对数据的合计和摘要,其数据的组织主要是利用SQL Server实现的,在显示上利用DataGrid控制.

在实现数据的合计和摘要使用了SQL Server 的ROLLUP和CUBE,(可以参见SQL Server中汇总功能的使用GROUPING,ROLLUP和CUBE)

 Summary.jpg



这是对DataGrid绑定时的操作:
    

ExpandedBlockStart.gif ContractedBlock.gif    Private   Sub GrdKY_ItemDataBound() Sub GrdKY_ItemDataBound(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles GrdKY.ItemDataBound
InBlock.gif        
Dim drv As DataRowView
InBlock.gif        
Dim dr As DataRow
InBlock.gif        
Dim sCustomerID As String
InBlock.gif
InBlock.gif        drv 
= e.Item.DataItem
InBlock.gif        
If IsNothing(drv) Then Exit Sub
InBlock.gif        
If IsDBNull(drv) Then Exit Sub
InBlock.gif        
If CInt(drv("OrderID")) = -1 Then
InBlock.gif            sCustomerID 
= drv("CustomerID").ToString
InBlock.gif            dr 
= GetCustomerInfoRow(iYear, sCustomerID)
InBlock.gif            
If IsNothing(dr) Then Exit Sub
InBlock.gif            
Dim sb As New StringBuilder("<b>")
InBlock.gif            sb.Append(
"</b> 订单数量: <b>")
InBlock.gif            sb.Append(dr(
"totalorders").ToString())
InBlock.gif            sb.Append(
"</b>      公司名称: <b>")
InBlock.gif            sb.Append(dr(
"companyname").ToString())
InBlock.gif            sb.Append(
"</b>")
InBlock.gif            e.Item.Cells(
0).Text = sb.ToString()
InBlock.gif            
Dim s As String
InBlock.gif            s 
= String.Format("{0:c}", dr("total"))
InBlock.gif            e.Item.Cells(
1).Text = s
InBlock.gif            e.Item.BackColor 
= Color.White
InBlock.gif            e.Item.Cells(
2).Font.Bold = True
InBlock.gif            e.Item.Cells(
2).HorizontalAlign = HorizontalAlign.Right
InBlock.gif            e.Item.Cells.RemoveAt(
1)
InBlock.gif            e.Item.Cells(
0).ColumnSpan = 2
InBlock.gif        
End If
InBlock.gif
ExpandedBlockEnd.gif    
End Sub




  在这里下载源码 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值