- PR -

ノータッチデプロイメントでCrystalReportViewerを使う

1
投稿者投稿内容
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-10-14 16:53
ノータッチデプロイメントでOracle接続のエラーが出てたのをWebサービス化することで乗り切りました。
今度はCrystalReportViewerも乗り切りたいと思っています。

通常のWebアプリのCrystalReportViewerでは、ReportSourceプロパティでRPTファイルをパス指定します。
そうすると各クライアントの環境に依存することになってしまいます。
パスをクライアント毎に設定するなどでクリアしても、.NET Frameworkのコードアクセス設定が必要になります。

そこでまたWebサービスを考えました。
CrystalReportViewerはWebサービスとして実装し、Webアプリはデータだけをもらう。

microsoftのサイトに参考になりそうなページがあったのですが、肝心なWebサービスの作成方法が見当たりません。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/crystlmn/html/crsamreportwebservicebindingoptionsforwindowsformsviewers.asp

何か情報があれば教えてください。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-14 23:32
 2年前問い合わせて、『できません』の回答を受けています。。。完全にWebアプリにするか、ローカルから実行するか、完全信頼を与えるか、という方法があります。
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-10-15 08:53
情報ありがとうございます。
引用:

 2年前問い合わせて、『できません』の回答を受けています。。。完全にWebアプリにするか、ローカルから実行するか、完全信頼を与えるか、という方法があります。


3択ですか・・・。

現行の仕様だと難しそうなので、変更する必要がありそうです。
現行の仕様はこうです。

(1).Windowsアプリで伝票入力を行う。
(2).更新した内容で伝票を出力する。(プレビューはなし)

ちなみに、すべてイントラネット上での話しであれば、変わってきますか?
各クライアントで.NET Frameworkの設定をいじる必要がなければ問題はないのです。
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-10-15 10:42
引用:

(1).Windowsアプリで伝票入力を行う。
(2).更新した内容で伝票を出力する。(プレビューはなし)


上記の仕様だと、入力はWindowsアプリ、帳票はWebアプリとなりそうです。
WindowsアプリからWebアプリをキックすることになりそうなので、ノータッチデプロイメントでは難しそうな・・・。

みなさんの見解を聞かせてください。

不可能であれば、入力と帳票を別アクションで実行することになるので、ユーザー確認が必要になってきますね。
Mercury21
会議室デビュー日: 2004/09/18
投稿数: 6
投稿日時: 2005-10-20 20:40
もし、印刷プレビューを画面上に表示したいのであれば、PrintPreviewControl自体はノータッチ・デプロイメントの制約を受けませんので、クライアントアプリ上に表示部分だけを作成し、それをWebサービス経由で印刷させる、という方法も無いわけではありませんが・・・
このPrintPreviewControlを貼り付けた画面に、プレビューを表示する方法として、

1.Webサービス側でPDFフォーマットでレポートをエクスポートする
2.それをバイナリ(バイト配列)でクライアント側で受け取る
3.PrintDocumentで印刷イメージを作成する(iText.NETなどのライブラリを参照)
4.作成したPrintDocumentをPrintPreviewControlに読み込んで画面表示を行う

もし、純粋にコードのみで印刷を行いたい場合、このPrintDocumentオブジェクトを生成するコードをライブラリ化して、Webサービス側ではプリンターへと出力、クライアント側にはサテライト・アセンブリとしてダウンロードできるようにして、PrintPreviewControlに描画可能なようにすることも可能です

とはいえ、この方法は膨大なコード量になりますので決して楽な方法ではありませんが・・・
1

スキルアップ/キャリアアップ(JOB@IT)