You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by Mike Burton <mi...@mycosystems.co.uk> on 2010/12/09 18:41:03 UTC

Reports

Hi Folks (mainly Dan),

I'm posting this to the list rather than private email, but feel free to correct my "list etiquette", I'm conscious to balance openness/ wide circulation  against  keeping the list short and on-topic.

To improve my understanding of Isis and to establish new potential features, I'm adopting a "devil's advocate" approach by looking at features I add to my projects and asking "can (or should) Isis do this"

In this way I thought of _reports_, with filtering, sub/totals, and output to PDF/ CDR/ XLS.
The data to report on may be Domain Objects, or joins / query results (perhaps "ViewModels" ie similar to "Views" in database parlance.)

How would Isis approach this?


Best regards

Mike Burton





Re: Reports

Posted by Mohammad Nour El-Din <no...@gmail.com>.
Cool, for the demo demonstration thing, It would be better if you
could record a video that you share and we can watch. I would say to
have a Skype call, but I am not sure about that ?

Wdyt guys. for me I would go for both, that is Mike upload a demo
video and we have a call for a private presentation about it, ideas ?

On Fri, Dec 10, 2010 at 3:07 PM, Mike Burton <mi...@mycosystems.co.uk> wrote:
> Hi Nour,
>
> I could put together a demo of how I do it at present, to give ideas of whether and how Isis could do similar.
>
> My current approach is to use Seam+RichFaces for the UI, and JasperReports for the report, using the paid-for Jasper Assistant to do the report design / layout. For XLS and CSV I create a second report layout that has no headings or totals etc.
> I think JasperReports would be OK to use in Isis from a licensing pov? See http://fecplanner.com/jasperreports/docs/license.html
>
> I'm currently working on an example that would make a good demo. I have finished the UI, I could attach a link to it if you like, or the image itself, what would be best (do we have a standard re attached images in emails?)
>
> Best regards
>
> Mike Burton
>
>
>
>
> On 10 Dec 2010, at 14:20, Mohammad Nour El-Din wrote:
>
>> Hi Mike...
>>
>>   I think this would be great, do you have any code which you can show a demo ?
>>
>> On Thu, Dec 9, 2010 at 5:41 PM, Mike Burton <mi...@mycosystems.co.uk> wrote:
>>> Hi Folks (mainly Dan),
>>>
>>> I'm posting this to the list rather than private email, but feel free to correct my "list etiquette", I'm conscious to balance openness/ wide circulation  against  keeping the list short and on-topic.
>>>
>>> To improve my understanding of Isis and to establish new potential features, I'm adopting a "devil's advocate" approach by looking at features I add to my projects and asking "can (or should) Isis do this"
>>>
>>> In this way I thought of _reports_, with filtering, sub/totals, and output to PDF/ CDR/ XLS.
>>> The data to report on may be Domain Objects, or joins / query results (perhaps "ViewModels" ie similar to "Views" in database parlance.)
>>>
>>> How would Isis approach this?
>>>
>>>
>>> Best regards
>>>
>>> Mike Burton
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Thanks
>> - Mohammad Nour
>>   Author of (WebSphere Application Server Community Edition 2.0 User Guide)
>>   http://www.redbooks.ibm.com/abstracts/sg247585.html
>> - LinkedIn: http://www.linkedin.com/in/mnour
>> - Blog: http://tadabborat.blogspot.com
>> ----
>> "Life is like riding a bicycle. To keep your balance you must keep moving"
>> - Albert Einstein
>>
>> "Writing clean code is what you must do in order to call yourself a
>> professional. There is no reasonable excuse for doing anything less
>> than your best."
>> - Clean Code: A Handbook of Agile Software Craftsmanship
>>
>> "Stay hungry, stay foolish."
>> - Steve Jobs
>
>



-- 
Thanks
- Mohammad Nour
  Author of (WebSphere Application Server Community Edition 2.0 User Guide)
  http://www.redbooks.ibm.com/abstracts/sg247585.html
- LinkedIn: http://www.linkedin.com/in/mnour
- Blog: http://tadabborat.blogspot.com
----
"Life is like riding a bicycle. To keep your balance you must keep moving"
- Albert Einstein

"Writing clean code is what you must do in order to call yourself a
professional. There is no reasonable excuse for doing anything less
than your best."
- Clean Code: A Handbook of Agile Software Craftsmanship

"Stay hungry, stay foolish."
- Steve Jobs

Re: Reports

Posted by Mike Burton <mi...@mycosystems.co.uk>.
Hi Nour,

I could put together a demo of how I do it at present, to give ideas of whether and how Isis could do similar.

