FlexReport for WinForms
Microsoft Access レポートのインポート
FlexReportDesigner の操作 > FlexReportDesigner でのレポートのインポート > Microsoft Access レポートのインポート

Microsoft Access ファイルをインポートするには、Microsoft Access ファイル(MDB または ADP)を選択します。デザイナがファイルをスキャンし、インポートするレポートを選択するためのダイアログボックスが表示されます。

このダイアログボックスで、インポート処理を開始する前に、現在定義されているすべてのレポートを消去するかどうかも指定できます。

インポート処理は、ソースレポートのほとんどの要素を処理できます。ただし、次に挙げる要素は例外です。

上のような制限を受けるレポートは比較的少ないですが、レポートをインポートしたら、すべてのレポートをプレビューし、正しく動作するかどうかを確認してください。

C1NWind.mdb ファイルのインポート

デザイナが実際に行う処理の例として、C1NWind.mdb ファイルをインポートしてみます。これには、次の 13 のレポートが含まれます。(C1FlexReport に付属する NWind.xml ファイルには、以下で説明する変更がすべて行われています。)

  1. Alphabetical List of Products(製品のアルファベット順リスト)

    処理は不要です。

  2. Catalog(カタログ)

    処理は不要です。

  3. Customer Labels(顧客ラベル)

    処理は不要です。

  4. Employee Sales by Country(国別従業員売上高)

    このレポートには、手作業で変換する必要があるコードが含まれます。Group 1 のヘッダーの OnPrint プロパティには、次のコードを割り当てます。

    Visual Basic でコードを書く場合

    Visual Basic
    コードのコピー
    If SalespersonTotal > 5000 Then            
      ExceededGoalLabel.Visible = True            
      SalespersonLine.Visible = True            
    Else            
      ExceededGoalLabel.Visible = False            
      SalespersonLine.Visible = False            
    End If
    

    C# でコードを書く場合

    C#
    コードのコピー
    if (SalespersonTotal > 5000)                 
    {                
      ExceededGoalLabel.Visible = true;                
      SalespersonLine.Visible = true;                
    } else
    
    {                
      ExceededGoalLabel.Visible = false;                
      SalespersonLine.Visible = false;               
    }
    

  5. Invoice(請求書)

    処理は不要です。

  6. Products by Category(カテゴリ別製品)

    処理は不要です。

  7. Sales by Category(カテゴリ別売上高)

    このレポートには、インポートされないグラフコントロールが含まれます。レポートにグラフを追加するには、グラフフィールドを使用します。

  8. Sales by Category Subreport(カテゴリ別売上高サブレポート)

    処理は不要です。

  9. Sales by Year(年度別売上高)

    このレポートには、手作業で変換する必要があるコードおよび Form オブジェクトへの参照が含まれます。[Data]パネルの Form オブジェクトを置き換えるには、ShowDetails パラメータを追加します。その DataType プロパティを Boolean に、Value プロパティを False に設定します。

    レポートの OnOpen イベントで新しいパラメータを使用します。

    Visual Basic でコードを書く場合

    Visual Basic
    コードのコピー
    Dim script As String = _                            
      "bDetails = [Show Details]" & vbCrLf & _                            
      "Detail.Visible = bDetails" & vbCrLf & _                            
      "[Group 0 Footer].Visible = bDetails" & vbCrLf & _                            
      "DetailsLabel.Visible = bDetails" & vbCrLf & _                            
      "LineNumberLabel2.Visible = bDetails" & vbCrLf & _                            
      "Line15.Visible = bDetails" & vbCrLf & _                           
      "SalesLabel2.Visible = bDetails" & vbCrLf & _                            
      "OrdersShippedLabel2.Visible = bDetails" & vbCrLf & _                            
      "ShippedDateLabel2.Visible = bDetails" & vbCrLf & _                            
      "Line10.Visible = bDetails"                        
    C1FlexReport1.Sections.Detail.OnPrint = script
    

    C# でコードを書く場合

    C#
    コードのコピー
    string script = "bDetails = [Show Details]" +                                  
      "Detail.Visible = bDetails\r\n" +                                  
      "[Group 0 Footer].Visible = bDetails\r\n" +                                  
      "DetailsLabel.Visible = bDetails\r\n" +                                  
      "LineNumberLabel2.Visible = bDetails\r\n" +                                  
      "Line15.Visible = bDetails\r\n" +                                  
      "SalesLabel2.Visible = bDetails\r\n" +                                  
      "OrdersShippedLabel2.Visible = bDetails\r\n" +                                 
      "ShippedDateLabel2.Visible = bDetails\r\n" +                                 
      "Line10.Visible = bDetails";                                
    c1FlexReport1.Sections.Detail.OnPrint = script;
    

    最後に、2 行のコードを書き換える必要があります。

    Visual Basic でコードを書く場合

    Visual Basic
    コードのコピー
    Sections ("Detail").OnPrint = _                                    
      "PageHeader.Visible = True"                                    
    Sections("Group 0 Footer).OnPrint = _                                    
      "PageHeader.Visible = False"
    

    C# でコードを書く場合

    C#
    コードのコピー
    Sections ("Detail").OnPrint =                                          
      "PageHeader.Visible = true";                                        
    Sections("Group 0 Footer).OnPrint =                                         
      "PageHeader.Visible = false";
    

  10. Sales by Year Subreport(年度別売上高サブレポート)

    処理は不要です。

  11. Sales Totals by Amount(金額別総売上高)

    このレポートには、手作業で変換する必要があるコードが含まれます。ページヘッダーの OnPrint プロパティには、次のコードを割り当てます。

    Visual Basic でコードを書く場合

    Visual Basic
    コードのコピー
    PageTotal = 0
    

    C# でコードを書く場合

    C#
    コードのコピー
    PageTotal = 0;
    

    詳細の OnPrint プロパティには、次のコードを割り当てます。

    Visual Basic でコードを書く場合

    Visual Basic
    コードのコピー
    PageTotal = PageTotal + SaleAmount                                                    
    HiddenPageBreak.Visible = (Counter = 10)
    

    C# でコードを書く場合

    C#
    コードのコピー
    PageTotal = PageTotal + SaleAmount;                                                        
    HiddenPageBreak.Visible = (Counter = 10);
    

  12. Summary of Sales by Quarter(四半期別売上高のサマリー)

    処理は不要です。

  13. Summary of Sales by Year(年度別売上高のサマリー)

    処理は不要です。

以上をまとめると、NorthWind データベースからインポートされる 13 のレポートのうち、編集の必要がないレポートが 9 つ、コードを変換する必要があるレポートが 3 つ、グラフフィールドを追加する必要があるレポートが 1 つです。