Reports for WinForms
値に応じてフィールドを書式設定する
クイックスタート > レポート作成を開始する > VBScript 式を作成する > 値に応じてフィールドを書式設定する

これは、おそらく最も一般的な OnPrint プロパティの使用方法です。Nwind.xml サンプルファイルの "Orders by Value" レポートを例にします。このレポートでは、製品別にグループ化された注文数がリストされます。別のフィールドを使って在庫数を表示する代わりに、製品の名前を赤色の太字で表示することによって、在庫が追加注文レベルより少ない製品を強調表示します。

コードを使用して、追加注文レベルより少ない製品を強調表示するには

在庫が追加注文レベルより少ない製品を強調表示するためには、次のようなイベントスクリプトを使用します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim script As String = _ 
"If UnitsInStock < ReorderLevel Then" & vbCrLf & _
"ProductNameCtl.ForeColor = RGB(255,0,0)" & vbCrLf & _
"ProductNameCtl.Font.Bold = True" & vbCrLf & _
"Else" & vbCrLf & _
"ProductNameCtl.ForeColor = RGB(0,0,0)" & vbCrLf & _
"ProductNameCtl.Font.Bold = False" & vbCrLf & _
"End If"
c1r.Sections.Detail.OnPrint = script

C# コードの書き方

C#
コードのコピー
If UnitsInStock < ReorderLevel Then 
ProductNameCtl.ForeColor = RGB(255,0,0)
ProductNameCtl.Font.Bold = True
Else
ProductNameCtl.ForeColor = RGB(0,0,0)
ProductNameCtl.Font.Bold = False
End If

このコードは、VBScript のイベントハンドラを1つの文字列として作成し、その文字列をセクションの OnPrint プロパティに割り当てます。C1Report デザイナを使用すると、上のコードを記述する代わりに、イベントエディタウィンドウに直接スクリプトコードを入力できます。

C1Report デザイナを使用して、追加注文レベルより少ない製品を強調表示するには

コードを記述する代わりに、C1Report デザイナを使用して、詳細セクションの OnPrint プロパティの VBScript エディタに次のスクリプトコードを直接入力できます。次の手順を実行します。

  1. デザイナの[プロパティ]ウィンドウのドロップダウンリストから、[詳細]を選択します。これで、セクションで使用できるプロパティが表示されます。
  2. OnPrint プロパティの横にある空のボックスをクリックし、ドロップダウン矢印をクリックして、リストから[スクリプトエディタ]を選択します。.
  3. VBScript エディタのウィンドウに、次のスクリプトを入力します。

    If UnitsInStock < ReorderLevel Then
      ProductNameCtl.ForeColor = RGB(255,0,0)
      ProductNameCtl.Font.Bold = True
    Else
      ProductNameCtl.ForeColor = RGB(0,0,0)
      ProductNameCtl.Font.Bold = False
    End If

  4. OK をクリックしてエディタを終了します。

コントロールは、このセクションを出力するたびにこの VBScript コードを実行します。スクリプトは "ReorderLevel" データベースフィールドの値を取得し、その値に基づいて、"ProductName" レポートフィールドの Font.Bold プロパティと ForeColor プロパティを設定します。在庫が追加注文レベルより少ない製品は、製品名が赤色の太字になります。.

次に、レポートの外見を示します。