简而言之:
我将一个常量字符串传递给子报表,但由于某种原因,当它在具有null
语法的子报表SQL中使用时,它会获得P!{}
值。
更详细:
我有两个几乎相同的子报告。我想使用通用子报表,而不是单独定义每个子报表。现在我有一个带有字符串参数main_or_side
的子报表。我们的想法是将值“main”或“side”传递给子报表,然后在SQL查询中使用它。
在查询中,参数以这种方式使用:SELECT table.P!{main_or_side}_diagnosis ...
,并且在使用参数调用时,应该生成SELECT main_diagnosis ...
。
当我在iReports中预览子报告时,它会提示询问参数,当我输入“main”或“side”时,它会显示报告正常。现在,当我预览主要报表时,我将其设置为将值new String("main")
作为side_or_main
- 参数传递,它将返回错误:
Unknown column 'table.null_diagnosis' in 'field list'
如果我将查询设为静态并添加textField以显示main_or_side
的值,则显示传递的值很好。所以值get被传递到子报表肯定。如何在SQL查询P!{main_or_side}
内部评估为null
?
修改
我正在做一些清理并重命名为我的jrxml文件的副本,所以我可以在这里过去片段。在我删除了一些不相关的元素并进行了一些重命名以使代码与我的描述匹配后,它开始突然工作。
原始文件仍然存在问题。我将尝试通过与修改后的文件相比的差异,并在此处发布,如果我找出导致问题的原因。