2016-08-16 168 views
1

我試圖在Visual Studio 2015中使用rdlc報告生成報告。我希望能夠在報表上 這裏查找我的數據表中的值,並顯示這些結果是我的DataTable: DataTableRDLC在DataTable中查找值

這是SQL示例數據: enter image description here

我需要在「SummaryType」爲「Family Summary」的報告的第1頁上的文本框中顯示摘要字段值。此外,我需要在文本框的後續頁面上顯示「POST摘要」。

我已經在Visual Studio中以編程方式創建了一個數據集,該數據集將特定申請人的報告所需的所有數據存儲在自己的單獨數據表中。大多數是單行,如名稱,地址,城市等。我的問題是,當涉及到彙總表時,數據表中有多行,但我只需要在整個報表中顯示不同的行。例如,我需要在報告的「家庭」部分中僅顯示「家庭摘要」,並僅在報告的POST部分中顯示「POST摘要」。

是否有可以在RDLC中調用的函數/表達式,它將在摘要數據表中查找值(即「族摘要」)並在我的報表中顯示結果?

編輯: 作爲一種解決方法,在Visual Studio中,我爲每個摘要篩選了我的Summary DataTable,然後在RDLC中創建了一個變量,併爲該變量分配了需要顯示的值。如果有更好,更高效(正確)的方式,請告訴我。

我的結果是這樣的: enter image description here

+0

將過濾的數據傳遞給報告數據源。例如,如果您使用'BindingSource'作爲報表的數據源,請設置'BindingSource'的'Filter'屬性。 –

+0

在這裏你可以看到一個例子:[RDLC Report:Apply Filter to Report](http://stackoverflow.com/questions/33994830/rdlc-report-apply-filter-to-report?noredirect=1&lq=1) –

回答

0

是否有一個函數/表達式,我可以打電話,將在數據表中查找的數值...?

您可以使用DataTable.Select Method查找符合條件的行。

Dim matchedRows as DataRow() = myDT.Select("[SummaryType]='MySummaryType'") 
If matchedRows.Length > 0 Then 
' extract needed field 
End If 
+0

你可以使用'yourDataTable.DefaultView.RowFilter'來過濾行。如果您使用了'DataTable.Select'方法,則應該將結果行的副本放在一個表中,並將該表用作報表的「DataSource」,否則結果將毫無用處。 –

+0

感謝您的回覆,但DataTable包含稍後將在報告中使用的幾種不同的摘要類型。這是關於將生成的35頁面報告。一個摘要類型將是「MySummaryType」,另一個可能是「YourSummaryType」,另一個可能是「HerSummaryType」等。所有Summary類型都是已知的(靜態),但取決於它在報告中的位置,這取決於Summary Type被顯示。例如,「MySummaryType」可能放在第3頁上,「YourSummaryType」可能放在第8頁上。 – Talsiter

+0

@Talister,請在您的問題中明確說明您如何在報告中使用查找值。我假定你將這個值分配給一個「報表參數」,並且這個參數用於一個報表TextBox.Value屬性的表達式中。 – TnTinMn