My current approach is to use Seam+RichFaces for the UI, and JasperReports for the report, using the paid-for Jasper Assistant to do the report design / layout. For XLS and CSV I create a second report layout that has no headings or totals etc.
I think JasperReports would be OK to use in Isis from a licensing pov? See http://fecplanner.com/jasperreports/docs/license.html

I'm currently working on an example that would make a good demo. I have finished the UI, I could attach a link to it if you like, or the image itself, what would be best (do we have a standard re attached images in emails?)

Best regards

Mike Burton




On 10 Dec 2010, at 14:20, Mohammad Nour El-Din wrote:

> Hi Mike...
> 
>   I think this would be great, do you have any code which you can show a demo ?
> 
> On Thu, Dec 9, 2010 at 5:41 PM, Mike Burton <mi...@mycosystems.co.uk> wrote:
>> Hi Folks (mainly Dan),
>> 
>> I'm posting this to the list rather than private email, but feel free to correct my "list etiquette", I'm conscious to balance openness/ wide circulation  against  keeping the list short and on-topic.
>> 
>> To improve my understanding of Isis and to establish new potential features, I'm adopting a "devil's advocate" approach by looking at features I add to my projects and asking "can (or should) Isis do this"
>> 
>> In this way I thought of _reports_, with filtering, sub/totals, and output to PDF/ CDR/ XLS.
>> The data to report on may be Domain Objects, or joins / query results (perhaps "ViewModels" ie similar to "Views" in database parlance.)
>> 
>> How would Isis approach this?
>> 
>> 
>> Best regards
>> 
>> Mike Burton
>> 
>> 
>> 
>> 
>> 
> 
> 
> 
> -- 
> Thanks
> - Mohammad Nour
>   Author of (WebSphere Application Server Community Edition 2.0 User Guide)
>   http://www.redbooks.ibm.com/abstracts/sg247585.html
> - LinkedIn: http://www.linkedin.com/in/mnour
> - Blog: http://tadabborat.blogspot.com
> ----
> "Life is like riding a bicycle. To keep your balance you must keep moving"
> - Albert Einstein
> 
> "Writing clean code is what you must do in order to call yourself a
> professional. There is no reasonable excuse for doing anything less
> than your best."
> - Clean Code: A Handbook of Agile Software Craftsmanship
> 
> "Stay hungry, stay foolish."
> - Steve Jobs


Re: Reports

Posted by Mohammad Nour El-Din <no...@gmail.com>.
Hi Mike...

   I think this would be great, do you have any code which you can show a demo ?

On Thu, Dec 9, 2010 at 5:41 PM, Mike Burton <mi...@mycosystems.co.uk> wrote:
> Hi Folks (mainly Dan),
>
> I'm posting this to the list rather than private email, but feel free to correct my "list etiquette", I'm conscious to balance openness/ wide circulation  against  keeping the list short and on-topic.
>
> To improve my understanding of Isis and to establish new potential features, I'm adopting a "devil's advocate" approach by looking at features I add to my projects and asking "can (or should) Isis do this"
>
> In this way I thought of _reports_, with filtering, sub/totals, and output to PDF/ CDR/ XLS.
> The data to report on may be Domain Objects, or joins / query results (perhaps "ViewModels" ie similar to "Views" in database parlance.)
>
> How would Isis approach this?
>
>
> Best regards
>
> Mike Burton
>
>
>
>
>



-- 
Thanks
- Mohammad Nour
  Author of (WebSphere Application Server Community Edition 2.0 User Guide)
  http://www.redbooks.ibm.com/abstracts/sg247585.html
- LinkedIn: http://www.linkedin.com/in/mnour
- Blog: http://tadabborat.blogspot.com
----
"Life is like riding a bicycle. To keep your balance you must keep moving"
- Albert Einstein

"Writing clean code is what you must do in order to call yourself a
professional. There is no reasonable excuse for doing anything less
than your best."
- Clean Code: A Handbook of Agile Software Craftsmanship

"Stay hungry, stay foolish."
- Steve Jobs

Re: Reports

Posted by Dan Haywood <dk...@gmail.com>.
On 14/12/2010 21:01, Mike Burton wrote:
> Many thanks Dan,
>
> My Report class does similar to PdfRenderService&  XlsGenerationService etc, I should probably spilt it into separate classes, with adapters for each platform (seam, jsf, servlet...) I could then see generation&  customisation of layouts working in a similar way to Facelets Views, so will give it more thought.
Looks like we're on the same page, interested to see what you come up with.


