DBReport new designer test 01

In my path on rewrite the designer I created two controls: The Canvas and the UndoManager.

For the canvas I see products like SimDesignerCanvas by Matthew Combatti and NaturalScrollingCanvas by Jim McKay, Both are good products but not for me, especially for the cost, I have to “resale” and the cost is same of mine, so I desided write my own, can see a video here.

For the undo I checkout UndoToolkit by Scott Forbes and TheBigUndo by Jim McKay. I was impressed with TheBigUndo, how does he do it? the timer is the answer but… Anyway, BigUndo requires “resale” the license so descarted! by other hand, with UndoToolkit I have the source and is a proved tool, however, for use the Undotoolkit require subclassing, add an interfase, some methods and are ready for undo, not much to do, right? Are there other form to do that? So, before implement the undoToolkit, I search on internet, find the command pattern, the memento pattern and the NSUndoManager, I asked myself: How I wish the undo? maybe one undo with both? command and memento pattern. I think is posible, that’s why I desided write my own UndoManager. It works like NSUndoManager -command pattern- but without subclassing, add methods, etc. And I can add a persistent memento pattern, well, I guess…

I have some problems to resolve but I like the progress.So stay tuned!.

Advertisements

DBReport website

I’m testing a website for DBReport and need feedback.

The site is on beta stage, basically for testing some concepts and speed. The main goals are:

  1. A info website for the product (what is, what do, how get it).
  2. Online documentation (how use it) with video tutorials.
  3. Automate sales by credit-card or paypal.

I’m working on automate sales process for paypal. In this moment I do it manually with an email because the sales are low. Almost all code is written just testing some.

Next thing are credit-card sales. A partner are the best option, FastSpring or Click2Sell, or maybe the next year DBReport are bundle on OmegaBundle, who nows?

Another thing is the designer-rewritten, next month are alpha testing. Right now is just a proof-concept for feel like a  REAL designer.

No more news by now, please visit the site, the doc and tutorials and give me feedback.

Download the last version.

 

Thanks!

Unit-test for DBReport

Users had issues with subtotal functions. Some reports works others don’t. That’s the more dificult to fix.

That’s unit-tests for, “…take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect.

In case of subtotals I have to code some kind of helper function returning the value and check if is equal of a field of query.

I’m preparing a big re-coding (some people called refactoring) so the unit-test are a valuable tool for software quality.

A video unit-test implementation.

By the way, i use sakila db and add demo reports (a +500 pages report!). I will add more.

A video with sakila demo reports.

Something additional, besides solving some bugs, there is support for MBS barcode. At the beginning I chose Simbarcodes of Matthew Combatti for ease of implementation in DBReport and because it is very active in the forum, but Matthew did not answer me an email to buy the component (if Matthew is reading this, please answer: how do I buy?) so I had to implement BarcodeMBS for a client who needed barcode on the reports.

A video BarcodeMBS workflow.

You can download the last version here (mirror).

Good code.

So Long, and Thanks for All the Fish.

DBReport new Release: 1.4

Hi everybody!

New features for this release:

  • HotSpot areas in preview.
  • Listbox property as recordset.
  • Support for barcodes with Simbarcodes.

 

Hotspot areas in preview allows you process click on areas of view for, by example show a window. The control provides the parameters for select what element and the value.

For programmers asking for use listbox as recorset i add a property:


rpt.Listbox= listbox1

* The headings are using as fields.

 

Add barcode support with Simbarcodes module. The idea is support more providers like BarcodeGeneratorMBS or J4L-Barcode in the future.

You can see a video here.

You can download the component here or here.

Have a fun code!

DBReport new feature: Render to PDF

Hello,

Merry Christmas and Happy New Year!

Another Year, another code!

In this time i write about new feature for DBReport: Render to PDF.

I know you can “Print” a report to virtual printer but in some cases you need create PDF files programmatically; by example in WebApp, so i wrote a DBReportPDF class it’s based on other projects i found on internet so is Free to use (don’t need a product key to use) and works alone (don’t need others classes).

Code Example:


Dim rpt As New DBReport(f, rs)
Dim fPDF as FolderItem= SpecialFolder.Desktop.Child( “DBReportExample2.pdf” )
rpt.RenderToPDF fPDF
fPDF.Launch

This are some limitations for DBReportPDF:

  • Fonts may not be embedded. (not fully implemented yet)
  • The Underline property is not yet implemented.

By default it use zlib compression (ready on MacOS and Linux) , zlib1.dll is included on Windows, you need “boundle” this file.

In the future i support DynaPDF for PDF render Engine.

Is possible don’t use DBReportPDF just set constant kRenderEngineDBReportPDF to False on DBReportShared module and delete DBReportPDF* classes.

You can see a video here.

You can download the component here or here.

Thanks.

DBReport new feature: Subreports

Now you can add SubReport element to DBReport.

Sometimes i need print info what are no easy to set in one recordset, so i need various recordsets and “adding” to a report, that is the SubReports are useful.

First, create a report which is a template for a report parent, is not required but is recommendable. Normally just contains a “Detail” band, however you can add bands, save as a normal report definition file.

On a Report, drag’n drop SubReport element to a band, the object assume all band area, but you can change the size; the height is automatically expand as needed when is printed.

Set the template property from properties panel (do not need template file anymore) you can change the SubReport doing click on Subreport tree from “Schema” panel (the Schema button button).

At last, you set the recordset before call “Designer”, “print” or “preview”, with this code:

rpt.SubReport(“NameOfSubReport”).RecordSet= rs

The “NameOfSubreport” must be same as SubReport Name and element Name.

See video here.

You can get the component from here, here or here.

Review the issue tracker at: https://bitbucket.org/lbmonsalve/dbreport/issues

Thanks and have a nice code!

DBReport 1.3 Release

New release for everyone!

This are new:

* Documentation.
* Register component schema.
* Grid and SnapToGrid.
* Print on thread.
* Cache on preview +100 (settable) pages on disk.
* Propierties.
* Translate to German thanks to Rolf Gengster (rgenster@genster.com).
– Changing size of element on MacOS fixed, others bugs fixed.

You get the component on this links:
https://db.tt/lxdaMdrj
http://sdrv.ms/182KtEh
http://goo.gl/gftzxW

All comments are welcome.
Best regards.