This product is now sold and supported by varcess. Please visit them at https://www.varcess.com.
“We use BKeeney Shorts for our personal finance app that’s used by thousands of people all over the world, and it has handled it like a champ! It allows us to create powerful and interactive reports that look great on screen and on paper! BKeeney Shorts is a must-have for anyone developing software with Xojo!”
-George Ashkar, Moneyspire Inc.
Introducing BKeeney Shorts
BKeeney Shorts is the premier reporting tool (and 2018 Xojo Design Awards winner for Best Developer Tool) for Xojo desktop and web applications and comes with an integrated Designer and Viewer components to make it easy for Xojo developers to get advanced reporting in their desktop and web applications.
Within a few minutes Xojo developers can incorporate the Report Designer component in their desktop applications and create rich, dynamic reports. Grouping on a field is easy as well as creating complex queries to filter data. It’s possible to ask for query parameters at runtime so end-users can choose how to filter their data. Using XojoScript it’s easy to create incredibly complex reports that can vary text, item visibility, and formatting at runtime based on field values.
The Report Viewer component is available for desktop and web applications. The viewer allows users to view their reports but also can ask them for parameters for the reports at runtime. For example it would be easy to allow users to specify their own date range for their reports. Reports in the viewer are searchable and can be configured to do ‘drill down’ reports.
Reports can be printed and are resolution independent. They can also be exported to PDF (requires Monkeybread Software DynaPDF Starter Edition), HTML, and CSV.
Shorts supports SQLite, MySQL, Postgres, CubeSQL, Informix (requires the SQL plugin from Monkeybread Software), and ODBC.
The following basic drawing elements are available:
Text, Line, Oval, Rectangle, Rounded Rectangle, Text, RTF Text (desktop only), Image, Barcode (requires Monkeybread BarcodeGenerator)
All of these elements can be used in any combination anywhere on a page, group, or in a document. Each page can be a different size and orientation.
Note: Shorts does not currently support API 2.0.
What’s New in Version 2.0
- Added Report Header
- Added Report Footer
- Now allow database fields in Report and Page Headers and Footers
- Completely rewritten SQL engine that makes reports with a lot of groups faster
- Field aggregates (sum, min, max, average, count) are now handled by the report rather than queried.
- Barcode Fields (requires BarcodeGeneratorMBS from Monkeybread Software)
- Project comes with a converter for On-Target Reports
- Numerous bug fixes and tweaks
Auto Line Height Adjustments
Text objects expand vertically to fit the text in the block. The AutoHeightAdjust property is all you need to set to get this to work. Whenever you, or the rendering classes, request the bounds of the text object the text height is calculated. By adding an AutoHeightAdjust Text object to a GroupItem you automatically grow the GroupItem too! This makes it really easy to create ‘rows’ of variable height data.
The auto height adjustment isn’t perfect, though. One drawback is speed. We recommend that you limit the number of Text objects that get the auto height adjust set to true.
The Report Designer is a set of Xojo classes that allow you to embed a report designer into your own Xojo projects. Yes, that’s right, you can embed a full features report designer into your end desktop application. Now, instead of hours to create a basic report via code you can be done in minutes. Reports can be designed and saved externally, or in a database of your choosing.
Among the highlights of the Report Designer:
- Connects to any database that Xojo natively supports
- Easy formatting of all text objects
- XojoScript programming at the band level that allows runtime decisions based on data
- An intuitive interface for Xojo developers
- Works on Mac and Windows desktop apps (Linux isn’t supported but should work)
- Allows formatting of numbers to whatever the Xojo Format method allows
- Use the Designer as is, or make your own modifications. You get the FULL SOURCE CODE with it!
Overview of How BKS Shorts Report Works
Integrating the Report Designer Into Your Project
Create Unusual Reports
BKeeney Shorts allows developers to create reports that would be impossible (or very hard at the very least) to create in other reporting environments and even in the Shorts Report Designer. Shorts allows you to span rows with any of the elements. Matter of fact, Shorts really has no idea what a ‘row’ means since you get to control every aspect of printing.
The GroupItem makes it easy to group your report elements into logical groups. Perhaps your Header and Footer elements are groups. Perhaps a recordset row is a group. It really is up to you and your reporting requirements.
Many reporting tools offer SubReports, or the ability to add wildly different type of reports into one bigger report. Shorts doesn’t support Subreports only because it doesn’t need to. Again, because you control every aspect of the report you can code it to your exact specifications.
Do it With Style
BKeeney Shorts makes heavy use of inherited styles. Create one text style for the Document and each page and each text element inherits that style. No need to perform tedious formatting on each element. Of course, you can override any style and clone styles, when you need.
The Benefits of Coding Reports
We’ll be honest, coding your reports can be slower than many traditional reporting tools. We think there are quite a few advantages to coding reports than having to rely upon a tool to do them.
You control everything. Don’t like placement or the way it page breaks? You can change that because you have the ability to change it. Perhaps your users want to create a report in Portrait mode and not in the Landscape mode you had anticipated. Using some simple math you can create reports that handle either situation.
BKeeney Shorts is fast. We’ve generated 24,000 page reports and have calculated that on a main thread we can generate about 300 pages a second. More than fast enough for most developers needs. And since you have control over how many pages are created you can exit out in abnormal conditions (really, who wants a 24,000 page report?).