Reporting for many developers is a big deal. When I first came to Real Studio (then REALbasic) there was really only one commercial option – On Target Reports. Eventually Real Software released a built-in reporting tool. Not too much later than that RothSoft released RSReport.
On-Target Reports now appears to be defunct. Its domain has been hijacked and as far as I can tell there is no way to purchase or get support. The built-in reporting tool is okay but lacks some features that would make it a good reporting tool. We’ve used RSReport for many years but we’ve increasingly found it lacking for some of our more advanced projects – including those that are Web Edition based. The fact that we can’t change the source (because it only comes encrypted) is also a major drawback to us.
Today we are announcing BKeeney Shorts our own set of reporting classes for Real Studio. Using Shorts you can create practically any type of report you need. Shorts is a set of classes that allows you to place your report objects (text, line, rectangle, image, etc) on the page in practically whatever placement you need. This leads to some incredibly rich and detailed reports that would be very hard (if not impossible) in a typical banded reporting tool that uses the concept of ‘rows’. Shorts has no rows, only objects.
Shorts render to multiple formats. If you are in a desktop application you can render it to the graphics object for display or printing. If you are in a Web Edition application you can render to an HTML file/page. And, if you are a user of the Monkeybread Software DynaPDF plugin you can render to a PDF document.
BKeeney Shorts is Retina display ready (Mac Cocoa only) and the only thing required is to add the appropriate plist settings in your application. It automatically scales depending upon the printer setting so your printed output should always be crisp and bold.
BKeeney Shorts is fast. In a recent test I ran a 24,000+ page report on the main thread (I would not recommend doing this as it froze the UI for a while) but it did it at a respectable rate of about 300 pages a second. I’m sure a more complex report would be slower but the point is that for most developers a 300 page report in a second is fairly fast. Since you control the paging I would certainly recommend bailing out in a report that had more than 100 pages (or at least asking the user if they want to continue).
This is a 1.0 product and we’re just getting started. We have a lot of plans for it. Eventually we’d like to come up with an external format and designer so you could create your own report in a designer and then simply load the report into your application and it would create the report for you. This feature would be nice since you wouldn’t have to recompile your apps if you have new reports or have changes to your reports.
Another high want feature is to have a runtime interaction with the report output. In many financial reports it’s quite common to have a type of report that shows a list of accounts. Currently if you wanted to drill down into a specific account you’d have to go back to where the report was created and pick the account and rerun it. In the future with BKeeney Shorts you’ll be able to click on the account, capture the event, and you, as the developer, would know which account they clicked. As far as I know, no one in the Real Studio world has anything like that.
BKeeney Shorts has two licensing options. The first is the Standard License for $150 where you get a set of encrypted classes. We know that many developers like having the full source code to their products they buy so we also offer a Professional License for $300 that comes entirely unencrypted. In either option we will support to the fullest extent we can. Chances are good that if you have a feature request or find a bug it’s affecting us too.
I invite you to take a look at BKeeney Shorts at http://www.bkeeney.com/allproducts/bkeeney-shorts/ and try out the demo application. It has a sample report for you to modify and change to your hearts content. The only restriction is that the encrypted classes cannot be used in a compiled (non-debug) application. If you use any of the classes it will immediately quit with a nag message.
As always, I appreciate your support and good wishes. Happy coding!