【问题标题】:Pie chart that successfully works on JR 3.1.4 does not show data in JR 5.0.1在 JR 3.1.4 上成功运行的饼图不显示 JR 5.0.1 中的数据
【发布时间】:2013-03-26 15:48:32
【问题描述】:

我正在使用 iReport 显示一个包含 6 个不同字段的饼图。我使用 3.1.4 因为它与 Bizflow Advreport 兼容。在 iReport 3.1.4 中预览图表时,饼图/图例/标题都正确显示。但是,当我把它放在网站上时,它只显示标题。将文件带入 5.0.1 没有任何显示,就像它在网站上所做的一样。

我试图弄乱边距和条带的大小,但我似乎无法正确显示饼图。

我还附上了我从 3.1.4 收到的两个不同的预览:

另一个来自 5.0.1:

这里还有 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="report name" pageWidth="380" pageHeight="300" columnWidth="380" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
    <queryString>
        <![CDATA[Select CapabilityAreaName , SUM(ProjectedDevelopmentCost) as TotalProjectedDevelopmentCost, ROUND(100*SUM(ProjectedDevelopmentCost)/(SELECT SUM(ProjectedDevelopmentCost) FROM RequirementFunding),2)AS percentOfTotal
FROM Requirement
INNER JOIN CapabilityArea
ON Requirement.CapabilityAreaId = CapabilityArea.CapabilityAreaId
INNER JOIN RequirementFunding
ON Requirement.RequirementId = RequirementFunding.RequirementId
GROUP BY CapabilityAreaName]]>
    </queryString>
    <field name="CapabilityAreaName" class="java.lang.String">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="TotalProjectedDevelopmentCost" class="java.lang.Double">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="percentOfTotal" class="java.lang.Double">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <background>
        <band/>
    </background>
    <title>
        <band height="50">
            <staticText>
                <reportElement x="0" y="12" width="380" height="25"/>
                <textElement textAlignment="Center">
                    <font size="14" isBold="true"/>
                </textElement>
                <text><![CDATA[Project Development Cost By Capability Area]]></text>
            </staticText>
            <line>
                <reportElement x="0" y="49" width="380" height="1"/>
            </line>
            <line>
                <reportElement x="0" y="0" width="380" height="1"/>
            </line>
        </band>
    </title>
    <columnHeader>
        <band height="250">
            <pieChart>
                <chart hyperlinkType="Reference">
                    <reportElement x="0" y="0" width="380" height="250"/>
                    <chartTitle/>
                    <chartSubtitle/>
                    <chartLegend/>
                </chart>
                <pieDataset>
                    <keyExpression><![CDATA[$F{CapabilityAreaName}]]></keyExpression>
                    <valueExpression><![CDATA[$F{TotalProjectedDevelopmentCost}]]></valueExpression>
                    <labelExpression><![CDATA[$F{percentOfTotal}.toString() + "% - $" + $F{TotalProjectedDevelopmentCost}]]></labelExpression>
                    <sectionHyperlink hyperlinkType="Reference">
                        <hyperlinkReferenceExpression><![CDATA["http://ess-bizflow:8080/bizflowadvreport/flow.html?_flowId=reportTinkerViewReportFlow&reportUnit=/reports/standard_reports/IR_D/AMOD/ActiveRequirementsCostTimeBreakdownTable&&CASelected=" + $F{CapabilityAreaName}]]></hyperlinkReferenceExpression>
                    </sectionHyperlink>
                </pieDataset>
                <piePlot>
                    <plot/>
                </piePlot>
            </pieChart>
        </band>
    </columnHeader>
</jasperReport>

有谁知道可能导致此问题的原因。如果需要,我也可以提供文件。

【问题讨论】:

  • 您的网站上有什么 jasperreports 版本?还要确保你有图表的罐子,列出你在服务器上的罐子,以便我们检查..
  • 该网站似乎正在运行 JasperServer Professional 3.1.0.1。我的网站上也没有罐子。我有三个 JRXML 文件。 ActiveRequirementsCostBreakdown.jrxml、ActiveRequirementsCostBreakdown_Subreport1.jrxml 和 ActiveRequirementsCostBreakdown_Subreport2.jrxml
  • 你好像把饼图放在了列标题带,试着把图表放在汇总带。

标签: jasper-reports ireport


【解决方案1】:

从 XML 看来,您已将饼图放入 &lt;columnhearder&gt; 波段尝试将图表放入 &lt;summary&gt; 波段。

