GrapeCity ActiveReports for .NET 14.0J
エンドユーザーレポートデザイナの作成(Professional)
ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > 共通のチュートリアル(ページレポート/RDLレポート/セクションレポート) > Professional > エンドユーザーレポートデザイナの作成(Professional)

このチュートリアルでは、ActiveReportsのProfessional エディションでWindowsフォームアプリケーションに基本的なエンドユーザーレポートデザイナを作成する方法を示します。

このチュートリアルでは、以下の作業を行います。

チュートリアルを完了すると、次のようなエンドユーザーレポートデザイナが作成されます。

フォームにデザイナコントロールの追加

レポートファイルの編集とプレビューのみできるデザイナを追加します。

  1. Visual Studioで新規Windowsフォームアプリケーションプロジェクトを開きます。
  2. 名前フィールドでファイル名をCustomEUDに変更します。
  3. フォームを選択して、プロパティウィンドウのNameプロパティを[frmMain]に変更し、Textプロパティを[ActiveReports]に変更します。
  4. 次の手順の表で示すコントロールが収まるように、フォームのサイズを変更します。詳細については、「ActiveReportsコントロールを追加する」を参照してください。
  5. Visual Studioのツールボックスからデザイナコントロールをフォーム上に配置して、名前を[designer]に変更します。
  6. Visual Studioのツールボックスからツールボックスコントロールをフォーム上に配置して、名前を[toolbox]に変更します。
  7. ToolBoxコントロールをデザイナコントロールに添付するには、ソリューションエクスプローラーで、Form1.csを右クリックし、[コードの表示]を選択します。
  8. InitializeComponentメソッドの後に次のコード(太字の部分)を追加します。
    C#コード(InitializeComponentメソッドの後に貼り付けます) 
    コードのコピー
    public frmMain()
    {
      InitializeComponent();
      designer.Toolbox = toolbox;
    }                        
    
  9. コードビューの上にusingディレクティブを追加します。
    C#コード(Form1コードビューの上に貼り付けます)
    コードのコピー
    using GrapeCity.ActiveReports.Design;
    

レポートファイルの読み込みおよび保存

  1. Visual Studioのメニューとツールバーのツールボックスグループからフォーム上にMenuStripコントロールを配置します。
  2. MenuStripコントロールの構造を次のように作成します。
    ファイル > 開く 、ファイル > 名前を付けて保存

  3. フォーム上で、[開く]メニュー項目をダブルクリックし、下記のコード(太字の部分)をopenToolStripMenuItem_Clickハンドラーに貼り付けます。
    C#コード(openToolStripMenuItem_Clickハンドラー内に貼り付けます。)
    コードのコピー
    private void openToolStripMenuItem_Click(object sender, EventArgs e)
             {
                 OpenFileDialog openFileDialog = new OpenFileDialog();
                 var dialogResult = openFileDialog.ShowDialog();
                 if (dialogResult == System.Windows.Forms.DialogResult.OK)
                 {
                     designer.LoadReport(new System.IO.FileInfo(openFileDialog.FileName));
                 }
             }                                       
    
  4. フォーム上で、[名前を付けて保存]メニュー項目をダブルクリックし、下記のコード(太字の部分)をsaveAsToolStripMenuItem_Clickハンドラーに貼り付けます。
    C#コード(saveAsToolStripMenuItem_Clickハンドラー内に貼り付けます。)
    コードのコピー
    private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
             {
                 SaveFileDialog saveFileDialog = new SaveFileDialog();
                 saveFileDialog.Filter = GetSaveFilter();
                 var dialogResult = saveFileDialog.ShowDialog();
                 if (dialogResult == System.Windows.Forms.DialogResult.OK)
                 {
                    designer.SaveReport(new System.IO.FileInfo(saveFileDialog.FileName));
                 }
             }
           
    
  5. saveAsToolStripMenuItem_Clickハンドラーのコードの後にGetSaveFilterメソッドのコードを下記のように追加します。
    C#コード(saveAsToolStripMenuItem_Click ハンドラーの後に貼り付けます)
    コードのコピー
    private string GetSaveFilter()
     {
         switch (designer.ReportType)
         {
            case DesignerReportType.Section:
               return "Section Report Files (*.rpx)|*.rpx";
            case DesignerReportType.Page:
               return "Page Report Files (*.rdlx)|*.rdlx";
            case DesignerReportType.Rdl:
               return "RDL Report Files (*.rdlx)|*.rdlx";
            default:
               return "RDL Report Files (*.rdlx)|*.rdlx";
         }
     }                                        
    

