- PR -

CrystalReportでの画像表示

1
投票結果総投票数:4
CrystalReport 4 100.00%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
ext
会議室デビュー日: 2006/09/08
投稿数: 6
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-08 20:40
CrystalReport初めての使用です。

開発環境はVisual Studio.Net 2005 C# 、CRは左記付属です。

目的は、あるイベントが発生した時に、ビューアにjpg画像パス(URL)を指定して動的に表示させる方法なのですが、実現方法が分かりません。
rptにピクチャやOLEでファイル指定する方法は出来たのですが、固定指定では目的を果たせません。
とりあえず対象のrptに空のOLE(ビットマップイメージ)を定義し、これに対してパスを指定する様な操作なのかなと思っていますが、これもよく分かっていません。

自分なりに調べてみたのですが、調べ方が悪いのか調べきれませんでした。
申し訳ありませんが、よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-09 09:05
引用:

draさんの書き込み (2006-09-08 20:40) より:

目的は、あるイベントが発生した時に、ビューアにjpg画像パス(URL)を指定して動的に表示させる方法なのですが、実現方法が分かりません。


'ファイル パスを指定して' という直接的な方法では無理で、
BlobFieldObject に画像を表示して再読み込みという形になると思います。

ちなみに、CrystalReportViewer へ更新するのではなく、
CrystalReportViewer が参照している、ReportDocument へ更新する必要があります。

よって、ReportDocument 全体の '再読み込み' が必要です。
何に使用するのかわかりませんが、レスポンスはこの上なく悪いですよ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ext
会議室デビュー日: 2006/09/08
投稿数: 6
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-11 12:58
じゃんぬねっと様

ご返信頂き、ありがとうございます。
じゃんぬねっと様のお名前は時折本サイトで拝見しておりましたので、返信頂けて嬉しく思います。
本件、仕組みからご教授頂き、ありがとうございます。非常に助かります。

本投稿の大元の目的としましては、webページにて、あるイベント(具体的にはそのページで作成した[印刷プレビュー]ボタンの押下)が発生した場合、特定のURL、もしくはパスにて指定された40〜50枚のjpg画像(サイズは5〜100KB程度)を取得し、CrystalReportにより、規定フォームにて印刷プレビューさせることです。
レスポンスとしましては、ユーザーのストレスにならない程度でしたら構わない条件としております。(処理中画面を表示する為、ある程度は許容されます)
上記「特定のURL、もしくはパスにて指定された画像」のファイルは、ボタン押下時の最新情報(ファイル名称も変更されます)を取得する必要がある為、本投稿の質問をさせて頂いた次第です。

本仕様は、ご返信頂きました内容より、CrystalReportでは直接的には実現不可能(プロジェクト内ファイル名称固定とし、対象ファイルをプロジェクト内に定義した名称にリネーム等の対応を施せば可能)との認識で正しいでしょうか?
また、可能である場合、CrystalReportビューアを起動させる為、ブラウザにプラグイン等インストールする必要はありますでしょうか?

お手数ですが、ご返信頂けますと幸いです。

以上、よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-11 13:21
引用:

draさんの書き込み (2006-09-11 12:58) より:

本投稿の大元の目的としましては、webページにて、あるイベント(具体的にはそのページで作成した[印刷プレビュー]ボタンの押下)が発生した場合、特定のURL、もしくはパスにて指定された40〜50枚のjpg画像(サイズは5〜100KB程度)を取得し CrystalReportにより、規定フォームにて印刷プレビューさせることです。


現時点では、DataSource から設定せず、レポートにパスが直接埋め込まれているのですね。

引用:

本仕様は、ご返信頂きました内容より、CrystalReportでは直接的には実現不可能(プロジェクト内ファイル名称固定とし、対象ファイルをプロジェクト内に定義した名称にリネーム等の対応を施せば可能)との認識で正しいでしょうか?


直接的というのは、レポートに直接パスが埋め込まれている場合です。

後半の内容については、ちょっと理解ができませんでした。
申し訳ありません。

