on 09-10-2008 6:14 AM
よろしくお願いします。
-
PC(①):Windows2003Server R2 SP2(セットアッププロジェクトを生成したPC)
PC(②):WindowsXP SP2(セットアッププロジェクトを用いてインストールしたPC)
開発環境:VisualStudio2003 Visual Basic
Crystal Reports:Crystal Reports for Visual Studio 2003
データベース:Microsoft Access 2000
-
上記の環境(①)にてアプリケーションを開発、動作確認し、以下のサイト
http://msdn.microsoft.com/ja-jp/library/aa287928(VS.71).aspx
を参照しながらセットアップ プロジェクトを作成して別PC(②)へインストールしたのですが
レポート出力処理にて下記エラーが発生し、解決できずにいます。
-
例外の詳細:
CrystalDecisions.CrystalReports.Engine.InvalidArgumentException: フィールド名が無効です。
スタック トレース:
[InvalidArgumentException: フィールド名が無効です。]
. F(String , EngineExceptionErrorID ) +406
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions.InternalGetItem(String name, String subreportName) +768
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions.get_Item(String fieldName, String subreportName) +8
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetParameterValue(String name, Object value, String subreport) +90
HokenDBProto.CreateHokenReport.CreatePDF(String arrayUserHokenID, String strPath, String strFileName) +9190
HokenDBProto.HokenSearch.PrintPDF() +711
HokenDBProto.HokenSearch.btnPrintPDF_Click(Object sender, ImageClickEventArgs e) +7
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +109
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +69
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292
-
なお、アプリケーションのその他の機能(画面遷移、DB更新等)は正常に動作しております。
上記内容より推測できる原因等ございましたら、ご教授頂きたくよろしくお願い致します。
スタック トレース:
InvalidArgumentException: フィールド名が無効です。
. F(String , EngineExceptionErrorID ) +406
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions.InternalGetItem(String name, String subreportName) +768
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions.get_Item(String fieldName, String subreportName) +8
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetParameterValue(String name, Object value, String subreport) +90
エラーを見る限りではフィールド名が間違っているとしか言えないと思います。masamichi morita 様が何を調べたかを含めて、より具体的な情報が無ければ他の方からの回答も期待できないと思います。
- 開発は WebForm ですか?
- 具体的な処理の流れはどうなっているのですか?
- パラメーターの設定をしているように見えますが正しい値ですか?
- DB 更新とは Crystal Reports がリフレッシュ可能という意味ですか?
- Access への接続方法は?
- IIS のアカウントは対象フォルダに対する書き込み権限を持っていますか? (PDF にエクスポートしているような名前なので)
- 開発環境と問題の環境で利用している DB は完全に同じものでしょうか?
- エクスポートではなく、プレビューだけであれば可能ですか?
- 最新のマージモジュールは利用されていますか?
SCN フォーラムモデレーター
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
質問の際の記述が足りておらず申し訳ありませんでした。
本日、一応ですがエラーは解消できましたので報告します。
-
【解消方法】
メインレポートにインポートしたサブレポートを一旦削除し、
再度挿入してからセットアッププロジェクトを作成することで、エラーは解消されました。
-
上記内容より、サブレポートへのリンクが正しく張られていたために(古いサブレポートにリンクしていた?)
フィールド名の不一致が発生したように思っているのですが、
環境②ではエラーとなった「サブレポートの再挿入をする前に作成したセットアッププロジェクト」を使って、
環境(①)(開発環境と別ディレクトリ)にインストールした場合は正常に動作しておりました。
また、VisualStudioからメインレポートのファイルを開いた時に、表示エリアの下側にタブのような感じで出てくる
サブレポート名をクリックして見れるサブレポートの内容も最新の内容でした。
この点に関して疑問は残りますが、エラーは解消されましたので解決とさせて頂きます。
ありがとうございました。
情報として以下(一部ですが)回答いたします。
開発は WebForm ですか?
u2192WebFormです。
具体的な処理の流れはどうなっているのですか?
u2192DBから取得したデータを、編集した上でデータセットに格納して、CrystalReportでPDF出力しています。
レポートはサブレポートを1枚使用しています。
DB 更新とは Crystal Reports がリフレッシュ可能という意味ですか?
u2192Crystal Reportsを用いない処理でのDBアクセスという意味でした。
分かりにくくて申し訳ありませんでした。
最新のマージモジュールは利用されていますか?
u2192マージモジュールは最新版をダウンロードして使用しています。
報告ありがとうございます。
可能性として考えられるのは、サブレポートへのパスが相対パスまたはドライブが異なっていた、または最初のセットアッププロジェクトに何らかの問題があり、XP 側に正しくインストールできていなかったと考えられます。ただ、パスに関する可能性はかなり低いと思われます。
>環境(①)(開発環境と別ディレクトリ)にインストールした場合は正常に動作しておりました。
とありますが、別ディレクトリであってもシステム全体で有効なものがありますから、別フォルダで動く == セットアップに問題が無いとは断言できません。
また、セットアップに含まれていたサブレポートが間違っていた場合、セットアップ先のフォルダが違っていても開発環境には元のレポートが存在する環境ですから動作することは不思議ではありません。
既に正常に動作しているようなので、さらなる調査は不要かと思いますが、再度発生した場合は新しいスレッドを作成してください。
SCN フォーラムモデレーター
Edited by: Naoto Miyahara on Sep 19, 2008 5:03 PM
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.