ASP.NETにおけるクリスタルレポートの使い方の詳細

2748 ワード

この間、プロジェクトでレポートを使って統計をとるので、ASPを勉強しました.NETクリスタルレポートの使用.クリスタル・レポートの実行モード(つまり、データを取得する方法)は、次の2つに分けられます.
1つ目はPullモードです.要求された場合、水晶レポートは指定された駆動に従ってデータベースに直接接続し、これらのデータを組み立てます.
もう1つはPushモードです.この場合、開発者はコード接続データを自分で作成し、DataSetを組み立て、レポートに転送しなければなりません.この場合、接続共有を使用してレコードセットのサイズを制限することで、レポートのパフォーマンスを最大化できます.
クリスタル・レポートのレポート・タイプも2つに分けられます.
--StrongTypeレポート:レポートファイルをプロジェクトに追加すると、「strongly-typed」レポートになります.この場合、レポートを直接作成するオブジェクトの権限があり、コードが減少し、パフォーマンスが向上します.
--UnTypeレポート:ここのレポートは直接プロジェクトに含まれていないので、「un-typed」レポートと呼ばれます.この場合、クリスタルレポートの「ReportDocuemt」オブジェクトを使用してインスタンスを作成し、「手動」でレポートを破棄する必要があります.
Pullモードでは、次の手順でPullモードでクリスタルレポート1を実行します.まずrptファイルを作成し、クリスタルレポート設計インタフェースを使用して必要なデータ接続を設定します.  2.CrystalReportViewerコントロールをaspxページにドラッグ&ドロップし、そのプロパティを設定して、前のステップで作成したものを指定します.rptファイル.  3. コードでDataBindメソッドを呼び出します.
 
  
ReportDocument  ReportDoc  = new  ReportDocument();
ReportDoc.Load(Server.MapPath("MyPullDemo.rpt"));
#region
TableLogOnInfo  logonInfo  = new TableLogOnInfo();//
foreach( CrystalDecisions.CrystalReports.Engine.Table tb in ReportDoc.Database.Tables)
{
logonInfo = tb.LogOnInfo;
logonInfo.ConnectionInfo.ServerName = "(local)";
logonInfo.ConnectionInfo.DatabaseName = "myDatabase";//
logonInfo.ConnectionInfo.UserID = "sa";
logonInfo.ConnectionInfo.Password = "sa1234";//
tb.ApplyLogOnInfo(logonInfo);
}
#endregion
CrystalReportViewer1.ReportSource = ReportDoc;

CrystalReportViewer1.DataBind();


PUSHモードでは、次の手順でPushモードを使用してクリスタルレポートを実行します.DataSet 2を設計する.作成します.rptファイルは、前のステップで作成したDataSetに同時に指定されます.  3. 前のrptファイルと連絡を取りながら、aspxページでCrystalReportViewerコントロールをドラッグ&ドロップします.  4. コードにデータベースにアクセスし、データをDataSet 5に格納する.DataBindメソッドを呼び出します.
 
  
ReportDocument ReportDoc = new ReportDocument();
ReportDoc.Load(Server.MapPath("MyPushDemo.rpt"));
string strProvider = "Server=(local);DataBase=myDatabase;UID=sa;PWD=sa1234";
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from SaleOfCuntry";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);

--ここのdsと.rptファイル接続データベースで使用されるDataSet構造はまったく同じで、名前は異なる場合があります.
建立rptファイルの場合のDataSetの役割は、rptファイルにアーキテクチャを提供することです.
ここではdataadapterを使用して、レポートのデータソースとしてデータセットのインスタンスを入力します.
 
  
DataSet ds = new DataSet();
MyAdapter.Fill(ds,"SaleOfCuntry");
ReportDoc.SetDataSource(ds);
Crv.ReportSource = ReportDoc;

Crv.DataBind();