Arctic reports (reporting system - Windows)

Developed or developing a new product in PureBasic? Tell the world about it.
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Arctic reports (reporting system - Windows)

Post by srod »

16th January 2013.

Hi,

this is just a bug fix release. Problems with group totals and the like have been fixed as well as a couple of issues with SQLite data sources.

Please note that the Pyrex designer no longer comes in the form of a .msi installer. Instead there is just a .zip archive to extract.

Regards.

Stephen.

===================================


6th November 2011.

Hi,

nxReport 1.91 has been released. Please see the relevant posting below for more details.

===================================


20th October 2010.

Hi,

nxReport 1.9 and Pyrex 1.4.5 have been released. Please see the relevant posting below for more details.

===================================


9th September 2010.

Hi,

nxReport 1.8 and Pyrex 1.4.4 have been released. Please see the relevant posting below for more details.

===================================


4th September 2010.

Hi,

nxReport 1.7 and Pyrex 1.4.3 are both substantial upgrades. Please see the relevant posting below for more details.

===================================


17th August 2010.

Hi,

this is quite a substantial upgrade to both the nxReport core module and the Pyrex visual designer. A number of bugs have been fixed (details in the relevant history files).

nxReport 1.6.
The most important new features are check-box controls (which can be bound to database fields and the like) and support for PostgreSQL databases.

Whilst working on PostgreSQL support, massive deficiencies with the way nxReport handles remote connections came to light and these have been rectified. nxReport is now better able to handle such connections. These modifications mean that any application using custom data-sources (which will be very few) will need modifying.

I have also altered the rendering of all text based controls by the inclusion of some internal padding. This will mean that some existing reports may require some minor adjustments just to make sure that their textual content fit the controls etc. Nothing major.

Please note that ALL existing applications making use of nxReport will require recompiling before they can be used with the new dll. No modifications are necessary (unless using custom data-sources), but you will need to recompile etc.


Pyrex 1.4.2.
Support added for the new check-box controls and for PostgreSQL data-sources.

Pyrex is now much better equipped to deal with reports taking data from remote sources, e.g. when attempting to preview a report etc. Previously, Pyrex could appear to lock-up whilst awaiting a time-out from a remote connection etc. This has been addressed via separate threads of execution.

When attempting to list a subreport's data-source field list alongside the design canvas, Pyrex will now allow the user to cancel any attempt at a connection to the data-source. Further, Pyrex now caches the list of fieldnames and will only reconnect if the cache does not contain the relevant fieldnames etc. or the user forces a reconnection.

Regards.

Stephen.

===================================


30th July 2010.

Hi,

Pyrex 1.4.1 fixes a number of bugs in the recently released major version 1.4.0 and adds some nice additional features.

You can see the list of bugs fixed in the relevant history file available in the Arctic Reports download section.

New features :
  • Added a whole host of toolbar buttons / menu options for formatting controls. This saves having to use the property-window when adjusting control properties etc. and can save a lot of time.
  • When dragging a data-field to the design canvas, you now have the option of creating a bound field or automatically average/sum a field etc.
Regards.

Stephen.

===================================


25th July 2010.

I have started adding some basic instructional videos to the Arctic Reports website which will take the user through the basic steps of creating reports with the Pyrex visual designer. You will have to excuse my voice though as I do sound as though my head is being held underwater as I speak! I am assured that I do not really sound like that! Oh well, could have been worse... thank the stars I do not possess a webcam! :wink:

Stephen.

===================================


20th July 2010.

Hi,

Pyrex 1.4.0 (incorporating updates 1.3.5 and 1.3.6 which were released to assist users of Pyrex) is a major update to the visual report designer. A huge update!

Before listing the changelog let me just say that work will now begin on revamping and completing the online manual and upon a series of major updates to the core nxReport module (see the nxSoftware blog for more details).

First, a whole heap of bugs have been fixed, but I won't bore you with them here. You can see the list in the relevant history file available in the Arctic Reports download section.

