ActiveReports 9実戦チュートリアル(2):データソースの準備(設計時、実行時)


前述の「ActiveReports 9実戦チュートリアル(1):ハンドル構築環境Visual Studio 2013コミュニティ版」では、Visual Studio 2013と組み合わせてActiveReports 9の開発環境を構築し、Hello WorldのRDLレポートを完成しました.本稿では、データ・ソースを構成してレポートの実戦を行い、レポート開発を行ったレポートの達人は、レポートのデータ・ソースが設計時のデータ・ソースと実行時のデータ・ソースに分かれていることを知っています.どのように理解しますか?
この2種類のデータソースは、テーブル構造が同じで、用途が異なります.
1設計時のデータソースは、研究開発内部、レポートグループの構成、テストレポート用に使用される.
2リンク・データベースの文字列を変更するなど、システムが切断された後にローカル・フィールドでレポート・システムを実行するためのランタイム・データ・ソース.
上の2つの点から、設計時のデータソースの実行は比較的広い:レポートの構成、テスト、レポートの実行.一方、ランタイム・データベースがデータベース・リンク文字列を切り替えると、データ・ソースのユーザー・サイトへの導入がシームレスに実現され、比較的容易になります.
次はNWind_CHS.mdbデータソースの実戦(AR 9インストール後、持参したデータソースC:UsersrogerwangDocumentsComponentOne SamplesActiveReports 9DataNWIND.mdb).

設計時データソース


「ビュー-その他のウィンドウ--レポートエクスプローラV 9」を使用して、前述のRdlReport 1に基づいています.rdlxファイル、rdlxファイルをダブルクリックします.
右クリックしてデータソースを追加
新しく作成したデータソースData Source 1で、データセットを右クリックして追加します.
 
ポップアップの追加データセットでは、2つの方法でデータを追加します.
方法1:SQLを直接書く.この方式はプログラマー、SQLの比較的強い人に適しており、効率が高い.
方法2:AR 9によって新しく提供されたVQDによって行う(可視化クエリーデザイナ).この方法は、プロダクトマネージャ、需要アナリストなど、技術に詳しくない人に適しており、柔軟です.
ここで重点的に方法2:VQDについて述べる.
Visualization Query Designer(VQD)には、次の重要な機能があります.
  • フィルタデータ
  • カスタム式
  • を使用
  • データベース選択フィールド
  • から
  • パケットおよび合計関数
  • 内部接続、左外部接続、右外部接続を使用する
  • .
  • 選択したフィールドとデータテーブルの別名を設定する
  • データの並べ替えとその他の特性
  •     生成されたSQL文: select Products.*, Categories.* from Products inner join Categories on Products.CategoryID = Categories.CategoryID     Description、ProductIDをレポートにそれぞれドラッグすると、結果がプレビューされます。   これで、実行時のデータソースの追加が完了し、ARが提供するデータソースの構成機能は、非常に柔軟で便利であり、レポート開発の効率を効果的に向上させることができる。

    ランタイムデータソース


    設計時に構成されたデータ・ソースは、ユーザーの現場に移行する場合は、ユーザーのデータ・ソース環境に適したデータ・ソースを動的に変更する必要があります.
    コードによるデータ・ソースの切り替えが可能(備考:データベース・テーブル構造はそっくり)
    private void  ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SectionReport_DataSource_RunTime sReport1 = new SectionReport_DataSource_RunTime();
            sReport1.DataSource = GetDataSource();
            sReport1.Run();
            viewer1.Document = sReport1.Document;
        }    private DataTable GetDataSource()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(" ");
            dt.Columns.Add(" ");
            dt.Columns.Add(" ");
            dt.Columns.Add(" ");
            dt.Rows.Add("A10002", " ", 20, 50);
            dt.Rows.Add("A15681", " ", 20, 50);
            dt.Rows.Add("A15681", " ", 20, 50);            
            return dt;
        }

    実行時のデータソースの設定
     
    private void  ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            GrapeCity.ActiveReports.PageReport pReport1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport_DataSource_RunTime.rdlx"));
            viewer1.LoadDocument(pReport1.Document);            
        }    private void Form1_Load(object sender, EventArgs e)
        {
            viewer1.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(viewer1_LocateDataSource);
        }    void viewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {        if (args.DataSourceName == "DataSource1")
            {            if (args.DataSetName == "DataSet1")
                {
                    args.Data = GetDataSource();
                }
            }
        }    private DataTable GetDataSource()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(" ");
            dt.Columns.Add(" ");
            dt.Columns.Add(" ");
            dt.Columns.Add(" ");
            dt.Rows.Add("A10002", " ", 20, 50);
            dt.Rows.Add("A15681", " ", 20, 50);
            dt.Rows.Add("A15681", " ", 20, 50);        return dt;
        }

    実行時にLocateDataSourceイベントを使用してデータソースをロードします.
    最後に、ActiveReportは、OLEDB、SQL、XML、Oracle、Sybase、Informix、SQL Serverなど、さまざまなデータ・ソースと対話できます.
    参考の公式ブログ:
  • ActiveReportsレポートデータソース:設計時データソース
  • ActiveReportsレポートデータソース:ランタイムデータソース
  • 【ActiveReports】REST Webサービスデータ
  • を使用
  • AR 7バインドデータソース方式
  • OracleデータベースをActiveReport
  • にバインドする