Xplore for C4 ABC - DataMatrix Software

by Tom Hebenstreit, Review Editor

Published 1998-05-01    Printer-friendly version

I've been anticipating the release of this product for quite a while, as it represents one of the first template sets that really takes advantage of the new ABC class libraries introduced with Clarion 4 (C4). As these libraries are purported to be the current and future direction for Clarion, I was (and am) very curious to see real world examples of how they help (or hinder) the templates and other third party products which so many of us rely on.

Before we begin, though, it should be noted right off the bat that Xplore for C4 ABC means exactly that. It only works with C4 and with the ABC templates, not the Clarion templates (the CW 2.003 compatible template chain) and not with CW 2.x or earlier.
[Note: DataMatrix still offers the original Xplore templates for CW 2.x - see the note at the end of this review for more information about them.]

So, what is Xplore for C4 supposed to do? In the broadest terms, it allows to you to give your C4 browses most of the standard features of lists boxes used by the Windows 95 Explorer and many other Win 95 programs (hence the name); for example, the ability to sort any column by clicking on the header, and/or to rearrange the order of the columns within the list on-the-fly.

What's more, Xplore puts virtually every property of a list box at your fingertips (and more important, at your user's fingertips) at runtime, i.e., when your program is actually running.

Interested? Well, so was I -- I had seen the promises, and now I finally got the chance to see if it lived up to the advance billing. Come on along, and let's find out…

On and on… (Major Features)

These are the major features of Xplore for C4 ABC, as put forth by DataMatrix:

  • Click on a column header to sort in the order of that column (Win 98 Explorer Style).
  • Shift Columns by dragging the column header left or right (Win 98 Explorer Style).
  • Double-Click on column separator bar to adjust width to widest column string (Win 98 Explorer Style).
  • Ability to specify multiple view sort fields for each column.
  • Ability to specify default sort fields that will be appended to each column sort order.
  • Can co-exist with Sheet/Tabs each with its own format string, and the columns will inherit the range and filter settings of the active TAB.
  • The column header click can optionally select and display its own TAB.
  • Can hide a column by right-clicking a menu option in the popup menu.
  • Hot key to reset the browse back to its default setting.
  • Hot key to adjust the width of all columns to the widest column text.
  • Hot key to toggle the highlight bar between row and column mode
  • Hot key to invoke the right click POPUP menu for Xplore
  • The ability to set any color on a column without the need to specify color at design time.
  • Each column can have its own locator - even the new filtered locator.
  • A browse right-click ability to print the current browse page using the current column settings.
  • A browse right-click ability to print (with preview) the current browse VIEW using the current filter in the current order with the current column settings.
  • There is an option to use the Print Previewer from the Creative PC Solutions (CPCS) Universal Report Templates (assuming you own CPCS, of course).
  • A browse right-click feature to show a graph of the selections of the current column, i.e. graph a date column by Day of the Week or Month of the Year. Special options are available for handling Date, Time and Numeric fields.
  • Xplore will also work with the FileDrop template (DROP=0) as a View/File loaded queue. It does not have update capability, though.
  • Xplore will work with hand-coded, queue-loaded LIST controls as well.
  • Other Browse Right-click options include the ability to modify:
    Column Header Text
    Header Justification
    Header Offset
    Data Justification
    Data Offset
    Toggle Column Resize Bar
    Toggle Column Separator
    Change Browse Font
    Change Xpos/Ypos/Width/Height of Browse Box
    Change Lineheight of Browse box
    Add/delete column fields specified via the Clarion BrowseBox Hot Fields dialog
  • The right click menu and the column sort capability can be invoked from the keyboard via hotkeys, so that all functionality of Xplore can now be invoked by keyboard only without the need for a mouse.
  • Most of these options can also be switched on/off at runtime.
  • No Black Box; No DLLs; No LIBs - all of this with just normal Clarion source code and template code.
  • All English text is kept in a .TRN file for easy translation.

Whew! What a list. See why I was so interested in Xplore?

Oh, and want to turn off all those features? Simply remove the Xplore browse extension template and you'll be back to the standard TopSpeed browse. Of course, I don't know why you would want to do that, but hey, it's nice to know you can.

Installation

Xplore was provided as a self contained EXE which installed the various component files into the appropriate Clarion4 subdirectories. After installation, it was necessary to manually register the templates in C4. All in all, nothing fancy but no problems either.

Implementation

Implementing Xplore is about as easy as it gets.

The first step in adding Xplore to your C4 ABC application is to add the Xplore global extension. This extension sets up Xplore for use, and is also where you specify your overall default Xplore settings. All of the global options can be modified at the procedure level as well, so it is easy to create your overall feel with the global extension and then customize it as needed for any specific browse.

 Figure 1: Setting the Global Xplore Defaults