リネームというのは別の ReportDocument を用意するという意味でしょうか?
ということは、画像の配置が固定されていない、画像の最大の数が決まっていない、ということでしょうか?

引用:

また、可能である場合、CrystalReportビューアを起動させる為、ブラウザにプラグイン等インストールする必要はありますでしょうか?


必要ありません。
CrystalReports の標準的なコンポーネントで可能です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ext
会議室デビュー日: 2006/09/08
投稿数: 6
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-11 13:48
じゃんぬねっと様

早速のご返信、深謝致します。
ご丁寧なご教授、大変助かります。

> 現時点では、DataSource から設定せず、レポートにパスが直接埋め込まれているのですね。

はい、レポートにてOLEオブジェクトを「ファイルから作成」し、元ファイル同期「リンク」にチェックを付けております。
DataSourceに設定する方法で実現可能ということですか。
すみません、DataSourceに設定する方法すら分かっていない為、悪戦苦闘しております。

> 後半の内容については、ちょっと理解ができませんでした。
> 申し訳ありません。

とんでもありません。私の表現力不足です。申し訳ありません。

> リネームというのは別の ReportDocument を用意するという意味でしょうか?
> ということは、画像の配置が固定されていない、画像の最大の数が決まっていない、ということでしょうか?

ReportDocument は1つです。また、画像の配置、大きさ等は決まっていますが、現状、とにかく最新画像を表示させるのに手一杯な状態です。

1つ目の返答と重複しますが、『レポートにてOLEオブジェクトを「ファイルから作成」し、「リンク」にチェックを付けて』おり、ビューア起動時に最新情報が読み込まれる為、対象ファイルを「ファイルから作成」した時の名称にリネームすると実現出来る状態です。
下記に概略を記します。(ファイルパスは省略)
@「picture1.bmp」をレポートファイルに元ファイル同期「リンク」チェックONで登録
A「picture1.bmp」を削除し、同パス内「picture2.jpg」を「picture1.bmp」にリネーム
Bビューア起動で「picture2.jpg」の内容が表示される
といった様に、パフォーマンス等の考慮なく、結果のみ実現出来ている状態です。

最後に、
> CrystalReports の標準的なコンポーネントで可能です。
ActiveReportではWEBでビュワーを使用する場合、最初に一度だけビュワーをダウンロードする必要があると聞きました為、CrystalReportでも同様なのかなと思いました。必要ないのであればそれに越したことはありません。

お手数をお掛けして申し訳ありません。
よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-11 15:52
引用:

draさんの書き込み (2006-09-11 13:48) より:

といった様に、パフォーマンス等の考慮なく、結果のみ実現出来ている状態です。


BlobFieldObject を使った場合でも、それほどパフォーマンスは変わらないと思います。
結局のところ、再読み込みが必要になってきますから。

仕様を満たしているのであれば、その方法でも良いと思いますよ。

引用:

ActiveReportではWEBでビュワーを使用する場合、最初に一度だけビュワーをダウンロードする必要があると聞きました為、CrystalReportでも同様なのかなと思いました。


それは、ActiveX ビューアのことではないでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ext
会議室デビュー日: 2006/09/08
投稿数: 6
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-11 16:46
じゃんぬねっと様

お世話になります。

> BlobFieldObject を使った場合でも、それほどパフォーマンスは変わらないと思います。
> 結局のところ、再読み込みが必要になってきますから。
> 仕様を満たしているのであれば、その方法でも良いと思いますよ。

ありがとうございます。
ひとまず現状理解出来ている実現方法で実装し、今後改善方法を考慮する方向とします。

> それは、ActiveX ビューアのことではないでしょうか?
申し訳ありません。再調査した結果、おっしゃる通り、ActiveX ビューアのことでした。

とりあえず先が見えて参りました。
素人質問にお付き合い頂き、誠に感謝しております。
本来であれば深い調査の上、不明点を質問させて頂くべきであることは分かっておりますが、期限、スキル不足(VC++、JAVAのみ経験あり)の状況により質問させて頂きました。
今後はこの様な言い訳をすることのない様、今回を機に勉強致します。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)