New features :
  • Cut / Copy and Paste of individual controls added.
  • Undo / redo.
  • Reposition and resize controls by clicking the mouse and dragging them etc.
  • When moving/sizing a control via the mouse, the dimensions of the control are now displayed in the statusbar as the control is moved/sized etc.
  • Added a context menu to the design canvas (just right click the design canvas). This menu allows us to quickly paste controls at specific locations and shortcuts the business of adding new controls etc.
  • Added the option of using a square design grid (as opposed to a dotted one). This is now the default.
  • Multiple selected controls. All selected controls are now highlighted in the design grid (as opposed to just the main selected control being highlighted).
  • Many control properties, when altered via the main property box, are applied to all selected controls, not just the primary selected control. Applicable control properties : visibility, border style, border width, border color, background mode, background color, foreground color, image, image format, text format, clip text setting, clip custom control setting, font, font escapement, horizontal alignment and vertical alignment.
  • Double click a control to bring up the expression builder (for those controls taking text or expressions as their source).
  • Pyrex now attempts to display a list of field-names for the subreport currently being edited (assuming it has a data-source). If it succeeds then the user can simply drag fields to the design canvas etc.
  • Pyrex now allows the user to set values for report parameters which will enable Pyrex to preview parameterised reports (assuming all data-sources are present). The option of saving the parameter values within the underlying report file is disabled for now as that requires an upgrade to the nxReport core module (forthcoming).
Copy/cut/paste operate upon single controls only at the moment. You cannot copy multiple controls or entire subreports etc. There are a couple of operations which cannot be undone (or redone) which are listed in an accompanying text file in the download section.

This new version of Pyrex is to be considered a test version only at this stage. A previous stable version is still available.

Click here for a screenshot of Pyrex 1.4.0.

Stephen.

===================================


5th Dec 2009.

Pyrex 1.3

A minor update to the Pyrex report designer.

Have added F5 shortcut for previewing the current report.

Have also upgraded the expression builder tool to use a Scintilla control with fully customisable coloring of the various expression parts etc. Should make things easier when building complex expressions.

The installer is now a msi package and adds entries to the control panel 'Programs and features' etc. Desktop shortcuts etc. are added for all users.

===================================


28th Sept 2009.

Pyrex 1.2 / nxReport 1.5.

Version 1.5 of the nxReport Core Module allows for importing existing Arctic-Reports into a report object. This means that you can easily create a 'bank' of report templates for use in other reports etc. Options include importing page properties, control units, fonts and images (on top of importing all subreports and controls etc.)

There are a couple of things to note though :
  • In the case of an error, the existing report object (into which you are attempting to import an additional report) is left as it was prior to the attempted import.
  • In the event of the imported report containing font or image ID's which clash with those in the host report then the new font / image IDs will be automatically renamed.
  • In the event of the imported report containing subreport or control ID's which clash with those in the host report then the new subreport / control IDs will be automatically renamed. However, in these cases, any expressions referring to the original IDs will not be altered as this would slow down proceedings too much. Because of this it is advised that when creating reports to be imported, subreport and control IDs are chosen so that they are very unlikely to be duplicated in host reports etc.
Pyrex 1.2 (the visual report designer) has the following changelog :
  • Some minor repainting bugs fixed.
  • The main Pyrex application window is now restored on application restart.
  • Added a rebar control allowing the various toolbars to be repositioned etc.
  • Support for the newly added import facility described above.
Note that because I do not like the look of a themed rebar when running on XP, I have turned off theming for the rebar control. You can turn this back on though through Pyrex's settings menu option.


Work now begins on a scripting component for the Arctic-Reports system in order to satisfy certain user requests. This component will allow each report to contain it's own code module(s).

===================================


10th September 2009.

nxReport version 1.4 / Pyrex 1.1.

Binding for Powerbasic.


Hi,

a few bugs fixed both with the nxReport core module and the Pyrex visual designer. Have also added the option of generating 'MODAL' or 'MODELESS' preview windows. In the modal case, nxReport adds it's own message retrieval code and the library will not hand control back to the host application until the preview has been closed. This means that you can generate a preview without worring about message retrieval etc. Very useful.

Most importantly, however, is that there is now a Powerbasic binding for the nxReport core module and thus you can now easily use the Arctic reporting system with both Purebasic and Powerbasic applications (requires Powerbasic 9.0 onwards). The Powerbasic wrapper makes good use of nxReport's OOP interface and so the code required to work with this library is very very similar in both languages.

Work on the Powerbasic demos continues but should be complete in a couple of days or so.

To make use of the Powerbasic wrapper, you MUST upgrade to version 1.4 of nxReport. No existing code will be broken by this.

Regards.

Stephen.

===================================


28th July 2009.

Hi,

