DOBON.NET DOBON.NETプログラミング掲示板過去ログ

クリスタルレポートのビットマップの更新

環境/言語:[C#]
分類:[.NET]

2004/12/17(Fri) 20:00:56 編集(投稿者)

.NETC#からクリスタルレポートのビューアーを起動させたいんですけど、クリスタルレポートに貼り付けたビットマップが自動更新されません。
クリスタルレポートのビューアーを起動する直前に、ビットマップを更新しています。
クリスタルレポートは、OLEの挿入でファイルを指定し、リンクの項目にチェックを入れて作成しました。
クリスタルレポート初心者なので、説明が分かりづらいかもしれませんが、何か知っている方がおられましたら、教えてください。
よろしくお願いします。
同様のことをしてみましたが、こちらでは正常に更新されました。 CrystalReportViewer に問題があるわけでも、特別な処理が必要というわけでもないようです。
 疑うところがあるとすれば
> クリスタルレポートのビューアーを起動する直前に、ビットマップを更新しています。
の箇所くらいのような気がします。具体的にどのような操作をさせているのでしょう?
#と、この答えを聞いたからといってお役に立てるかどうか怪しいのですが(汗)
お返事ありがとうございます。

>  疑うところがあるとすれば
>>クリスタルレポートのビューアーを起動する直前に、ビットマップを更新しています。
> の箇所くらいのような気がします。具体的にどのような操作をさせているのでしょう?

上記の件ですが具体的には、
-------------------------
// [Alt]キー+[Print Screen]キーの送信
SendKeys.SendWait("%{PRTSC}");
// クリップボードに格納された画像の取得
IDataObject clipData = Clipboard.GetDataObject();
Bitmap bmp = (Bitmap)clipData.GetData(DataFormats.Bitmap);
// 取得した画像の保存
bmp.Save(@prvstrBmpPath + @"\" + prvstrBmpFile, System.Drawing.Imaging.ImageFormat.Bmp);
-------------------------
このような処理を行っています。

画面のハードコピーをクリップボードに貼り付けて、クリップボードのデータをビットマップにして保存しています。
ビットマップは正常に更新されているのを確認しました。

ちなみにビットマップがリンクされているクリスタルレポートを起動すると、「リンクを更新中」というメッセージが出て、ビットマップが更新されます。

なぜビューアーを起動したときにはビットマップが更新されないのか分かりません・・・。
同じ処理を入れてみましたが、矢張りこちらでは問題ありませんでした。
 更新しているファイルのパスとリンク先のそれが異なっていた、とかってことは
流石にないでしょうし‥‥なんでしょうね(ーー;)

#以下のような内容で試してみました。 Form2 には CrystalReportViewer を配置、
#デザイン画面で ReportSource プロパティを設定してます。

    private void button1_Click(object sender, System.EventArgs e)
    {
        SendKeys.SendWait("%{PRTSC}");
        // クリップボードに格納された画像の取得
        IDataObject clipData = Clipboard.GetDataObject();
        Bitmap bmp = (Bitmap)clipData.GetData(DataFormats.Bitmap);
        // 取得した画像の保存
        bmp.Save(リンクファイルのパス, System.Drawing.Imaging.ImageFormat.Bmp);
        //bmp.Dispose();

        Form2 f = new Form2();
        f.ShowDialog();
    }


 一応確認ですけど、対象ビットマップをペイントなどのエディタで編集してから
CrystalReportViewer を表示したら、更新されて表示されるのでしょうか?
#もしこれで期待する動作をしないのであればパスを疑いたくなってしまいます(^_^;)

 大丈夫であれば、(プログラム上で)ビットマップファイルの更新が終わった後に
CrystalReportViewer.ReportSource プロパティを設定し直すというのを
試してみてください。再度読み込むことになるので更新される‥‥筈。

 更新ボタンや RefreshReport メソッドで更新されないことは確認したので、
これで駄目ならちょっとお手上げですm(__)m



> ちなみにビットマップがリンクされているクリスタルレポートを起動すると、
> 「リンクを更新中」というメッセージが出て、ビットマップが更新されます。
 関係ありませんけど CrystalReportViewer で開くときこの表示は出ないようでした。
#レポートファイルを直接開いたときには同様のメッセージが出ていますので
#その点はご安心くださいませ。

DOBON.NET | プログラミング道 | プログラミング掲示板