cancel
Showing results for 
Search instead for 
Did you mean: 

CrystalReportsの印刷・印刷プレビュー処理が、XPでは正常動作するがVIstaではエラーになる

Former Member
0 Kudos

お世話になります。

下記質問に関して、ご教授お願い致します。

◆環境◆

Windows XP SP3

Windows Vista SP1

Visual Stdio 2005

Crystal Reports XI Release 2

◆現象◆

CrystalReportsへ印刷・印刷プレビューを行おうとすると、

Vista端末で「動作を停止しました」エラーが発生します。

しかし、下記のようにXP端末では正常に動作しており、

Vista端末ではエラーが発生する状況です。

・A端末(XP環境)からビルドを行う・・・C端末(Vista環境)でも正常に動作する。

・B端末(XP環境)からビルドを行う・・・C端末(Vista環境)から実行すると、エラーが発生する。

・C端末(Vista環境)からビルドを行う・・・C端末(Vista環境)から実行すると、エラーが発生する。

また、C端末からデバッグで実行すると、正常に動作します。

(EXEから実行すると、エラーが発生致します)

そして、エラー発生箇所なのですが

以下ソース -


try{

    // プレビューフォームを作成する

    frmPreview frm = new frmPreview();

    MessageBox.Show("Proc_1");    //u2190は正常

    // レポートオブジェクトを作成する

    rptTestReport rpt = new rptTestReport();

    MessageBox.Show("Proc_2");    //u2190白くなる

    // プリンタ名をセットする

    rpt.PrintOptions.PrinterName = "プリンタ名";

        ・

        ・

        ・

    // プレビューフォームをダイアログ表示

    frm.ShowDialog(this);

}catch(Exception ex)

{

    MessageBox.Show(ex.ToString());

}

-


メッセージボックス「Proc_1」は問題無く表示されるのですが、

「Proc_2」を表示しようとする時に、動作停止エラーが表示されます。

また、エラーが表示されても印刷プレビューダイアログは問題なく表示されます。

(try~catchでエラーがキャッチされず、そのまま実行される状態です)

現在はB端末からEXEを作成すると、エラーが発生する状態ですが、

数ヶ月前までは、作成したEXEは何の問題もありませんでした。

(数ヶ月ほど空けて開発を行った為、上記現象が発生致しました)

また、過去に作成したこのEXEをC端末から起動すると、

エラーは発生しない状態です。

◆試した事◆

・A端末にはアップデートしておらず、B端末に更新されているSP等を調査し削除する。

u2192変化なし。

・B端末のアップデートを数ヶ月分削除する。

u2192変化なし。

・C端末以外のVistaでも動作確認 u2192同現象

開発環境の問題だとは思うのですが

何が悪さをしているのか不明の状態です。

何か試してみる手段等や、原因が分かる方がいらっしゃいましたら

ご回答よろしくお願い致します。

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

こんにちわ。

その現象自体は試せませんが、USのSDNでは、再インストールで治っている様子です。

1.CrystalReportsをアンインストール

2.Registry Editor.を起動

3.キーを編集する前に、レジストリのバックアップを取る

4.HKEY_LOCAL_MACHINESOFTWAREBusiness Objects

 を辿り、フォルダごと削除する

5.再インストールして、確認する

[CRの再インストールで直ったケース|;

[そのインストールの際、レジストリをきれいにすることで直ったケース|;

役に立つかどうか判りませんが試してみてはいかがでしょうか。

無責任ですがご参考まで。

よろしくお願いいたします。

Former Member
0 Kudos

Littleboy様

ご回答ありがとうございます。

>1.CrystalReportsをアンインストール

>2.Registry Editor.を起動

>3.キーを編集する前に、レジストリのバックアップを取る

>4.HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects

> を辿り、フォルダごと削除する

>5.再インストールして、確認する

上記手順を試してみたのですが、結果は変わらずでした。。

デバッグからの実行と、EXEからの実行とでは

参照されるdll等何か違いがあるのでしょうか・・。

Former Member
0 Kudos

そうですか。。。

お役に立てなくて申し訳ありません。

ところで、デバッグ実行での動作は「違い得る」と言えます。デバッガ実行ではメモリ配置が違いますし。

しかし、その場合ocxの参照が犯人である場合が多いです。

そのvistaの端末にも、既にruntimeが入っていることと思いますが、これと参照dllが違う可能性に

ついて考えてみるのはいかがでしょうか。

regsvr32を利用してocxの場所を明示的に示すのも切り分けには有効と思います。

[このページが|http://homepage1.nifty.com/MADIA/vb/vb_bbs/200305/200305_03050011.html]参考になるかもしれません。

力及ばず申し訳ありません。