【发布时间】:2016-04-07 15:53:43
【问题描述】:
我能够使用链接:create MultiAxis Chart with Jasper report 开始使用 Jasper 报告的多轴图表。
我也能够创建图表,但没有完全格式化。我遇到了轴问题。两个 X 轴都在左侧。如何在右侧移动条形图的一个轴。以下是我当前问题的图片:
以下是我的 jrxml 内容。
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="cutting_indicator_cutter" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="48"/>
<subDataset name="chart1">
<queryString language="SQL">
<![CDATA[select Q.proddate,NVL(Q.m2NetReel,0)
,case when Q.HMO <> 0 then
NVL((Q.m2NetReel/Q.HMO),0)
end as m2NETBYHMO,
Q.Objectif_HMOBY1000
from (
SELECT
PROD_DATE as proddate,
case when CUTTING_PRODUCTIVITY.REMAKE_CUT_SQM is null then CUTTING_PRODUCTIVITY.CUTTER_NET_SQM
else
CUTTING_PRODUCTIVITY.CUTTER_NET_SQM + CUTTING_PRODUCTIVITY.REMAKE_CUT_SQM
end as m2NetReel,
(CUTTING_PRODUCTIVITY.MACHINE_WORKING_HOURS_NORM * CUTTING_PRODUCTIVITY.USER_QUANTITY ) as HMO,
1000/(CUTTING_MACHINE.CADENCY*19.26) as Objectif_HMOBY1000
FROM CUTTING_PRODUCTIVITY CUTTING_PRODUCTIVITY
INNER JOIN CUTTING_MACHINE CUTTING_MACHINE
ON CUTTING_MACHINE_ID=CUTTING_MACHINE.CUTTING_ID where trunc(CUTTING_PRODUCTIVITY.PROD_DATE) >= '1-May-15' and trunc( CUTTING_PRODUCTIVITY.PROD_DATE ) <='31-May-15'
ORDER BY CUTTER) Q]]>
</queryString>
<field name="PRODDATE" class="java.sql.Timestamp"/>
<field name="NVL(Q.M2NETREEL,0)" class="java.math.BigDecimal"/>
<field name="M2NETBYHMO" class="java.math.BigDecimal"/>
<field name="OBJECTIF_HMOBY1000" class="java.math.BigDecimal"/>
</subDataset>
<queryString>
<![CDATA[SELECT EST_CUTTER_GLASSES_QTY,
CUTTER_NET_SQM,
REMAKE_CUT_QTY,
PROD_DATE,
REMAKE_CUT_SQM,
CUTTING_MACHINE.CADENCY,
USER_QUANTITY,
CUTTER,
MACHINE_WORKING_HOURS_NORM
FROM CUTTING_PRODUCTIVITY CUTTING_PRODUCTIVITY
INNER JOIN CUTTING_MACHINE CUTTING_MACHINE
ON CUTTING_MACHINE_ID=CUTTING_MACHINE.CUTTING_ID
where trunc(CUTTING_PRODUCTIVITY.PROD_DATE) >= '1-May-15' and trunc( CUTTING_PRODUCTIVITY.PROD_DATE ) <='31-May-15'
ORDER BY CUTTER]]>
</queryString>
<field name="EST_CUTTER_GLASSES_QTY" class="java.math.BigDecimal"/>
<field name="CUTTER_NET_SQM" class="java.math.BigDecimal"/>
<field name="REMAKE_CUT_QTY" class="java.math.BigDecimal"/>
<field name="PROD_DATE" class="java.sql.Timestamp"/>
<field name="REMAKE_CUT_SQM" class="java.math.BigDecimal"/>
<field name="CADENCY" class="java.math.BigDecimal"/>
<field name="USER_QUANTITY" class="java.math.BigDecimal"/>
<field name="CUTTER" class="java.lang.String"/>
<field name="MACHINE_WORKING_HOURS_NORM" class="java.math.BigDecimal"/>
<group name="CUTTER">
<groupExpression><![CDATA[$F{CUTTER}]]></groupExpression>
<groupHeader>
<band height="325">
<frame>
<reportElement x="0" y="0" width="555" height="325" printWhenGroupChanges="CUTTER"/>
<multiAxisChart>
<chart renderType="svg" theme="generic">
<reportElement x="24" y="0" width="486" height="325">
<property name="net.sf.jasperreports.chart.range.axis.tick.interval" value="2"/>
</reportElement>
<chartTitle/>
<chartSubtitle/>
<chartLegend position="Bottom"/>
</chart>
<multiAxisPlot>
<plot/>
<axis>
<lineChart>
<chart renderType="svg">
<reportElement x="0" y="0" width="0" height="0" backcolor="#FFFFFF"/>
<chartTitle color="#000000"/>
<chartSubtitle color="#000000"/>
<chartLegend textColor="#000000" backgroundColor="#FFFFFF" position="Bottom"/>
</chart>
<categoryDataset>
<dataset>
<datasetRun subDataset="chart1">
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
</dataset>
<categorySeries>
<seriesExpression><![CDATA["WEIGHTAVG"]]></seriesExpression>
<categoryExpression><![CDATA[$F{PRODDATE}]]></categoryExpression>
<valueExpression><![CDATA[$F{NVL(Q.M2NETREEL,0)}]]></valueExpression>
</categorySeries>
<categorySeries>
<seriesExpression><![CDATA["OBJECTIF"]]></seriesExpression>
<categoryExpression><![CDATA[$F{PRODDATE}]]></categoryExpression>
<valueExpression><![CDATA[$F{OBJECTIF_HMOBY1000}]]></valueExpression>
</categorySeries>
</categoryDataset>
<linePlot isShowLines="true" isShowShapes="true">
<plot labelRotation="-45.0"/>
</linePlot>
</lineChart>
</axis>
<axis>
<barChart>
<chart renderType="svg">
<reportElement x="0" y="0" width="0" height="0" backcolor="#FFFFFF"/>
<chartTitle color="#000000"/>
<chartSubtitle color="#000000"/>
<chartLegend textColor="#000000" backgroundColor="#FFFFFF" position="Bottom"/>
</chart>
<categoryDataset>
<dataset>
<datasetRun subDataset="chart1">
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
</dataset>
<categorySeries>
<seriesExpression><![CDATA["M2NetHMO"]]></seriesExpression>
<categoryExpression><![CDATA[$F{PRODDATE}]]></categoryExpression>
<valueExpression><![CDATA[$F{M2NETBYHMO}]]></valueExpression>
</categorySeries>
</categoryDataset>
<barPlot>
<plot/>
<itemLabel/>
</barPlot>
</barChart>
</axis>
</multiAxisPlot>
</multiAxisChart>
</frame>
</band>
</groupHeader>
</group>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="50"/>
</title>
</jasperReport>
如何将条形图轴向右移动?
【问题讨论】:
-
是的,这是可能的。你被困在哪里了?
-
您好,抱歉,我可以添加垂直条,但无法添加带有水平方框的线条。我正在使用 ireport 4.5.1 。
-
请编辑您的问题以包含complete example,以显示您当前的方法;
OverlaidBarChartDemo[12]和DualAxisDemo1类是示例。 -
我无法格式化此图表的 X 轴。我已经发布了完整的示例。请让我知道您还需要什么?
-
我不使用jasper-reports;
CategoryPlot#setRangeAxisLocation()是相关的 jfreechart 方法。你能修复原始文章的链接吗?
标签: java jasper-reports jfreechart