レポートビュー


a.Report Viewer関連Report 1.rdlcの簡単な表現
b.レポートパラメータを有するReport 1.rdlcの提示
c.プログラムで作成したDataSetを使ってレポートを塗りつぶします.
d.保存プロセスを呼び出してDataSetパディングレポートを生成する
=============
簡単な表現
=============
1.VSL 2005を開いて、ファイル->新規作成->ウェブサイトで言語種類を選択する(C〓)
2.この解決策の下ですでに生成されたDefault.aspxを設計する.
3.ツールボックス-データ下のReport ViewerをDefault.aspxの設計画面に引き込む
4.マウスでReport Viewer 1を選択すると、その右上に小さな三角アイコンが表示されます.
5.マウスでこの小さい三角をクリックするとレポートビューのタスクショートカットメニューが展開されます.
6.本プロジェクトはまだ完成していないので、新しいレポートを設計することを選択します.
7.新しいレポートのデザインをクリックしたらレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポートレポート
8.本プロジェクトのため、現在はまだホームページのデータソースが作成されていません.
   新しいデータソースを追加します.
  (「ウェブサイトデータソース」画面が表示されていない場合は、レポート設計画面をクリックしてもいいです.
   この時上のメニューには「データ」「レポート」などのオプションがあります.
   「データ」メニューから「データソースの表示」を選択できます.
9.「新しいデータソースを追加する」をクリックすると、「Table Adapter設定ウィザード」が表示されます.
10.データ接続(本機のNorthwindデータベースに接続するなど)を選択し、次のステップ
11.接続文字列をアプリケーションプロファイルに保存するかどうかを選択し、次のステップ
12.コマンドタイプを選択し、キャンセルボタンをクリックして、ウィザードを終了します.
13.すべて保存
14.ビューメニューの下で「サーバリソースマネージャ」を選択し、
    先ほど作成したデータ接続が見えます.
    Northwindデータベースの下のテーブル、ビュー、格納プロセス、関数が見られます.
15.ソリューションの木の下でAppを見つけて開くCodeフォルダ下のDataSet 1.xsdデータセット
16.開いているデータセットのデザイナーが空であることが見えます.「サーバリソースマネージャ」は空です.
    下のNorthwindの表や格納過程などをデータセットのデザイナーに引き込みます.
    (このような場合は、OrdersテーブルとSales by Yearという格納プロセスに引き込まれます)
17.すべて保存
18.レポート設計画面を開くために、Report 1.rdlcをダブルクリックします.
    この時のレポートをツールボックスのレポート項目の  表をレポートの設計画面に引き込む
19.「データ」メニューの「データソースの表示」を選択し、
    DataSet 1の下にある2つのテーブルOrdersとSales by Yearをウェブサイトのデータソースで見ることができます.
20.Ordersの任意のフィールド(OrderIDとCusstomerIDなど)を選択します.
    レポートの表示には、Report 1.rdlc設計インターフェースのテーブルの「詳細資料」に引っぱります.
21.すべて保存
22.Default.aspxの設計インターフェースに戻り、Report Viewer 1バインディングレポート
    Report Viewer 1を選択して、先ほどデザインしたReport 1.rdlcを表示します.
23.全部保存して、F 5またはCtrl+F 5で運行して、初歩的な効果を確認します.
=========================================================================================
次にレポートのパラメータを追加します.
=========================================================================================
24.レポートReport 1.rdlcに戻る設計インターフェース
    レポートメニューの「レポートパラメータ」をクリックします.
25.レポートパラメータ設定ボックスにレポートパラメータを追加して関連設定し、保存する
   (例えばパラメータ名はrptParaAで、タイプはStering)
26.テキストボックスのレポート項目をレポートのタイトルとして表示するためにReport 1.rdlcのデザインインターフェースに引き込む
27.選択して右クリックしてテキストボックスをクリックし、ポップアップメニューから「表式」を選択します.
    「表式の編集」ダイアログを入力します.
28.「表式の編集」ダイアログで、パラメータを選択します.
    そして、先ほど設定したrptParaaをダブルクリックして、テキストボックスの値=Parametersを設定します.rptPaPA.Value
29.Report 1.rdlcに対する修正を保存する
30.新しいレポートレポートのテキストボックスは、レポートパラメータ値の着信が必要です.
    だから、Report Viewer 1対Report 1.rdlcの出現時に
    Default.aspx.csの編集
31.Default.aspx.csに引用を加える
    using Microsoft.Reportting.WebForms;   
    Page_にありますロードに下記のコードを追加します.
        Report Parameter rptParaa=new Report Parameter(「rptParaa」、「テストレポートパラメータ」)
        Report Viewer 1.Local Report.Set Parameters(new Report Parameeter[]{rptParaa};
32.効果を確認するために保存して実行します.
============================================================================================
次に、提示するレポートの資料をカスタマイズする必要があります.
つまりDataSetを設計することによって
必要に応じたデータでレポートを結合し、提示する.
============================================================================================
33.Report Viewer 1を設定するVisibleはfalseである.
34.Default.aspxのデザインインターフェースにボタンを入れるButton 1
   このボタンのClickイベントを通じてデータベースへのアクセスとDataSetのデータ充填を行います.
   Report Viewer 1に対する資料と紐付けする.
35.Default.aspx.csは引用に加入する.
    using System.Data.Sql Cient;
    using Microsoft.Reportting.WebForms;
    Button 1_Clickのコード例は以下の通りです.
       
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
        SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders", myConn);
        DataSet myds = new DataSet();
        myConn.Open();
        myda.Fill(myds);
        myConn.Close();

        ReportViewer1.Visible = true;

        ReportParameter rptParaA = new ReportParameter("rptParaA", "      ");
        ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });
  
        ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);
        ReportViewer1.LocalReport.DataSources.Clear();
        ReportViewer1.LocalReport.DataSources.Add(rds);
        ReportViewer1.LocalReport.Refresh();
   注意Report Data Source rds=new Report Data Source(「DataSet 1_Orders」、myds.Tables[0]);
       の「DataSet 1」はフロントとのプログラムです.
       
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="400px" Visible="False" Width="400px">
            <LocalReport ReportPath="Report1.rdlc">
                <DataSources>
                    <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_Orders" />
                </DataSources>
            </LocalReport>
        </rsweb:ReportViewer>
       の「DataSources」のName=「DataSet 1 WouOrders」は一致しています.
    DataSetの充填時のsql文などのカスタマイズによって必要なデータを得てレポートを表示することができます.
    なお、Report Viewer 1のこの時点の関連レポートはReport 1.rdlcであるため、DataSetのTables[0]の構成
    必ずReport 1.rdlcで提示されるフィールドが含まれていますので、ここのSql文はselect top 5*from ordersです.
