The pain of the report editor

I’m currently developing for Windows. Medium size project, SQlite database. Project’s almost finished except for the report part. I read a lot of stuff about it that caused me to stay away from it. Until yesterday, I needed some small and quick reports and I thought I’d give it a try.

Don’t know if this is discussed earlier but… you simply can’t work with the report editor. As soon as you drag an object to the canvas and try to do things with it the editor tab flips out of sight. And again, and again ad infinitum. You just cannot click or edit an object, Impossible. I thought this is maybe because of my project, maybe it is Windows. So I switched to my OSX machine and tried to edit a report in the project. Same! Impossible to edit a report. What the heck?

So I thought maybe my project is too complex (?). Let’s start with only a database connection and add a report to a blank project. Same. Not possible to do things. Crashes. 'This application has encountered etc… ".

Look, I’m just switching to Xojo from Delphi. This is my first serious project. I have still a lot to learn. I noticed the IDE flaws but I wasn’t annoyed. I like Xojo. But this report editor is such a pain. I don’t want to switch to 3rd party report generators. What to do?

<https://xojo.com/issue/27270>

They “fix” things, but the QA team finds bugs. Fixed twice, reopened twice.

<https://xojo.com/issue/28250>

Well, I gave up on the Report Editor a long time ago. I think most people quickly move past it and go to a 3rd party tool.

Ones that I’d recommend looking at:

Valentina Reports: http://www.valentina-db.com
RSReports: http://www.rothsoft.ch/realbasic/rsreport/
BKeeney Shorts (we make this one): http://www.bkeeney.com/allproducts/bkeeney-shorts/

All of them, and I do really mean all of them, have drawbacks and strengths. I’ve done 4 conference sessions on reporting tools and there is nothing in the Xojo world that compares to what you can find in VB, .NET, and the Delphi worlds. Just a fact of life, but I’m hoping that with some time and effort on our part BKS Shorts becomes the go to product.

if you have MS Office installed use the office automation plugin to send your data to excel, word etc and use that to generate your reports. I tend to use Excel as its easier to ‘template’. I am currently using it to generate invoices, certificates, letters etc. from a MySql backend database.

Hi,

I have another option: DBReport component. Watch this: http://wp.me/p30Mvx-4 for a brief description, if interested I can send an email with demo or email me to lbmonsalve@outlook.com.

[quote=30907:@Bernardo Monsalve]Hi,

I have another option: DBReport component. Watch this: http://wp.me/p30Mvx-4 for a brief description, if interested I can send an email with demo or email me to lbmonsalve@outlook.com.[/quote]

Awesome :slight_smile:

Yes,

I did that a lot. But sometimes a good report tool comes in handy.

[quote=30907:@Bernardo Monsalve]Hi,

I have another option: DBReport component. Watch this: http://wp.me/p30Mvx-4 for a brief description, if interested I can send an email with demo or email me to lbmonsalve@outlook.com.[/quote]

Gee… looks like the real thing… send you an email.

Great, Bernardo, thank you.
Waiting to read the docs as soon as the product gets ready for launch, and possibly I will do a trial and buy if price/results are ok for me.
Let me advance a common need Xojo does not handle: A way of passing SQL queries to the engine to process server side (I personally have interest in PostgreSQL for this task), so the tool will fetch the records as it needs without needing to download a huge recordset to the client side all at once before processing. This lets fast report generation and even canceling a huge report without the total data retrieved.

[quote=30933:@Alexander van der Linden]Yes,

I did that a lot. But sometimes a good report tool comes in handy.[/quote]

Agreed, I just got Valentina reports to play with so I’ll see how that goes.

Thanks Rick A.

Respect to “A way of passing SQL…” the only thing that occurs to me is an appication server, a preogram that runs between DBServer and client, years ago i work in something like that, with C++ libraries basically, but with only with Postgres and Xojo, welll… optimized functions on postgres, Retrieving Query Results Row-By-Row, Asynchronous Command Processing, i dont know if Xojo plugins handle that.

I never used the reports module of Xojo (I’m sending data to Word templates instead), so I was wondering, if reports can be created or altered independently of a built application?

Can I or a user create reports and add it to an existing app, or is a report something static built into an app?

I thought I could quickly check this in the docs … but where to search for this?

  1. Menu Help -> Tutorials -> Desktop and then Cmd+F to search within the PDF. Entering ‘report’ results in “No matches were found”
  2. So maybe the user guides? But where to start? There are 4 of them …
  3. Maybe the language reference? Search for ‘report’ brings up a page titled ‘Report’ with an example ( Dim ds As New GasDataSet …) but does not give any general information about the basic concepts of reporting.
  4. Trying the example projects, “List Of Products.xojo_binary_project” -> Run results in : “Database not found”. Obviously a file Orders.sqlite is expected somewhere, and probably some kind of data table definition is expected to be in that file, and some data … but am I expected to be clearvoyant?! What is this “example” good for if it does not run out of the box?

Conclusion: Xojo reporting, a waste of time, right from the beginning.

So my question has altered now to: Is there any reporting tool available for Xojo, where reports can be created and added to an application, independently of the compiled app which is using such reports?

From a very quick look at Bernado’s solution the report defs are actually stored in XML and can be saved in a blob on the database, and that makes it VERY cool!

There was an example of the native report tool. It prints a catalog (an image, a description, Part #, Prie, etc.).

That report worked fine, but I do not found it in 2013r2.

My report needs was only a text report (all Columns (7) data on a single line) and that was really easy to do using Xojo (without the Report feature); top of line index line (header), bottom line (page #, text, date of report; align is on odd / even page #).

What kind of reports do you need ?
text only, image with many line beside it, ?

[quote=31137:@Emile Schwarz]…
What kind of reports do you need ?
text only, image with many line beside it, ?[/quote]
I don’t need reports. My users need reports. And these needs will change, or only come up in the future.

I will not rebuild and re-distribute the app for any possible report, list, form, statistics, etc. which eventually may come up in the future. (How short-sighted and narrow-minded do I have to be, to build a tool for static reports only, which requires to be compiled into an app?!)

Not necessarily Bernardo. There are many variations of the solution, but you could create a dataset class including an internal recordset and few properties (like ClientServer=server) and methods. Your connect() could connect, create a server side cursor, and fetch a block to your internal recordset cache, and point the first record. Your movenext() walk in this set, and once the block reached an end, you could fetch another block from the server.

The only one that I can think of (that’s cross platform) is Valentina Reports.

Hey, Bernardo. Is it working? No more news…

I’m interested to know the status of Bernardo’s reports also.