Как передать дату как поле в jrxml JasperReports? - PullRequest
0 голосов
/ 14 апреля 2010

Я хочу передать дату в виде поля в jrxml. Ниже приведен код для этого.

<xyLineChart> 
    <chart evaluationTime="Band"> 
        <reportElement x="0" y="0" width="555" height="500"/> 
    </chart> 
    <xyDataset> 
        <dataset incrementType="None"/> 
        <xySeries> 
            <seriesExpression><![CDATA["CpuUsageGraph"]]></seriesExpression> 
            <xValueExpression><![CDATA[new java.util.Date($F{time}.getTime())]]></xValueExpression> 
            <yValueExpression><![CDATA[$F{cpuUsage}]]></yValueExpression>
        </xySeries> 
    </xyDataset> 
    <linePlot> 
        <plot/> 
    </linePlot> 
</xyLineChart>

Но это не работает. Это дает ошибку, так как не может быть приведено от даты к номеру. Тогда как его конвертировать?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2010

Вы используете поле time в конструкторе Date. Нет необходимости в этом.

Вместо этого:

java.util.Date($F{time}.getTime())

используйте это:

$F{time}

Если вы хотите значение long: используйте это

$F{time}.getTime()

UPDATE
Я не заметил, что вы используете диаграмму, вот новый ответ:

В диаграммах выражения значений X и Y должны быть любым Number объектом, проверьте подклассы в Числовой класс JavaDoc , в вашем случае вы получаете значение long вашего поля Time, который не может быть приведен к Number, вам нужно определить новый объект, например:

new Long($F{time}.getTime())


Примечание: в этом случае отчет будет компилироваться и работать, НО, вы получаете количество миллисекунд и используете его в своем графике. Я не думаю, что это именно то, что вы хотите. Поэтому я бы предложил извлечь из вашего поля Date определенное поле, например Day . Месяц , Год ... и т. Д.

0 голосов
/ 14 апреля 2010

Я не вижу прикрепленный JRXML. Тем не менее, откройте файл JRXML в текстовом редакторе и убедитесь, что поле определено примерно так:

<field name="MyDate" class="java.util.Date"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...