Forgot your password?
typodupeerror
Technology

Reporting Functionality for Web Applications? 164

Posted by Cliff
from the pretty-pages-for-PHBs dept.
Geoffrey Wiseman asks: "I'm considering my options for reporting functionality in a web application. Part of the problem stems from the fact that I'm not aware of a good solution for reporting on any web platform. It may well exist, but I haven't seen one yet. So let's start with the general questions first: I need the ability to build reports from data. The formatting has to be pretty solid, including the ability to make use of appropriate fonts and page breaks. Further, I'll likely need to do some batch reporting, so it has to be able to generate, say, a few hundred pages of reports, with formatting, in a reasonable time frame. That makes HTML and browser printing a little ... underpowered."

"It's not vital that the reports be printed from the client machine (as opposed to the servers), but that would be preferable, for flexibility. At the very least, the person initiating the reporting should be able to choose an appropriate network printer on the server's network, but ideally a client network printer would be better.

Of course it would be nice if the reports were relatively easy to build; I would prefer not to have to write a ton of source to gather and format data. I'd prefer not to have to write any, really. The kind of drag-and-drop report builders you get with something like Microsoft Access would be nice, although it's not a requirement.

First of all, what are the thoughts and solutions on this general problem space? What tools can I make use of to really do this kind of thing well in a web application space.

Secondly, considering that I'd prefer to make use of J2EE for the project, what are some of my options for integration with J2EE. It would be nice if the reporting software could integrate with the object model rather than the database, so that I could re-use business logic. Not necessarily critical, but definitely a nice-to-have feature."

This discussion has been archived. No new comments can be posted.

Reporting Functionality for Web Applications?

