BKeeney Shorts

picAppIcon256Shorts Viewer Shorts Endorsement

Report Designer

Report Designer

Introducing BKeeney Shorts


BKeeney Shorts is a Reporting Tool for Xojo using classes.  You can display them in a print preview, send to a printer, export it to HTML, or export it to PDF (if you are using the MonkeyBread Software DynaPDF plugin).

The classes work on Mac OS X and Windows desktop and console applications.  It might work in Linux but we’re not supporting it simply due to the number of Linux distributions to support.

The following basic drawing elements are available:

Text, Line, Oval, Rectangle, Rounded Rectangle, Text, RTF Text (desktop only), Image

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.

Auto Line Height Adjustments

New in version 1.1 is the ability to have Text objects expand vertically to fit the text in the block.  The new 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.

Report Designer

New in version 1.5 is the BKS Shorts Report Designer.  This 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.

Main ScreenAmong the highlights of the Report Designer:

  • Connects to any database that Xojo natively supports

    Rendered Report

    Rendered Report

  • 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

Shorts Designer In Action

Integrating the Report Designer Into Your Project

Integrating Shorts Report Designer

Xojo Webinar on BKeeney Shorts


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?).


Unlike some other reporting tools for Xojo we’re not going away.  We stand behind our product and we offer support.  We use this product in our own products and our own consulting clients.  If you need help and support we’ll be there to help.

What does the future bring?

We use Shorts in all of our desktop and web consulting projects that require reports.  We plan on enhancing the product based on feedback and on our own needs.  There is no roadmap, nor timeline, for new releases and updates, nor a guarantee that future updates are free.

If you have a need for something that Shorts doesn’t already do contact us.

Licenses and Pricing

BKeeney Shorts comes in only one package.  The Pro License is $300 and all classes are unencrypted and available for your modification.

Purchase Professional License

Note, all sales of the Shorts are final (no returns). Please read the user guide and understand all the requirements for Shorts before purchasing. If you have any questions, please contact us!


See the Report Designer in Action!

Shorts Report Designer Demo Mac (21.3 MiB, 99 downloads)
Shorts Report Designer Demo Win (25.8 MiB, 137 downloads)

Report Designer User Guide PDF

Shorts Report Designer User Guide (566.4 KiB, 177 downloads)

BKeeney Shorts Demo Project for Xojo.  Debug only example project.

BKeeney Shorts DEMO (41.6 MiB, 395618 downloads)

Users Guide PDF

BKeeney Shorts User Guide (328.1 KiB, 266 downloads)

Version History

Version 1.6.0 – 27 March 2016

  • Dynamic Runtime Query variables. Allows the report designer to ask the user what values they want at runtime. Current paramters types::
    • Boolean value using a Checkbox
    • String value
    • Numeric (integer and double values)
    • User List (popup)
    • Query List (popup)
    • Date, DateTime, or Time
  • Moving items via the mouse will immediately update the save status on the Toolbar
  • Changing Filter Data will update the save status and undo status
  • Undo now works for changing of filter data.
  • Added Filter Data to report designer Toolbar
  • Added an ObjectSelected event on the BKS_ShortsBaseViewer that will pass back the clicked BKS_Shorts.Item and
    if there is one, the BKS_Shorts.GroupItem. This will allow you to implement a drill down report.
  • Invisible TextItems are rendered in the background color to allow the MouseHit to bring back additional information in the group
  • Added a FieldName property to BKS_Shorts.Item and reports run through the Report Designer will fill that in at generation
    time. This allows the user to query what the field (if there is one) from the selected item.
  • Added OK/Cancel generic container for all dialogs
  • Bug Fix [Windows Only]: Now respect the number of copies specified for a print. Note that this is not in Shorts classes itself but how the supporting code prints.
  • Bug Fix: Fixed another instance where it was possible to NOT have a Default Style when generating a report.
  • Improved German localizations.
  • Moved About Shorts Designer Menu Item out of winReportDesigner
  • Bands that are marked as invisible no longer get rendered on the report.

