贾斯珀报告与世界地图和不同颜色的圈子覆盖在不同国家的顶部

时间:2014-01-30 17:45:59

标签: java jasper-reports report ireport

enter image description here

我创建了一个带有图像的碧玉报告,并在该图像的顶部创建了一组小椭圆/圆。小圆圈的颜色必须根据用于生成报告的数据进行更改。所以我创建了一个样式并将该样式应用于椭圆元素。这是我的风格:

<style name="ZFieldStyle">
    <conditionalStyle>
        <conditionExpression><![CDATA[$F{value} < 2L]]></conditionExpression>
        <style backcolor="#00ff00"/>
    </conditionalStyle>
    <conditionalStyle>
        <conditionExpression><![CDATA[$F{value} > 2L]]></conditionExpression>
        <style backcolor="#FF0000"/>
    </conditionalStyle>
</style>

以下是我将其应用于椭圆的方法:

           <ellipse>
                <reportElement style="ZFieldStyle" mode="Opaque" x="285" y="47" width="17" height="17" forecolor="#FF00FF" >

                </reportElement>
            </ellipse>

但我想将圈子与不同的数据元素相关联,以便在应用条件样式时,所考虑的值是与该国家/地区相关的值。

供您参考,传递的数据是包装国家/地区实例列表的JRDataSource。

实例1。 NAME = “加拿大”; 值= 0;

实例2。 NAME = “美” 值= 3;

...等。 字段决定了在图像顶部的圆圈上显示的颜色。

我怎样才能在Jasper中做到这一点?

NB。所有圈子都会显示在报告中。 (没有隐藏)问题是将位于(x = 34,y = 90)位置的第i个圆绑定到特定数据项并将其颜色为c, 第j个圆位于特定数据项的位置(x = 8,y = 12),颜色为d ......等。 其中c,d是颜色。

我有一个mvn + java + jasper项目,我在这里测试:它有3个数据项和3个圆已放置在图像顶部的标题部分。

https://drive.google.com/file/d/0B5GhWVO8BNlcVlNaRHpodm1Hd0k/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

在初始时将所有椭圆设置在其位置。并且对于每个椭圆设置“基于您的值打印表达式”。 e.g:

<ellipse>
  <reportElement uuid="7c0a9248-b2a1-43ea-b329-ff2212845b4b" x="323" y="0" width="109" height="45" backcolor="#EF4141">
                <printWhenExpression><![CDATA[$F{value} == 3]]></printWhenExpression>
  </reportElement>
        </ellipse>

希望它会对你有所帮助。