2013年3月11日月曜日
ここ最近に書いたCrystal Reports絡みのエラーや問題点記事の一覧
クリレポ 2017.8 最新記事あり → https://oyaji-pgm.blogspot.jp/2017/08/20178-visual-studio-2017-2015-2013-2012_13.html
ここ最近に書いたCrystal Reports絡みのエラーや問題点の記事一覧です。 どうぞご参考に。
2013年3月10日
Visual Studio 2010のVisualStudioインストーラーでCrystal Reportsのlog4net.dll関連エラーのためインストーラーが作成できない
2013年3月7日
VisualStudio2012にSAP Crystal Reports が対応!(祝)
2013年3月5日
SQL SERVER 2012化対応することで問題発生するVisualStudioと.NetFrameworkとクリスタルレポートを使った業務システム
2013年1月10日
Visual Studio 2008からVisual Studio 2010へのアップグレード(Crystal Reportsを含む)
2013年1月10日
CrystalReports2010インストールエラー 2753
クリレポとlog4netにはもうお腹いっぱいです、、沢山時間取られました。もうやってられませんわ・・・
2013年3月5日火曜日
SQL SERVER 2012化対応することで問題発生するVisualStudioと.NetFrameworkとクリスタルレポートを使った業務システム
(この記事は、現在進行形のため随時追加変更される可能性あります)
(2013/3/4現在)
あるところでDBをSQL SERVER 2005からSQL SERVER 2012化しようと、.NetFramework(VisualStudio)で作成された各種システムに問題が出ないか調査していますが、VisualStudio2008で問題発生。
ちなみにSQLServer2012はSP1も出たことでベンダー各社積極的に利用を推進しています。サーバーOS、サーバーソフトウェアはSP1リリース=積極販売開始の合図なので、覚えておいて良いと思います。
『 稼働中の各種システム 』
・フレームワーク: .NetFramework3.5・開発ツール:VisualStudio2008
・テンプレート:WindowsForm(問題に関しては他のテンプレート、例えばWebも同様と思われる)
・DB:SQL SERVER 2005
・クリスタルレポート2008
『 変更された環境 』
・DB:SQL SERVER 2012(DBの互換性レベル110:SQL Server 2012)
『 問題発生箇所 』
・テーブルアダプターのクエリを作るウィザードでエラー発生エラーメッセージ:「このサーバーバージョンはサポートされていません。サポートされているサーバーはMicrosoftSQLServer2005までです。」
・DBの互換性レベル90:SQL Server 2005にしても改善しない
『 対応 』
・VisualStudio2010化する(クリレポがなければVS2012化する=新しい方が後々良い)これしか方法がないのでそうします。が、こうするとクリスタルレポートのマージモジュールのバージョンに・・・。クリレポついては他の記事を参照ください。
Visual Studio 2008からVisual Studio 2010へのアップグレード(Crystal Reportsを含む)
CrystalReports2010インストールエラー 2753
VisualStudio2012にSAP Crystal Reports が対応!(祝)
「 後記 」
くだらん!そんな話か・・・そう思う方は多いと思います。単純にTableAdapterやウィザードを使わず開発すれば良いだけの話。実際ウィザードやTableAdapterを使っている共同開発作業現場があるか?昔は皆無。
しかし最近ではこの手のMS側問題がどんどん改善されTableAdapterとウィザードが十分業務で使えるレベルにまでになっています(VS2010やVS2012)。最近の私は積極的に使います。(トランザクションには使えん・・)。
理由は、
簡単に済ませて良い画面などはウィザード+TableAdapterを使うことで、工数が1/100程に圧縮できる可能性があるので、手作りで作っていては儲かりません。これは画面1枚5分で完成する計算です。
本日現在こんなところです。つまんなかったですか?、笑
「ちなみに」
バイナリーレベル、つまり、WindowsFormを使ったシステムですが(Webでも同様と思われる)PCへインストールした状態で実行しても特に動作に問題は出ていません(DBi/o、クリレポ、共に)
「後記2」
既にクリスタルレポートは
理由は、フレームワークや他社ブラックボックスソフトが変更された場合にどのような問題が発生するかわりと見えてきます。よって2回目以降のバージョンアップが割としやすい。
数年後のある時点でバージョンアップする場合、かなり苦戦すると思います。その時点で新システムへ移行するならその方が儲かりますからそれはそれで良いですが。
以上
2013年1月10日木曜日
Visual Studio 2008からVisual Studio 2010へのアップグレード(Crystal Reportsを含む)
クリレポ 2017.8 最新記事あり → https://oyaji-pgm.blogspot.jp/2017/08/20178-visual-studio-2017-2015-2013-2012_13.html
以前.NET Framework 3.5.1で作成したシステムを今回、.NET Framework 4化する事に。
このプロジェクトには、あの厄介なCrystal Reportsが含まれており、案の定意味不明なエラーを吐いてくれるので、大いに混乱させてもらいました。
先回書いたように、ちょうどクリレポは2010からsap配下のソリューションになったので、サポート体制が大きく変わり余計面倒に。
Crystal ReportsはVisualStudioのあるバージョンと対になっているので、VisualStudioを新らしいものに変えると色々と面倒です。
以下に記す対策は、
Visual Studio 2010でCrystal Reports2010 が動かない、と言う話の対処も手順の中で行っています。
しかし既にVS2012が出ているので今更VS2010!?しかもVS2012からクリレポが使えなくなってしまいましたから、さらに今更感が・・・
が、VS2012はSP1も出ていますが何かイマイチ動作が安定してない気が?Windows7で動かしているからですかね?
※復活しました!VS2012でクリレポが使えます♪
→ VisualStudio2012にSAP Crystal Reports が対応!(祝)
※VS2012でも同様の問題が出たら下記手順を踏めば良いと思います
< お題 >
Visual Studio 2008システム → Visual Studio 2010化
同時に、
Crystal Reports2008 → Crystal Reports2010 化も行う
< 手順 >
① PCへSAP Crystal Reports2010 をインストールする
(クリレポ2008はアンインストールせず、そのまま放置した)
※Crystal Reports2010 インストールは先回書いた記事を参考にして予めPCへインストールしておく
(参考URL Visual Studio 2010 リリース ノート)
http://download.microsoft.com/download/8/3/6/836DBACF-B1ED-4707-9583-381BC5FB31D9/VS2010RTM.htm
2.1.1 Visual Studio 2010 では、Crystal Reports を個別にインストールする必要がある
Visual Studio 2010 では、Crystal Reports が個別にダウンロードおよびインストールされます。 Crystal Reports プロジェクトまたは Web サイトを作成したり、旧バージョンの Visual Studio または Crystal Reports で作成された既存のプロジェクトまたは Web サイトをインポートしたりする際は、Visual Studio 2010 と互換性のあるバージョンの Crystal Reports をインストールする必要があります。
この問題を解決するには:
Visual Studio 2010 で Crystal Reports を使用している場合は、このリリース ノートの「関連リンク」のセクションにある Crystal Reports のリンクを使用して、Visual Studio 2010 と互換性のあるバージョンの Crystal Reports をダウンロードし、インストールします。このインストールによって、Crystal Reports プロジェクトおよび Web サイトが作成できるようになります。また、Visual Studio 2010 で使用できる既存のプロジェクトおよび Web サイトもアップグレードできます。
SAPのクリレポページTOP
http://scn.sap.com/community/crystal-reports-for-visual-studio
② Visual Studio 2008ソリューションをVisual Studio 2010へ変換
特殊なものがなければソリューションとプロジェクトのファイルがアップグレードされるだけ
この場合はクリレポが含まれているので色々と面倒
クリレポが含まれているので下記メッセージが出現
下記画面が出るまでに結構時間かかりました
レポート30本、データセット30本、フォーム27本、クラス15本、プロジェクト3個、で7分程。コード量は面倒だから未計算。ハングしたかと思った。
以下のクリレポ箇所は、VS2010はSAPページからクリレポモジュールをDLしなさいと言ってる
リンクをクリックするとSAPのクリレポページTOPへ飛ぶhttp://scn.sap.com/community/crystal-reports-for-visual-studio
※VS2008→VS2012の画面キャプチャは下記の後半にあります
→ http://oyaji-pgm.blogspot.jp/2013/03/visualstudio2012sap-crystal-reports.html
③ セットアッププロジェクトがある場合(私はMSのインストーラーを使っている)、の依存関係に下記のワーニング等表示されても気にせずそのまま無視放置(どれもクリレポ本体内部で使われているよう)
Flash32_11_4_402_278.ocx
FlashControlV71.dll
log4net.dll
ちなみに・・・
Crystal Reports 絡みのエラーが表示された場合、そこでlog4netが関連している様なエラーが表示されることが多いが、確かにVS2010対応のクリレポモジュールでは内部でlog4netが使われているようだが、それは内部の話なので私らには関係ない。従ってそもそもエラーメッセージ自体が不正不明なので気にせず無視する。正しく手順を踏めば最後にレポートが出力出来、エラーも消える。
---↓↓↓ ここからはPCへクリレポを入れたがVS2010でエラーが出る場合の対処に使える ↓↓↓---
⑤ vs2010でクリレポを動作させる
1 .netフレームワーク4.0をclientProfileにしているとクリレポが変なエラーを吐くので決して間違えない事(client profileではダメ)
2 エラー 下記2つのエラー対処を行う
1.「ファイルまたはアセンブリ 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません」
対処を行う
・そもそもdotnet1と言うフォルダは存在しないので、作る
・crdb_adoplus.dllを探してdotnet1以下へcopyする
・x32版とx64版があるので間違えると何時もの意味不明なエラーが出て嵌る
PC環境がx32ならx32版をcopy、x64PCならx64版をcopy
2.「混合モード アセンブリはバージョン 'v2.0.50727' のランタイムに対して作成されており、追加の構成情報がないと 4.0 ランタイムでは読み込めません」
対処を行う
・これは.net4.0を使うようapp.configへ指示すれば良い
対処 app.configにて
<supportedRuntime version="v4.0"/>
説明
・startup属性にuseLegacyV2RuntimeActivationPolicyを付加しtrue(省略時falseになる)
・ライタイムバージョンがV4.0になっているか合わせて確認
・上記は<>を大文字にしているので注意!本当は半角なのでコピペ時に直す
---↑↑↑ ここからはPCへクリレポを入れたがVS2010でエラーが出る場合の対処に使える ↑↑↑---
⑥ コンパイルで下記ワーニングが出ても無視
※わたしは問題がでないと対処しないので、調査されてもOKと思います
※ただ上記app.configにてver4指定したので構わないと思いますが・・?)
警告: 選択した 'SAP Crystal Reports Runtime Engine for .NET Framework 4.0' 項目には 'Microsoft.Net.Framework.2.0' が必要です。[必須コンポーネント] ダイアログ ボックスで足りない必須コンポーネントを選択するか、または足りない必須コンポーネントのブートストラップ パッケージを作成してください。
警告: 選択した 'SAP Crystal Reports Runtime Engine for .NET Framework 4.0' 項目には 'Microsoft.Data.Access.Components.2.8' が必要です。[必須コンポーネント] ダイアログ ボックスで足りない必須コンポーネントを選択するか、または足りない必須コンポーネントのブートストラップ パッケージを作成してください。
⑦ 特殊なケース
もしMSセットアッププロジェクトで下記ワーニングが出たら対処する(こちらは対処する)
※.net351→.net4.0にした為のワーニング
警告: プロジェクトの .NET Framework のターゲット バージョンが、.NET Framework 起動条件のバージョン '3.5.21022' と一致しません。.NET Framework 起動条件を更新して、[詳細コンパイル オプション] ダイアログ ボックス (VB の場合) または [アプリケーション] ページ (C#、F# の場合) の .NET Framework のターゲット バージョンと一致するようにしてください。
これでコンパイルが通りデバッグ実行でCrystal Reports が出力され、インストーラーを作成しインストールした場合もCrystal Reports が実行出力される。
ポイントは割と雑な製品Crystal ReportsがSAPに買い取られ更に雑なエラーメッセージを吐く。このエラーメッセージに騙され内容を読み取り対処しようとすると嵌る可能性が大きい。
従って上記で行っても上手く行かない場合はエラーメッセージを信用せずどちらかと言うと無視し、当たり前に考えもう一度手順を踏んでみたり自分なりに手順を考えてみると良いです。
(後日追加分・・・)
めでたくVS2010になったソリューションを開くと当然VS2010が起動するが、その中にあるクリレポを開くと*印がつく場合があります(*がついた方が良い)。そしてコンパイルをすると、下記メッセージが出現しますので、はい、を押す。
問題が1つ
レポートを開いて*印がついた時にコンパイルすると上記メッセージが出現し「はい」を押すことで結果的にレポートが新しくなるようですが、レポートを開いてもこの*印がつかない場合がかなりあります。
上の画像はプロジェクトで使っているレポートの一覧ですが、□で囲んでいない部分があります。
これは何度レポートを開いても*がつかず、そのためコンパイルしても「レポートがアップグレードしますか」ダイアログが出現しません。と言う事はいつまでたってもレポートが旧構造のままです。
何か開くタイミングで*がついたりつかなかったり。何度開いても*がつかない場合は無理やりレポートを編集してアップグレードさせます。
こんな具合に適当な物を挿入したり、設置してあるオブジェクトをずらしたりして、すると*(変更有マーク)が出現しますよね。*がついた状態でコンパイルすると、「レポートがアップグレードされました」ダイアログが出現するので、アップグレードされます。
・・・そもそもレポートのアップグレードなんてやっているのかどうか、そんなことはクリレポの内部的な事なので分かりませんが、一応全て「アップグレードしますか?」メッセージを出現させクリレポをアップグレードさせた方が良さそうです。後で不具合でるのも嫌なので・・・
この作業が結構面倒でした。チェックしながら全てアップグレードさせないとならないので。最初は全レポートの1/3ほどしか*が出現しませんでしたし・・・
以上
登録:
投稿 (Atom)












