- PR -

iReportでXMLからPDF

1
投稿者投稿内容
RKC
会議室デビュー日: 2008/03/03
投稿数: 1
投稿日時: 2008-03-03 15:53
初投稿になります。
よろしくお願いします。

現在iReport2.0.4を使って、XMLソースからpdfを作成するアプリを作っています。
ソースをXMLに指定して、レポートクエリをXPATHの/(root)に設定しています。

XMLには
<name>あああ</name>
<date>2008-01-01</date>
<time>10:00</time>

というタグがあって、それをフィールドとし$F{name}といった形で設定しました。
nameはjava.lang.String、dateはjava.util.Date、timeはjava.sql.Timeなのですが、
timeでエラーになります。

プリントの作成中にエラーが発生しました...Unparseable&#160;date:&#160;"10:00"
org.apache.commons.beanutils.ConversionException:&#160;Unparseable&#160;date:&#160;"10:00"&#160; &#160;&#160;&#160;&#160;at&#160;org.apache.commons.beanutils.locale.BaseLocaleConverter.convert(BaseLocaleConverter.java:231)&#160; &#160;&#160;&#160;&#160;at&#160;org.apache.commons.beanutils.locale.LocaleConvertUtilsBean.convert(LocaleConvertUtilsBean.java:249)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.data.JRXmlDataSource.convertStringValue(JRXmlDataSource.java:344)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.data.JRXmlDataSource.getFieldValue(JRXmlDataSource.java:317)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:814)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:778)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1417)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)&#160; &#160;&#160;&#160;&#160;at&#160;net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)&#160; &#160;&#160;&#160;&#160;at&#160;it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:970)&#160; &#160;&#160;&#160;&#160;at&#160;java.lang.Thread.run(Unknown&#160;Source)&#160; Caused&#160;by:&#160;java.text.ParseException:&#160;Unparseable&#160;date:&#160;"10:00"&#160; &#160;&#160;&#160;&#160;at&#160;java.text.DateFormat.parse(Unknown&#160;Source)&#160; &#160;&#160;&#160;&#160;at&#160;org.apache.commons.beanutils.locale.converters.DateLocaleConverter.parse(DateLocaleConverter.java:258)&#160; &#160;&#160;&#160;&#160;at&#160;org.apache.commons.beanutils.locale.converters.SqlTimeLocaleConverter.parse(SqlTimeLocaleConverter.java:215)&#160; &#160;&#160;&#160;&#160;at&#160;org.apache.commons.beanutils.locale.BaseLocaleConverter.convert(BaseLocaleConverter.java:225)&#160;

というエラーが出て帳票が出てきません。
time型なのにUnparseable date: "10:00"となっていて、なぜなのかがわかりません。

timeをjava.sql.Timeではなくjava.lang.String型に設定すればエラーは出ません。
ただ、今回はtimeを10:00⇒10時00分という表記にしたいので、iReport側でパターン指定をしなければなりません。そのため、java.sql.Timeにしたいのですが、どうしたらよいでしょうか。

説明がつたなくてもうしわけありません。
よろしくお願いします。


[ メッセージ編集済み 編集者: RKC 編集日時 2008-03-03 15:54 ]
1

スキルアップ/キャリアアップ(JOB@IT)