我正在使用Jasper Reports和iReport生成我的应用报告。我需要根据对数据库的查询在报告中显示图像。图像是计划,其他字段代表测量等。
即。有两个图像:IMAGE1和IMAGE2链接到Field_ONE和Field_TWO。
如果Field_ONE是!= null,那么我想在文档中显示IMAGE1和图像内的字段;
如果Field_TWO是!= null且Field_ONE等于null,那么我想在之前显示IMAGE1的位置显示IMAGE2
如果Field_TWO是!= null且Field_ONE!= null,那么我想并排显示IMAGE1和IMAGE2。
请注意,我可能有5或6张图片,因此如果不使用标记而在它们之间留下空格,则很难涵盖所有可能性。
简而言之:我需要类似Android中的布局,我可以根据字段动态添加计划,并按照添加计划的顺序生成图像及其相关字段。
我希望你能帮忙,谢谢!
注意:根据报告的结果,我可以有多个相同类型的图像,因此几乎不可能用图层覆盖它
答案 0 :(得分:2)
图层(静态)解决方案
Send to layer
。选择第i层。$F{Field_ONE} != null
子报告(动态)解决方案
select 'Ascent.jpg' as image from dual where $P{FIELD_1} is not null
。您需要为每个字段执行此操作,并union all
选择语句。image
字段将值设置为图片的路径。例如,"C:/WINDOWS/Web/Wallpaper/"+$F{IMAGE}
。在我测试之前,我不想发布此解决方案。如果有不清楚的地方,我可以发布我的样本,它有很多行。您需要子报表的原因是因为您的主报表有1列并垂直填充,但您需要将图像水平填充多列。对于非null的每个字段,子报表查询将按语句顺序返回记录。然后将在各列中填充记录。