我的报告中有一个公式可根据要求选择字段:
if not isnull({EXT_TBL.EXT_KEY_TYPE}) then
(if {EXT_TBL.EXT_KEY_TYPE} = "SO" and {EXT_TBL.EXT_ACTION_FLAG_9} = "Y"
then {EXT_TBL.EXT_TEXT})
else '0'
当我运行报告时,它可以正常工作,直到我尝试加载特定页面。当我尝试加载页面时,我收到错误“字符串是非数字的”。公式在另一个公式中调用:
{COR_TBL.COR_EXPECTED_DATE} + 2 + ToNumber({@FRM_NOTES})
我在服务器上运行了查询:
SELECT * FROM EXT_TBL WHERE EXT_KEY_TYPE = "SO" AND EXT_ACTION_FLAG_9 = "Y";
这给我留下了两行数据。我已将其缩小到导致问题的特定条目,但在数据库中,行在字段操作标志9中有N而不是Y,所以它不应该在我的报告中抛出错误。
操作字段9仅在两个记录中标记,这两个记录在EXT_TEXT字段中都包含7,因此我不知道为什么会出现错误。
我还尝试了一个嵌套的if语句:
if not isnull({EXT_TBL.EXT_KEY_TYPE}) then
(if {EXT_TBL.EXT_KEY_TYPE} = "SO" then (if {EXT_TBL.EXT_ACTION_FLAG_9} = "Y"
then {EXT_TBL.EXT_TEXT}))
else '0'
但它仍然给了我同样的错误。
谢谢
答案 0 :(得分:0)
我能够通过删除嵌套的if语句并将所有条件放在原始语句中来解决问题:
if not isnull({EXT_TBL.EXT_KEY_TYPE}) AND {EXT_TBL.EXT_KEY_TYPE} = "SO"
AND {EXT_TBL.EXT_ACTION_FLAG_9} = "Y"
THEN {EXT_TBL.EXT_TXT} ELSE '0'
这似乎解决了这个问题。