> Might there be a better name for it than "view model" btw?
I called it "process object" pattern in my book, though that was really 
only half the story since I was talking mostly about input of data for a 
specific use case, eg a wizard.  A name I had come up with for an object 
designed for output was "report object".

But the term "view model" seems to be catching on, at least in the .NET 
world, so I'd be happy to adopt it to instead of either of the above terms.


> Mike
> ( iPhone)
>
>

Re: Reports

Posted by Mike Burton <mi...@mycosystems.co.uk>.
Many thanks Dan,

My Report class does similar to PdfRenderService & XlsGenerationService etc, I should probably spilt it into separate classes, with adapters for each platform (seam, jsf, servlet...) I could then see generation & customisation of layouts working in a similar way to Facelets Views, so will give it more thought. 

Might there be a better name for it than "view model" btw?

Mike
( iPhone)


On 14 Dec 2010, at 19:22, Dan Haywood <dk...@gmail.com> wrote:

> Hi Mike,
> Sorry not to reply sooner.  Thought I'd pick this thread up from your original question.
> 
> On 09/12/2010 17:41, Mike Burton wrote:
>> To improve my understanding of Isis and to establish new potential features, I'm adopting a "devil's advocate" approach by looking at features I add to my projects and asking "can (or should) Isis do this"
>> 
>> In this way I thought of _reports_, with filtering, sub/totals, and output to PDF/ CDR/ XLS.
>> The data to report on may be Domain Objects, or joins / query results (perhaps "ViewModels" ie similar to "Views" in database parlance.)
>> 
>> How would Isis approach this?
> The way we've done this sort of thing on the big Irish project is to either extract information out of the domain objects themselves, or to create a "view model" that aggregates relevant information into a single transient (never persisted) object.  We then hand this raw information off to an injected domain service, which does the actual work of generating the PDF, XLS etc.
> 
> For example, for sending out letters we have a FormCommunication (this is the view model).  This references a Customer, some of the relevant relationships of that Customer (eg spouse/child etc), Benefits and so on.  We then use the XmlSnapshot capability (see either my book or the new applib documentation, chapter 12) to generate XML.  From this we can do whatever: apply XSLT, use Xpath to extract info, etc etc.
> 
> So... is there functionality missing from Isis?  Well, only insofar that'd it'd be nice to have a bunch of these domain services (PdfRenderService, XlsGenerationService etc) available for reuse.  This'd be a nice project for someone to pick up.  I was thinking that eventually these precanned domain services might live under trunk/domain/services (you'll notice a placeholder in the maven modules page on the wiki [1]).
> 
> HTH,
> Dan
> 
> [1] https://cwiki.apache.org/confluence/display/ISIS/MavenModules
> 
>> 
>> Best regards
>> 
>> Mike Burton
>> 
>> 
>> 
>> 
>> 

Re: Reports

Posted by Dan Haywood <dk...@gmail.com>.
Hi Mike,
Sorry not to reply sooner.  Thought I'd pick this thread up from your 
original question.

On 09/12/2010 17:41, Mike Burton wrote:
> To improve my understanding of Isis and to establish new potential features, I'm adopting a "devil's advocate" approach by looking at features I add to my projects and asking "can (or should) Isis do this"
>
> In this way I thought of _reports_, with filtering, sub/totals, and output to PDF/ CDR/ XLS.
> The data to report on may be Domain Objects, or joins / query results (perhaps "ViewModels" ie similar to "Views" in database parlance.)
>
> How would Isis approach this?
The way we've done this sort of thing on the big Irish project is to 
either extract information out of the domain objects themselves, or to 
create a "view model" that aggregates relevant information into a single 
transient (never persisted) object.  We then hand this raw information 
off to an injected domain service, which does the actual work of 
generating the PDF, XLS etc.

For example, for sending out letters we have a FormCommunication (this 
is the view model).  This references a Customer, some of the relevant 
relationships of that Customer (eg spouse/child etc), Benefits and so 
on.  We then use the XmlSnapshot capability (see either my book or the 
new applib documentation, chapter 12) to generate XML.  From this we can 
do whatever: apply XSLT, use Xpath to extract info, etc etc.

So... is there functionality missing from Isis?  Well, only insofar 
that'd it'd be nice to have a bunch of these domain services 
(PdfRenderService, XlsGenerationService etc) available for reuse.  
This'd be a nice project for someone to pick up.  I was thinking that 
eventually these precanned domain services might live under 
trunk/domain/services (you'll notice a placeholder in the maven modules 
page on the wiki [1]).

HTH,
Dan

[1] https://cwiki.apache.org/confluence/display/ISIS/MavenModules

>
> Best regards
>
> Mike Burton
>
>
>
>
>