none
レンタルサーバ上での帳票出力 RRS feed

  • 質問

  • レンタルサーバ上での帳票出力を行いたいのですが、

    具体的な手法が分からずアドバイス・ご伝授頂ければ幸いです。

    Crystal Reportsを使用した方が良いのか、クライアント側のExcelと連動した方が良いのか・・・

    レンタルサーバですので、サーバ側には別途ソフトをインストールする事は出来ません。

    クライアント側にはExcelがインストールされています。

    一般的に(とうか簡単に)帳票出力するには、どうしたら宜しいでしょうか?

    開発環境は、VisualStudio2010です。

    2011年2月7日 15:04

回答

  • Excelですといくつか問題があります。まず、サーバーでオートメーション機能を利用してExcelデータを作成する場合、サーバーにExcelがインストールされていなければなりません。また、ASP.NETでこのようなことを行うのは推薦されていません。

    Office のサーバーサイド オートメーションについて
    http://support.microsoft.com/kb/257757/ja

    ライセンスの問題もあります。確か各クライアントにExcelがインストールされている必要があったと思いますので、調べてみてください。

    オートメーションを使わずにExcel形式で出力することもできるようですが、帳票によっては複雑になりそうです。

    オートメーション機能を利用しないExcel形式でのWeb帳票印刷
    http://codezine.jp/article/detail/194

    以上のこともあり、簡単ということであればCrystal Reportsだと思います。改ページや小計、中計などの合計も楽に行えますし、レイアウトも自由度が高く、画面で帳票が設計できます。
    私は過去にASP.NETでCrystal Reportsを扱った経験がありますが、残念ながらVS2010版ではありません。現在、WPFでVS2010版のCrystal Reportsを使って開発を行っていますが、これまでと同じように行えていますので、たぶん、ASP.NETでも同様に行えるのでないかと想像します。あくまで想像ですが・・・
    ただ、実際に動作するまでにいくつか壁を越えなければならないかもしれません。WPFでVS2010版のCrystal Reportsを動かすまでがそうでした。しかし、動いてしまえば開発は比較的楽に行えています。

    (参考)
    Crystal Reports for Visual Studio 2010が動くまでの3つの壁
    http://d.hatena.ne.jp/trapemiya/20101219/1292734619

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月7日 16:31
    モデレータ
  • Web アプリケーションということであれば、ReportViewer コントロールもありなんではないでしょうか。

     ReportViewer コントロール (Visual Studio)
     http://msdn.microsoft.com/ja-jp/library/ms251671.aspx

    元は SQL Server Reporting Services の一部だったものですが、ローカル処理モードであれば SQL Server は必要ありません。
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月8日 1:00
  • ReportViewerでCrystal ReportsのようGUIで罫線を引いたりできますでしょうか?

    使い方が分からず、四苦八苦しております。

    レポート定義ファイル (.rdlc) をデザイン モードで開くと罫線を引けるはずです。
    次の URL は Visual Studio 2008 のものですが、Visual Studio 2010 でも同じようにできたと思います。

      レポートへの四角形、線、および罫線の追加 (Visual Studio レポート デザイナ)
      http://msdn.microsoft.com/ja-jp/library/ms251697(VS.90).aspx

    確かに ReportViewer は情報が少ないのが難点ではあります。
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月8日 17:22
  • Default.aspxをローカル(F5)で起動すると、下記のエラーとなってしまいます。

    >レポート ビューアー Web コントロールでは、Web フォーム上に System.Web.UI.ScriptManager が必要です。


    次の記事の「メモ」の中にあるように、Web フォーム上で ReportViewer コントロールを使用するには、ScriptManager が必要です。

     ReportViewer コントロールの追加と設定
     http://msdn.microsoft.com/ja-jp/library/ms252104.aspx

    Web フォーム上に ScriptManager コントロールを貼り付けてください。
    Visual Studio のツールボックスの AJAX Extensions の中にあります。

    Visual Studio 2010 で ReportViewer を使って順を追ってサンプルを作っている記事を見つけました。
    英語ですが、操作イメージが豊富にあるので非常にわかりやすいと思います。

     Creating an ASP.NET report using Visual Studio 2010 - Part 1 - Raj Kaimal
     http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-an-asp-net-report-using-visual-studio-2010-part-1.aspx

     Creating an ASP.NET report using Visual Studio 2010 - Part 2 - Raj Kaimal
     http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-a-asp-net-report-using-visual-studio-2010-part-2.aspx

     Creating an ASP.NET report using Visual Studio 2010 - Part 3 - Raj Kaimal
     http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-a-asp-net-interactive-report-using-visual-studio-2010-part-3.aspx
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月10日 1:21
  • まずは web.config を見直すのでしょうが、ローカル環境で印刷できたものと同じであるなら、web.config を置いた位置が問題かもしれません。仮想ディレクトリのルートに置かないといけないと思います。
    また、再頒布可能パッケージのインストールは必要なのではないでしょうか。
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月11日 7:16

