- - PR -
CrystalReportに画像を表示する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-07-22 01:24
VB2005で開発しているのですが、Form上に表示されているBitmapファイルをCrystalReportに表示する方法がわかりません。
どなたかわかる方がいらっしゃいましたら、ご教授お願いいたします。 いろいろ調べてみて、BitmapファイルをByte配列にしてDataSetに格納し、CrystalReportのBLOBオブジェクトに表示するという手順でできることがわかったのですが、DataSetに格納してもCrystalReportに表示されませんでした。 (Bitmapファイルは、パッケージソフトのコントロールから表示しています。) 以下に、私が作成したコードを記載します。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Ds As DataSet1 = New DataSet1 Dim Cr As CrystalReport1 = New CrystalReport1 Dim Row As DataRow Dim Bm As Bitmap Dim byteData As Byte() Dim memstream As MemoryStream = New MemoryStream 'パッケージのコントロールから画像をBitmap形式で取得 Bm = BarCodeCtrl1.GetBitmap Bm.Save(memstream, Imaging.ImageFormat.Bmp) byteData = memstream.ToArray Row = Ds.Tables(0).NewRow() Row("画像") = byteData Ds.Tables(0).Rows.Add(Row) Cr.SetDataSource(Ds) memstream.Close() Form2.Show() End Sub 補足・Form2にViewerがあり、Button1クリック時に表示します。 ・DataSet1は型付きDataSetで定義しています。 DataSetの"画像"列は、System.Byte()で定義しています。 | ||||
|
投稿日時: 2008-07-22 11:04
できそうなのですが、できませんか。 すでに確認済みかもしれませんが byteData の中身は意図した RGB 配列になっておりますでしょうか?
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-07-22 12:39
じゃんぬねっと様、ご返答ありがとうございます。
意図したRGB配列になっているかは、どのように確認すればいいでしょうか? VB.netもCrystalReportも初心者なので、的外れな質問かもしれませんが、よろしくお願いします。 | ||||
|
投稿日時: 2008-07-22 13:04
これは VB.NET とも CrystalReports とも関係のない部分ですが、byteData の中身がそれっぽいかどうかです。 配列の要素数が数個しかないとか、中身がすべて FF だとかそういう意味です。 ところで今ソースを読み返していたのですが、実際に CrystalReports からレポートを印刷もしくは Viewer で表示している部分のコードが一切ないようですね。 Form2.Show() という記述がありますのでまさかとは思いますが、Form2 に表示しようとしていますか? いずれにしても変数 Cr は何の役割も果たしておりません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-07-22 14:46
ご指摘の通り、Viewerに表示する記述が抜けておりました。
Form2上のViewerに表示するつもりだったのですが・・ Form2.Show()の前に、 Form2.CrystalReportViewer1.ReportSource = Cr という記述を追加したところ、Reportに表示されました。 じゃんぬねっと様、ありがとうございました。 |
1