the first full version of the Pyrex visual report designer has been released (version 1.0). This follows a quite extensive testing period which threw up lots of bugs and lots of subsequent bug fixes! :smile:

This coincides with the release of version 1.2 of the nxReport core module which makes a few minor alterations to the core engine and fixes a bug related to font metrics.

Users are advised to upgrade to this new version of the core nxReport module.

Regards.

Stephen.

===================================


Pyrex version 1.0 alpha 3 / nxReport version 1.1 - 19th July 2009.

nxReport version 1.1 adds support for custom controls (advanced users). These controls allow a host application to paint directly to the meta-files underpinning a print and/or preview and can thus add support for (as yet) unsupported 'display elements' (such as charts etc.) As per usual, you can specify whether the nxReport core module should clip the contents of such controls or whether you can paint to the entire page etc. Very useful if I say so myself! :wink:

Pyrex 1.0 alpha 3 (visual report designer) of course adds support for the new custom controls. It also fixes quite a number of bugs (both minor and massive!) and adds a few additional menu options. There remains only one more menu option to add before we hit the beta testing stage.

(Please note that I am away for a few days now and so cannot reply to any queries until I return.)

===================================


Online user-manual available to all.

Hi,

I have now made the Arctic reports online manual available to all through the nxSoftware site. It makes sense to open it up in this way. :)

The manual is in tatters at the moment whilst I rewrite it following the first alpha release of the Pyrex visual report designer, so you will need to be patient (and forgiving!)

===================================


Pyrex version 1.0 alpha 1 available - 7th July 2009.

I am pleased to be able to finally announce the release of our first version of the Pyrex visual report designer, part of the Arctic reports system.

This first version is incomplete, but it is otherwise fully functional, and is to be considered a 'test version' only. Use it at your own risk! :wink: This is made available to all registered users of the Arctic reports suite.

Pyrex is incomplete because I have yet to add some menu options allowing for the editing of preference settings and so on. Nothing which should prevent Pyrex from earning it's keep!

Please note that the core nxReport library is now out of beta and into it's first full release. A few minor modifications were forced upon nxReport by the Pyrex designer and these could break existing applications, though only in a very minor way. Please see the relevant 'history.txt' file in the download section over at the nxSoftware site for details.

It is worth noting though that reports created by Pyrex should really only be shipped with applications making use of this latest version of the nxReport dll. Older versions of nxReport are about only 95% compatible with Pyrex! :wink:

A preview version of Pyrex will be uploaded for general consumption when appropriate - perhaps later today.

Please post any bugs that you find over at the nxSoftware forums. I would say that this is not the time for posting suggestions, better that we iron out all the bugs in this early alpha version first.

Regards.

Stephen.

Note that whilst the core reporting module (nxReport) is supported on all versions of Windows from NT 4 onwards, Pyrex will only be supported on versions of Windows from XP onwards.

===================================


Version 1.0 beta 7. 30th Apr 2009.

Just a note to say that the final beta version of the nxReport library has just been released with lots of bugs fixed and some important additions.

Chief amongst these are a new control type (image from file) and the support for 'snapshot reports'.

These new reports act like regular nxReports and can be previewed and/or printed etc. but otherwise cannot be altered in any way (other than to change margins or clipping mode etc.)

A snapshot report would be created from an existing report and when viewed, looks identical to the original report in every way.
However, the snapshot report does not require any external data-sources etc.

Everything required to render the report is embedded within the snapshot report itself and reproduces the original report at the time the snapshot was created.

Snapshot reports are ideal for transmission across the web to clients for easy viewing of report(s) etc.

Tested on a 1000 page report (thanks Marco). The resulting snapshot report was 800 KB in size and loads and previews in milli-seconds. Contrast with the equivalent pdf file which sat at 3.6 MB and took considerably longer than milli-seconds to render!

A free viewer program will be released for anyone to download. This will allow anyone to view reports very quickly. I will also be investigating a browser plugin to allow reports to be viewed through our browsers etc. No guarantees on this one though!

nxReport is seeing some heavy use in various applications (commercial and otherwise) and seems to be holding up very well thus far!

Finally, the visual report designer (Pyrex) is now about 65% complete. Considerably more work than I originally envisaged, but then this is no longer the simple tool which I originally intended!

A few more weeks should see the release of Pyrex; at which point all discounted prices will be subject to intense scrutiny on my part! :wink:

===================================


Version 1.0 beta 2. 7th Dec 2008.
Version 1.0 beta 2 adds the ability to horizontally tile records (or more accurately, tile subreport detail sections). This is of course on top of vertically tiling etc. (which is the norm for these sections).
Amongst other things, this allows us to easily create pages of address labels (a new demo program has been added to show how easy this is and a new screenshot added to the relevant page on the nxSoftware site).

Also added some additional standard functions to the expression engine and fixed a few bugs.

See the nxSoftware site for more details.

===================================


Hi,

nxReport has been in development for about a year now and I am pleased to be able to finally take the wraps off it. Indeed, many of the tools I have released in that time have arisen out of my work on nxReport (COMate for one!) :)

So what is it exactly?

Well, it is a fully fledged application reporting module (modelled after MS Access reports in a way). It is not simply a preview and print engine, but an advanced report manager, and all coded in Purebasic. :wink:

Perhaps a list of current features will help (reproduced from the nxSoftware site) :

  • Comes in the form of a single dll (Unicode and Ansi versions available)
  • Support for multi-language applications
  • Easy to use OOP api
  • Includes an advanced report previewing engine (with device independent rendering) with a very smooth zoom facility and with (optional) thumbnail navigation
  • A report consists of any number of subreports
  • Each subreport can have a separate datasource (ODBC or SQLite or OLE-DB or a custom source such as a text file etc.)
  • Switch between units of mm, 1/10 mm or 1/100 mm
  • Fully adjustable page margins
  • Fonts use proper typographic points (1/72 inch)
  • Subreport datasources can be linked and subreports chained together as parent - child - grandchild - ... etc. Each subreport can have 10 child subreports and each child subreport can have 10... etc.
  • Each subreport can have the following sections : page header, subreport header, group header (records can be grouped), detail, group footer, subreport footer and page footer. Page headers and footers can have 'print conditions' attached to determine upon which pages they are rendered etc.
  • Records can be 'grouped' according to a 'group expression'
  • Controls are added to subreport sections.
  • The user sets control properties as appropriate in order to determine the control's appearance and position etc. There are properties covering many many aspects of a control's appearance.
  • Many different types of controls available (label, calculated field, bulleted or numbered lists, image, line, rectangle, ellipse...)
  • Controls can be given 'print conditions' to determine when and where they are rendered etc.
  • A very powerful expression engine for use with controls utilising calculated fields / print conditions / event expressions / group expressions etc.
  • Expressions can utilise many standard in-built functions, controls, database fields, user-defined functions, constants ... etc. This includes an Iif() function.
  • Aggregate functions for use in expressions (sum, average etc.) and on datasource fields or control sources. These can be used on individual record groupings or on entire recordsets etc.
  • Native currency calculations (including aggregate functions)
  • Report parameters
  • A multitude of 'event triggers' can be defined for individual subreports which fire at the appropriate times (e.g. prior to rendering a new section) and allow an expression to 'execute' which can in turn run user-defined functions etc.
    Useful for altering control properties 'dynamically', i.e. during print or preview operations or for forcing additional page-breaks in order to keep multiple report sections together etc.
  • A range of formatting options for controls (or individual sub-calculations) including referring to the user's locale settings etc.
  • Full loading and saving of compiled reports which require no additional external files. That is a compiled report contains all controls, fonts, images etc. Only the nxReport dll is required to access / print / preview the report.
  • Render reports to screen, printer, EnhancedMetaFile, image etc.
  • Opt to have potentially long winded 'spooling' operations performed in the background

There are many many more features planned (such as a full scripting engine to allow for the use of powerful code modules, more output formats, direct pdf output etc.) and of course there will be an accompanying visual report designer (called nxVision) which sits at the top of the priority list. The visual designer can be purchased, in advance, alongside nxReport at a significantly discounted price.

Make no mistake though, nxReport is a full product in it's own right and does not require a visual designer to quickly produce very powerful reports.

All prices are discounted to reflect the fact that nxReport is in early beta form and the fact that the online manual is a work in progress (but progressing fast!) Those opting to purchase nxReport together with the forthcoming visual designer will receive a double discount right now, but that is literally for the first few customers only! :wink: All purchases come with life-time updates etc.

I make no apology for not providing this product for free, no sir! This has been (and will continue to be) a major undertaking in amongst my other activities whilst being self-employed. It is certainly the most demanding thing I have ever produced! :)