選択されたレポート種類に基づいて新規レポートの作成

  1. MenuStripコントロールの構造を次のように作成します。

    ファイル > 新規レポート> セクションレポート; ファイル >新規レポート > ページレポート; ファイル >新規レポート > RDLレポート

     

  2. [セクションレポート]の MenuStrip項目をダブルクリックし、下記のコード(太字の部分)をsectionToolStripMenuItem_Clickハンドラーに追加します。
    C#コード(sectionToolStripMenuItem_Clickハンドラー内に貼り付けます。)
    コードのコピー
    private void sectionToolStripMenuItem_Click(object sender, EventArgs e)
      {
       designer.NewReport(DesignerReportType.Section);
      }                                
    
  3. [ページレポート]のMenuStrip項目をダブルクリックし、下記のコード(太字の部分)をpageReportToolStripMenuItem_Clickハンドラーに追加します。
    C#コード(pageReportToolStripMenuItem_Clickハンドラー内に貼り付けます。)
    コードのコピー
    private void pageReportToolStripMenuItem_Click(object sender, EventArgs e)
      {
        designer.NewReport(DesignerReportType.Page);
      }                              
    
  4. [RDLレポート]のMenuStrip項目をダブルクリックし、下記のコード(太字の部分)をrdlReportToolStripMenuItem_Clickハンドラーに追加します。
    C#コード(rdlReportToolStripMenuItem_Clickハンドラー内に貼り付けます。)
    コードのコピー
    private void rdlReportToolStripMenuItem_Click(object sender, EventArgs e)
      {
       designer.NewReport(DesignerReportType.Rdl);
      }                                
    

エクスポートオプションの追加

  1. [プロジェクトメニュー]から、参照の追加を選択します。
  2. 表示されている参照マネージャーダイアログで、下記の参照を選択して、Okをクリックして、プロジェクトに追加します。
    GrapeCity.ActiveReports.Export.Pdf.v14
  3. コード上にusingディレクティブを追加します。
    C#コード(Form1コードビューの上に貼り付けます)
    コードのコピー
    using GrapeCity.ActiveReports.Export.Pdf.Page;
    using GrapeCity.ActiveReports.Rendering.IO;
    using GrapeCity.ActiveReports;
    using System.IO;                       
    
  4. MenuStripコントロールで、[ファイル]メニュー項目に[エクスポート]メニュー項目を追加します。

  5. [プロパティ]ウィンドウで、Enabledプロパティを[False]に設定します。これにより、[エクスポート]メニュー項目がプレビューモードでのみ表示されます。
  6. ページレポートおよびRDLレポートに対してのみ[エクスポート]メニュー項目を表示するには、InitializeComponentメソッドの後に次のコード(太字の部分)を追加します。       
    C#コード(InitializeComponentメソッドの後に貼り付けます)
    コードのコピー
    public frmMain()
    {
    InitializeComponent();
    designer.Toolbox = toolbox;
    designer.ActiveTabChanged += designer_ActiveTabChanged;
    }
    void designer_ActiveTabChanged(object sender, EventArgs e)
    {
    exportToolStripMenuItem.Enabled = designer.ActiveTab == DesignerTab.Preview && designer.ReportType != DesignerReportType.Section;
    }

  7. フォーム上で、[エクスポート]項目をダブルクリックし、下記のコード(太字の部分)をexportToolStripMenuItem_Clickハンドラーに追加します。
    C#コード(exportToolStripMenuItem_Clickハンドラー内に貼り付けます。)
    コードのコピー
    private void exportToolStripMenuItem_Click(object sender, EventArgs e)
             {
                 SaveFileDialog saveFileDialog = new SaveFileDialog();
                 saveFileDialog.Filter = "Pdf (*.pdf)|*.pdf";
                 var dialogResult = saveFileDialog.ShowDialog();
                 if (dialogResult == System.Windows.Forms.DialogResult.OK)
                 {
                     var pdfRe = new PdfRenderingExtension();
                     var msp = new MemoryStreamProvider();
                     (designer.Report as PageReport).Document.Render(pdfRe, msp);
                     using (var stream = msp.GetPrimaryStream().OpenStream())
                    using (var fileStream = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
                     {
                         stream.CopyTo(fileStream);
                     }
                     MessageBox.Show("Export is done");
                 }        }                     
    
エクスポートフィルタ、および描画拡張機能に関連する設定の詳細については「エクスポート」を参照してください。

フォームに他のコントロールの追加

  1. Visual Studioのツールボックスからフォーム上に下記のコントロールを配置します。
    コントロール 名前 プロパティの値
    ReportExplorer arReportExplorer

    ReportDesigner = designer
    これによりActiveReportsデザイナをReportExplorerコントロールにバインドします。

    必要に応じてサイズを変更および移動します。

    LayerList arLayerList

    ReportDesigner = designer
    これにより、ActiveReportsデザイナをLayerListコントロールにバインドします。

    必要に応じてサイズを変更および移動します。

    PropertyGrid arPropertyGrid 必要に応じてサイズを変更および移動します。
    GroupEditor arGroupEditor

    ReportDesigner = designer
    これによりActiveReportsデザイナをGroupEditorコントロールにバインドします。

    必要に応じてサイズを変更および移動します。

    ReportsLibrary arReportsLibrary

    ReportDesigner = designer
    これによりActiveReportsデザイナをReportsLibraryコントロールにバインドします。
    必要に応じてサイズを変更および移動します。

  2. フォームで、デザイナコントロールを選択します。
  3. プロパティウィンドウで、デザイナコントロールのPropertyGridプロパティを[arPropertyGrid]に設定します。これによりActiveReportsデザイナをProperty Gridコントロールにバインドします。

エンドユーザーレポートデザイナの表示

[F5]を押してプロジェクトを実行します。エンドユーザーレポートデザイナが開いてページレポートが表示されます。

エンドユーザーレポートデザイナをカスタマイズする方法の詳細については、「エンドユーザーデザイナ サンプル」を参照してください。