Ted it would be great if you could document what you did to get this working! 
It is a requirement many of us will have going forward.

David

Sent from my iPad

On 2012-04-04, at 7:24 AM, Theodore Petrosky <[email protected]> wrote:

> I found the jasper version (3.7.4) and downloaded the correct iReport version 
> and voila. I get no errors and it creates the PDF. The only issue is that the 
> report is not using the fonts I selected.
> 
> Is there something I must do to tell JR to use the fonts I selected?
> 
> Ted
> 
> --- On Wed, 4/4/12, Kieran Kelleher <[email protected]> wrote:
> 
>> From: Kieran Kelleher <[email protected]>
>> Subject: Re: JasperReports progress
>> To: "Theodore Petrosky" <[email protected]>
>> Cc: [email protected]
>> Date: Wednesday, April 4, 2012, 6:56 AM
>> Seems to me like D2W integration of
>> long response pages is your issue here and the d2wcontext is
>> getting lost. CCAjaxLongResponsePage knows nothing about D2W
>> for a start, neither the nextpage controllers being used
>> there. The jasper task is a background Callable task that
>> returns a File result. The Jasper example project is not a
>> D2W project. So, at this stage I have to defer to the D2W
>> experts on the list for advice on integrating a background
>> task with a File (to be downloaded result) into a D2W
>> scenario.
>> 
>> 
>> The iReport MUST match the JasperReports version in this
>> project. You have been warned.
>> Look in Libraries directory of this project for the jar
>> named something like jasperreports-X.X.X.jar.
>> That file has the current version number.
>> 
>> Currently Wonder version is at 3.7.4. It will probably stay
>> that way for a while. Jasper has many other dependencies and
>> those dependencies are used across other Wonder projects
>> .... iText for example. So it is not just a case of drop the
>> latest jasper and all its dependencies into Libraries.
>> 
>> 
>> On Apr 3, 2012, at 10:48 PM, Theodore Petrosky wrote:
>> 
>>> here's what we have.
>>> 
>>> in a stock D2W app there is a method in pageWrapper:
>>> 
>>> public String bodyClass() {
>>>     String result = null;
>>>     String pageConfig =
>> (String)d2wContext().valueForKey("pageConfiguration");
>>>     if (pageConfig != null &&
>> pageConfig.length() > 0) {
>>>         result =
>> pageConfig + "Body";
>>>     }
>>>     return result;
>>> }
>>> 
>>> Obviously it is setting the css class for the context.
>> When I return from making the jasper report pdf, the
>> d2wcontect is null and there is the NPE.
>>> 
>>> as a work around, I added to the method that checks the
>> context:
>>> 
>>> if (d2wContext() != null) {
>>>         
>>> NSLog.out.appendln("*** pageWrapper 
>> pageConfiguration  is not  null =  ***** ");
>> 
>>> 
>>>     pageConfig =
>> (String)d2wContext().valueForKey("pageConfiguration");
>>> }
>>> 
>>> I get a very ugly page. now I can figure out why the
>> compiled jasper report is not using any of the fonts that I
>> am specifying.
>>> 
>>> Are there any gotchas with the different versions of
>> iReport and the version of Jasper Reports in wonder?
>>> 
>>> Ted
>>> 
>>> --- On Tue, 4/3/12, Kieran Kelleher <[email protected]>
>> wrote:
>>> 
>>>> From: Kieran Kelleher <[email protected]>
>>>> Subject: Re: JasperReports progress
>>>> To: "Theodore Petrosky" <[email protected]>
>>>> Cc: [email protected]
>>>> Date: Tuesday, April 3, 2012, 6:34 PM
>>>> The NPE is at:
>>>> 
>>>> at
>>>> 
>> com.as.application.ui.components.PageWrapper.bodyClass(PageWrapper.java:27)
>>>> 
>>>> that is your component ..... so why don't you look
>> there to
>>>> see what is causing the NPE?
>>>> 
>>>> On Apr 3, 2012, at 4:00 PM, Theodore Petrosky
>> wrote:
>>>> 
>>>>> So I've made progress but am stumped. I created
>> a
>>>> customcomponent and used a rule to make one of the
>>>> displayPropertyKeys a hyperlink.
>>>>> 
>>>>> I am basically using the JasperReportExample. I
>> created
>>>> a hyperlink as one of the property keys. this will
>> fire off
>>>> the method that starts the jasper reports process:
>>>>> 
>>>>> public WOActionResults printBrief()
>> {   
>>>>      
>>>>>          
>>>>>          Brief
>> theBrief =
>>>> (Brief)object();
>>>>>          
>>>>>         
>>>> Callable<File> reportTask =
>>>> Reports.createBriefReportTask(theBrief);
>>>>>          
>>>>>         
>>>> CCAjaxLongResponsePage nextPage =
>>>> pageWithName(CCAjaxLongResponsePage.class);
>>>>>          
>>>>>          // Push
>> the task
>>>> into the long response page
>>>>>         
>>>> nextPage.setTask(reportTask);
>>>>>          
>>>>>          //
>> Controller for
>>>> handling the Callable result in the long response
>> page
>>>>>         
>>>> FileTaskDownloadController nextPageController =
>> new
>>>> FileTaskDownloadController();
>>>>>          
>>>>>          //
>> Hyperlink text
>>>> on the "Your file is downloaded page" to get back
>> here
>>>>>         
>>>> nextPageController.setReturnLinkText("Reports
>> Menu");
>>>>>          
>>>>>          // The
>> filename
>>>> for the download
>>>>>         
>>>> 
>> nextPageController.setDownloadFileNameForClient("BriefReport.pdf");
>>>>>          
>>>>>         
>>>> 
>> nextPage.setNextPageForResultController(nextPageController);
>>>>>          
>>>>>         
>>>> NSLog.out.appendln("*** nextPage =  ***** " +
>>>> nextPage); 
>>>>> 
>>>>>          
>>>>>          return
>> nextPage;
>>>>>      }
>>>>> 
>>>>> Here is the Reports method:
>>>>> 
>>>>>      public static
>> Callable<File>
>>>> createBriefReportTask(Brief b) {
>>>>>         
>>>>          
>>>>>          String
>>>> reportDescription = "Printed Brief";
>>>>>          
>>>>>         
>>>> HashMap<String, Object> parameters = new
>>>> HashMap<String, Object>();
>>>>>         
>>>> parameters.put("reportDescription",
>> reportDescription);
>>>>>         
>>>> parameters.put("userName", "User From session");
>>>>>      
>>>>>      
>>    EOQualifier
>>>> qualifier = ERXQ.equals(Brief.JOB_NUMBER_KEY,
>>>> b.jobNumber());
>>>>> 
>>>>>         
>>>> ERXFetchSpecification<Brief> fs = new
>>>> 
>> ERXFetchSpecification<Brief>(Brief.ENTITY_NAME,
>>>> qualifier, null);
>>>>> 
>>>>>         
>>>> ERJRFetchSpecificationReportTask reportTask = new
>>>> ERJRFetchSpecificationReportTask(fs,
>>>> jasperCompiledReportFileName, parameters);
>>>>>          
>>>>>          return
>>>> reportTask;
>>>>> 
>>>>>      }
>>>>> 
>>>>> indeed it goes out and starts to create the
>> pdf. I see
>>>> the the pdf in
>>>> 
>> /var/folders/2d/23408oihsdvh08r23/T/Brief3234987239872398472.pdf
>>>>> 
>>>>> However, just when DownloadIsComplete's
>>>> appendToResponse method is called I get errors:
>>>>> 
>>>>> 
>>>>> Apr 03 15:33:34 ASBriefsD2W[57285] WARN 
>>>> NSLog  -
>>>> 
>> <com.webobjects.appserver._private.WOComponentRequestHandler>:
>>>> Exception occurred while handling request:
>>>>> java.lang.NullPointerException
>>>>> [2012-4-3 15:33:34 EDT] <WorkerThread0>
>>>> java.lang.NullPointerException
>>>>>      at
>>>> 
>> com.as.application.ui.components.PageWrapper.bodyClass(PageWrapper.java:27)
>>>>>      at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>>>>      at
>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>      at
>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>      at
>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>>      at
>>>> 
>> com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
>>>>>      at
>>>> 
>> com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
>>>>>      at
>>>> 
>> com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
>>>>>      at
>>>> 
>> com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
>>>>>      at
>>>> 
>> com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
>>>>>      at
>>>> 
>> com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
>>>>>      at
>>>> 
>> com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
>>>>>      at
>>>> 
>> com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
>>>>>      at
>>>> 
>> com.webobjects.appserver._private.WOHTMLDynamicElement.stringValueInContext(WOHTMLDynamicElement.java:537)
>>>>>      at
>>>> 
>> com.webobjects.appserver._private.WOHTMLDynamicElement.classInContext(WOHTMLDynamicElement.java:542)
>>>>>      at
>>>> 
>> com.webobjects.appserver._private.WOHTMLDynamicElement._appendClassAndIdToResponse(WOHTMLDynamicElement.java:518)
>>>>> 
>>>>> I can provide more but I have to start
>> somewhere. 
>>>>> 
>>>>> I don't know  what else to says other
>> than
>>>> 'HELP'!!! i'm drowning.
>>>>> 
>>>>> Ted
>>>>> 
>>>>> 
>>>>> 
>> _______________________________________________
>>>>> Do not post admin requests to the list. They
>> will be
>>>> ignored.
>>>>> Webobjects-dev mailing list     
>> ([email protected])
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com
>>>>> 
>>>>> This email sent to [email protected]
>>>> 
>>>> 
>> 
>> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
> 
> This email sent to [email protected]
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to