FlexReport for UWP
手順 2:レポートのロードとレンダリング
クイックスタート > 手順 2:レポートのロードとレンダリング

  1. Visual Studio で新しい UWP プロジェクトを作成し、[空のアプリケーション(ユニバーサル Windows)]を選択します。
  2. C1FlexViewer コントロールをメインページに追加します。
  3. C1.UWP.FlexReport への参照を追加します。
  4. FlexReport.SQLite プロジェクトをダウンロードし、ソリューションに追加します。
    UWP Edition がシステムにインストールされている場合は、Documents\ComponentOne Samples\UWP\C1.UWP.FlexReport\CS フォルダにも FlexReport.SQLite プロジェクトがあります。
  5. プロジェクトを追加したら、プロジェクトをリビルドします。
  6. ソリューションエクスプローラーで既存のプロジェクトを右クリックし、[追加]→[参照]を選択します。[参照マネージャー]が開きます。
  7. 左ペインから[プロジェクト]→[ソリューション]を選択し、FlexReport.SQLite を選択し、[OK]をクリックします。これで、FlexReport.SQLite.dll がプロジェクトの[参照]フォルダに追加されます。
    メモ: FlexReport で SQLite を使用できるようにするために、FlexReport.SQLite プロジェクトを参照としてアプリのプロジェクトに追加する必要があります。FlexReport.SQLite は、FlexReport アセンブリが SQLite をハード参照しなくても済むように、ラッパーとして機能します。
  8. 手順 1/2:レポート定義の作成」でデザイナを使用して作成されたレポート定義ファイルをプロジェクトの[アセット]フォルダに追加し、その[ビルドアクション]プロパティを Content に設定します。
  9. C1NWind.mdb データベースを[アセット]フォルダに追加し、その[ビルドアクション]プロパティを Content に設定します。
  10. コードビューに以下の Page_Loaded イベントを追加して、FlexViewer コントロールでレポートをロードしてレンダリングします。
    Private Sub Page_Loaded(sender As Object, e As RoutedEventArgs)
            ' SQLite データベースファイルをアプリの Assets から LocalFolder にコピーします。.FLXR レポート定義では、
            ' これを ?(SpecialFolder.SystemDefault) として参照できます。
            ' Data Source=?(SpecialFolder.SystemDefault)\C1NWind.db
            ' レポートの設計時は、?(SpecialFolder.SystemDefault) は Environment.SpecialFolder.MyDocuments を指します。したがって、
            ' レポートデータベースファイルを MyDocuments フォルダに置くと、レポートの設計とテスト実行に便利です。
            Dim dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "C1NWind.db")
            If Not File.Exists(dbPath) Then
                    File.Copy("Assets\C1NWind.db", dbPath)
            End If
    
            ' レポートを作成してロードします。
            Dim report As New C1FlexReport()
            Using fs As Stream = File.OpenRead("Assets/ProductsUWP.flxr")
                    report.Load(fs, "ProductList")
            End Using
    
            ' レポートをビューアの DocumentSource に割り当てます。レポートは、ビューアに表示されるときに
            ' 自動的に生成されます(デフォルトでは非同期)。
            Me.flexViewer.DocumentSource = report
    End Sub
    
    private async void Page_Loaded(object sender, RoutedEventArgs e)
    { 
        // SQLite データベースファイルをアプリの Assets から LocalFolder にコピーします。.FLXR レポート定義では、
        var dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "C1NWind.db");
        if (!File.Exists(dbPath))
            File.Copy(@"Assets\C1NWind.db", dbPath);
    
        // レポートを作成してロードします。
        C1FlexReport report = new C1FlexReport();
        using (Stream fs = File.OpenRead("Assets/ProductsUWP.flxr"))
            report.Load(fs, "ProductList");
    
        // レポートをビューアの DocumentSource に割り当てます。レポートは、ビューアに表示されるときに
       // 自動的に生成されます(デフォルトでは非同期)。
        this.flexViewer.DocumentSource = report;
    }