Known Limitations:

  • Dynamic Queries do not work with IN clause in where statements.

Version 1.5.4 – 11 February 2016

  • Major code changes to allow most classes to work in web apps too.
    • Simply copy BKS_Shorts_ReportDesigner folder into your existing web project.
    • Delete PAF_PrintKit.DesignCanvas (desktop ScrollCanvas subclass)
    •  Create a new PAF_PrintKit.DesignCanvas that is a WebCanvas subclass
  • Changing text values in the Properties List is now Case Sensitive
  • Added Portugese Localization
  • Added a commented out example of how to connect to MySQL without using the winDBConnection Window/
  • See winRPTViewer.Display
  • Fixed an issue that would cause the SQL statement to not be saved properly in the JSON string
  • Added a Default Style if none is in the local dictionary
  • How reports are saved so they can be viewed without first having to be in the designer
  • Cleaned up some localizations and made some more strings dynamic.
  • Made the Report Designer the default pushbutton in Demo Window
  • New Report opens a new Report Designer Window instead of copying the current connection. (this affected menu handlers in odd ways one wouldn’t expect)
  • Created a Web Example

Version 1.5.3 – 28 Jan 2016

  • Added SC_GetCount in the Band XojoScript editor. This lets you get how many times this band has been shown.
    Example of use is to have line numbers on your report without having to do it in SQL.
  • Updated German localization
  • Rearranged UI on ccPAF_Filter (Filter Data) to make it a bit more obvious
  • As a Text Item or Field Item are put on a report it will automatically use the “Default Style”
  • Fixed an issue where the Default Style wasn’t getting passed to the generated report.
  • The Styles Editor now allows you to delete multiple Styles at a time.
  • Added a new example of how to print directly to printer without having to use the viewer.
  • Reconfigured Demo window to break between Report Designer stuff and older code-only stuff.
  • Added SC_GetCount Demo
  • Fixed some items in the HTML Renderer
  • In PAF_PrintKit.PrintText.constructor if there is no DefaultStyle we create one.
  • ReportPF will now extract Styles from the report definition file.

Version 1.5.2 – 14 Jan 2016

  • Started loclalization process and made dynamic strings. Spanish, French, and German are in the project. •••NEED HELP IN LOCALIZING•••
  • Fixed issue with Bands Editor when trying to delete Grand Total Band.
  • Designer Canvas will no longer let you delete a Grand Summaries band. Must be done in the Bands editor.
  • If the report has a NULL date it will now create a blank string rather than use the field name. Changed in ReportPF.CreateItem.
  • Selected bands now highlight with background color. Color constant at PAF_PrintKit.PrintBand.kBandSelectedBackgroundColor.
  • Fixed an error in the PropertyList that would sometimes overwrite a Text value with a zero thus causing all sorts of havoc with reports.

Version 1.5.1 – 08 Jan 2016

  • Added a new demo of how to create a report from just the report definition
  • Comes with MySQL, PostgreSQL, and ODBC enabled.  CubeSQL still requires changing the constant
  • Bug fixes

Version 1.5 – Jan 2016

  • Introduction of Report Designer
  • Integration of Report Designer into the Demo
  • Added Fit to Width and Fit Document into Report Viewer
  • Fixed quite a few bugs for Text wrapping and Alignment

Version 1.1 – 06 Feb 2015

  • Text blocks now have an AutoHeightAdjust property that lets them auto wrap their text and change the text height
  • Desktop now has an RTF Block and uses Formatted Text Control to convert into Shorts reports and HTML
  • Demo project for Web and Desktop with viewers you can use in your own projects
  • Multiple demo reports with the various ways to create a report via code

Demo 07 Jan 2014

  • Updated the demo to work without modification in Windows

Version 1.0.1 – 01 May 2013

  • Removed dependency of MBS plugin for the HTML renderer class
  • Added sample database to demo project

Version 1.0 – April 2013

  • First public release