これは、おそらく最も一般的な 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# |
コードのコピー
|
---|---|
string script = "if (UnitsInStock < ReorderLevel) then\r\n" + "ProductNameCtl.ForeColor = rgb(255,0,0)\r\n" + "ProductNameCtl.Font.Bold = true\r\n" + "else\r\n" + "ProductNameCtl.ForeColor = rgb(0,0,0)\r\n" + "ProductNameCtl.Font.Bold = false\r\n" + "end if\r\n"; c1r.Sections.Detail.OnPrint = script; |
このコードは、VBScript のイベントハンドラを1つの文字列として作成し、その文字列をセクションの OnPrint プロパティに割り当てます。C1Report デザイナを使用すると、上のコードを記述する代わりに、イベントエディタウィンドウに直接スクリプトコードを入力できます。
C1Report デザイナを使用して、追加注文レベルより少ない製品を強調表示するには
コードを記述する代わりに、C1Report デザイナを使用して、詳細セクションの OnPrint プロパティの 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
コントロールは、このセクションを出力するたびにこの VBScript コードを実行します。スクリプトは "ReorderLevel" データベースフィールドの値を取得し、その値に基づいて、"ProductName" レポートフィールドの Font.Bold プロパティと ForeColor プロパティを設定します。在庫が追加注文レベルより少ない製品は、製品名が赤色の太字になります。
次に、レポートの外見を示します。