すべての返信

  • Excelですといくつか問題があります。まず、サーバーでオートメーション機能を利用してExcelデータを作成する場合、サーバーにExcelがインストールされていなければなりません。また、ASP.NETでこのようなことを行うのは推薦されていません。

    Office のサーバーサイド オートメーションについて
    http://support.microsoft.com/kb/257757/ja

    ライセンスの問題もあります。確か各クライアントにExcelがインストールされている必要があったと思いますので、調べてみてください。

    オートメーションを使わずにExcel形式で出力することもできるようですが、帳票によっては複雑になりそうです。

    オートメーション機能を利用しないExcel形式でのWeb帳票印刷
    http://codezine.jp/article/detail/194

    以上のこともあり、簡単ということであればCrystal Reportsだと思います。改ページや小計、中計などの合計も楽に行えますし、レイアウトも自由度が高く、画面で帳票が設計できます。
    私は過去にASP.NETでCrystal Reportsを扱った経験がありますが、残念ながらVS2010版ではありません。現在、WPFでVS2010版のCrystal Reportsを使って開発を行っていますが、これまでと同じように行えていますので、たぶん、ASP.NETでも同様に行えるのでないかと想像します。あくまで想像ですが・・・
    ただ、実際に動作するまでにいくつか壁を越えなければならないかもしれません。WPFでVS2010版のCrystal Reportsを動かすまでがそうでした。しかし、動いてしまえば開発は比較的楽に行えています。

    (参考)
    Crystal Reports for Visual Studio 2010が動くまでの3つの壁
    http://d.hatena.ne.jp/trapemiya/20101219/1292734619

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月7日 16:31
    モデレータ
  • Web アプリケーションということであれば、ReportViewer コントロールもありなんではないでしょうか。

     ReportViewer コントロール (Visual Studio)
     http://msdn.microsoft.com/ja-jp/library/ms251671.aspx

    元は SQL Server Reporting Services の一部だったものですが、ローカル処理モードであれば SQL Server は必要ありません。
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月8日 1:00
  • アドバイス有難うございます。

    早速、Crystal Reportsをインストールしてみました。

    ローカル環境で試したところ、希望通りの帳票が出力されましたが

    サーバ上では動作しませんでした・・・

    >パーサー エラー メッセージ: ファイルまたはアセンブリ 'CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'、また>はその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

    Crystal Reports用の何かしらをデプロイに含める?か何かしないとサーバ上では動作しないのでしょうか?

    見当違いなご質問でしたら申し訳ございません。

    アドバイス頂ければ幸いです。

     


    2011年2月8日 13:06
  • アドバイス有難うございます。

    ReportViewerでCrystal ReportsのようGUIで罫線を引いたりできますでしょうか?

    使い方が分からず、四苦八苦しております。

    アドバイス頂ければ幸いです。

     

    2011年2月8日 13:13
  • >パーサー エラー メッセージ: ファイルまたはアセンブリ 'CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'、また>はその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

    教えて頂きました、「3つの壁」で解決策がありました。

    これから試してみたいと思います。

    ありがとうございます!

     

    2011年2月8日 13:22
  • ReportViewerでCrystal ReportsのようGUIで罫線を引いたりできますでしょうか?

    使い方が分からず、四苦八苦しております。

    レポート定義ファイル (.rdlc) をデザイン モードで開くと罫線を引けるはずです。
    次の URL は Visual Studio 2008 のものですが、Visual Studio 2010 でも同じようにできたと思います。

      レポートへの四角形、線、および罫線の追加 (Visual Studio レポート デザイナ)
      http://msdn.microsoft.com/ja-jp/library/ms251697(VS.90).aspx

    確かに ReportViewer は情報が少ないのが難点ではあります。
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月8日 17:22
  • アドバイスありがとうございます。

    重ねてのご質問で大変恐縮で御座います。

    Report.rdlcを作成して、罫線を引いてみました。

    Default.aspxに、ReportViewerのコントロールを置いて、レポート選択で、Report.rdlcを指定しました。

    Default.aspxをローカル(F5)で起動すると、下記のエラーとなってしまいます。

    >レポート ビューアー Web コントロールでは、Web フォーム上に System.Web.UI.ScriptManager が必要です。

    解決方法が分からず状態でございます。

    アドバイス頂ければ幸いです。

     

    2011年2月9日 14:51
  • Default.aspxをローカル(F5)で起動すると、下記のエラーとなってしまいます。

    >レポート ビューアー Web コントロールでは、Web フォーム上に System.Web.UI.ScriptManager が必要です。


    次の記事の「メモ」の中にあるように、Web フォーム上で ReportViewer コントロールを使用するには、ScriptManager が必要です。

     ReportViewer コントロールの追加と設定
     http://msdn.microsoft.com/ja-jp/library/ms252104.aspx

    Web フォーム上に ScriptManager コントロールを貼り付けてください。
    Visual Studio のツールボックスの AJAX Extensions の中にあります。

    Visual Studio 2010 で ReportViewer を使って順を追ってサンプルを作っている記事を見つけました。
    英語ですが、操作イメージが豊富にあるので非常にわかりやすいと思います。

     Creating an ASP.NET report using Visual Studio 2010 - Part 1 - Raj Kaimal
     http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-an-asp-net-report-using-visual-studio-2010-part-1.aspx

     Creating an ASP.NET report using Visual Studio 2010 - Part 2 - Raj Kaimal
     http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-a-asp-net-report-using-visual-studio-2010-part-2.aspx

     Creating an ASP.NET report using Visual Studio 2010 - Part 3 - Raj Kaimal
     http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-a-asp-net-interactive-report-using-visual-studio-2010-part-3.aspx
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月10日 1:21
  • アドバイス有難うございます。

    >次の記事の「メモ」の中にあるように、Web フォーム上で ReportViewer コントロールを使用するには、ScriptManager が必要です

    上記により、ローカル環境で出力することができました。

    ただ、レンタルサーバ上ですと、下記のようなエラーになってしまいます。

     

     

    説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。

    パーサー エラー メッセージ: 要素 'buildProviders' はアプリケーション レベル以下では定義できません。

    ソース エラー:

    行 8:  </httpHandlers>
    行 9:  <compilation debug="true" targetFramework="4.0">
    行 10:  <buildProviders>
    行 11:   <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    行 12:  </buildProviders>

     

     


    解決策をいろいろと調べているんですが見当たらずじまいです。

    なお、ご質問内容とは関係ないかもしれませんが、レンタルサーバには、Microsoft Report Viewer 2010 再頒布可能パッケージがインストールされていました。

    度々で申し訳ございません。

    ご存知であれば、アドバイスを頂ければ幸いです

    2011年2月11日 1:33
  • まずは web.config を見直すのでしょうが、ローカル環境で印刷できたものと同じであるなら、web.config を置いた位置が問題かもしれません。仮想ディレクトリのルートに置かないといけないと思います。
    また、再頒布可能パッケージのインストールは必要なのではないでしょうか。
    • 回答としてマーク 山本春海 2011年2月23日 8:10
    2011年2月11日 7:16
  • アドバイスありがとうございます。

    ご指摘通り、仮想ディレクトリ上で正常動作しました。

    この度は有難うございました。

     

    2011年2月11日 16:32