如何通过将一个查询的输出作为另一个查询的输入来创建jasper报告

时间:2012-01-05 05:54:59

标签: jasper-reports ireport

我尝试使用数据集。但是,如何将一个数据集查询输出作为另一个数据集的输入。

例如,资产数据表类型报告视图。

我的第一个查询是

SELECT column_name_one FROM table WHERE C_GL_PRIMARY='LIABILITY'

假设此查询返回2行,例如DEPOSIT,LOAN。 我的第二个问题是

SELECT colum_name_second FROM table WHERE C_GL_ONE='column_name_one'

(我是使用datagrid做的并且正在运行)

例如

DEPOSIT
       term deposit
       pigmy deposit
LOANS
       term loan
        pigmy loan

直到这里一切都很好,但现在我还有一个查询需要输出第二个查询作为此查询的输入。

select column_name_third from table where C_GL_TWO='colum_name_second'

这里我无法将“colum_name_second”作为输入becoz it this fiels在列表下面而不是详细信息..

我的报告应该是这样的


DEPOSIT
       term deposit
                 new term deposit
                 old term deposit
       pigmy deposit
                 ww pigmy deposit
                 bbb deposit
LOANS
       term loan
                new tem loan
                current term loan
        pigmy loan
                pigmyloannew

任何人都可以帮助我......有没有办法做到这一点。

感谢。

2 个答案:

答案 0 :(得分:0)

1ST-在主报表查询中创建参数,并在HashMap中输入参数值以填充它。 2nd-在数据集中创建参数并使用数据集查询中的参数。$ p {Dataset_parameter} 3 - 如果您正在使用List组件,请右键单击然后转到Edit list data source然后单击parameter,然后添加数据集的参数并使用Main query output属性对其进行配置。

Ex-select ID,NAME from CALENDAR WHERE REGION=$P{REGION_ID}--REGION_ID main report parameter
   SELECT HOLIDAY_NAME,DATE_PICKER FROM HOLIDAYS WHERE CAL_ID=$P{CAL_ID} --CAL_ID dataset  
parameter.configure as per instruction above with $P{CAL_ID} with expression $F{ID} 

答案 1 :(得分:0)

根据您的描述,这应该只是一个查询:

SELECT t1.column_name_one, t2.column_name_two, t3.column_name_three 
FROM table1 t1
INNER JOIN table2 t2 on (t2.C_GL_ONE = t1.column_name_one)
INNER JOIN table3 t3 on (t3.C_GL_TWO = t2.column_name_two)
WHERE t1.C_GL_PRIMARY='LIABILITY'

然后将报告分组以显示与所需报告输出完全相同的数据。