Sql 水晶报告:布尔问题

Sql 水晶报告:布尔问题,sql,postgresql,crystal-reports,odbc,Sql,Postgresql,Crystal Reports,Odbc,我一直在使用Crystal Reports通过PostgreSQL ODBC源获取数据时遇到一个相当麻烦的问题。看起来我有一个布尔字段,它在数据库专家和Crystal reports中几乎无处不在。我有一个if语句,我正在尝试使用它,它要么不起作用,要么在使用它时出错。当我浏览数据时,它不是1就是0,是一个长度为5的字符串。 至少可以说,试图解决这个问题是有问题的 这个不起作用(总是从客户而不是客户联系人中提取名称) 这一个错误指出它需要bill_to_联系人处的布尔值(这是一个布尔值) 我试过

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

这个不起作用(总是从客户而不是客户联系人中提取名称)

这一个错误指出它需要bill_to_联系人处的布尔值(这是一个布尔值)


我试过eqv函数,我有CR版本12.0.0.683

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

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

强制进行数字转换,然后进行布尔转换。在某种程度上,Crystal Reports并不认为这是一个布尔值或数字。

事实证明,这是我用于数据库的ODBC驱动程序的问题。 它有一个开启的“布尔字符”设置。 修好了,工作起来很有魅力


非常感谢您提供的类型转换提示!我相信它们在今后的发展中会很有用。

它会抛出一个错误,指出需要数字或货币。如果我试图转换为双精度,则表示存在非数值。@developerAnyways-更新了我的答案;如果这仍然不起作用,那么其中有一个无法转换为数字的值。我一直在数据库中查找,只有明确定义的true和false选项。。。我完全被这件事难住了。即使是使用布尔记录选择函数的旧报告也无法在我的Crystal reports版本上工作。
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})
if CBool(CDbl({client_contact.bill_to_contact})) Then