- - PR -
Dataviewの複製方法?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-03-12 11:45
VB2005+ActiveReportsNETで開発しています。
レポートにDataviewを渡しますが Dataview = gv.GetDvGP rpt.DataSource = vw Dataview = gv.GetDvGP(この文を何とか不要にしたい) rpt.Dv = Dataview レポートのDataSource用とパラメータ(Public Property)で渡すものと 2回 Dataviewの取得(GetDvGP)を実行しないと Dataview = gv.GetDvGP rpt.DataSource = vw rpt.Dv = Dataview Dataview は1回のみ取得 レポートでパラメータで受け取ったDataviewを1度フィルタをかけると 次のDataSource を読み取らず、1件で終了してしまいます。 何とかDataviewを取得するのは1回だけにして 複製か何かで対応させたいのですが・・・ 何かよい方法はありませんか? | ||||||||
|
投稿日時: 2007-03-13 09:02
どなたも答えないようですので、
変数 'vw' というのが唐突に出てきていますが、これは何者でしょうか? GetDvGP メソッド (プロパティ?) が、DataView のインスタンスを返してそうなので、 vw == Dataview という理解で問題ないのでしょうか? そうだと仮定して、
確認ですが、"1 件で終了" というのは、貴方の環境 (データ) でそうなっているだけであり 「例」 ですよね。 正しくは 「フィルタ後、カレントに表示されている行だけが出力される」 ではないでしょうか? 同一インスタンスである以上、RowFilter を解除するか、RowStateFilter プロパティの値を変更しない限りは、 ActiveReports 側としては 同じものしか出力せざるを得ない でしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-03-13 09:48
返答ありがとうございます。
全てご察しの通りです。 vwは、Dim vw As New System.Data.DataViewとコーディングしたDataViewです。 GetDvGPは、Public Function GetDvGP(ByVal pSQL As String) As DataView SQL文を実行してDataViewを返す End Function そこでもう1度書きますとDataViewを1回取得して レポートのDataSource用とレポートの中でフィルタをかけ件数を取得する パラメータ(Public Property)のDataviewにセットし レポートを実行しフィルタをかけるとじゃんぬねっとさんの言われる通り 「フィルタ後、カレントに表示されている行だけが出力される」 になってしまいます。 DataSource用とパラメータ用を rpt.DataSource = vw rpt.Dv = vw とコーディングしたのではフィルタをかけた結果が レポートのDataSourceにも影響されてしまうのでしょうか? ここがよく解らなく・・・ RowFilter を解除するとありますが、解除方法を 教えて頂けませんか? 宜しくお願いします。 | ||||||||
|
投稿日時: 2007-03-13 11:11
未記入さん、こんにちは。
影響されているからこその '今の結果' ではないでしょうか?
RowFilter に Nothing か System.String.Empty を格納すれば良いのではないでしょうか? ActiveReports 的には DataSource に指定されたものは、Load によって再読込みされます。 これによって、フィルタリングされていない結果が表示されることをここでは期待しています。 これは、3rd パーティ製品側の実装を推測した回答です。 これでダメであれば、また再度投稿してください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-03-13 12:10
すごい!!
OKです。ありがとうございます。 |
1