Setting the Global Xplore Defaults

Once the global extension is in place, you can now add Xplore to any browse box simply by doing the following:

  • Open a procedure containing a browse box (Browse, Form, whatever).
  • Click on the 'Extensions' button for the procedure.
  • Insert the Xplore 'OOPXploreBrowse' template under the 'Browse on File' template for the browse box. If desired, set any options for this specific browse, which are different than the global defaults.
  • Save everything, then regenerate/recompile the application.

You (in other words, your users) can now shuffle, hide, resize, re-sort and otherwise manipulate virtually every column and property of the browse at runtime by either dragging things around with the mouse or via right-click menus. Did I mention that this is really easy? And WAY cool?

I also liked the level of control you have as a developer over just which options are made available to the end user. Don't want the user to be messing with your colors, fonts, header text, justification, line height and so on? Fine. Just click on a few template checkboxes to turn them off and -voila- they no longer appear on the Xplore right-click menus. You can also switch many of the options on and off under program control at runtime - an example might be where you allow certain features to be enabled based on a user's security level. Implementing this last capability does require a bit of hand code, though.

Be default, every column on an Xplore browse can be sorted in either ascending or descending order just by clicking on the column header. But while it may be amusing to be able to, for example, sort people by their middle initial, it is not really very useful - particularly since it is highly unlikely that you have a key defined for that field.

This brings us to one of the areas that you would need to consider carefully when adding Xplore to a browse: how many records do you expect there to be in the file which is being browsed? Remember, if there is not a pre-defined dictionary key for a particular column, the C4 View engine will need to build a temporary one before it can re-display the browse in the new order. If you are browsing a file with a lot of records, this could add up to a significant delay between clicking on the column header and seeing something happen on the screen. Inevitably, the longer the delay, the more likely it is that your users are going to decide that the program has 'locked up' and do something drastic like shut down your program (or worse).

Fortunately, Xplore lets you turn off sorting on a column by column basis at development time. You also have the option of either having a message displayed when the user clicks on a non-sorting column header or simply having nothing at all happen.

In setting up Xplore to use with a large file, however, I found that I would like to have a way to easily turn off column sorts for the entire browse and then activate only those columns that I did want to sort on. Currently, all columns are by default enabled and you need to turn them off one by one in the template. Again, this is only really a hassle if you have quite a few columns and want to limit on-the-fly sorting to just a few of them.

One final point I would like to touch on is in relation to the common practice of using tabs to switch from key to key in a stock C4 browse. How does that work out if Xplore can sort and re-sort the columns at the user's whim? Very nicely, thank you. Xplore will automatically use whatever filters or ranges are set up for each tab, while giving the user the ability to use the on-the-fly sorting feature within those pre-defined filters.

Additionally, it can be set up so that the tabs (and sheet) are hidden and that clicking on a column header causes the associated tab to become the active one. The benefits of this are two-fold. First, it makes for a very clean and simple interface. Second, within that apparent simplicity you still retain all the power of being able to define multiple keys, filters, locator types and so forth which the 'one tab per sort' methodology provides.

Performance

Xplore in action was quite snappy. It was also very easy to use since it basically made the C4 browses act the way most people expect a Windows list box to work. If you keep in mind that balance between file size and non-key sorts, my Xplore browses worked just like the standard C4 browses. Oh yeah, except that they were completely customizable, infinitely more flexible and actually fun to use (never thought I'd be saying that about a browse, though!).

In fact, probably the biggest danger you may face is that your users will spend all of their time tweaking their browses instead of using them (just kidding!). And, if they get themselves to the point where the browse is a total mess, DataMatrix was thoughtful enough to provide both a hot key and an option on the right-click pop-up menu to reset the entire browse back to its default settings. Kind of a panic button for browses.

On a more serious note, having the ability to rearrange, resize, hide or even add columns, and so forth is really nice. Most importantly, having the program automatically remember all of those setting is really, really nice. I don't know how many times I've had users request those features, and now Xplore makes it a trivial process to provide them. (Believe me, though, the code behind Xplore is NOT trivial!)

 Figure 2: A sample browse with modified font
A sample browse with modified font
height, colors, hidden columns, sorted on-the-fly by State, etc., and the Xplore properties window.)

On top of the features Xplore adds to the browse itself, there are bonus 'output' options that were totally unexpected. There are three of them, accessed from the 'output' choice on the Xplore right-click pop-up menu:

  • The 'graph' option creates a basic bar chart from the browse using the current column. For example, you can create a chart that summarizes the 'State' column in a browse of addresses. You can't print the chart, but you can click on a button to copy it to the clipboard for printing in another program. For example, I created a graph and then pasted it into Paint Shop Pro where it could be tweaked, printed and/or saved.
  • The second option is my favorite: 'Print All'. In essence, it creates an instant report from the browse, using all of the current browse settings including sort order, filters, column arrangement, font and more. The report is displayed in the standard report viewer or, if you own Creative PC Solution's Universal Report Templates, in the more powerful CPCS viewer. From there, you can print it or whatever. Note that this is all done auto-magically - you do NOT have to create a Report procedure, etc., in advance. This is an outstanding feature for creating simple ad-hoc list reports.
  • Option 3 is to print a single page report of the currently displayed records. This option does not allow for previewing, etc.

