Crystal 2008のサーバー側レポート?
-
05-07-2019 - |
質問
Crystal Reports 2008をWindows Formsアプリケーションに統合したいと考えています。クライアントアプリケーションからデータベースへの直接接続を避け、ユーザーに「完了」を提供したいと思います。経験を報告する。 Crystal Reports 2008は、Microsoft Reporting Servicesと同様に、サーバー上のレポートをクライアント側のWindowsフォームクライアントコントロールに実行できますか?
解決
それがあなたが望んでいるものであるかどうかはわかりませんが、2つの方法であなたがそれをかわすことができると思います:
- 「データベース」が実際のバックエンドの知識なしでXSDファイルになるようにレポートを設定できます。次に、実行時にデータをレポートにプッシュします。
//実行時に環境に適したインスタンスを作成します-例のみ:
ReportClass rc = new ReportClass();
rc.Load(crystalReportFileName);
rc.SetDataSource(myIEnumerableData);
CrystalReportViewer crv = new CrystalReportViewer();
crv.ReportSource = rc;
//クリスタルビューアを表示します。
2-サーバー上で(データベースのアプローチに関係なく)1と同じ操作を行い、レポートを保存してクライアントにプッシュすることができます。
//サーバー側のサービス/メソッドなど
public byte [] GetMyReport() {
ReportClass rc = new ReportClass();
rc.Load(crystalReportFileName);
rc.SetDataSource(myIEnumerableData);
rc.SaveAs(serverSideFile、True); //レポートでデータを保存するにはTrueが重要です
return .... //作成したファイルをバイト配列に変換します
}
//クライアント側
byte [] rep =サーバー。 GetMyReport()
ReportClass rc = ..... //担当者をクリスタルレポートに戻す
CrystalReportViewer crv = new CrystalReportViewer();
crv.ReportSource = rc;
他のヒント
これは実際にあなたが求めていることではありませんが、Crystal Reports Serverはサーバー側のレポートを行います。
マイナス面では、迷惑なほど高価です。
http://www.businessobjects.com/product/catalog/crystalreports_server/
上記にコメントを追加することはできませんが、ポイントがありませんが、これが役立つことを願っています。
Crystal Reports Serverは、データソースに対してレポート自体を実行します。これは、CrystalレポートまたはデータアクセスのないクライアントがWeb経由でレポートを実行できる、またはサーバーがスケジュールされたレポートを実行して結果を送信するという考えです。ただし、統合できるかどうかはわかりません。