ActiveReports for .NET 18.0J
ラベル形式のレポート
ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > セクションレポートのチュートリアル > レイアウト > ラベル形式のレポート

ActiveReportsでは、カラム形式のレイアウトを生かして、さまざまなサイズのラベルを印刷できます。

このチュートリアルでは、ラベルをレーザプリンタラベルシートに印刷するレポートを作成し、LayoutActionプロパティを使用してラベルを繰り返す方法を紹介します。この例のラベルは1x2.3インチで、シート(8x11インチ)当たり30枚のラベルを印刷します。

このトピックでは、以下のタスクを行います。

メモ: このチュートリアルは、Northwindデータベース(Nwind.mdb)のテーブルを使用しています。使用にはNorthwindデータベース(..ActiveReportsNET18\Samples\Data\Nwind.mdb)へのアクセス権限が必要です。

チュートリアルを完了すると、次のレポートが作成されます。

デザイン時のレイアウト

実行時のレイアウト

VisualStudioプロジェクトにActiveReportを追加する

  1. Visual Studioで新規プロジェクトを開きます。
  2. [プロジェクト]メニューから [新しい項目の追加]を選択します。
  3. [新しい項目を追加]ダイアログから [ActiveReports 18.0 セクションレポート(コード)]を選択し、名前を「rptLabels」に変更します。
  4. [追加]のボタンをクリックします。

詳細については、「クイックスタート」を参照してください。

レポートをデータソースに接続する

  1. Detailセクションのバンドで、データソースアイコンをクリックします。
  2. [レポートデータソース]ダイアログで、接続文字列の横にある[OLE DB]タブにある[作成]ボタンをクリックします。
  3. [データリンクプロパティ]ウィンドウで、[Microsoft Jet 4.0 OLE DB Provider]を選択し、[次へ]ボタンをクリックして接続タブに移動します。
  4. <...>をクリックし、Nwind.mdbへのアクセスパスを参照します。アクセスパスを選択したら、[開く]をクリックします。
  5. [接続のテスト]をクリックし、データベースとの接続が成功したかどうかをチェックします。
  6. [OK] をクリックし、[データリンクプロパティ]ウィンドウを閉じて、レポートデータソースダイアログに戻ります。接続文字列が自動的に表示されることを確認します。
  7. [OLE DB]タブにある[クエリ]フィールドで、以下のSQLクエリを指定します。
    SQLクエリ
    コードのコピー
    SELECT ContactName, CompanyName, Address, City, PostalCode, Country FROM Customers
  8. [OK]をクリックし、レポートのデザイナ面に戻ります。

レポートのレイアウトを作成する

  1. PageHeaderを右クリックし、[削除]をクリックして、レポートからページのヘッダとフッタのセクションを削除します。
  2. [レポート]メニューで、[レポートの設定]を選択し、マージンを以下のように変更します。
    • 上マージン: 0.5
    • 下マージン: 0.5
    • 左マージン: 0.2
    • 右マージン: 0.2
  3. レポートエクスプローラ]で、 [レポートコンテンツ]を選択し、[プロパティ]ウィンドウから[PrintWidth]プロパティを「8.1」に設定します。 (ラベルシートの幅から左余白と右余白を引いた値に設定します)
  4. レポートの「デザイナ面」のグレーの領域をクリックし、[プロパティ]ウィンドウからPrintWidthプロパティを「6.5」に設定します。
  5. Detailセクションをクリックし、[プロパティ]ウィンドウから以下のプロパティを設定します。
    プロパティ名 プロパティの値
    CanGrow False
    ColumnCount 3
    ColumnDirection AcrossDown
    ColumnSpacing 0.2
    Height 1
    KeepTogether True
  6. レポートエクスプローラ]で、[フィールド]ノードを展開し、[バウンドフィールド]ノードを展開します。以下のフィールドをドラッグし、各テキストボックスのプロパティを以下のように変更します。

    TextBox1

        
    プロパティ名 プロパティの値
    DataField ContactName
    Location 0, 0 in
    Size 2.5, 0.2 in
    Font Bold True

    TextBox2

        
    プロパティ名 プロパティの値
    DataField CompanyName
    Location 0, 0.2 in
    Size 2.5, 0.2 in

    TextBox3

        
    プロパティ名 プロパティの値
    DataField Address
    Location 0, 0.4 in
    Size 2.5, 0.2 in

    TextBox4

        
    プロパティ名 プロパティの値
    DataField City
    Location 0, 0.6 in
    Size 2.5, 0.2 in

    TextBox5

        
    プロパティ名 プロパティの値
    DataField PostalCode
    Location 0, 0.8 in
    Size 1.45, 0.2 in

    TextBox6

        
    プロパティ名 プロパティの値
    DataField Country
    Location 1.5, 0.8 in
    Size 1, 0.2 in
  7. すべてのテキストボックスを選択し、[プロパティ]ウィンドウから、CanGrowプロパティを「False」に設定します。これにより、テキストは重複されませんが、フィールドのデータがコントロールのサイズに合わない場合、トリミングされる可能性があります。

レポートをこの時点でプレビューすると、ページ上に各ラベルが1回ずつ表示されます。

Detail_Formatイベントにラベルを繰り返すためにコードを追加する

  1. Detailセクションをダブルクリックし、レポートのDetail_Formatイベントのイベント処理メソッドを作成します。
  2. 3つの列に対して各ラベルを繰り返すには、以下のコードを追加します。

    Visual Basic

    Visual Basicコード (Formatイベント内に貼り付けます)
    コードのコピー
    '各ラベルを3回印刷します。
    Static counter As Integer
    counter = counter + 1
    If counter <= 2 Then
        Me.LayoutAction = GrapeCity.ActiveReports.LayoutAction.MoveLayout Or GrapeCity.ActiveReports.LayoutAction.PrintSection
    Else
        Me.LayoutAction = GrapeCity.ActiveReports.LayoutAction.MoveLayout Or GrapeCity.ActiveReports.LayoutAction.NextRecord Or GrapeCity.ActiveReports.LayoutAction.PrintSection
        counter = 0
    End If
    

    C#

    C#コード (Formatイベントの上に貼り付けます)
    コードのコピー
    int counter=0; 
    
    C#コード (Formatイベント内に貼り付けます)
    コードのコピー
    //各ラベルを3回印刷します。
    counter = counter + 1; 
    if (counter <= 2) 
    { 
        this.LayoutAction =  GrapeCity.ActiveReports.LayoutAction.MoveLayout|GrapeCity.ActiveReports.LayoutAction.PrintSection; 
    } 
    else 
    { 
        this.LayoutAction = GrapeCity.ActiveReports.LayoutAction.MoveLayout|GrapeCity.ActiveReports.LayoutAction.NextRecord|GrapeCity.ActiveReports.LayoutAction.PrintSection; 
        counter = 0; 
    }
    

レポートを表示する

または