新手的子报告输出为空白

时间:2016-01-19 11:19:39

标签: jasper-reports

我正在尝试在 Jaspersoft Studio 5.5中创建子报告。我的表格结构如下:

DEPT(DEPTNO,DNAME,LOC)

EMP(EMPNO,ENAME,SAL,DEPTNO)

主要报告名称: MainReport.jrxml

子报告名称: SubReport.jrxml

我试过如下。

  1. 通过传递DeptNo的参数在“主报告”中创建了一行。

  2. 现在,将Palette子报表组件从Palette拖到主报表上。

  3. 从“子报告”向导中选择“创建新报告”选项。

  4. 尝试编写以下查询以从Active Department获取Employees。 问题从此开始。我无法理解如何提供参数来获取父DEPTNO

  5. SELECT EMPNO, ENAME, SALARY FROM EMP WHERE DEPTNO = 10

    在上面的代码中,我只是硬编码DEPTNO = 10来完成查询。 这是我希望专家支持知道如何使用参数替换DEPTNO = 10

    的地方

1 个答案:

答案 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可以直观地帮助你。