【发布时间】:2012-05-14 14:09:07
【问题描述】:
我继承了现有的 Crystal Report (.rpt),用于打印相关数据集中所有记录的报表。
我现在想添加选择标准,以便仅在报告上打印具有匹配票号的结果。
我输入的选择标准是:
{REGISTER.TICKET_NO} = {?sTicketNo}
sTicketNo 反映了我从 C# 中的文本框中读取并作为参数传递给 Crystal Reports 的文本值。 (参数传递肯定有效。当我将 sTicketNo 字段添加到报告中时,它会打印我在文本框中输入的正确值。
问题在于,无论我输入什么选择标准,报告都不会被过滤。无论标准如何,它总是打印所有记录。我已经使用其他硬编码标准进行了测试,例如仅选择具有非空值的记录。
我也尝试了C# and Crystal Reports SDK - Selection Criteria Ignored 的建议,但没有成功。
Crystal Reports 中是否还有其他地方需要指定您不希望打印所有记录?我在菜单“Crystal Reports”>“Report”>“Select Expert”>“Record”中添加了我的选择标准。我对水晶报告很陌生。也许报告的作者在其他地方添加了一些设置以忽略选择标准,但我不确定在哪里看......
【问题讨论】:
-
不确定您运行的是哪个版本的 Crystal,但您可以转到数据库 > 显示 SQL 查询并查看其中是否包含参数?此外,如果正确选择了过滤器,它应该将字段资源管理器中参数上的图标从条形图标更改为带有黄色框的问号。
-
它获取参数。在字段资源管理器中,在“参数字段”下,sTicketNo 出现“带有黄色框的问号”图标,就像在我们其他一些成功应用过滤器的报告中一样(以及在将字段显式添加到报告详细信息部分时)测试它还包含正确的值)。然而,这个报告仍然存在问题,它包括所有记录,而不仅仅是那些符合条件的记录。也许这与字段(字符串)包含特殊字符(/)有关,但我不希望如此。
-
这听起来更像是一个错误,而不是你忽略的东西或你犯的错误。我能想到的唯一其他选择是直接在 SQL 中重新构造报表选择语句,并应用相同的过滤器。
标签: visual-studio-2010 crystal-reports