使用 C1Report 控件 > 修改字段 > 从用户处获取参数 |
除了着重显示那些存储在数据库中的低于重定货限值的产品外,你还可以让报表去提示用户那些可供订购的产品。
为了从用户处获取数据,你需要修改报表的RecordSource 属性为使用参数查询(如果想进一步了解如何创建参数查询,请查阅Parameter Queries)
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
c1r.DataSource.RecordSource = _ "PARAMETERS [Critical Stock Level] Short 10;" & _ c1r.DataSource.RecordSource |
C#
C# |
拷贝代码
|
---|---|
c1r.DataSource.RecordSource = "PARAMETERS [Critical Stock Level] short 10;" + c1r.DataSource.RecordSource; |
这个设置是让控件提示用户输入一个“即将缺货”的限值,这个值保存在全局的VBScript 变量中,你可以在你的事件中使用它。这个变量的默认值是10.
如果要使用这个由用户指定的值,脚本应该修改成这样:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Dim script As String = _ "level = [Critical Stock Level]" & vbCrLf & _ "If UnitsInStock < level 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 = "level = [Critical Stock Level]\r\n" + "if (UnitsInStock < level) 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; |
区别在于脚本的头两行。不同于将“UnitsInStock”字段的当前值与存储在数据库中的重定货限值相比较,这里的脚本将它与用户输入的并存储在名为"[Critical Stock Level]"的VBScript 变量中的值相比较。