1
我有一張銷售數據表,需要使用VS2010報表查看器生成報表。我可以按月進行基本分組,但需要插入包含無活動月份的記錄。輸入表是:空月份總計VS2010報表查看器
報告應顯示是這樣的:
Month Sales
Jan 1303
Feb 250
Mar 0
Apr 500
任何建議或推薦的文章,將不勝感激..
羅布
我有一張銷售數據表,需要使用VS2010報表查看器生成報表。我可以按月進行基本分組,但需要插入包含無活動月份的記錄。輸入表是:空月份總計VS2010報表查看器
報告應顯示是這樣的:
Month Sales
Jan 1303
Feb 250
Mar 0
Apr 500
任何建議或推薦的文章,將不勝感激..
羅布
你可以在使用它們作爲ReportDataSource
之前,在VS2010中處理數據。
Dim dtTest As New DataTable
dtTest.Columns.Add(New DataColumn("Date", GetType(System.DateTime)))
dtTest.Columns.Add(New DataColumn("Item", GetType(System.String)))
dtTest.Columns.Add(New DataColumn("Value", GetType(System.Double)))
dtTest.Rows.Add(New DateTime(2015, 1, 13), "item1", 1200)
dtTest.Rows.Add(New DateTime(2015, 1, 20), "item1", 103)
dtTest.Rows.Add(New DateTime(2015, 2, 9), "item1", 250)
dtTest.Rows.Add(New DateTime(2015, 4, 2), "item1", 500)
dtTest.Rows.Add(New DateTime(2015, 1, 5), "item2", 100)
dtTest.Rows.Add(New DateTime(2015, 1, 30), "item2", 10)
dtTest.Rows.Add(New DateTime(2015, 2, 3), "item2", 20)
dtTest.Rows.Add(New DateTime(2015, 3, 7), "item2", 50)
'report data source
Dim dtReportDataSource As New DataTable
Dim dcYear As New DataColumn("Year", GetType(System.Int32))
Dim dcMonth As New DataColumn("Month", GetType(System.Double))
Dim dcItem As New DataColumn("Item", GetType(System.String))
Dim dcSum As New DataColumn("Sum", GetType(System.Double))
dtReportDataSource.Columns.Add(dcYear)
dtReportDataSource.Columns.Add(dcMonth)
dtReportDataSource.Columns.Add(dcItem)
dtReportDataSource.Columns.Add(dcSum)
dtReportDataSource.Columns("Sum").DefaultValue = 0
dtReportDataSource.PrimaryKey = New DataColumn() {dcYear, dcMonth, dcItem}
Dim dtStartDate As DateTime = CDate(dtTest.Select("", "Date")(0)("Date"))
Dim dtEndDate As DateTime = CDate(dtTest.Select("", "Date DESC")(0)("Date"))
For i As Integer = 0 To DateDiff(DateInterval.Month, dtStartDate, dtEndDate)
Dim intYear As Integer = DateAdd(DateInterval.Month, i, dtStartDate).Year
Dim intMonth As Integer = DateAdd(DateInterval.Month, i, dtStartDate).Month
For Each drTest As DataRow In New DataView(dtTest).ToTable(True, "Item").Rows
dtReportDataSource.Rows.Add(intYear, intMonth, drTest("Item"))
Next drTest
Next i
For Each drTest As DataRow In dtTest.Rows
Dim drReportDataSource As DataRow = dtReportDataSource.Rows.Find(New Object() {CDate(drTest("Date")).Year, CDate(drTest("Date")).Month, drTest("Item")})
If Not IsNothing(drReportDataSource) Then drReportDataSource("Sum") += drTest("Value")
Next drTest
YouReportViewer.LocalReport.DataSources.Add(New ReportDataSource("Test", dtReportDataSource))
當您嘗試將0銷售額插入March時,會出現什麼錯誤? – Roger
填充表的系統不記錄任何活動。所顯示的例子是一個大型系統的樣本/演示,但是概念是,在銷售物品時,它們被輸入到表格中。即使沒有記錄的活動,報告也需要顯示每月的總計。 –