The relevant pages of the nxSoftware site contains several screenshots of the nxReport preview engine in action as well as some demo exe's which you can try out. (Unicode exe's, so they will not run on Win 9x!)

Please feel free to ask any questions prior to making any kind of purchase; either here or over at the nxSoftware forums or even through pm. Afraid I have no demo version of the library available at present as I am not entirely sure that it is appropriate for this kind of library? What I will say is that I am happy to refund a purchase if you subsequently decide that nxReport is not appropriate for your needs (within a 'reasonable' time frame of course).

Please visit the nxSoftware site for more details on this library.

Regards.

Stephen.
Last edited by srod on Wed Jan 16, 2013 4:14 pm, edited 40 times in total.
I may look like a mule, but I'm not a complete ass.
ebs
Enthusiast
Enthusiast
Posts: 530
Joined: Fri Apr 25, 2003 11:08 pm

Post by ebs »

srod,

I looked at your nxReport site and tried out the example programs.
They worked well, but didn't really give me an idea of the full capabilities of the library.

I own your EsGrid, so I know you do high-quality work.
Is there any way you can provide additional information about the functions in nxReport?
Maybe a copy of a help file, or some sort of function list with descriptions?

Regards,
Eric
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

Hi ebs,

yes I understand where you're coming from here. I have tried to give as much detail as I can on the nxSoftware site regarding nxReport's feature list etc, but it is difficult to strike a balance between giving enough information and simply providing too much and over-whelming the reader.

The help manual (which I am working on right now! :wink: ) is an online manual accessible to licensed owners of the library only. I have done this to ensure the integrity of my work because armed with a copy of the dll taken from any application using this library and a copy of the user manual will be enough for non-licensed people to make use of the library....... :shock: Actually, that is nonsense - the person in question would need the extensive 'header file' containing interface definitions and constant values in order to make use of the dll!

Yes, I may well be able to provide open acces to the online manual after all. Yes, that is probably a very good idea! :wink:

In terms of nxReport's 'raw capabilities', well it's no bad thing that I admit to keeping a firm eye on 'ReportMan' whilst developing this thing (look it up in Google). I would say that nxReport compares very well to 'ReportMan'. There are a number of things which ReportMan can do, but nxReport cannot as yet do (some of these are planned for future updates). However, ReportMan, whilst an excellent product, carries a lot of Delphi (and ActiveX) 'baggage' with it, particularly where accessing databases is concerned and is, for the Purebasic user at least, no where near as easy to work with (in my opinion). True, ReportMan has a visual designer (nxReport will soon have one), but it does not have a true stand-alone report manager like nxReport. My forthcoming visual report designer will use nxReport as the entire 'back-end'; it will require nothing else to deal with the reports themselves.

All the basic demos displayed upon the ReportMan site carry over very easily to nxReport. This excludes producing address labels which nxReport is not specifically geared up (as yet) to produce, but again this is a feature planned for a future update.

There is also the 'ddoc' product of course, but this is more a print manager (in a spooling sense) than a complete report manager and, to be honest, nxReport's features list leaves ddoc standing. One of my testers is a long time user of ddoc and has stated to me that the nxReport api is much easier to use - at least for the Purebasic user. Again, ddoc is a great product and I am not trying to 'sleight' it in any way, just give an honest comparison; but then for the price you cannot really go wrong with ddoc. It's a case of getting what you pay for really! :)

In short I would say that nxReport can (in it's current form) do anything ddoc can (+ a whole heap more) and 'most' of what ReportMan can do. I don't know if this description is in any way helpful, but there's no harm giving my opinion?

I'll have a think about the making the manual openly accessible ebs. In the meantime please feel free to ask any specific questions regarding nxReport's capabilities and / or limitations etc. and I shall endeavour to answer them asap.

Regards.
I may look like a mule, but I'm not a complete ass.
rsts
Addict
Addict
Posts: 2736
Joined: Wed Aug 24, 2005 8:39 am
Location: Southwest OH - USA

Post by rsts »

Wow :shock: very impressive.

I've placed the package at the top of my Christmas list and given it to Mrs rsts. Please don't raise the price too soon :)

cheers
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

rsts wrote:Wow :shock: very impressive.

I've placed the package at the top of my Christmas list and given it to Mrs rsts. Please don't raise the price too soon :)

