我创建了一个碧 Jade 报告,其中包含该图像和该图像顶部的一组小椭圆/圆形。小圆圈的颜色必须根据用于生成报告的数据而变化。所以我创建了一个样式并将该样式应用于椭圆元素。这是我的风格:
<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>
但我想将圆圈与不同的数据元素相关联,这样当应用条件样式时,所考虑的值就是属于该国家/地区的值。
供您引用,传递的数据是包装 Country 实例列表的 JRDataSource。
实例 1。 名称=“加拿大”; 值=0;
实例 2。 名称=“美国” 值=3;
..等等。 值字段规定图像顶部圆圈上显示的颜色。
我怎样才能在贾斯珀做到这一点?
注意。所有圆圈都会显示在报告中。 (没有隐藏)问题是将位置 (x=34,y=90) 处的第 i 个圆绑定(bind)到特定数据项并将其着色为 c, 将位于 (x=8, y=12) 位置的第 j 个圆指定为特定数据项,并将其着色...等等。 其中 c、d 是颜色。
我有一个 mvn + java + jasper 项目,我正在此处进行测试:它有 3 个数据项和 3 个圆圈,已放置在图像顶部的标题部分中。
https://drive.google.com/file/d/0B5GhWVO8BNlcVlNaRHpodm1Hd0k/edit?usp=sharing
最佳答案
将所有椭圆设置在初始时间的位置。并根据您的值,为每个椭圆设置“表达式时打印”。例如:
<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>
希望对您有帮助。
关于java - 贾斯珀报告,其中包含世界地图和不同颜色的圆圈,覆盖在不同国家的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463765/