2016-08-16 9 views
1

rdlcレポートを使用してVisual Studio 2015でレポートを作成しようとしています。私はここでレポート にそれらの結果を私のDataTableの値を検索して表示できるようにしたいことは、私のDataTableです: DataTableDataTableでRDLC Find Valueを取得する

これは、SQLからサンプルデータです: enter image description here

「SummaryType」が「Family Summary」であるレポートの1ページ目のテキストボックスにSummary Field Valueを表示する必要があります。さらに、テキストボックスに[後続]ページの[POST要約]を表示する必要があります。

Visual Studioで、特定の申請者のレポートに必要なすべてのデータを独自のデータテーブルに格納するデータセットをプログラムによって作成しました。ほとんどの場合、名前、住所、市などの単一の行です。私の問題は、要約表の場合、データ表に複数の行がある場合ですが、レポート全体を通してさまざまな時間を表示するだけです。たとえば、レポートのファミリセクションには「ファミリサマリ」のみを表示し、レポートのPOSTセクションには「POSTサマリー」のみを表示する必要があります。

RDLCで呼び出すことのできる関数/式があり、サマリーデータテーブルで値(つまり「ファミリサマリー」)を検索し、その結果をレポートに表示しますか?

EDIT: 回避策として、Visual Studioで、必要な要約ごとに概要データテーブルをフィルタリングし、RDLCで変数を作成し、その変数に表示する必要がある値を割り当てました。より良い、より効率的な(正しい)方法があれば、私に知らせてください。

私の結果は次のようになります。 enter image description here

+0

レポートデータソースにフィルタリングされたデータを渡します。たとえば、レポートのデータソースとして 'BindingSource'を使用する場合は、' BindingSource'の 'Filter'プロパティを設定します。 –

+0

ここに例があります:[RDLCレポート:レポートにフィルタを適用](http://stackoverflow.com/questions/33994830/rdlc-report-apply-filter-to-report?noredirect=1&lq=1) –

答えて

0

DataTableの値を検索します私が呼び出すことができる機能/式は、...ありますか?

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ページのレポートです。 1つのサマリータイプは「MySummaryType」、別のタイプは「YourSummaryType」、別のサマリータイプは「HerSummaryType」などです。すべてのサマリータイプは既知ですが(静的)、レポートのロケーションによっては、どのサマリータイプ表示されます。たとえば、「MySummaryType」は3ページ目に配置し、「YourSummaryType」は8ページ目に配置することができます。 – Talsiter

+0

@Talister、質問にはどのようにレポートのルックアップ値を使用しているかを明確にしてください。私はあなたが "レポートパラメータ"に値を割り当てると仮定し、そのパラメータはレポートTextBox.Valueプロパティの式で使用されます。 – TnTinMn

関連する問題