cheers
For you rsts, a special price of 3000 Euros!!! :wink:

If you think that's a high price, then worry not, fangbeast will have to mortgage his house (not to mention his soul) before he could afford a copy! :twisted:

Seriously, the double discounted price will rise very soon now; I set myself a limit of a certain number of purchases at that price and we have almost hit that limit already. Normal discounts will remain in force until nxVision (the forthcoming visual designer) is complete.
I may look like a mule, but I'm not a complete ass.
User avatar
Fangbeast
PureBasic Protozoa
PureBasic Protozoa
Posts: 4749
Joined: Fri Apr 25, 2003 3:08 pm
Location: Not Sydney!!! (Bad water, no goats)

Post by Fangbeast »

If you think that's a high price, then worry not, fangbeast will have to mortgage his house (not to mention his soul) before he could afford a copy! :twisted:
I wouldn't dare buty a product from someone who drives the way you do, it might crash the same way!!! (I was thinking of mortgaging your house to buy it actually) (Very evil, feral, twisted grin)
matty47
User
User
Posts: 34
Joined: Fri Sep 26, 2003 10:21 pm

Post by matty47 »

Given the quality of ESGrid and the Nexus library you've won me! Purchased this.
Matthew
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

matty47 wrote:Given the quality of ESGrid and the Nexus library you've won me! Purchased this.
Matthew
Thanks. :)

I sent an e-mail with all the details you need. If it didn't arrive then please let me know because my smtp server is playing silly buggers at the moment!
I may look like a mule, but I'm not a complete ass.
matty47
User
User
Posts: 34
Joined: Fri Sep 26, 2003 10:21 pm

Post by matty47 »

All good - and quick I might add
Thanks
Matthew
User avatar
the.weavster
Addict
Addict
Posts: 1537
Joined: Thu Jul 03, 2003 6:53 pm
Location: England

Post by the.weavster »

That's very interesting srod.

If you check the REALbasic forum RB users are screaming for a nice reporting solution. You need to sweet talk Fred into fixing the shared library issue for other platforms and then wrap the api up in some nice RB classes.

Can the reports be directly output as a file as of now?
If so in what format and can the file be output without previewing first?
Is it possible to direct the report straight to a printer without previewing it?
Can the ODBC connection string be passed from the calling application or is it embedded in the report template?

I currently use MetaReport but my app connects by ODBC and MetaReport requires ADO which is a pain, not only that but you can't pass the connection string as a parameter. Plus MetaReport is Windows only, so my whole app is cross-platform except the reports.
User avatar
DoubleDutch
Addict
Addict
Posts: 3219
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

Post by DoubleDutch »

nxReport is a great add on for PureBasic - recommended! :D
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

nxReport is a great add on for PureBasic - recommended!
Thanks Anthony! 8)
the.weavster wrote:That's very interesting srod.

If you check the REALbasic forum RB users are screaming for a nice reporting solution. You need to sweet talk Fred into fixing the shared library issue for other platforms and then wrap the api up in some nice RB classes.
Afraid that nxReport is Windows only. Though admittedly it doesn't use a huge amount of api (relatively speaking). Someone who knew the Linux equivalents of gdi could probably convert the api code without too much trouble. It is, to be honest, something that doesn't overly concern me that much because, as most people know, I live within the depths of the Win API anyhow! :wink:
the.weavster wrote:Can the reports be directly output as a file as of now?
If so in what format and can the file be output without previewing first?
A report can be saved in a compiled form at any time with or without previewing. Take the compiled form and move it between applications at any time. This compiled form is a binary format specifically for nxReport reports only. I based the design on a MSCOFF file. I did consider using an XML format, but decided that embedding images within reports would result in some huge XML files!!! I may add this in a future upgrade though.

