Jasper reports JasperReports:传递给subreport的常量字符串在使用P求值时获取空值!SQL查询中的{}

Jasper reports JasperReports:传递给subreport的常量字符串在使用P求值时获取空值!SQL查询中的{},jasper-reports,ireport,Jasper Reports,Ireport,简而言之: 我正在向子报表传递一个常量字符串,但由于某种原因,当它在子报表SQL中使用p时,它会得到null值!{}语法 更详细地说: 我有两个几乎相同的子报告。我希望使用通用子报表,而不是单独定义每个子报表。现在我有了这个子报表,它接受一个字符串参数main\u或\u-side。其思想是将值“main”或“side”传递给子报表,然后在SQL查询中使用它 在查询中,参数是这样使用的:selecttable.p!{main\u或{u side}\u diagnosis…并应在使用参数调用时产生例

简而言之:

我正在向子报表传递一个常量字符串,但由于某种原因,当它在子报表SQL中使用
p时,它会得到
null
值!{}
语法

更详细地说:

我有两个几乎相同的子报告。我希望使用通用子报表,而不是单独定义每个子报表。现在我有了这个子报表,它接受一个字符串参数
main\u或\u-side
。其思想是将值“main”或“side”传递给子报表,然后在SQL查询中使用它

在查询中,参数是这样使用的:
selecttable.p!{main\u或{u side}\u diagnosis…
并应在使用参数调用时产生例如
选择main\u diagnosis…

当我在iReports中预览子报告时,它会提示我询问参数,当我输入“main”或“side”时,它会显示报告。现在,当我预览main报告时,我将其设置为将value
newstring(“main”)
作为
side\u或\u main
-参数传递,它将返回一个错误:

Unknown column 'table.null_diagnosis' in 'field list'
如果我将查询设置为静态,并添加一个文本字段来显示
main\u或\u-side
的值,则会显示传递的值。因此,值get肯定会传递给子报表。在SQL查询
P中怎么会出现这种情况!{main_或_side}
计算结果为
null

编辑:

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


原始文件上的问题仍然存在。我将尝试与修改后的文件进行比较,如果我发现问题的原因,我将在此处发布。

您是如何传递参数的?您能否发布包含子报表参数和查询的jrxml文件片段?变量表达式是什么,在辅助参数中定义?在子报表上,参数默认变量表达式为空(
)。在主报表上,传递给子报表的值分配如下: