水晶报告:布尔问题



我在利用Crystal Reports通过PostgreSQL ODBC源提取数据时遇到了一个相当麻烦的问题。 看来我有一个布尔字段,它在数据库专家中显示为布尔值,在 Crystal 报告中几乎无处不在。 我有一个我尝试使用的 if 语句,它要么不起作用,要么在使用时出错。 当我浏览数据时,它要么是 1 要么是 0,并且是一个长度为 5 的字符串。至少可以说,试图解决这个问题是有问题的。

这个不起作用(总是从客户端而不是client_contact中提取名称)

if ({client_contact.bill_to_contact} = "1") Then
trim({client_contact.given_name} + ' ' + {client_contact.initial}) + ' ' + UpperCase({client_contact.surname})
else
trim({client.given_name} + ' ' + {client.initial}) + ' ' + UpperCase({client.surname})

这个错误地说它需要在bill_to_contact处有一个布尔值(这是一个布尔值)。

if {client_contact.bill_to_contact} Then
trim({client_contact.given_name} + ' ' + {client_contact.initial}) + ' ' + UpperCase({client_contact.surname})
else
trim({client.given_name} + ' ' + {client.initial}) + ' ' + UpperCase({client.surname})

我尝试了 eqv 函数,我有 CR 版本 12.0.0.683。

尝试将第二个函数更改为:

if CBool(CDbl({client_contact.bill_to_contact})) Then 

强制使用数字,然后进行布尔转换。 在此过程中,Crystal Reports并不认为它是一个布尔值或一个数字。

事实证明,

这是我用于数据库的 ODBC 驱动程序的问题。它有一个打开的"布尔值作为字符"的设置。修复了它,像魅力一样工作。

无论如何,非常感谢类型转换提示! 我相信它们在以后会很有用。

最新更新