答静静:动态更改水晶报表部分数据的背景颜色(VB.Net)
环境:
VB.Net2003
水晶报表10高级开发版本
示例数据库文件,安装水晶报表时自带的xtreme.mdb
如何设定指定记录的背景颜色(如:产品表中记录大于50的背景颜色),请在此处下载操作录像
https://files.cnblogs.com/babyt/CRMOV20050802_1.rar
下面来做一下如何使用程序来控制这个指定记录的范围
首先我们要改造一下我们的模板文件
Step1: 增加一个参数cond
Step2: 修改节专家==>详细资料节==>颜色标签==>更改颜色后面开的公式
将原来的具体数值,使用参数进行代替
Step3:构造一个工程,这里使用了动态加载报表模板的方式
主要代码如下
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'加载报表
oReport.FileName = Application.StartupPath & "\dyncolor.rpt"
CrystalReportViewer1.ReportSource = oReport
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'离散值
Dim DiscreteVal = New ParameterDiscreteValue
DiscreteVal.Value = CLng((TextBox1.Text))
'禁止弹出提示窗口
CrystalReportViewer1.ParameterFieldInfo(0).AllowCustomValues = False
'赋值
CrystalReportViewer1.ParameterFieldInfo(0).CurrentValues.Add(DiscreteVal)
CrystalReportViewer1.ReportSource = oReport
CrystalReportViewer1.Refresh()
End Sub
'加载报表
oReport.FileName = Application.StartupPath & "\dyncolor.rpt"
CrystalReportViewer1.ReportSource = oReport
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'离散值
Dim DiscreteVal = New ParameterDiscreteValue
DiscreteVal.Value = CLng((TextBox1.Text))
'禁止弹出提示窗口
CrystalReportViewer1.ParameterFieldInfo(0).AllowCustomValues = False
'赋值
CrystalReportViewer1.ParameterFieldInfo(0).CurrentValues.Add(DiscreteVal)
CrystalReportViewer1.ReportSource = oReport
CrystalReportViewer1.Refresh()
End Sub
因为是测试,我没有进行错误和异常处理
请在此处下载完整代码,
不过因为我使用的是水晶报表10,如果你运行不起来,也没关系,只要把代码看懂就行了
https://files.cnblogs.com/babyt/DynColor.rar
==========================
阿泰 20050809