C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: クリスタルレポートについて


(過去ログ 42 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■22419 / inTopicNo.1)  クリスタルレポートについて
  
□投稿者/ オガシン (23回)-(2008/07/23(Wed) 13:19:12)

分類:[.NET 全般] 

クリスタルレポートについて質問があります。

環境:VS2008 Pro
言語:VB.NET

アクティブレポートではソースコード上で各フィールドにデータをバインド(割り当て)
することができますが、クリスタルレポートに置き換えた場合はどのように行うのでしょうか?
またクリスタルレポートの使い方とかを紹介している場所がありましたら教えていただけませんでしょうか。

---調査内容として---

ActiveReportsではページヘッダーが出力されるとき、明細が出力されるときなどに
イベントがあり、メソッドを作成して明細が出力されるときにデータを2倍して出力
などの処理を記述できました。

今回クリスタルレポートで同じ帳票つくれたらライセンス買わなくていいよねって話に
なりました。同じ雰囲気でつくれるのかと思いきや、クリスタルレポートには上記の様な
イベントはないようです。

クリスタルレポートのソースコードをみるとReportClassクラスを継承しているようです。
Public Class TestReport
    Inherits ReportClass
ReportClassに実装されているイベントは
・Disposed
・InitReport
・RefreshReport
の3種類のみでした。

よろしくおねがいします。

引用返信 編集キー/
■22426 / inTopicNo.2)  Re[1]: クリスタルレポートについて
□投稿者/ さかもと (22回)-(2008/07/23(Wed) 13:47:42)
さかもと さんの Web サイト
さかもとと申します。


> アクティブレポートではソースコード上で各フィールドにデータをバインド(割り当て)
> することができますが、クリスタルレポートに置き換えた場合はどのように行うのでしょうか?

DataSetをバインドすることで似たようなことができると思います。
もちろん、DBへ直接接続しにいってバインドも可能ですので、このあたりは大差はないように思えます。

ARみたいにイベントが取り揃っているとは言えませんので、ハードコーディングして印字しないといけないケースでは若干苦労するかもしれません。「Crystal構文」という機能がついているのですが、あまり高度なことはデバッグも出来ないので(文法のエラーくらいは出ますが)面倒です。

細かい表現力といった意味では(コードを書けば)ARが勝っていると思いますが、簡単なレポートだったらプロパティで簡単に設定ができるCRに軍配が上がると、個人的には思っています。


引用返信 編集キー/
■22427 / inTopicNo.3)  Re[2]: クリスタルレポートについて
□投稿者/ オガシン (24回)-(2008/07/23(Wed) 14:04:23)
No22426 (さかもと さん) に返信
> さかもとと申します。

返信ありがとうございます。
DataSetを自作してバインドさせる方法はあると思っていますが※1、たとえば
画面からOleDbDataAdapterメソッドなどを使用して作成された動的なDataSetオブジェクト※2を
クリスタルレポートにバインドさせることは可能なのでしょうか?

※1 SQL実行→型を定義したDataSetに値をあてはめる→クリスタルレポートにDataSetを渡す
※2 SQL実行→生成されたDatasetオブジェクトをクリスタルレポートに渡す
分かりにくい説明ですみません(汗

帳票レイアウトはそんなにゴチャゴチャしてるものではなさそうなのでこの辺のバインドが
うまくできればクリスタルレポートで作れると思っています。

よろしくお願いします。


引用返信 編集キー/
■22428 / inTopicNo.4)  Re[3]: クリスタルレポートについて
□投稿者/ うつせみ(虚蝉) (25回)-(2008/07/23(Wed) 14:36:52)
うつせみ(虚蝉)と申します。
回答側に回ることが少ないのでハズしてたらスルーして下さい^^;

CrystalReportsにDataSetを渡せます。私は下記のようにやってます。
(※1にあたるのかな?)

viewCrystalReport rptObj = new viewCrystalReport();
rptObj.SetDataSource(DataSet1);
crystalReportViewer1.ReportSource = rptObj;
引用返信 編集キー/
■22432 / inTopicNo.5)  Re[4]: クリスタルレポートについて
□投稿者/ やじゅ (493回)-(2008/07/23(Wed) 14:55:26)
やじゅ さんの Web サイト
2008/07/23(Wed) 14:56:22 編集(投稿者)

>クリスタルレポートの使い方とかを紹介している場所がありましたら教えていただけませんでしょうか。

↓ここくらいだよね。
むかむか クリスタルレポート入門
http://www.hirano.cc/crystalreports/

オガシンさんのBlogを読んだかぎりでは、
アクティブレポートの開発ライセンス料
なんて微々たるくらいの規模ですよね。

アクティブレポートの方が好きなんで
こちらをお勧めするけど。

引用返信 編集キー/
■22443 / inTopicNo.6)  Re[5]: クリスタルレポートについて
□投稿者/ オガシン (25回)-(2008/07/23(Wed) 16:23:11)
>>うつせみ(虚蝉)さん
返信ありがとうございます。

>>viewCrystalReport rptObj = new viewCrystalReport();
>>rptObj.SetDataSource(DataSet1);
>>crystalReportViewer1.ReportSource = rptObj;

サンプルの提示ありがとうございます。
DetaSetを渡せることはわかりました。
上記の場合DataSet1はあらかじめVSのプロジェクト上で定義しておかないといけませんよね?

ActiveReportsならSQLを実行した結果のDetaSetを渡して
ReportStartイベントとかで動的にバインド設定ができるのでその辺が
便利かなぁと思いました。(もとになるソースもあるので)

新規の案件でインターフェースもこれから決めますって感じだったら
クリスタルレポートでも良いかなぁと思います。

#コスト削減、納期短縮の流れがありまして色々大変ですOrz


>>やじゅさん

ブログへのコメントも含め、返信ありがとうございます。
開発予算はかなり高額なようですが、
「全部使うつもりでやるんじゃなくて・・・」
と言うことで1/3はあらかじめカットされておりますOrz
相当大変なスケジュールになりそうです、がんばらねば(汗

なのでコストを減らすように色々調査してました。


#一応ActiveReportsでお願いしますと回答しました.

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -