【问题标题】:pass checkbox value to crystal report parameter将复选框值传递给水晶报表参数
【发布时间】:2021-02-15 12:38:54
【问题描述】:

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

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

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

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

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

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

提前感谢您的任何见解。

【问题讨论】:

  • 这种事情有帮助吗? stackoverflow.com/questions/8341272/…
  • 不完全是,我试图将复选框值作为参数传递。我可以使用数据表来完成此操作,但我宁愿将值作为参数传递,就像我将文本框值传递给参数字段一样。我表单上的每个字段都作为参数传递给报告,除了这个复选框。我只是想保持简单,因为它只有一个复选框,报告的其余部分已完成。
  • 所有经常光顾这个网站的专家,我很惊讶没有人有任何见解。

标签: vb.net winforms crystal-reports


【解决方案1】:

我对此的解决方案如下。

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

Dim NewRpt as RptPrintCustomer = New RptPrintCustomer

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

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

这比为一个单独的布尔字段创建数据表要高效得多。而且工作量很小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多