<columnHeader>
    <band height="250">
        <pieChart>
            <chart hyperlinkType="Reference">
                <reportElement x="0" y="0" width="380" height="250"/>
                <chartTitle/>
                <chartSubtitle/>
                <chartLegend/>
            </chart>
            <pieDataset>
                <keyExpression><![CDATA[$F{CapabilityAreaName}]]></keyExpression>
                <valueExpression><![CDATA[$F{TotalProjectedDevelopmentCost}]]></valueExpression>
                <labelExpression><![CDATA[$F{percentOfTotal}.toString() + "% - $" + $F{TotalProjectedDevelopmentCost}]]></labelExpression>
                <sectionHyperlink hyperlinkType="Reference">
                    <hyperlinkReferenceExpression><![CDATA["http://ess-bizflow:8080/bizflowadvreport/flow.html?_flowId=reportTinkerViewReportFlow&reportUnit=/reports/standard_reports/IR_D/AMOD/ActiveRequirementsCostTimeBreakdownTable&&CASelected=" + $F{CapabilityAreaName}]]></hyperlinkReferenceExpression>
                </sectionHyperlink>
            </pieDataset>
            <piePlot>
                <plot/>
            </piePlot>
        </pieChart>
    </band>
</columnHeader>

试试这个:-

      <?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="report name" pageWidth="380" pageHeight="300" columnWidth="380" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
    <![CDATA[Select CapabilityAreaName , SUM(ProjectedDevelopmentCost) as  
             TotalProjectedDevelopmentCost, 
             ROUND(100*SUM(ProjectedDevelopmentCost)/(SELECT 
        SUM(ProjectedDevelopmentCost) FROM RequirementFunding),2)AS percentOfTotal
      FROM Requirement
      INNER JOIN CapabilityArea
      ON Requirement.CapabilityAreaId = CapabilityArea.CapabilityAreaI d
      INNER JOIN RequirementFunding
      ON Requirement.RequirementId = RequirementFunding.RequirementId
     GROUP BY CapabilityAreaName]]>
</queryString>
<field name="CapabilityAreaName" class="java.lang.String">
    <fieldDescription><![CDATA[]]></fieldDescription>
</field>
<field name="TotalProjectedDevelopmentCost" class="java.lang.Double">
    <fieldDescription><![CDATA[]]></fieldDescription>
</field>
<field name="percentOfTotal" class="java.lang.Double">
    <fieldDescription><![CDATA[]]></fieldDescription>
</field>
<background>
    <band/>
</background>
<title>
    <band height="50">
        <staticText>
            <reportElement x="0" y="12" width="380" height="25"/>
            <textElement textAlignment="Center">
                <font size="14" isBold="true"/>
            </textElement>
            <text><![CDATA[Project Development Cost By Capability Area]]></text>
        </staticText>
        <line>
            <reportElement x="0" y="49" width="380" height="1"/>
        </line>
        <line>
            <reportElement x="0" y="0" width="380" height="1"/>
        </line>
    </band>
</title>
<summary>
    <band height="300">
        <pieChart>
            <chart hyperlinkType="Reference">
                <reportElement x="14" y="15" width="348" height="270"/>
                <chartTitle/>
                <chartSubtitle/>
                <chartLegend/>
            </chart>
            <pieDataset>
                <keyExpression><![CDATA[$F{CapabilityAreaName}]]></keyExpression>
                <valueExpression><![CDATA[$F{TotalProjectedDevelopmentCost}]]></valueExpression>
                <labelExpression><![CDATA[$F{percentOfTotal}.toString() + "% - $" + $F{TotalProjectedDevelopmentCost}]]></labelExpression>
                <sectionHyperlink hyperlinkType="Reference">
                    <hyperlinkReferenceExpression><![CDATA["http://ess-bizflow:8080/bizflowadvreport/flow.html?_flowId=reportTinkerViewReportFlow&reportUnit=/reports/standard_reports/IR_D/AMOD/ActiveRequirementsCostTimeBreakdownTable&&CASelected=" + $F{CapabilityAreaName}]]></hyperlinkReferenceExpression>
                </sectionHyperlink>
            </pieDataset>
            <piePlot>
                <plot/>
                <itemLabel/>
            </piePlot>
        </pieChart>
    </band>
</summary>

【讨论】:

  • 嘿@Sharad 我试过推杆,但现在收到错误消息。错误填充打印... null java.lang.NullPointerException at net.sf.jasperreports.charts.fill.JRFillPieDataset.getCustomDataset(JRFillPieDataset.java:256) at net.sf.jasperreports.engine.fill.JRFillChartDataset.getDataset(JRFillChartDataset. java:55) at net.sf.jasperreports.engine.fill.JRFillChart$FillChartContext.getDataset(JRFillChart.java:1442) ......打印未填充。尝试使用 EmptyDataSource...
猜你喜欢
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多