我在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页脚文本框。
如何在最后一页再次明确每页?
答案 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);