In short:

我将一个常量字符串传递给子报表,但由于某种原因,当它在带有 P!{} 语法的子报表SQL中使用时,它会获得 null 值 .

And in more detail:

我有两个几乎相同的子报告 . 我想使用通用子报表,而不是单独定义每个子报表 . 现在我有这个子报表,它接受一个字符串参数 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 -parameter时,它将返回错误:

Unknown column 'table.null_diagnosis' in 'field list'

如果我使查询静态并添加textField以显示 main_or_side 的值,则显示传递的值很好 . 所以值get被传递到子报表肯定 . 怎么可能在SQL查询 P!{main_or_side} 内部评估为 null

EDIT:

我正在做一些清理并重命名为我的jrxml文件的副本,所以我可以在这里通过片段 . 在我删除了一些不相关的元素并进行了一些重命名以使代码与我的描述匹配后,它开始突然工作 .

问题仍然存在于原始文件中 . 我将尝试通过与修改后的文件相比的差异,并在此处发布,如果我找出导致问题的原因 .