If, on the other hand, you are referring to rendering formats then nxReport can render a report direct to screen (preview) or printer or an Enhanced MetaFile. You can also render any series of pages into any HDC, from which you can create any kind of image etc. This is how the thumbnail navigation control operates in that it first renders individual pages into a regular bitmap etc. nxReport can also provide a preview in it's own (customisable) window or it can embed a preview (complete with full scrolling) within any control, for example a Purebasic container gadget (one of the demo programs does exactly this!)
Other output formats are planned; text files, HTML etc. NOTE that these are for rendering only and not for saving reports.
the.weavster wrote:Is it possible to direct the report straight to a printer without previewing it?
Absolutely. nxReport allows you to enumerate through all printers attached to your machine (even network printers) and you can nominate one of these for direct rendering to print (without a dialog). Alternatively you can nominate the user's default printer. Additionally you can bring up a print dialog etc. All of this with or without a preview.
the.weavster wrote:Can the ODBC connection string be passed from the calling application or is it embedded in the report template?
First, reports themselves do not have datasources; only subreports do (which is far more flexible). Once set, the datasource info is embedded within the report, but you can retrieve or adjust (or reset) an individual subreport's datasource string at any time. If you alter a subreport's datasource whilst, for example, the underlying report is being previewed then of course the changes will not take effect until you close and then reopen the preview etc. Some of the demo programs use what I have termed 'parameterised reports' in which report parameters are used to alter a subreport's datasource without having to alter the entire SQL statements etc. Report parameters allow you to (amongst other things) alter a datasource without physically altering connection strings or SQL statements etc. and they work very nicely. This is something I quite literally stole from ReportMan, but hell, if it works... :wink: Of course there is nothing stopping you physically altering connection strings and/or SQL statements if you wish, but report parameters are there to make life easier! :)
the.weavster wrote:I currently use MetaReport but my app connects by ODBC and MetaReport requires ADO which is a pain, not only that but you can't pass the connection string as a parameter. Plus MetaReport is Windows only, so my whole app is cross-platform except the reports.
Well, as already explained, nxReport allows you to alter connection strings at will. However, again as explained, nxReport is not crossplatform. A crossplatform solution would involve my paying someone to undertake that work - something which I am not adverse to as I have already paid someone to write a module for me for the forthcoming visual designer. It would depend on there being sufficient demand for a Linux port and someone able and willing to undertake that work etc. :)

I hope that answers your questions? If not then please fire away!
I may look like a mule, but I'm not a complete ass.
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

Version 1.0 beta 2. 7th Dec 2008.
Version 1.0 beta 2 adds the ability to horizontally tile records (or more accurately, tile subreport detail sections). This is of course on top of vertically tiling etc. (which is the norm for these sections).
Amongst other things, this allows us to easily create pages of address labels (a new demo program has been added to show how easy this is and a new screenshot added to the relevant page on the nxSoftware site).

Also added some additional standard functions to the expression engine and fixed a few bugs.

See the nxSoftware site for more details.
I may look like a mule, but I'm not a complete ass.
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Post by Trond »

What is a report tool? It sounds to me like it's an entire layout engine made for no reason since outputting to an HTML file could do the job.
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Post by srod »

You think so do you? :)

Well, firstly even a simple html 'layout manager' could save a developer loads of work, particularly when the question of 'reuse' come in to play.

However, nxReport is not just a layout manager, it is a report manager and doesn't pretend to be anything else.

nxReport will create very complex reports with a fraction of the code you would require to produce these things without the 'automation' aspects of a tool like nxReport. Automation which takes things far beyond 'layout management'. Grouping records, embedding child subreports, sections, headers, footers, linked datasources, parameterised queries, page management, ack the list goes on. I'd like to see a html preview carry across to a EMF or some arbitrary HDC etc. The point is that a 'layout manager' is effectively the limits of a rudimentary tool allowing for the simple generation of HTML output for subsequently sending to a printer etc. nxReport will eventually generate HTML, but this would be a minor addition, and not a particularly important one at that.

For a basic layout manager I would probably choose to use html myself; but, as already stated, this is not a layout manager, it is a report manager dealing with, well... reports and it can simplify all the 'baggage' which complex reports can often carry with them; databases, groupings...

The author of an application dealing with complex reports, if using a tool like ReportMan or nxReport, could save himself thousands of lines of code if using the said tool to provide previews and printer support etc. Take a look at Karbon's kBilling (uses ReportMan) which makes extensive use of fully customisable report templates. I shudder to think how many lines of code Mitch saved himself by using this tool? Hell the user of kBilling can even use ReportMan's built in designer for editing the templates (and at no extra cost to Mitch). I've done that several times whilst using kBilling - and a very useful feature it is as well. Allowing an end-user to dynamically (and visually) alter application report templates if those reports are created by a simple HTML layout tool will involve quite a lot of code by my reckoning.

Still horses for courses; if you have no need for such a tool, then don't...... :)
I may look like a mule, but I'm not a complete ass.
Post Reply