RDLC报告中最后一页上的Page Wise总计

时间:2012-02-04 00:41:55

标签: report rdlc

我在VB(Visual Studio)中使用带有MS Sql Express的rdlc reprot。我想要输出如下:

SrNo.      Amount
1          100
2          100
3          100
4          100
Group Total = 400
5          200
6          200
Page1 Total = 800
***************************PAGE1 END HERE****************
7.         200
8.         200
9          200
Group2 Total=1000
Page2 Total = 600
****************************PAGE 2 END HERE*****************

Page1 Total = 800
Page 2 Total =600

Grand Total = 1400
******************************LAST PAGE END HERE**************

我可以在最后一页获得除Page1 Total和Page2 Total之外的所有输出。

对于Group Total,我使用了rdlc的Sum函数和Table1_Group2 Scope。

对于Grand Total我使用了rdlc的Sum函数和数据集范围。

对于每页上的Page Wise总计,我使用了代码为=Sum(ReportItems!amt.Value)的Reprot页脚文本框。

如何在最后一页再次明确每页?

2 个答案:

答案 0 :(得分:1)

您可以在“代码”标签中使用vb代码。 添加共享列表属性和方法接受2参数 总共1-页 2-页码(使用此方法“Globals!PageNumber.ToString()”) 在页脚和表达式中添加文本框调用此方法 在最后一页(“Globals!PageNumber.ToString()= Globals!TotalPages.ToString()”) 使用共享属性

答案 1 :(得分:0)

我已在我的环境中对其进行了测试,以下步骤供您参考。

1 - 单击报告菜单 - >报告属性,然后单击代码选项卡,打开报告代码窗口

2 - 在代码窗口中添加以下代码

Public Shared PageTotal As System.Collections.Generic.Dictionary(Of Integer, Decimal)
Public Shared Function Total(ByVal Item As Integer, byval Amount As Decimal) As Decimal
If PageTotal Is Nothing Then
PageTotal = New System.Collections.Generic.Dictionary(Of Integer, Decimal)
End If
If Not PageTotal.ContainsKey(Item) Then
PageTotal.Add(Item, Amount)
End If
Return Amount
End Function
Public Shared Function GetTotal(ByVal Item As Integer) As String
if Item=1 then return ""
Return PageTotal(Item-1).ToString()
End Function

3 - 在报告页脚上,用以下内容替换当前表达式     = Code.Total(全局!的PageNumber,SUM(Reportitems!Credit.Value))

4 - 在页眉上,添加一个文本框并输入下面的表达式     = Code.GetTotal(全局!的PageNumber)

运行项目

****注 设置显示模式为查看报告

reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);