我正在尝试在 Jaspersoft Studio 5.5中创建子报告。我的表格结构如下:
DEPT(DEPTNO,DNAME,LOC)
EMP(EMPNO,ENAME,SAL,DEPTNO)主要报告名称: MainReport.jrxml
子报告名称: SubReport.jrxml
我试过如下。
通过传递DeptNo的参数在“主报告”中创建了一行。
现在,将Palette子报表组件从Palette拖到主报表上。
从“子报告”向导中选择“创建新报告”选项。
尝试编写以下查询以从Active Department获取Employees。 问题从此开始。我无法理解如何提供参数来获取父DEPTNO
SELECT EMPNO, ENAME, SALARY FROM EMP WHERE DEPTNO = 10
在上面的代码中,我只是硬编码DEPTNO = 10
来完成查询。 这是我希望专家支持知道如何使用参数替换DEPTNO = 10
答案 0 :(得分:1)
假设您有一个带有promted参数的主报表,并且您希望"传递"它在子报表中,当您创建子报表时 - 在参数部分 - 您必须添加该参数(除了默认值),以使其“#34;可见"到子报告。
EXTRA:如果"活跃部门"是你从查询中得到的东西(让我们说"从DEPT中选择deptno,其中active =" Y"),你应该"通过"这个值($ F {DEPTNO})作为子报告的参数。
然后在子报表查询中,您必须使用参数替换硬编码值,如下所示:
Sub FormulaMap()
Dim r As Long
Dim c As Long
For c = 9 To 17
For r = 11 To 18
If Sheets("Data").Cells(r, c).HasFormula Then
Sheets("Map").Cells(r, c).Value = 1
Else
Sheets("Map").Cells(r, c).Value = 0
End If
Next r
Next c
End Sub
也许this tutorial from jaspersoft community可以直观地帮助你。