2009-08-06 5 views
2

Visual Studio 2008に付属のCrystal Reportsを使用していますCrystalReportsに診断ログがありますか?印刷時に特定のフィールドが表示されない

これは私の問題です。私は単一のクリスタルレポートを生成するシンプルな小さなコマンドラインユーティリティを持っています。それ

  1. は、ストアドプロシージャの外のデータセットを取得し、データベースに接続します。データセットは常に1つの行を持つ1つのテーブルです。
  2. は、デフォルトのプリンタにコマンドラインフラグのいずれかのプリントに応じて、レポートのデータソース
  3. 、電子メールなどのデータセットを設定し、またはアプリはこのようなものを使用している

PDFとしてレポートを保存します。

c:\> GenerateReport 1000 1345 1 [email protected] pdf=c:\temp\ print 

ここで、最初の3つの引数はストアドプロシージャのパラメータを指定し、その他の引数はオプションですが、レポートに何をするかをユーティリティに指示します。非常に簡単なもの。素晴らしい作品ですし、しばらくお待ちしています。

クリスタルレポートをアップグレードしてから(バージョンがvs2003であったものから)それがちょっとばかりだったことを除いて。プロダクションサイトでのみ、レポートが印刷されるときにのみ、レポートのフィールドのいくつか(すべてではありません)が空白のままになります。

これは、レポートが一度だけインスタンス化され、レポートのすべてのデータがDataSetから来ているため、特に混乱します。レポートパラメータフィールドはありません。そして、データセットはアプリケーション開始時に1回だけ取り出され、データソースとして設定されます。その後、印刷、エクスポート、または電子メールのそれぞれに応じて、report.PrintToPrinter、report.Export、report.ExportToStreamを同じインスタンスで呼び出すだけです。

これは、printとemail = me @ mycompanyオプションを指定してユーティリティを実行すると、取得した電子メールと印刷されるレポートが完全なReportClassインスタンスから取得されることを意味します。ただし、印刷時に一貫して欠落している同じ値が、レポートが電子メールで送信されたりディスクに保存されたりしたときに表示されます。

さらに悪いことに、まったく同じ実行可能ファイルを使用できます。それを私の開発用コンピュータに移動し、本番データベースにあるconfigファイルをポイントすると、すべての値を入力してローカルプリンタにプリントします!

これをさらに調べる方法については、私は非常に困っています.CrystalReportsの内部で何かが起こっているようです。何らかの診断モードやログ記録モードがありますか?これをオンにすると、この問題を解決する手がかりが得られますか?

+0

エクスポートする前に印刷するとどうなりますか?それとも既にその命令ですか? – dotjoe

+0

それは、新しいメキシコの砂漠の真ん中の無人のシャックの1つのプロダクションシステムでしか起こらないので、ちょっとお尻の痛みです。基本的には、誰かに行って、プリントアウトを確認してから、スキャンしてファックスでファックスする必要があります。しかし、私はすべての方法でローカルに試しました。常にローカルで動作します –

答えて

1

まず、あなたの質問に答えてください。いいえ、報告書に表示されるものと発生した例外以外の診断ログはありません。

何が問題なのかというと、印刷時に問題が発生した場合のみ、プリンタドライバおよび/またはフォントに関連することがあります。それは他のものにすることはできません。プロダクションプリンタで印刷するようにレポートを修正するには...プロダクションプリンタがインストールされているコンピュータにCrystal Reportsをインストールし、その特定のプリンタに対してレポートを開く/フォーマット/テストする/保存します。これで問題は解決します。もちろん、レポートの修正が終わったらCrystal Reportsを削除してください。

レポートが正常に実行されていて、印刷結果が正しくない場合やその他のエラーが発生していない場合は、プリンタとの互換性の問題があります。他に何もない。

関連する問題