36.実行を保存してButton 1をクリックして、レポートを表示する
==================================================================================================
レポートが表示されるデータが格納プロセスに由来する場合
DataSetをロードする時、データを記憶プロセスから供給すればいいです.
==================================================================================================
37.右クリック項目に新規項目を追加し、レポートを選択し、プロジェクトにReport 2.rdlcを追加し、
   そのプレゼンテーションのデータソースを設定します.ストレージプロセスSales by Yearです.
   同じくReport 2.rdlcの設計画面に「表」の項目を追加します.
   そしてウェブサイトのデータソースの下のDataSet 1の下のSales by Yearテーブルの中のフィールドを
   レポートの項目「表」を引いて詳細データに表示します.
38.Default.aspxのようにプロジェクトに新しいページDefault 2.aspxを追加します.
   Default 2.aspxにButtonとReport Viewer 1を追加します.
   また、Report Viewer 1が提示するレポートをReport 2.rdlcに設定します.
   Report Viewer 1を設定するVisibleはfalseです.
   ButtonをダブルクリックしてClickイベントの作成を行います.
   Default 2.aspxをプロジェクトの開始ページに設定します.
39.Default 2.aspx.csに引用を加える
   using System.Data.Sql Cient;
   using Microsoft.Reportting.WebForms;
40.Button 1_Clickのイベントコードの例は以下の通りです.
   
protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
        SqlDataAdapter myda = new SqlDataAdapter("Sales by Year", myConn);
        myda.SelectCommand.Parameters.AddWithValue("@Beginning_Date", "1997-10-10");
        myda.SelectCommand.Parameters.AddWithValue("@Ending_Date", "2000-10-10");
        myda.SelectCommand.CommandType = CommandType.StoredProcedure;
        DataSet myds = new DataSet();
        myConn.Open();
        myda.Fill(myds);
        myConn.Close();

        ReportViewer1.Visible = true;
        
        ReportDataSource rds = new ReportDataSource("DataSet1_Sales_by_Year", myds.Tables[0]);
        ReportViewer1.LocalReport.DataSources.Clear();
        ReportViewer1.LocalReport.DataSources.Add(rds);

        ReportViewer1.LocalReport.Refresh();
    }
41.実行ボタンを保存してレポートの効果を確認する