水晶报表隐藏过滤器之谜

时间:2018-07-17 08:15:36

标签: c# sql-server-profiler

我是C#中Crystal报表的新手,我尝试复制一些有效的Crystal报表。我也复制了数据库结构,并用我自己的数据填充了它,我的记录选择是:

{TransactionsWithExtras.DocumentDate} >= {?DateFrom} AND
{TransactionsWithExtras.DocumentDate} <= {?DateTo} AND
({?ContactPointId} = '' OR {TransactionsWithExtras.ContactPointID} = {?ContactPointId})

问题是:  -当ContactPointId =''在Crystal报表中显示值时  -当ContactPointId充满一些值时,水晶报表    什么都不显示

当我尝试在Microsoft SQL Management Studio中运行SQL脚本时(从请求中获取SQL Server Profiler),它会返回值。

我在Crystal报表中尝试了“验证数据库”,但没有任何改变。

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码:

{TransactionsWithExtras.DocumentDate} >= {?DateFrom} AND
{TransactionsWithExtras.DocumentDate} <= {?DateTo} AND
(**ISNULL({?ContactPointId})** OR {TransactionsWithExtras.ContactPointID} =
     {?ContactPointId})

希望这能奏效!

答案 1 :(得分:0)

谢谢Chris和AustinWBryan,我终于找到了问题。我将ContactPointId从uniqueidentifier更改为char(36)及其工作。