Report RDLC报告最后一页的逐页总计

Report RDLC报告最后一页的逐页总计,report,rdlc,Report,Rdlc,我正在使用VB(Visual Studio)中的rdlc report和MS Sql Express。我希望输出如下所示: SrNo. Amount 1 100 2 100 3 100 4 100 Group Total = 400 5 200 6 200 Page1 Total = 800 ***************************PAGE1 END HERE***

我正在使用VB(Visual Studio)中的rdlc report和MS Sql Express。我希望输出如下所示:

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**************
除了最后一页的第1页总计和第2页总计之外,我能够获得所有输出

对于Group Total,我使用了rdlc的Sum函数和Table1\u Group2作用域

对于总计,我使用了具有数据集范围的rdlc的Sum函数

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


如何在最后一页上再次获取每页的总计?

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

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

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

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-在报告页脚上,将当前表达式替换为以下表达式 =代码.总计(全局!页码,总和(Reportitems!Credit.Value))

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

运行项目

****注 在查看报告之前设置显示模式


reportViewer1.SetDisplayMode(DisplayMode.PrintLayout)

我已经在我的环境中进行了测试,下面的步骤供您参考

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-在报告页脚上,将当前表达式替换为以下表达式 =代码.总计(全局!页码,总和(Reportitems!Credit.Value))

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

运行项目

****注 在查看报告之前设置显示模式

reportViewer1.SetDisplayMode(DisplayMode.PrintLayout)