Again, none of these options required any effort whatsoever on my part. They simply appeared when I added Xplore to the browse.

Special Note: After the review was finished, Brian Staff (the author) pointed out that Xplore allows you specify preview or no preview for the instant reports simply by setting a property for each type. What I was seeing was that single page reports default to no preview, while full browse reports default to previewing. He also pointed out that Xplore will try to intelligently size the report font to ensure that all columns will fit on the page. Oh, yeah, and you can specify the minimum and maximum font sizes it will use while doing that via simple property assignments. Yowza! It makes me wonder what else is hidden in there – and that brings us to…

Documentation

Sigh. It is fortunate that the Xplore templates are so easy to use, because this is another case of a great product being hampered by not-so-great documentation. All the documentation is contained in a Windows Help file and, while it is reasonably informative, it definitely needs some proofreading and polishing. In particular, the more advanced options relating to how multiple tabs can be used in conjunction with Xplore could use a better explanation. (And how about that list of properties and methods?)

A demo is available for download, which does a decent job of covering various options and letting you become familiar with how Xplore operates. The demo program app file is not included with the product itself, though, so you don't get the chance to see how the more advanced Xplore options were actually implemented by the author (an oversight which I hope will be corrected in a future release).

No printable documentation is provided other than a 'readme' text file that details which files should go where, and lists the Xplore feature set.

Technical Support

Technical support is provided via Internet email and on the CompuServe TopSpeed Forum in the Third Party section. My questions were generally answered within 24 hours, and DataMatrix seems dedicated to actively developing and improving the product on an ongoing basis. The author, Brian Staff, is a long time member of Team TopSpeed.

Summary

Most of the ABC compatible products I have seen so far are just that - compatible. By that I mean that, yes, they work with the ABC templates but they don't really utilize the underlying ABC class libraries. As I stated in the introduction, though, Xplore for C4 is one of the first products I've seen that is really integrated with the ABC templates and class libraries.

Is it powerful? You bet. Simple to use? You got it. Is it perfect? Well, not quite - but it is the supporting materials, such as the documentation, that need the work, and DataMatrix was working on them during the course of the review. Xplore itself is an extremely impressive piece of work, and the extra features like the instant reports are a knockout.

I must stress again, however, that Xplore for C4 works ONLY with the ABC templates. Also, due to that tight integration with the ABC class libraries, I wouldn't expect a C4 Clarion template version of Xplore. If you are an ABC user, though, or just thinking of using the ABC templates, I highly recommend that you download the demo and take a look at it.

To sum up, this is one product that is so good that it could actually drive the choice of which template set to use in a C4 application (ABC or Clarion).

Category

Product Score

Ability to do the task

Excellent

Ease of use

Very Good

Ease of Installation

Good

Documentation

Fair

Technical Support

Very Good

Modifies Shipping Templates

No

Black-Box DLLs/LIBs

No

Xplore for C4 ABC lists for $249.00 US, and is available from the following sources:

- Direct from DataMatrix (see http://ourworld.compuserve.com/homepages/BrianStaff)
- Via CompuServe SWREG #16652
- From BMT Micro via the Internet (http://www.bmtmicro.com)

The Xplore demo can be down loaded from the TopSpeed forum on CompuServe or from the ftp.bmtmicro.com FTP site - XploreC4.ZIP (600k)

Special Note for CW 2.x users
DataMatrix is still offering the original CW2.x version of Xplore for the price of $79.00 US. According to them, it LACKS the following features that were added for C4:

  • right click capability
  • keyboard only
  • dragging columns sideways as in Win98 Explorer
  • print browse
  • graph browse
  • adjust column width
  • column coloring
  • automatic select of TAB for each column sort order
  • multiple fields for any sort order

It does, however, offer the basic functions such as multiple sorts and the ability to rearrange the columns, etc. For more information, contact DataMatrix via their web site (listed above) or via email: BrianStaff@compuserve.com.

Printer-friendly version

 
 

Search

 

Advanced Search
Topical Index

Related Articles

Subscribe to
ClarionMag

One year: $184

(includes all back issues since '99)

Renewals from $134

Two years: $274

Renewals from $224

More Info

Subscribe Now!

ClarionMag Blog

RSS Feeds

Updates via Email

Enter your Email


Powered by FeedBlitz

Quick Links