Reports for WinForms
値に応じてフィールドを表示または非表示にする
C1Report の使い方 > イベントの使用 > 値に応じてフィールドを表示または非表示にする

フィールドの書式を変更してフィールドのコンテンツを強調表示する代わりに、別のフィールドの Visible プロパティを True または False に設定することで、特殊効果を生成することができます。たとえば、「BoxCtl」という新しいフィールドを作成し、製品名が太線の四角形で囲まれるように書式設定するには、スクリプトを次のように変更します。

   
If UnitsInStock < ReorderLevel Then 
BoxCtl.Visible = True
Else
BoxCtl.Visible = False
End If

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

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

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim script As String = _    
  "If UnitsInStock < ReorderLevel Then" & vbCrLf & _

  "  BoxCtl.Visible = True" & vbCrLf & _    
  "Else" & vbCrLf & _    
  "  BoxCtl.Visible = False" & vbCrLf & _    
  "End If"    
c1r.Sections.Detail.OnPrint = script

C# コードの書き方

C#
コードのコピー
string script =      
  "if (UnitsInStock < ReorderLevel) then\r\n" +     
  "BoxCtl.Visible = true\r\n" +     
  "else\r\n" +      
  "BoxCtl.Visible = false\r\n" +      
  "end if\r\n";    
c1r.Sections.Detail.OnPrint = script;

このコードは、VBScript イベントハンドラを含む文字列を作成し、それをセクションの OnPrint プロパティに割り当てます。

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

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

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

コントロールは、セクションが印刷されようとするたびに VBScript コードを実行します。このスクリプトは「ReorderLevel」データベースフィールドの値を取得し、その値に基づいて「ProductName」レポートフィールドの Font.Bold と ForeColor プロパティを設定します。商品が追加注文レベル未満の場合、その名前は太い赤字になります。

次のスクリーンショットは、特殊効果が適用されたレポートのセクションです。