Reporting Options for Lucee

Obviously the old cfrs created by coldfusion aren’t supported.
What alternatives are available?
I cant use pages in html rendered to pdf, I need a proper reporting tool for grouping and complex banding…

I know the old cf report builder was based on jasper.

JasperReports is still alive and doing great :slight_smile:

You have two options there: standalone server or embedded Java library. I’ve personally had a lot of issues using JasperReports library in Lucee (mostly related to conflicting jars in Lucee 4.5), but the server was easy to implement and use.

With jasper;
I need to run a report by schedule, save to a temp path and attach to an email.

Can I Do this with the jasper library in CFML then email the PDF?
or do I need server?

You can do that with either solution…

the server will do that out of the box. You can login to the interface,
run the adhoc query builder and generate a pdf in like 15min. Then attach
a schedule.

Using the library, you’d have to build that. (Java createobject stuff, use
cfquery and pass a resultset or create a jdbc connection yourself, load the
jrxml, fill the report, run through the pdf exporter, pull the file and
pass to cfmail)

Just depends on how much work you want to do.

Either one will also accept jrxmls from JasperStudio (their report designer

seems no point really in all the work if the server does the job, the user wont know any difference?
thanks so much for this…

Just to follow up on this,
Is it reasonably doable to create complex reports in HTML using CFquery, grouping, query of queries etc.
Could a similar level of functionality be achieved as using something like report builder etc.?
The cfdocument to render?

e Sure… You have all the ability to write whatever code you want, to
count and group data however you want, and display it however you want in
cfdocument. But you have to write it.

The vast majority of reports in our system are cfdocument or pd4ml based.

The only time something like JasperReports is more useful is

  1. If the report is huge. (Like 3000 pages)
  2. The report will take a long time to generate data (like 20 minutes or
  3. If you need a pixel-perfect output. (More and more rare these days)

And for JasperReportsServer:
5) You don’t want to write code. You want an already built UI, that allows
users to write ad-hoc queries based on their own SQL, table joins, etc,
Reorder their own columns, rename things, create groupings, etc.

You can do way MORE in HTML+PDF - you could pull in query data from
multiple datasources, convert/aggregate them into structures, completely
rebuild the dataset into something else, wind and unwind XML/WDDX/JSON data
structures into columns - whatever. You don’t even have to loop over
cfqueries in CF. You could loop over an array, or pull data from an
uploaded CSV , or whatever.

Something like JR is going to require a dataset. A primary dataset you can
loop over. In general, no supplementary cfqueries or subqueries to loop
over. If you need to do something with related data - it’s a subreport,
which is a separate query, that gets run once per row.

If your data lends itself to a cross-tab - JR can build one of those
easily. But you can do it in HTML too. The JR stuff is going to be
limited to displaying an aggregate in a cell, HTML will not.

Some things are easier in JR - things like repeating the column headers
just work - in HTML you have to create a header section and hardcode your
column lengths. It all depends on what problem you’re trying to solve, how
much code you want to write… it’s all a design decision.



great answer… very helpful so much appreciated.