- - PR -
クリスタルレポート データ取得
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-10 15:21
いつもお世話になっております。
1つ質問があります。 現状、テーブルのデータをクリスタルレポートで表示させようとしていまして、そのプレビューフォームを使いまわそうとしています。 データセットを1つだけ用意して、データテーブルの値を T1,T2,T3・・・と作っていき、引数で渡された指定テーブルをselect文で抽出し、fillでデータセットに入れています。("SELECT ID AS DT1, 氏名 AS DT2, 住所 AS DT3・・・") そのデータセットをバインドして表示させているのですが、単純なデータとかは、データセットを作る必要もないのかなと思いました。 なにか、いい方法がありましたらご教授お願いいたします。 | ||||||||||||||||
|
投稿日時: 2006-07-10 16:17
本題とは関係のないところですが、このようなクエリは書く必要はないと思います。 DataSet に含まれる DataTable を 1 つ指定して渡せば良いのではないでしょうか? (選択するために、DataSet にしているのですよね?)
たとえば、汎用的な照会帳票のタイトルがその代表になりますよね。 (帳票によってタイトルは変わるが、DataSource に含めるべき内容ではない) このように、DataSource に含めず、値を帳票に直接渡したい場合は、 式フィールド (FieldObject) に対して、値を設定することで可能となります。 「式フィールド」「FieldObject」 あたりで調べてみてください。 # タイトルは、"クリスタルレポート データ取得" になっていますが、 # CrystalReports 側が、'データを取得' する、というよりは、 # プログラム側から、CrystalReports 側に 'データを設定' するというイメージです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-07-10 17:14
返答ありがとうございます。
式フィールド (FieldObject) あたりをしらべたところ、 Dim crFormulaFieldDefinitions As FormulaFieldDefinitions Dim crFormulaFieldDefinition As FormulaFieldDefinition Dim LoopFormula As Integer Dim FormulaName As String crFormulaFieldDefinitions = rpt_pr.DataDefinition.FormulaFields For LoopFormula = 0 To crFormulaFieldDefinitions.Count - 1 crFormulaFieldDefinition = crFormulaFieldDefinitions.Item(LoopFormula) FormulaName = crFormulaFieldDefinition.Name Select Case FormulaName Case "ID" crFormulaFieldDefinition.Text = "文字列をいれる" Case "氏名" crFormulaFieldDefinition.Text = "文字列をいれる" End Select Next というのがあったので、これを使ってみようと思います。 データセットでは、("SELECT ID AS DT1, 氏名 AS DT2, 住所 AS DT3・・・")の抽出ではなく、すべて抽出し、データセットの中身分だけ”文字列をいれる”というところに、当てはめる認識であってますか?? となると、デザインでデータセットはつくらず、すべてコードでもできるってことでしょうか? | ||||||||||||||||
|
投稿日時: 2006-07-10 17:38
そのコードでは、すべてのフィールドを回していますよね。 決め打ちする場合は、以下のようなメソッドを作成します。
これは、「ミニマム コード」 ですから、例外処理は省いています。
いえ、DataSet には、DataTable を複数格納できますよね。 この DataTable を切り分けの単位としてみれば良いのではという意味でした。 # どうやら違う意味で受け取っていたようですね。
ただ、型付 DataSet を使うことを強く推奨します。 アンバウンド レポート作成時には (デザイン時も) 必須です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-07-10 18:18
返答ありがとうございます。
すべてをまわすのではなく、あるものだけをまわすほうが、効率的ですね。 データセットも、必須とのことだったので、データセットを使い、式フィールドをつかったやりかたで、やってみようと思います。 まだまだ、修行不足で単純な質問をしてしまうかもしれませんが、よろしくお願いいたします。 丁寧な返答ありがとうございました。 |
1