首页 > 解决方案 > 将复选框值传递给水晶报表参数

问题描述

我正在winforms中创建一个表单,将表单上的所有值作为参数传递给水晶报表。我想要完成的是,当在我的表单上选中一个复选框时,我希望它在我的水晶报表上显示为一个复选框。

我知道如何通过将值保存到数据库中来完成此操作,然后从数据库中提取该值并应用于报表,但我真的希望报表上的所有字段都是从形式。有没有一种方法可以将表单中的复选框值直接发送到报表而不将值保存在数据库中?

例如,我使用此 VB 代码将表单中的文本字段传递给报告:

Dim NewRpt As RptPrintCustomer = New RptPrintCustomer()
NewRpt.SetParameterValue("Customer", CustomerName.Text)

Dim fresh As FrmPrintCustomer = New FrmPrintCustomer()
fresh.LinkReport(NewRpt)
fresh.Show()

我想为复选框完成同样的壮举。

提前感谢您的任何见解。

标签: vb.netwinformscrystal-reports

解决方案


我对此的解决方案,无需创建数据表,并走完整的路线,如下所示。

我在水晶报表上创建了一个方框。我创建了一个参数字段(在此示例中使用名称“ParameterName”)并将该参数字段的第一个字母居中放置在上述框内。然后我简单地使用了下面的 VB 代码。

Dim NewRpt as RptPrintCustomer = New RptPrintCustomer

If Checkbox.checked = True Then
    NewRpt.SetParameterValue("ParameterName", "x")
Else
    NewRpt.SetParameterValue("ParameterName", "")
End If

如果在表单上选中复选框,这会给我一个带有“x”的框,如果在表单上没有选中复选框,则会给我一个空框。

这比为一个单独的布尔字段创建数据表要高效得多。努力是最小的。


推荐阅读