Comments Filter:
  • by Anonymous Coward
    Having faced a similar situation myself, I ended up using PDFlib [pdflib.com]. It's a nice high level API for generating PDFs on the fly. Now my clients can get printer quality reports generated for them dynamically off the web. I used it in conjunction with Perl. But it supports bindings to other languages (including Java) as well. It's not free, but it's quite affordable compared to most other PDF generation software out there.
  • by Anonymous Coward
    Have a look at iText [lowagie.com] for generating pdf in a Java environment. It isn't going to give you the 'drag and drop' report building, but it seems to be one of the most capable pdf libraries for Java.
  • by Anonymous Coward
    Definatly Crystap reports. I have used it for reporting off of text files , fox pro databases, SQL, custom databases, etc... Easy to use, lot of re-usuability for search and reporting functions, fully automated if you do it right, able to publish to web, on, and on , and on....... Hey, can you help me out and tell me if there is a program out there to copy files.
  • Welcome to our planet. You'll find the grass green, the sky blue and the clouds white n fluffy. Rainfall varies dependent on location and most of the natives are friendly. You'll find our reality a little different than what your use to, deal with it.
    I hope you enjoy you stay on our little blue world.
  • by Anonymous Coward
    I've had extensive experience with web-based reporting solutions (implemented Crystal as part of a major CRM package and did extensive research on all the others, *nix and MS based). Just because you're doing web reporting doesn't mean you have to use HTML. And web-based reporting it's a helluva easy distribution solution. Crystal is probably your only good bet. Their licensing is steep if you have a need to go beyond their basic license, but it scales well and has support for just about every database solution you can think of.

    You can implement two basic kinds of reports. Pre-generated report files, a link to which opens Crystal's web-based viewer(Java, ActiveX or HTML). and custom-data reports which allow you to modify the data displayed based on input from the web page (on-they-fly modification, replaccement of the SQL) as well as reports (the format of which) is generated on the fly. You can also (from the web) export(in just about any format you could want) and print. All formatting, etc. is preserved(when not using the HTML viewer).

    And of course, Crystal Reports generation creation tool for Reports is very nice. better than any other I've seen and the only one useable by non-tech savvy people. Of course, if you're wedded to a *nix-based solution, you're pretty much left to code your own, and god forbid someone not of your programming staff needs to generate the report formatting.

  • by Anonymous Coward
    What really scares me about this question is the request that the solution somehow use J2EE. The merits of J2EE aside this statement tells me that the person is more interested in finding a interesting problem for this exciting new solution that they have. This backassward approach to IT is what gets so many projects into trouble. The analogy is buying the biggest, baddest hammer in the world cause all of the market reports and trade publications say it is the best hammer to be had bar none, and then trying to assemble electronics with it. If you want to solve this problem 1) Define the problem 2) Select a possible solution 3) Examine the solution to see if it is reasonable in your enviroment 4) Repeat steps 2 and 3 as necessary 5) Confirm that the problem is still the same as before, if not repeat steps 1 - 5 6) Select an apporpriate technological solution to the problem 7) Confirm that the problem is still the same as before, repeats steps 1 - 7 if not 8) Implement the solution. 9 Confirm your implementation solves the problem that you originally were trying to solve. If not check to make sure that problem stil exists and if so, and you have not solved it repeat steps 1-8
  • by Anonymous Coward on Wednesday May 02, 2001 @11:41AM (#250503)
    Please read this post in Pakistani accent.

    First of all, all of the solutions being mentioned here are useless if you need to genrate more than a few hundred pages per report. Apache FOP for instance explodes at 60-100 pages depending on content (Any bad xml/xsl transform tool will do that to you, its called running out of heap by way of using xsl on a huge xml document). If money is no object, I suggest you go for Actuate (http://www.actuate.com/) They have the best reporting server solution out there, it allows complete formatting control with a GUI builder, support for a VBScript like language in addition to Java and extremely neat control over data sources. From my experience extremely scalable too. I generate over 3 gigabytes of PDF reports every night for hundreds of clients in addition to an interactive report generation system that creates PDF output on the fly.

    If money is an issue (what!! you cant afford a $80K/Processor 8 Processor recommended solution? what are you working for? a .gone?), you need to stick to your code monkeying skills, PDF format is documented very nicely by Adobe, its pretty straight forward. Write a C/C++ deamon that listens for messages on a queuing server and generates PDF files on the fly based on message queue parameters, records its activity in a table and listens to the queue again. This works for both interactive and batch mode operations, your servlets or cgi or php or perl scripts will look up the database for finsihed reports and their PDF locations on the file server, stream it over to the browser as is. As for queuing solution you can use MSMQ, MQSeries or even a home grown database base queueing engine which won't be asynchronous but will do the job if you create a thread that checks a queue table in a dbms every so often and does the trick.

    Hope I helped you solve the problem
    If not, give me a shout at optimizer@hotpotatoesmail.com and I will be happy to assist you.
    You will need to be able to wire money to Pakistan :) To email me, remove potatoes from my address.

    Faraz Babar

  • There was a company at linux world that had had a reporting tool that did just this. They were across from the Zeus booth and some remote windows access software company. Between them and the bordland pavallion. I forgot what they were called though, sorry. If i think of it, ill make another post.
  • Not to mention Oracle Reports [oracle.com].
  • I looked into this and for a small company actuate is way out of budget. Its been a while but I believe the cost was well over 10K per cpu. I just remember that purchasing that product would have cost more than the development of the rest of the project.

    "What are the three words guaranteed to humiliate men everywhere?
  • If you don't mind throwing combatibility with pre-6 netscape browsers and pre-5 ie browsers out the window, it's quite possible.

    Okay, I know I'm plugging my own resume, but I found that I could do CSS tricks with http://www.math.jhu.edu/~martind/resume.html [jhu.edu] to make certain that my resume printed just the way I wanted it to from ie 5.x browsers (which were the most common in the HR departments I was targetting). Remember that a resume's purpose is to get you past the HR drones; they will either print it out and hand (or fax) it to the person who'd you would actually be working for, or ignore it entirely. In a few very rare cases, I've seen HR departments clued enough to send resumes as email attachments, but not before first converting them to Word and trashing all the formatting anyway. Therefore, ie5-specific CSS in a resume isn't that big a deal.

    Not only that, but it wasn't hard to include the necessary extra xml-foo so that office 2000 would load the html as a word doc. with all the borders, etc. set correctly. This made keeping the html, pdf, plain text, and doc formats of my resume in sync quite easy - I'd update the html from anywhere, and use lynx -dump to give me the plain text. I'd then walk over to a windows machine that had the full office 2000 suite on it, and load that page up in ie5. Print to file from ie5 to generate postscript, and also load up http://math.jhu.edu/~martind/resume2k.doc [jhu.edu] in Word (that file's just a symbolic link to the html). Save the Word doc. in office 95 format and ftp/scp the postscript and '95 doc format back to the server. Then use ps2pdf on the server to turn the postscript version into pdf.

    It got a bit more complicated than that for a while - inserting pdfmark stuff into the postscript so that hyperlinks worked in the pdf file - but basically, that's it. (Maintenance of the multiple separate versions has lagged since I landed a job back in August - I only generated the most recent files a few months ago to get recruiters off my back)

  • This tool can generate report in html, text, pdf, excel, rtf and other formats. I use it for a big intranet project and it works perfectly.

  • Welcome to MY planet, jackass. The trees on my planet sink CO2, produce O2, provide habitat directly or indirectly for most known land animal species, hold the soil in place, and generally keep the ecosystem humming along. Chopping them up for reports about some business, which will have no lasting value for humanity, is not an appropriate use of trees.
  • Hey, I'm trying to do my part. My computer averages 10W power consumption, which I believe to be on the left tail of the power consumption histogram. You're right about the energy: the US uses way too much energy, and it generates it in too-dirty ways. I'm all for nuclear fission, thermal solar, and wind. I abhor coal, oil, and natural gas generation. But, I don't currently have the billions of dollars, nor the political pull required to get that stuff changed. What I can do is advocate paperless reports.

    I'd like to see the numbers on it, since you are interested. How much fuel is required to haul a tree to the paper mill? Produce the paper? Ship the paper to retail and the to the customer? Then what, is the above poster going to pay fedex to burn massive amounts of jet fuel to overnight the precious report somewhere?

    This useless waste of energy has to stop. Check out today's SF Chronicle: Californians use 15 megawatts of power just to stir the water in their fucking swimming pools [sfgate.com]. WHAT THE FUCK ARE WE DOING WASTING SO MUCH ENERGY?!?!

  • by Jeffrey Baker (6191) on Wednesday May 02, 2001 @10:41AM (#250511)
    Sounds like you want Actuate e.Reporting Suite [actuate.com]. Hopefully in the future you will realize that 1 second spent with Google is equivalent to 1000 Ask Slashdot posts.

    Anyway my personal opinion is that HTML is wrong wrong wrong for this stuff. Generate TeX output and convert to postscript, or *roff, or generate postscript directly. If the target is dead trees you should use dead-tree-era technology.

  • Fortunately, and it seems you don't quite realize this, trees are an incredibly renewable resource. We're not going to run out anytime soon...
  • Use SVG (Scaleable Vector Graphics) which is a W3C proposed standard. The format is completely XML based. You can generate complex reports dynamically without juggling around with images.
    1. The font support is great.
    2. The images scale well and printouts are good. This is particularly useful when the reports span multiple pages horizontally or vertically.
    3. Loads quickly
    4. Easy to learn (atleast in my opinion)
    5. Great support for dynamic scripting (use the languages that you are already familiar with - Javascript). Stuff like hiding/showing some details can therefore be easily scripted into the report. This is useful when the reports contain a lot of data and you would like to give the user the option of removing some screen clutter.
    6. The data for the images is stored completely in XML and therefore exporting data from whatever database into XML format for display in reports should be easy.
    7. Different reports can be generated by using different SVG files getting data from the very same set of XML files.

  • We use the output buffering feature available in PHP 4 and pdfLaTeX for this Task (especially the LaTeX longtable style).

    It is not to fast (~1-2 pages a second),
    but for reports this should be fast enught IMHO.

    Documentation on this is right now only available in German, but if you push me hard enough i'll translate it ...
  • PDFlib [pdflib.com] is great. It's a somewhat-free library for rendering PDF on the fly. Plus Ghostscript can render PDF to PNG or a printer. PDF already has all the printer specific handling built in, such as page breaks, etc.

    Granted, you'll have to write a renderer. However, HTML does not have enough expressiveness to deal with page break situations, and other complications of paged printing anyhow.

  • PHP 4 does include PDF functions.

    http://www.php.net/manual/en/ref.pdf.php

    Or, its seems that people always forget that you can write postscript files by hand. : )
  • Try http://www.jinfonet.com/

    I had a similar requirement about 18 months ago. I checked out Jinfonet and it seemed pretty nice. I had no budget so I instead used PHP, and LaTeX and some TeX to PDF converter. It was nice since I could offer the option to output to a printer, view a couple pages in HTML, view the whole thing in PDF or export to CSV. I used the largetable macro in LaTeX I think. The output was quite nice but I didn't have time to mess with formatting very much. It wouldn't have been too hard to create several templates. Now I'm stuck with an NT system using Crystal Reports. It's quite nice to design in but not as fast or fun as before.
  • A php script can read files on the server (or submitted by the client,) massage them into the appropriate format.

    If you use XML you can really go to town on the data, and ignore what you don't need, generate a PDF (or HTML with XSLT but that's less transportable and controling page formatting is more explicit [you'll have to do that work yourself.])

    The client web browser can then load the HTML or the PDF and use Acrobat to view & print to their heart's content.
  • Actually, I'm a federal government employee. The only reason people want to spit out gobs of paper is to *prevent* people from attempting to read it. For that, you hardly need to produce actual reports - and especially not pretty ones (the more bland and boring, the better for that purpose). While it might promote job security, it's a lousy way to actually accomplish anything, though.
  • by James Ojaste (12446) on Wednesday May 02, 2001 @10:57AM (#250520) Homepage
    There are a few solutions out there for generating web-viewable reports but I don't particularly like them (Crystal reports has caused a number of headaches around here in particular).

    You need fonts and page breaks? Just about anything other than raw text can do that (yes, even HTML). I use HTML/CSS for all my reports (ranging from crosstabs to listings to canned documents) - how you generate it is wide open.

    Hundreds of pages worth of reports at once? If your reports are that large, you probably don't even want to deliver it to a browser. Some sort of server-side report queue would seem to be in order (ie the user requests a report and if they need to download a copy they come back and pick it up later when it's done). If you're printing from the server, just pick and choose your tech.

    Drag-and-drop? Well, I far prefer building reports in HTML than in something like Crystal (which is what Access uses, by the way) - I hate mucking around with field alignments/sizes etc. I find that things go a lot quicker for me with HTML (CSS helps tremendously).

    I'd really recommend reviewing your requirements. Is *anybody* really going to read hundreds of pages of reports? Perhaps you should be building a more flexible query tool so that your users can get the specific data they want without having to wade through mammoth wads of paper?

  • I have a handy library that can convert XML documents to HTML, text, Postscript, and PDF including inline PHP and data processing. Currently is implemented in PHP and I'm trying to port it to Python too. Is currently functional and I'm working on a newer version that is easier to extend. :)
  • XML is definitely the way to go. The XSLT stylesheets that you could generate can take you very far. Make sure you look into XSL:FO.

    In particular, take a look at the XML Apache Project's FOP [apache.org].

    FOP, which is written in Java, will transform your XML data into PDF format.
  • by platypus (18156) on Wednesday May 02, 2001 @11:43AM (#250523) Homepage
    open source and very nice
    www.reportlab.com [reportlab.com]
    Check the demos.
    Really, it's cool
  • Why not use 9iAS with Forms/Reports 6i. Not only can you do full reporting but you can also use the Discover Viewr for adhoc querying, data mining and reporting as well. Reports 6i gives output in just about any format you wish, and ofcourse you could always use the XML features as well.

  • I appreciate your zeal to blast everyone into the 21st century, but there are still many entities that cannot think outside of the "dead trees in a metal box" box.

    Who, you ask? Dealing substantially with the public sector, I would have to say government agencies. They still view computers as a way to streamline form and report generation, provided that they even use computers at all. To boot, government is just now getting the "it's gotta be on the web" bug. Their bottom line is "...and if it doesn't come in triplicate so that I can stuff it into a filing cabinet, I can't use it."

  • Then use hemp paper. Tree based paper has been around for less than a hundred years.
  • The company I interned at last summer, Dynalivery [dynalivery.com], focuses on web based reporting. Their main product is an enhancement to crystal reports called parallel crystal which makes it into a "web application." Not sure if their product is exactly what you're looking for, and I need to study for finals instead of actually reading your slashdot post fully, but I thought I'd suggest it.

    Good luck,

    Mike Hunter
  • I don't know anything about seagate's web product, so I can't say. A big selling point of the Parallel crystal stuff is the sweet PDF generation that it does, which seagate can't come close to matching.
  • As far as I know, you cannot control page breaks via HTML inside a web browser.

    You can kind of cheat with table row counts and style codes. In plain English, if the number of rows so far is greater than, say, 50, put in STYLE=page-break-before:always. v4 & above browsers honor it, if I remember right.
  • Computers are everywhere; if your office is set up reasonably well

    Oh, I wish. We have a similar setup to what the original poster has: we have to generate huge reports for our clients, most of which aren't able to get high-speed internet access. (We scan comment cards for hotels, restaurants, etc.) They want consolidated reports with color graphs explaining their customer satisfaction trends. We make all of the reports available on the internet, but people just don't want to see them that way. They don't have the time to download 100 pages worth of reports with color graphs over a 33.6.
  • I've got a group in-house that does almost exactly what you're talking about. There's a lot of people on here spewing off about Crystal and PDF's, so let me give you more details on what worked for us.

    We have a few large (2-5gb) databases that we have to report on. Most reports are generated on a periodic basis, but we've got a few that have to be done on-the-fly when the user requests them. The formatting has to be flawless, and we print out reports on color lasers as well as make them available for download.

    The solution (picked long before I came on board) was Crystal Reports. Whether you like Windows-based development tools or not, you have to admit that it's easier to hire a Crystal person off the street than it is to hire & train for any other report writer.

    To give you some idea, we have a dedicated Crystal person on staff, and several machines that churn out Crystal Reports full time. (We keep five Tektronix color lasers busy for most of the day.)

    The same Crystal Report files are used whether the report is going online or being printed. In fact, we print to PDF format, and save the PDF's. Before you get one of our report packets in the mail (or FedEx or whatever), you can view the same report online in your web browser, and it prints out perfectly. Plus, there's no CPU/database load on our servers - each report is run once, and stored on hard drive.

    For the reports that are done on-the-fly, we use the Crystal Reports viewers. There's several, a Netscape plugin, ActiveX plugin, and a Java plugin. You have to redirect your web users to the right page for your browser, of course. But for these on-the-fly reports, PDF isn't involved. They can print using the Crystal plugin, and page breaks and everything work fine.

    I understand why a lot of people on here throw out solutions like XML, but my experience has been that spending more money on the famously well-used tool usually means spending a little less money on the hiring end later. When this becomes a big business (and aren't you planning for that?) you want to be able to hire quickly, and nothing's more widely used than Crystal Reports.

    If you've got any questions about the setup, you can e-mail me.
  • Right before I left my last gig which was generating financial reports in html, I pointed the folks towards the Spreadsheet::WriteExcel module.

    The clients had been used to getting Excel formatted reports for years, and many of the reports needed colors. This let them dynamically do all that from a web page, but still have excel to manipulate the data. May not be what you were looking for, but it was pretty neat. Plus the output from WriteExcel looks great in Gnumeric as well.
  • Use Python and the PIDDLE graphics API. It can write very easily to PDF files, and it has nifty compression so an average page is around 1k - that makes 100-page documents reasonable. Furthermore, if you want to print to a network printer, you just change one parameter in PIDDLE and it will output PostScript instead of PDF, which you can then send to the nearest network printer. You can get the raw data using any of Python's numerous database APIs.
    I've done some very impressive stuff using this combination, and Python is so easy to learn it hardly feels like programming.
  • I haven't used LaTeX, but I can agree with you that a text based solution is quite workable.

    I've used text based reports in a variety of enviornments, with, and without ReportGenerators in the sequence and straight text is always flexable. You can readily convert it to a format which is what the end users want. (PDF is very nice for 'laser like' output. It looks exactly like it will print. The viewer is easily integrated into the browser, and the viewer is free. (major bonus if the website is publicly accessable).

  • If you use Python, you might want to have a look at ReportLab [reportlab.com], a nice open-source PDF generation library.
  • Printing from a webapplication can be a problem. At least it was for me; I failed to find a reasonable way to print from MSIE without the stupid page headers. Another problem is that you cannot predict anything about the formatting on the server-side (unless it's plain text). So you will most likely need a client-side application (or print from the webserver).

    I solved part of this problem by creating a new MIME-type for the page to print and then create a DOS-app which does `type %1 > lpt1:' which I associated with the MIME-type/extension.

    This is not a very good solution. Maybe someone has expierience with this? Is it possible to use a Java-applet or something like that?
  • you might want to look into a latex/php/xxsql combo. you could construct a template like class file and then yank the info out of a database run latex on it, convert the output to postscript and dump it to a printer. the interface could be done in php. using java you could setup some type of drag and drop thing to tell it what format the data should be in. it would take quit a bit of work, though

    use LaTeX? want an online reference manager that
  • So you think Slashdot needs a database of answers to questions which have easy answers?


    I think questions that could very easily be solved with a mild application of google don't belong here.
  • For WebObjects [apple.com] I'd say the prefered solution is ReportMill [reportmill.com]. It's what we're using...
    (For what it's worth, WO 5.0 (due any time) is supposed to be Java only)
  • I have used Crystal Info (now Seagate) a fair amount and it is a nice reporting platform. It requires an NT server to run on, but it allows you to schedule reports, balance reporting over multiple servers, design reports easily, build cubes, etc.

    It can use many data sources, including flat files, web server logs are catered for, Exchange mailboxes, as well as the usual ODBC.

    It has a web interface which allows you to view reports, it can e-mail reports to users, you can set up security on reports, it can produce reports in HTML and Word format too.
    They even gave away a 50 user license of version 7 for free. Not sure if it's still available, but if you can find a copy of their free CDROM you'd be set.
  • There are many solutions out there to do web based reporting - from homebrew to megabuck applications. Here is one of latter:

    Actuate's e.Reporting Suite [acutate.com]

    This system is something the company I currently work for is using for reporting. It consists mainly of three parts:

    1) The report server
    2) The development IDE (Workbench)
    3) The report viewer

    The report server is what actually runs the report - it interfaces with the web server you aare using to parse reporting requests, then runs the report, builds a DHTML page with the report result, and sends it back through the web server to be delivered to the client. The reports can be downloaded/printed by the client as PDF files (we are working on a way of making it a single step process - harder than it sounds). In some way it is possible to print from the server to a networked printer (this is an area I am not too familiar with).

    The development IDE is where you create the reports - you can use simple wizard functions to create "ad-hoc" type reports relatively quickly, then you can flesh them out further with code (using a customized form of VB script), to allow a ton of functionality, from simple linking/drill down reporting, to custom reports that change depending on what data is wanted (I have created reports using it that look the same, but I didn't want to write two seperate reports, so I made one report that changes based upon a parameter passed into the report from the input form/URL). The IDE is drag-and-drop simplicity, very much like developing under VB (it is like VB for reporting) - drag text controls, size them, set properties, double-click and add custom code, then compile and run!

    Finally, the report viewer is an application that allows the running of the reports without using a server - it is basically a desktop based viewer.

    The downsides to all of this? Windows-based, and expensive. But overall I think it is a great product - it is almost possible to create a website based on nothing but reports. One could do the same using PERL or Python, or some other language (like Java, even C/C++) - but the ease of creation won't be there, and you won't have the "same-on-paper-as-on-screen" type print capability, either.

    The one thing I don't get - why the need to print to paper? Why not just regenerate the report when you need to view it?

    Worldcom [worldcom.com] - Generation Duh!
  • Parallel Crystal picks up where Crystal Reports starts having problems. Since you've already invested effort into building reports through Crystal, Parallel Crystal would be a great way to improve your reporting performance.

    www.dynalivery.com [dynalivery.com]
  • Except their PDF generation isn't nearly as good/complete.
  • If you're not averse to having one component of your solution running on NT or 2000, and need this for a big n-tier solution, consider Parallel Crystal [dynalivery.com]. It uses Crystal Reports to design the reports, then runs them on a scalable report server which integrates into a Java web application server. Output can be to a number of formats, including PDF.

  • I have done the same thing, but I would really like to be able to have better pagination options than those provided in HTML.

    I would LOVE to be able to take my XML datasets, and convert them using XSLT into a PDF somehow.

    anyone know how?
    .e.
    www.perceive.net [perceive.net]
  • I need the ability to build reports from data.

    Gee, it sounds like you could use a Practical Extraction & Reporting Language [perl.org]. Eh?

  • Crystal Reports [crystaldecisions.com] is the old standby solution. It's highly irritating, but it works, and you can drive down the street and pick up people to write reports for it. The web-based reporting works best on Windows, but it also has a Java client that works passably well.

    If you happen to be using WebObjects, then ReportMill [reportmill.com] is an excellent solution. They are working on a non-WebObjects version.

  • First of all, this seems to dodge the question. I think we can rely on the poster to know his needs. Secondly, paper reports are obsolete only if you like having your eyes cross. The current state of the industry in data display technology means that most folks have monitors that are ill-suited for long term reading. Even if you have a nice setup with a laptop that you can move around, there still isn't a lot done to prevent 'screen eyes'. People blink less when they use computer screens, and have less control of the distance between them and the screen. The result is that reading long sections can be quite dreadful. For hard contact wearers, there's nothing quite like blinking after your eyes have dried out, thus scraping the contact along your dusty eyeball.

    So until there are some better, lighter, and more eye-friendly solutions to reading through computers, paper will still have a place in and out of the workplace.

    "Sweet creeping zombie Jesus!"

  • I had good results with a similar problem using:

    tbl -> groff -> acrobat distiller

    As old as it is, tbl still produces very nice
    looking output, and is very easy to generate.
  • by BMonger (68213)
    As of SAS 8 (possibly before that even) the Output Delivery System (ODS) has supported HTML output. Since one of the main things that SAS does (it's a statistical analysis language) is in fact create reports it does this quite well I think. You'll have some disagree but as far as I've been able to tell the only language people like is the one they program in. So you might want to check out SAS. I've had quite a bit of luck with it. The URL is http://www.sas.com or you want to click http://www.sas.com [sas.com]. You can also contact me via my webpage if you want some more info on it since I (and my employer) consider myself to be good at it.
  • We have found that Java and the J2EE work great for web apps that also need to have these types of reporting functions. Check out iText - a JAVA-PDF Library [lowagie.com] for the api that will make a pdf from your data.
  • Also noteworthy is that you can run PHP scripts from the shell prompt or a cron job, by compiling PHP as an executable CGI and using it as an interpreter just like Perl.

    So, you can write the web site and the offline background stuff in the same language.

    Not that this has anything to do with the original poster's search for J2EE solutions.

    --
  • www.reportmill.com [reportmill.com]
  • Our company does that, except they are all in house applications. I could tell you how to do we do it, but then I'd have to kill you.
    Oh god, you know too much already.
    ~@#$F~-connection terminated
  • I have to second this. If you are comfortable coding in HTML, and simply want the typographical and page control that lacks in browsers, HTMLDOC is a brain-dead easy way to generate consistant PDF files from HTML. I use it a fair bit myself, and appreciate it's directness.
  • I use R&R Report Writer for this type of thing. Its extremely easy to use and can create some very complex reports. It has a number of exporting options, although the only ones I've really found useful are export to dbf, spreadsheet, or delimited text. You can of course create a pdf out of it if you've got Adobe Exchange. Although I use the version that works with dbf files, there is also an SQL version which I think supports ODBC. You can also use their "runtime" facility to create batch report jobs. This way you can run multiple reports automatically or you can run a string of reports that each use data exported from the previous one. You can call these jobs from a .bat file or from within a FoxPro program (I think there may be some other methods as well).

    I see a lot of comments which mention Crystal Reports. I've got it installed on my computer, but every attempt to use it has left me frustrated. It is a truely evil piece of software. R&R is far easier to learn in my opinion, and there has been very little I haven't been able to do with it, and I don't think Crystal Reports would have helped in those situations either. Being able to create an informative, professional looking report quickly is very valuable and I don't think the added complexity of Crystal Reports is beneficial.

  • PDFlib is a good thing. Better than the lack of page breaks in HTML.

    Here's a good demonstration of it: Paper CD Case [papercdcase.com]. Make paper cases of you CDs. Enter details, it makes you a PDF.

    Hey moderators! My post is off-topic. Do something about it!

  • http://www.easysw.com/htmldoc/
    Easy, lightweight, quick HTML -> PDF .
  • Roxen, with it's business graphics module, is capable of generating fancy graphs and reports from any arbirary data source, on the fly.

    Very cool and easy to use. Roxen is available at http://www.roxen.com
    -- CKM
    internet systems architect - scalability - commerce
  • Webapp to XML
    jade(xml) to pdf
    ipp(pdf) to printer(remote or local)

    Most of your network printers have or are adding IPP and PDF capability, though I'm sure you could just as easily translate your document to PostScript. Fonts shouldn't be a problem, just use the ones on your printer. PDF is handy because you can also kick it around a lot more easily than other document formats, although it does have the problem of being mostly write-only.

    Just some thoughts. Hope they help.

  • by Chairboy (88841) on Wednesday May 02, 2001 @10:32AM (#250561) Homepage
    Hi slashdot! My boss has asked me to write an extension to our defect tracking system in Perl. Please e-mail me the code for this before 5 PM pst so I can make it home in time to catch The Simpsons.

    Please, no confusing external libraries other than CGI.pm or Win32 ODBC. Oh, I heard that printf is gay, so please don't use them.

    Thank you!
  • I'm glad I'm not alone in this world - I really enjoyed that option althoughI wish they woulda had more music selections under rock or changed the selection more often. In two years, I had called about 10 separate times (v7 CRPE was a PITA on the web) the rock lineup had changed once.

    --Clay

  • You have to redirect your web users to the right page for your browser

    OR, in the ASP or component that is using CRPE (Crystal Reports Print Engine) call the apropriate viewer for the browser itself.

    Crystal really was/is the cats a$$ (especially for report creation) but v7 would only run 1 report at a time and QUEUED all other requests - really crappy if your database is SLOW - therfore useless for online processing. If each dynamic report takes 5 minutes for querying, and 5 requests come in at the same time, the 5th user is gonna lose 25 minutes waiting and if the user's IE default timeout is 5 minutes (default), you're gonna have cranky users until. CR V8 supposedly did away with that limitation.

    Oh, I've also used ActiveReports(VERY NICE!!!!, requires VB, not as easy to use as Crystal but it is your slave) and Actuate (v 3 or something, such a beast to develop a report but the doc's/self training are GRRREAT)

    --Clay

  • I should have been more clear when I said "it is your slave" - I meant you have complete control over AR, you can do anything at runtine - including create reports from scratch although that seems masochistic without a gui. I think the key to using an activereport as a template is to create a report wrapping object that can create instances of the reports. You call your report wrapper object with a string (say, report name) and it can create & run & modify your report(s). I liked the ability to package a whole bunch of reports in 1 dll. It was excellent, but I haven't used it for about a year and a half.
    From their website (Data Dynamics [datadynamics.com]):
    ActiveReports [datadynamics.com]
    Full run-time access to objects, data sources and binding and the ability to create the entire report on the fly

    --Clay

  • A lot of people are saying that Crystal is the goods. I would like to add that in addition to having decent tech support, the hold music system is without a doubt the best I've ever experienced. You dial in, pick your favorite music genre out of four or five, and listen to some pretty decent examples of those genres while waiting.
  • take a look at the Actuate web reporting. I work for a software development company, that uses both Actuate and Corvu as 3rd party reporting solutions. Acuate by far has some awesome web capabilities. It's a very sophisticated product, and will probably require some consulting to get it up and running. Once it's up, though, it is a very simple tool for generating complex reports
  • Our clients needed central control of the database and reporting, so we wrote a report generator. Our PHP System includes tools ror administering your database (the data side, not the DBA side) so anyone with a browser (and obviously a valid password) can do it. We wrote a report generator that you enter the SQL, it generates the report. If you want it printable, you click on the "export to excel" option, and it loads the thing up in Excel (gotta use IE for our admin, Netscape's busted CSS/DHTML support screws it, and Netscape 6/Mozilla isn't there yet), and they can print. As an added advantage, the Excel format is trivial.

    Excel can read tables, you just set the content type. If you need fancy formating, plug it into the PHP source.

    If you don't want to code, there are dozens of programming shops that will develop a system for you for a reasonable fee.

    You don't want to spend money or effort? Well, you're in trouble. Labor isn't free. Do it in house or hire someone. Some of our baselevel systems (including our DB class, which can help you abstract your DB from the engine, you'd need to write your own if you aren't using Postgres or MySQL) are available on our website. If you want to hire us, e-mail myself or sales@feratech.com.

    Alex
  • by The_Messenger (110966) on Wednesday May 02, 2001 @11:10AM (#250568) Homepage Journal
    While obviously your situation may preclude it, I've always found Perl's built-in formatting capability to be incredibly easy to use, and it also performs nicely. It's so nice that I've often gone through the trouble of adding a Perl reporter to my C++/Java/et cetera applications. They don't call it "Practical Extraction and Reporting Language" for nothing. (Then again, they don't call it "Pathologically Eclectic Rubbish Lister" for nothing, either. ;-)

    Regardless of the program you use, try to store the data in XML format. Why? Because then you can use one XSLT for conversion to HTML for web use, another XSLT for conversion to PostScript for printing, another XSLT for conversion to Excel spreadsheets -- you get the idea. While I hate to say so on this site, SQL Server 2000 offers some particularly nice functionality that can be used to implement this -- such as automatic transformation of tables to XML documents.

    If you require graphics as well as text, check out the gd graphics library [boutell.com]. The Webalizer [mrunix.net] is an absolutely delicious example of how gd can be used to create slick PDF graphs on the fly.

    You mention that you'd like to integrate with J2EE... I'm somewhat of a Java guru and can say without wavering that Java is not a first-choice solution for text-based reporting. If your reports are being generated by a Perl or PL/SQL script and you're just outputting the results from Java, it's fine ;), but text processing and transformation isn't too hot in the standard Java APIs. Now if you want to pay for a third-party API, you may be able to get around this...

    For graphical reporting, however, Java is one of the best solutions. There are a plethora of Java charting tools available, although the decent ones will cost some dough...

    Anyhoo, if you provide some more details on your specific task I can give a better recommendation.

    --

  • Simply brute force handcoding individual reports in Java, Perl, PHP, Python, Lisp, etc. can be done, but is very time consuming.

    An extremely detailed report (with subreports, aggregates on multiple levels, etc) can be generated (by someone who knows what they are doing) in Crystal Reports or MS Access and integrated into a reporting framework that handles all your filtering, interface, etc in about 15 minutes, or less. How quickly can this be done with web interface (and the Crystal web deployment is not a valid solution, because it doesn't scale.)

    If profit and efficiency is a concern (which I'm sure it is for his manager, not sure about you though; Efficiency, yes, profit....well....), then I think he is asking a very valid question. I have been searching the internet extensively the last couple of days for an application that will allow you to easily design and serve up internet based reports, but I have not found a single product that even attempts to reproduce the functionality of the multitude of client server report writers on the market.

    And to all of the people who say "why don't you do your homework before you ask questions with obvious answers", you might want to read some of the postings from the helpful and knowledgeable people here, I know I've learned of a few products that I was unable to find in Google.
  • pathologically eclectic rubbish lister?
  • There are lots of perfectly good windows reporting tools and if you dont want to have to do any work yourself - GO BUY ONE!

    I'm as much in favour of linux (and uk spelling) as the next guy but to be fair windows has better tools for this sort of thing.

    If you want to go down the linux root then I suggest using perl or php to create a pdf file which the client could then print. It'll require a fair chunk of effort on ur part but the final solution will be infinitely more controllable than it would be on a drag and drop windows system.
  • This was not an insightful comment. It was stupid! You don't tell the customer what he/she wants, then insult their office setup if they don't want what you claim they want.

    We have many clients that paper reports for many reasons. In this case, it is what the client wants, not what you want, that is important!

    Many people can't see the monitor very well, or it gives them a headache (either vision trouble, or having bi-trifocles, etc. can cause this.) Personally, a monitor gives me a headache after a while. This means I have to print out pages that need extra careful study and look at them on the printed page.

  • by Pinball Wizard (161942) on Wednesday May 02, 2001 @11:44AM (#250581) Homepage Journal
    I'll be tarred and feathered for saying this, but its a great option for what you are trying to do.

    First, with VB, you can use ADO to do all the database work. An ADO recordset has support for paging, so you can easily separate your report into pages. It has an easy to use Printer object(which seems to be there by default, I didn't have to declare an object). At the end of each page, all you have to do is call Printer.Print and Printer.NewPage. At the end of your document, call Printer.EndDoc. Presto. A paginated database report, with no external(read: $$$) component. You can further refine your report by setting fonts, etc, but the above outlines the basics.

    Another cool thing about VB is that you can drag a WebBrowser control onto your form to make an instant browser. You can then host your web based app in this form. The only reason I recommend doing the printing with VB instead of the web based app is that you generally have to display everything you print if you do it all on the web page, whereas VB you can print things without necessarily displaying them.

    I'm hoping Mozilla has the same functionality, as I've done this, with the majority of the application logic in the (cross-platform) web app, using VB only to display the application and to print. If Mozilla has the same functionality, I'll have a powerful application that is cross-platform and updateable without needing to send clients install programs.

  • by Tairan (167707) on Wednesday May 02, 2001 @10:32AM (#250582) Homepage
    I can name three right now that can do what you want - Formscape [formscape.com], Monarch Report Writer [hallogram.com] , and Crystal Reports. [crystaldecisions.com] They've been around for a while.

    I'm surprised something like this got through. Its kinda like asking 'I'm looking for a way to share files between my multiple machines, and I don't want to use floppy disks any more."

  • You have a few choices for web-based reporting products. Most of them can be integrated using ASP scripting and will connect to your database products via ODBC. Also, functionality can be integrated using SDKs for some of the reporting tools. Two of the most popular choices that my customers work with are Seagate Crystal Reports and Business Objects.

    Crystal Reports can be integrated into your application itself as well and features a killer report designer and query builder interface and great printed reports. Crystal Reports can publish report datastraight to the web as well. For more information, check out Seagate's web site [seagate.com].

    Business Objects is very popular for its interactive report functionality, where you can drill down into your query getting different levels of information. It helps you avoid information overload in large reports and is generally the tool of choice for doing crossreporting on related queries. For more information, check out Business Object's web site [businessobjects.com].

    -Pat

  • The only thing I know of that even comes close is FOP (XSL Formatting Objects Processor) [apache.org]. FO is an XML-based formatting language that can be used to generate PDF files as well as printable output. You have complete control over page breaks and static content such as report headers and footers.

    You will need to use Java (FOP is Java-based), and if the reports are generated on the client, you will need to download about 2.5MB of JAR files to the client for the required libraries. If you use Java servlets, you can generate the reports on the server and save on the size of the download and the processing needed at the client.
  • Ok, I'm just finishing up a project with about 300 reports that are launched (mostly) from web-based Oracle Forms apps. I don't know if this would work for you, but I'll try to explain briefly how my system works. I'm using Brio.Report for the report engine (I've got a few COBOL reports but they run through a Brio wrapper I wrote). Brio.Report (aka SQR) will generate output in XML, HTML, PDF, PS, PCL, and plain ASCII, as well as its own intermediate format. In my system, when the report is run it saves the intermediate .spf file in a temporary directory, and then generates an HTML version from the ASCII output, since I didn't like their default HTML. There's no way to control page breaks in HTML, so I cheated - my script looks at the browser you're using and tries to guess how many lines per page it prints, and then pads the -formatted output with enough blank lines to make the page breaks line up. It works pretty well most of the time. But more importantly, the user has the option of clicking on a PDF icon and having the script generate a PDF from the .spf file.

    Brio.Report's got a spiffy-looking GUI design tool, but I honestly haven't used it much. All of my existing reports were written for SQR 3.0 on a VAX so I didn't need to worry about design too much. Amazingly, most of them ran with very minimal modifications.

    It seems to be build for batch processing - it's quite happy churning out hundreds of reports at a time. The ActiveX control included with it sucks, though - I wound up writing my own wrapper for it in VB to integrate more easily with IIS. (No flames, please - I have to use what I'm given.) It's certainly capable of generating nicer-looking output than what I'm doing, with GIF and JPEG graphics and such, but appearance isn't my primary concern right now and I don't have time to mess with it.

    On the down side, it's not cheap. I believe they license it by server class - on a midrange NT box I think we paid around $10K, and about $15K on an Alpha running OpenVMS. So if this is for home use, you're probably out of luck.

    Hope that helps....
  • So the best option is to have a report that is generated for web display, and have a second one for download in PDF or whatever for printing.

    Just a quick aside, there is also the matter of just how page breaks are generated. These are usually part of the printer driver, and there hooks in the word processor, etc for trigger the printer driver code. This was never set up, as far as I know, in HTML. This is a capability that would have to be intergrated via a plugin or something into the browser itself. Now add this to multiple browsers, etc. and you have lots of problems.

    I supposed you could generate an activex thing to generate a page break that would get auto loaded into IE, and have it fire when there is a specific tag such as [pgbrk] or similar.

    You would also have to integrate specified type sizes so that it still prints correctly even if the user has the parameter to view the browser type set to extra large.

    So that is another angle, because then you could set up custom reports using JDBC, Interdev, or similar to pull info from the database. You would just need to generate something that would create a custom tag for the web page

    Check out the Vinny the Vampire [eplugz.com] comic strip

  • by Alien54 (180860) on Wednesday May 02, 2001 @10:47AM (#250589) Journal
    I must be missing something. I would have thought that via perl, or what every that you could generate whatever reports you needed from a data base to your web browser. Once in your browser you could print out as needed. But this requires coding, which you have said you are not partial to.

    Now there are a number of products where you could generate a report for a database with HTML tags inserted in the correct local, then print to a text file. snd a separate one for printing. This essentially generates HTML pages for you as you need. All it becomes is a specialized report, that can be uploaded as needed.

    So the best option is to have a report that is generated for web display, and have a second one for download in PDF or whatever for printing.

    Let's face it, depending on the database, custom reports etc have been where a lot of database analysts and programmers have made the big bucks for a very long time. While you can get away wit simple reports in something like ms access, in the long run your are going to have to get someone who has the knowledge and experience to put it together right.

    When I used to do tech support for a consumer database company, I ran into this all the time - Customers wanting to do sometimes complicated things with only a minute or two of effort. Add in some anomolies because the database was not normalised correctly, and you get a bloody mess. It was not so much the system, as it was getting the query right (Alphabetized by state, then town, then family name, and filtering those custers using master card for purchase over 250$ during the month of december, and who still owe us money as of the end of the preceding month)

    Depending on the setup, the query could be trivial or a nuisance.

    In some cases, you can't get there from here.

    Check out the Vinny the Vampire [eplugz.com] comic strip

  • I've worked for many years in the reporting, designing reporting and analysis solutions, and I agree 100% with the amount of effort and pain it requires to generate custom reports. Some users will require more information than the existing reports can provide, but few have the skills to write their own reports, leaving it up to IT to design Yet More Reports (tm). There are really three problems that you encounter with web-based reports: Problem #1: Proper design - In a well designed reporting system, the reports specifically answer user's questions. In other words, the report designers have first considered what questions users have about the data, then designed one or more reports to answer these questions. Most of the time this analysis is not done, which leads to problem #2... Problem #2: Data overload - some reports are poorly designed or simply take 50 pages to view over the web, and whenever the data starts to run over a few pages, it quickly becomes indigestible for the user. Regardless of how well the reports are designed, once the user answers their questions, there is a third problem ... Problem #3: Data analysis - Even in a well designed, when a report provides answers to one (or more) user's questions about a particular set of data, these answers usually trigger more questions that require a second report. For example, when the user receives the second report (from the overworked IT staff), the answers it provides trigger yet more questions that require a third report, and so on, and so on... It was my experience that user's almost always need some other way to analyze the data - either because they have additional questions, because the reports are poorly designed, or because the reports spans multiple pages. For my $0.02, I would suggest you look at Actuate's e.Reporting as offering a very good web-based reporting system, and I would suggest you look at InterNetivity's databeacon as offering a very good web-based analysis system - it also integrates nicely with Actuate's software. Both of these products generate PDF files for high-quality output. InterNetivity's product, databeacon, offers you to graphically analyze - at a high level - the detailed data contained within the Actuate report, or data returned from any web-based reporting system (even home grown ones written in Perl). See: www.actuate.com www.internetivity.com Hope this helps,... Fred
  • by tenzig_112 (213387) on Wednesday May 02, 2001 @10:43AM (#250610) Homepage
    Use PHP to generate an .rtf file with the pagebreak tags therein. Specs are available on-line. On your browser, use the link save-as feature to save the file as an .rtf and open it in WP or some other word processor. Score! I finally found a question I could answer! [ridiculopathy.com]
  • I have a printout of our inter-office phone directory (database-generated with BRL/LaTeX) up on my wall because, although I type fast, my fingers are slower than my eyes for finding a specific name.

    Printed reports are also useful for face-to-face meetings.

    Hundred-page reports are probably for archival purposes. It's understandable that a lot of people are more comfortable with paper archives than electronic archives, given the general low quality of software today, and the obsolescence, sometimes intentional, of file formats.

  • Kidding ..

    --
    Well, querying the web, I found that imatix [imatix.com] actually has something remotely related .. . Since I run their ftp+webserver for personal use for free, I might as well put up the link here.

    I also found Fujitsu Cobol for the Web [adtools.com].

  • by clinko (232501)
    I wrote an application just like this in asp in about 2 days. But it was for credit card information and entry into an event. It's really not that hard.
  • Paperless Society Zealot! Woo!

    In your ideal world, it may be the case that you can get away with a paper-free workplace. However, if I handed a disk to the guy who signs my paychecks instead of a printed report, he'd hand me a pink slip instead of a pay check.

    The world is going paperless. It's not yet there.

  • That's what Business Objects [businessobjects.com] is designed to do. Of course, you can also just use your favorite server-side scripting language and do it yourself. Or, if you're using Oracle, you can just fire up Oracle Reporter or Oracle Forms. There are tons and tons of tools to do this.

  • by commander salamander (256114) on Wednesday May 02, 2001 @10:46AM (#250631) Homepage

    Try PDFLib ( http://www.pdflib.com/ ). I've used it for generating reports from both Perl and PHP web apps, and it's worked great. You can allow users to set fonts, max. # of pages, etc etc.

    According to their site, it supports:
    ActiveX/COM for use with Visual Basic, Active Server Pages, Allaire ColdFusion, Borland Delphi etc.
    ANSI C
    Class wrapper for ANSI C++
    Java (via Java Native Interface, JNI), including servlets
    Perl
    PHP hypertext processor
    Python
    Tcl

    I think one of those languages should suit your needs.

    With large, hundred-plus page reports, generating PDFs can take a while (and a large chunk of your server CPU) so you will probably want to cache the generated PDFs and serve them up statically for a few hours...of course, it depends on how often the data gets updated in your application.

  • by HardYakka (265884) on Wednesday May 02, 2001 @12:52PM (#250638)
    A lot of the people replying to this question are giving advice worth what it costs: nothing. Anyone can list the google search results for web reporting tools, but most of these aren't worth a crap if your requirements are for large loads. Crystal Reports: Great design tool. Useful in an office environment. Requires a dedicated server. Falls on its face under large loads. Formscape: Not useful for dynamically generated reports. All other report engines : one of the above HTML/text output: As mentioned, looks like crap printed. Real reporting requires grouping/subreports and even graphs. Have fun getting these to print. My company required a web-reporting tool for use by tens of thousands of users nationwide via TCP/IP connections. This means being able to handle hundreds of simultaneous dynamically generated reports. First, we tried a few of the products on the market but even the ones costing >$1,000,000 couldn't handle the load without a giant server farm. Next we tried a "roll your own" servlet/PDF solution. Nice idea, but if you are trying to do this on your real time app servers, system response times will suffer. The solution we settled on was: 1)custom report programs on a mid range server for each report type. 2) all report requests are submitted and processed by a batch manager which limits CPU load on the report server 3) finished reports are converted into PDF via a template file and stored in a table. 4) The users is directed to a pending reports page until the reports are complete. When complete, they can be downloaded as .pdf and viewed with the acrobat plug in The lesson we learned - if you need to handle complex reports and heavy loads, you must custom code them. No reporting engine can handle it (yet).
  • ...has (mostly) what you're looking for. A relatively easy-to-use designer, a scalable server component which feeds the client-side control, and ActiveX and Java-based client-side controls which are embedded in the browser. The client-side controls have full printing capability, as well as exporing to a variety of formats.

    The downside? It tends to be difficult to format complicated reports, it has a archaic data access layer which makes database independence difficult, and the server components only works with Windows/ASP.
    --
    Convictions are more dangerous enemies of truth than lies.
  • by EastCoastSurfer (310758) on Wednesday May 02, 2001 @11:23AM (#250644)
    I would avoid Crystal for web reporting. The gui report builder is nice, and the reports work fairly well, but the web server part sucks. My biggest problem with the Crystal Report Web Server is that when one user is pulling a report all users block until that first user is done. The marketing people at Crystal actually comped us a copy of version 8 because of this problem(and the fact that they lied and said that it would not occur like that). The tech support guys are a joke. They were amazed that I got the web reports to work at all with our volume of data(100+ page reports). I have been looking for other solutions, and maybe some comments here can point in the right direction.
  • by tb3 (313150) on Wednesday May 02, 2001 @11:16AM (#250646) Homepage
    This may get modded as flame-bait, but what the hell;
    Avoid Crystal Reports at all costs if you can. It's irrating, confusing, and buggy, and it's been that way since I started using it in 1993. On every one job I take I swear I won't use Crystal again, but somehow I keep getting stuck with it, becuase it's already being used, or somebody somewhere thought it was a good idea. If you need formatting and page breaks go with some kind of PDF generator, and find one with a Java interface because you're already on J2EE.
    Report generation is one of the necessary evils of business application development, so the best thing you can do is find something that will let the users create their own reports; instead of pestering you to do it for them.
    End of grumpy report creator rant.
    -----------------
  • by badfish2 (316297)
    www.zope.org
  • the client and server on the same lan. So, I must ask, Why, why, why are you considering a web solution if you need things that html will not produce? The right solutions for the right job.
    - CrackElf
  • I'd really recommend reviewing your requirements. Is *anybody* really going to read hundreds of pages of reports? Perhaps you should be building a more flexible query tool so that your users can get the specific data they want without having to wade through mammoth wads of paper?

    You have never worked on a government project, have you?
  • Ok, I remember I tried very long ago a JReport app that worked, but looking in the net one thousand have arisen. JBuilder 3 is shipped with a similar tool.

    Of course, this applies if you're working with Java.

    On the same topic, there's a funnier question: if you are programming in Java your site, you ought to have your data access and manipulations encapsulated, say in beans or EJB's. If you try to use a such a tool to generate reports, you step over this data access classes, something that is not recomendable. Anyone has idea of a tool that permits accessing via my own Persistence Layer and generate the reports anyway? I have searched, but cannot say any one.
  • I use a similar technique. In style sheet (.CSS) I have "DIV.page {page-break-before:always}". In report, I use 'DIV CLASS="page"' 'IFRAME SRC="pagedoc1.html"' '/IFRAME' '/DIV' This allows fairly large reports with lots of text blocks for WYSIWYG formatting. The IFRAMEs allow IE5 to optimize the processing of absolutely positioned text somewhat. Main drawback is that each page is a separate file, so you can't search for text through entire report. As long as each individual page is no larger than a single sheet, you can get the browser to honor your page breaks.

Real programs don't eat cache.

Working...