Re: JasperReport LocalDate question
Re: JasperReport LocalDate question
- Subject: Re: JasperReport LocalDate question
- From: Kieran Kelleher <email@hidden>
- Date: Mon, 31 Jan 2011 14:14:42 -0500
On Jan 31, 2011, at 1:58 PM, Theodore Petrosky wrote:
> Kieran,
>
> Thank you for all your hard work on JasperReports. I am sure the process is time consuming.
>
> So if I understand the sequence from the video, I put both javafoundation.jar and joda-time-1.6.2.jar in the folder with iReport and link to them with the preference/class path preference.
No. The video links javafoundation as an example to show how to make NSTimestamp class available in iReport designer. You just need to follow the same procedure and link joda-time into iReport classpath to make your LocalDate class available in iReport.
>
> Will the appropriate class types show up in the Property => Field Class? I am able to type in the field name manually however no classes show in the list (other than the defaults).
IIRC, only the built-in class types show up in the list. Just type in the fully qualified class name .... org.jodatime.Whatever into the Field class or Expression class. When you compile the template in iReport, you will get a compilation error if it cannot find the class in the classpath.
>
> and what about the Text Field? I can not change the Expression Class to match the Field's class.
>
> I hope you have time to help me with this.
>
> Ted
>
>
>
> --- On Mon, 1/31/11, Kieran Kelleher <email@hidden> wrote:
>
>> From: Kieran Kelleher <email@hidden>
>> Subject: Re: JasperReport LocalDate question
>> To: "Theodore Petrosky" <email@hidden>
>> Cc: "Paul Hoadley" <email@hidden>, "WebObjects-Dev Mailing List List" <email@hidden>
>> Date: Monday, January 31, 2011, 8:13 AM
>> JR is looking for a java.util.Date
>> because in the iReport template you have defined a field as
>> a java.util.Date.
>>
>> First, sorry, but the API compatible example is not yet
>> committed to Wonder. Long story short, I have been too busy
>> with my work, but it is still on my TO DO list and I
>> am feeling anxious (aka., motivated) to get it done as soon
>> as I get a chance which may be sooner rather than later.
>> Meanwhile the original pre-Wonder framework and working
>> example are still available in the http://montreal2010.googlecode.com/svn/trunk/ SVN
>> repository and can be checked out into a separate workspace
>> for playing with and learning.
>>
>>
>> OK, now back to your problem. Your problem is easily
>> solvable by using the Joda class for your field definition
>> inside your iReport template.
>>
>> To find out how, just go to the JasperReports video at
>> about 39 minutes in and listen to the discussion about
>> NSTimestamp, which iReport knows nothing about either. In
>> the video, it shows you how to add apple Foundation classes
>> to iReports classpath so that you can use NSTimestamp in
>> your report template as a field class definition. Use the
>> same procedure to add the JodaTime jar to the iReport
>> classpath and thenuse the LocalDate class for the 'Field
>> Class' in the field Properties settings in iReport.
>>
>> To help you get concepts, note also the discussion about
>> BigDecimal and class cast exception around 42:15 on the
>> video timeline.
>>
>> HTH, Kieran
>>
>> PS. The fact that we *don't have to* use NSTimestamp and
>> that we can use java.util.Date as a field class type insdie
>> iReport is because NSTimestamp EXTENDS java.util.Date.
>>
>>
>> On Jan 31, 2011, at 6:57 AM, Theodore Petrosky wrote:
>>
>>> Paul,
>>>
>>> Thank you for looking at my attempts.
>>>
>>> I am using the JasperReports example that Kieran
>> Kelleher created for WOWODC 2010 as my starting point. It is
>> helpful not only for the beginning steps for integrating JR
>> but figuring out iReport to create the report templates.
>>>
>>> He mentions in the presentation that there will be a
>> fuller example committed to Wonder and perhaps this issue is
>> already addressed. However, in the meantime, I will continue
>> reading the limited documentation on JasperReports and
>> follow the code to see if I can figure out why I get this
>> error.
>>>
>>> Of course if I just forget about the date resolution
>> issue and use timestamps the issue goes away, but I have to
>> deal with my app refusing to work when I switch platforms.
>> So I could spend the time learning the methods of getting
>> around the Java dateTime issues.
>>>
>>> Thanks again.
>>>
>>> Ted
>>>
>>>
>>> --- On Mon, 1/31/11, Paul Hoadley <email@hidden>
>> wrote:
>>>
>>>> From: Paul Hoadley <email@hidden>
>>>> Subject: Re: JasperReport LocalDate question
>>>> To: "Theodore Petrosky" <email@hidden>
>>>> Cc: "WebObjects-Dev Mailing List List" <email@hidden>
>>>> Date: Monday, January 31, 2011, 3:52 AM
>>>> On 31/01/2011, at 12:01 AM, Theodore
>>>> Petrosky wrote:
>>>>
>>>>> So my attempt is to add into LocalDate the
>> extends
>>>> like this:
>>>>>
>>>>> public class LocalDate extends
>> java.util.Date
>>>> implements ReadablePartial,
>> Comparable<Object>
>>>>> {
>>>>>
>>>>> }
>>>>
>>>> I don't think you need or want to do this. I
>> don't
>>>> think your LocalDate wrapper (which, for those who
>> haven't
>>>> looked at Henrique's example, just extends
>> java.lang.Object,
>>>> implements ReadablePartial,
>> Comparable<Object>, and
>>>> contains a private field of type
>> org.joda.time.LocalDate)
>>>> should be a subclass of Date, which is a
>> full-resolution
>>>> timestamp type.
>>>>
>>>>> but then there is an error:
>>>>>
>>>>> - The interface Comparable cannot be
>> implemented more
>>>> than once with different arguments:
>> Comparable<Date>
>>>> and
>>>>>
>>>> Comparable<Object>
>>>>>
>>>>> so I checked the docs on java.util.Date:
>>>>>
>>>>> public class Date
>>>>> extends Object
>>>>> implements Serializable, Cloneable,
>>>> Comparable<Date>
>>>>>
>>>>> so he implements Comparable<Date> but
>> LocalDate
>>>> had Comparable<Object>.
>>>>>
>>>>> I hate this stuff. So I deleted Comparable
>> from
>>>> LocalDate and now there is an error with a
>> method:
>>>>>
>>>>> Name clash: The method compareTo(Object) of
>> type
>>>> LocalDate has the same erasure as compareTo(T) of
>> type
>>>> Comparable<T> but does
>>>>> not override it
>>>>>
>>>>> I made the executive decision to comment out
>> the
>>>> compareTo() method in LocalDate.
>>>>>
>>>>> And to my complete surprise, it works.
>>>>
>>>> Unfortunately, that's likely to be just some good
>>>> luck. It may well work in this case, but it
>> doesn't
>>>> seem right to me (or necessary). I would go
>> back and
>>>> ask why JasperReports is _expecting_ to be able to
>> cast some
>>>> value to a Date.
>>>>
>>>>
>>>> --
>>>> Paul.
>>>>
>>>> http://logicsquad.net/
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be
>> ignored.
>>> Webobjects-dev mailing list (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>>
>
>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden