使用 C1Report 控件 > 修改字段 > 根据字段值进行格式化 |
根据字段值进行格式化可能是OnPrint属性的最常见用法。例如报表显示了一组基于产品(product)分组的订单(order)数据。除了使用一个额外的字段来显示库存量外,报表能够将那些低于重定货限值的产品的名称用红色粗体字符着重显示出来。
将那些低于重定货限值的产品的名称用粗体的红色着重显示的事件,事件脚本如下:
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事件处理代码的字符串,然后将字符串赋给某个区域(section)上的的OnPrint 属性
除了编写代码外,你可以使用C1报表设计器(C1ReportDesigner)将下面的脚本代码直接输入到详情区域(Detail section)的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属性。如果产品低于重定货限值,它的名称将会显示为加粗的红色。
下方的截图展示了带有该显示效果的报表的一部分: