Home Contact Site Map Privacy Policy Rev Search
Volume 4 Issue 1
 

Up
Volume 1 Issue 1
Volume 1 Issue 2
Volume 1 Issue 3
Volume 1 Issue 4
Volume 1 Issue 5
Volume 1 Issue 6
Volume 1 Issue 7
Volume 1 Issue 8
Volume 1 Issue 9
Volume 1 Issue 10
Volume 2 Issue 1
Volume 2 Issue 2
Volume 2 Issue 3
Volume 2 Issue 4
Volume 2 Issue 5
Volume 2 Issue 6
Volume 2 Issue 7
Volume 3 Issue 1
Volume 3 Issue 2
Volume 3 Issue 3
Volume 4 Issue 1
Volume 4 Issue 2
Volume 4 Issue 3
Volume 4 Issue 4


 

 

 S/ENL - The Sprezzatura Electronic Newsletter

(All the RevSoft News That's Fit To Print (And bits that probably aren't as well...))

Contents

Welcome

Feedback

S/Merge

S/List 3.01

Tips for OI Users

Check Boxes and GotFocus/LostFocus

Speaking of the EventDesigner

Context Menus and GotFocus

List_Volume_Sub

BTN (97) BTN (97) – Who’s Got the BTN (97)?

BTN_97 Usage instructions

Changes in Web Licensing in 4.X

zzCGI – Multiple Applications on a Single Web Server

GEN_POP Easy Peasy Popup

Repositories In The Mist

ZZ_App_Launcher

Eric the Emu does VB

Declaring DLL Prototypes

Celebrity Interview - Kevin Ruane

Peripheral Trivia

11th July 2003

S/ENL Volume 4 Issue 1

 

 

Welcome

Welcome to the first SENL of 2003! We’re sorry that you’ve had to wait so long but we’ve had a busy year and regretfully the editor of this journal was a lot more involved than usual and so it just hasn’t happened.

It has been an incredibly eventful year in the Revelation Community however and I think it would be good to review that shortly. However before we do (and so those of you who don’t want to be exposed to some patently biased editorial meanderings know when to skip the rest of this article) let’s mention what’s in the rest of the journal! It’s also been an amusing time for Microsoft junkies with the rebranding of .NET as Microsoft try and work out just what they mean by .Net, or .NOT as one commentator amusingly called it - http://www.theregister.co.uk/content/4/30329.html. Interestingly, one of our UK clients has successfully used the new XREV.DLL OI COM object to integrate OpenInsight into a .NET  project so at least some people are delivering functionality with the product! To quote his email on the subject "At the outset we faced a problem trying to interface .NET to OpenInsight. We had very little documentation about the RevSoft.dll and because of the threading model used we knew it was going to cause us problems with our multithreaded clients. Our next problem was that we wanted to try and spread the load over at least 5 (or more) OEngines. The OIDataBridge   (as it is called) had to be totally robust and efficient and be able to withstand huge amount of concurrent requests.

In essence what we have done is 2 things:

  1. 1. load balanced 5 (or more) OEngines to handle multiple incoming requests

  2. 2. multi-threaded the RevSoft.dll component provided by OpenInsight in a way that worked with our clients.

We have used a Stress Test tool to simulate thousands of simultaneous requests over long periods of time and shown it to be able to cope admirably! The component has a configurable timeout parameter so if it seriously overloaded a graceful timeout error is generated.

In has an incredibly simple interface - it has a single "Execute" method that takes a procedure name and arguments. We have deliberately made it into a generic component so that it can be reused on any future or current projects.

"Any .NET program can be built on OpenInsight with OIDataDridge.NET"!

Way to go A**** N******* from world famous financial company *************! Shame we can’t mention who you are or who you work for but that’s commercial reality! On a more positive note others who might be interested in such a project are advised that it might be possible for it to be made commercially available!

On another community side note – Don Bakke (dbakke@srpcs.com) of SRPCS is shortly going to release a new OCX Edit Table control for OpenInsight. It features all sorts of cool things like bitmaps and mergeable cells and he’s actively looking for beta testers who will be eligible for a substantial discount on the released product. Drop him a line if you’re interested. And don’t forget SRPCS’s excellent technical documents for OI developers found at http://www.srpcs.com/resources/cl_knowlegebase.html!

S/List users (ask not their names – for they are legion) will be very interested in the article BTN(97) BTN(97) – Who’s Got The BTN(97).This is a primer on using S/List’s popular Internet Explorer style buttons in your own application! Windows API junkies might like to get their latest fix from Andrew’s article on using DLLs from Basic+ and as ever Eric the Emu adds an inimitable article on communicating with OE from VB. As ever Gary Gnu gets to masticate publicly some interesting issues and yours truly gets to meander over several pages – some technical some advertorial!

We’ve been very busy at Sprezzatura after a slow year last year and we’ve been doing some really ground breaking work. We’re deeply involved in a big XML project with one of our UK clients and this is spawning some fantastic complementary technologies such as http services for OpenInsight (grab web pages and publish web pages directly from OpenInsight) – ideal for writing small programs to go out, grab a web page and mail someone if it has changed!

We’ve also beefed up S/Web to deal with bigger sites and S/List 3 is in the final stages of beta testing – see the article later in this issue. And with S/List 3 in mind let’s just lay to rest a rumour of its death! Revelation have NOT licensed S/List for OI 7 – they have licensed the S/List ENGINE to allow their own reporting front end ORMAIN to utilise fonts. This DOES mean that the OI product out of the box will finally do columnar reporting with fonts but it doesn’t mean that S/List will be made redundant – quite the opposite. This just encourages us to keep improving what is already the best end user reporting tool in the Rev world!

In addition we’ve released S/Merge for people moving to OI from AREV - at last an easy way forward for people migrating from AREV to OI! On the "large system" consultancy side we’ve been called in to several sites recently for network tuning, including one huge site where three GFEs a week was considered commonplace even with the NLM in place. That was a particularly hairy assignment but we managed to get it all sorted and even found a bug in the NLM (which has since been rectified)!

Another huge site developed random slowdowns at certain times of the day and we were forced to write a network monitoring tool to help investigate this. The result – MONITOR_LH_STATS will be released just as soon as we get round to shrink wrapping it. It allows real time monitoring of the network and includes email alerts to support teams when GFEs are experienced, customisable trigger thresholds for alerts and a whole host of other features. This tool will likely be of most interest to larger enterprises where users tend not to always mention GFEs!

Penultimately, at one very large AREV site we tracked down inefficiency in the original AREV indexing code that led to an index flush taking several hours and on some occasions delayed the overnight batch runs. With the assistance of Revelation we were able to handcraft a replacement for this routine and reduce the flush time to seconds again. This modification has already been built into the OI code base so all current users already benefit.

And finally – courtesy of a West Coast US client we’ve now developed a comprehensive set of utilities to take your AREV app to 3.12 converting dots to underscores along the way. Our program suite will deal with programs, symbolics, popups, menus, windows and of course will even tell you what it has done! We reckon we can take the most comprehensive AREV system from any previous release to 3.12 in 1-2 weeks provided source code is available. We can take non source code versions to 3.12 in 2-3 weeks with some assistance. And once you’re at 3.12 you can start to incrementally build your OI solution a screen at a time – or even a web screen at a time! So contact us to see how easy it is to move forward from the versions of software that time forgot!

All in all this is the most packed SENL history has ever known and we’re just sorry that it has taken so long to get it to you! We have even held some stuff over for the next issue so we can be a bit quicker with the release of that one!

Those of you who are keen divers (and those of you who want to learn) might be interested to hear of a proposal made by Greg Helland, RevSoft’s West Coast VP of Sales. He’s getting a group together to go diving in Mexico later this year. I’m definitely hoping to be there and perhaps we can use the opportunity for some informal or even formal knowledge exchange.

That way we can write it off as a business trip! For more details mail info@sprezzatura.com.

Before we move on to the historical stuff we must just share one recent support dialog received by Sprezz staff – perhaps we should revise our old tagline of "World Leaders in all Things RevSoft" – you’ll see why in a moment!

From: charlene.*******
Sent:
08 July 2003 22:12
To:
Info
Subject: Web Site Enquiry

hi there im trying 2 install some things on my comp and it comes up 1607 unable 2 install runtime scripting could u help me sort the problem please ******* thanx

From: Info
To: Charlene.*******
Sent: Tuesday, July 08, 2003 10:29 PM
Subject: RE: Web Site Enquiry

Certainly

Ermm what version of our software?

Regards

From: charlene.*******
Sent: 09 July 2003 23:00
To: Info
Subject: Re: Web Site Enquiry

windows 98 im trying 2 install championship manager 4 can u help me please

From: Info
To: Charlene.*******
Cc: Info
Sent:
Wednesday, July 09, 2003 11:58 PM
Subject: RE: Web Site Enquiry

Regretfully no - as this is nothing to do with us <g>. We sell database software not games software. Found this on a site though Championship Manager 4 installation instructions. If you receive an error message from the install routine or are prompted to install a service pack, possibly along with the error code 1607, you need to install the latest version of the Microsoft Windows installer program. For convenience, Eidos have included versions of for both Windows 98 and Windows XP on the CD.

If you are running Windows XP, browse the CD and run the file instmsiw.; Once this has finished, restart the computer and then install the game as normal. If your operating system is Windows 98, run instmsia, restart the computer and then install the game as normal.

From: Charlene*******
Sent: 10 July 2003 17:37
To: Info
Subject:
Re: Web Site Enquiry

thank you very much for your help

And so – another satisfied customer <g>.

Finally we are grateful to both the California Database Association and to Northgate Information Solutions who have web published a presentation on Reality – their Pick implementation that they are reviving around the world. At http://www.cdbma.org/presentations/march_03_northgate.htm they have created a presentation which is most interesting. What’s especially interesting is the omission of Revelation Software from this slide. Note that we make NO ownership claims to this page – it remains copyright Northgate even though this is not asserted on the slide. We’ve searched  the slide and can find no "Reproduction not permitted" warnings so…

Compare these prices to a per seat price of about $20 with Enterprise A and no annual license – we never knew we had it so good!

If you do skip the rest of this – please check the final paragraph! ;-)

This time last year (the rest of you can leave now) we’d just received the 32 bit OI and we were happy with it. Things were starting to change and Revelation were laying out some 2 to 3 year plans, which given the stagnation of the previous 5 years, seemed adventurous to say the least. At the Spectrum show in San Diego, Sprezzatura Personnel attended with Revelation Software personnel and witnessed the real interest in the Pick community for Revelation products. Conversation turned to the future of Revelation Software products and the seeds were sown for the eventually taking over of the EMEA distributorship by the establishment of Revelation Software Ltd. The main argument behind this drive was that without localised support and fair pricing EMEA customers were always going to get a worse deal than their US counterparts and this just seemed the antithesis of all that Revelation now stood for.

Back in the Sprezz camp, S/Web deployments continued to increase and the take up was helped by the adoption of S/Web by a number of large financial institutions who soak tested it and found it secure and robust – certifying it accordingly. The fact that it provided the only way for JOI users to get at A/Rev data also helped to increase interest.

But it wasn’t just S/Web that attracted our programmers interests – in far flung parts of the world people had requirements to interface OpenInsight to ATMs via sockets, or to read http streams and incorporate them into linear hash driven web pages, or to improve their reporting capability or to work more closely within the Windows API. All such projects continued to be the bread and butter of the Sprezz team.

As summer rolled around, Sprezz along with RevSoft exhibited at CeBIT in Australia – the first major mainstream exhibition for either for quite some time. At this show we began to get a feel for how the Australian marketplace had started to move away from Rev, like the European marketplace. But this show became a catalyst to start off user groups and galvanise developers there. For Sprezzatura personnel this show was to be pivotal as it was at this show that the decision was finally taken to establish Revelation Software Ltd. The principals of Sprezzatura went away from the show planning the takeover – which was not destined to go as smoothly as would have been liked.

The 4.0.3 upgrade came and went and whilst we were pleased to see that fixes were being made and new functionality was being added we were in no way prepared for the onslaught of new features and additional aspects to the product that were to come shortly. Inspired in part by the Australian trip, Revelation had Australian developers undertake some of the work on starting to "write the tool within the tool" – a long time grail like objective for Rev Programmers. It is an unwritten rule – if your development tool is so good, why isn’t it written in your development tool?

Meanwhile in the UK preparations were in hand for establishing Revelation Software Ltd (the previous distributor was a limited company called CAB17 Ltd that traded as Revelation). Enquiries were made about transferring over the existing RevelationUk domain, or acquiring revelation.co.uk but these enquiries came to nought. The same went for the telephone numbers and customer lists of the Revelation user base in the UK. When Revelation Software finally launched it was with a customer list that had been pieced together from a variety of sources.

One of the first things that Revelation Software Ltd did was to regularise pricing. Under the previous management certain line items had been increased in price to provide more of a return. As the "greying" of software breached the license terms, EMEA users were stuck with paying more for their software for arguably less favourable support. All of these discrepancies were rectified – with to the joy of existing Works subscribers, fairly substantial price reductions in Works itself. As a further bonus – and to reward current customers’ loyalty – AREV SDPs were dropped in price to be the same as OI SDPs for Works subscribers.

A few things remained on the licensing side that spoke heavily of the old stateside regime but things continued to move along! The President’s letter outlined many of these improvements. Since then Revelation UK has started regular newsletter production, started attending trade shows and is generally working on getting the name out there. UK users are pleased to see a coordinated approach to business dealings. The US continues to try to make licensing fairer for all parties and recent initiatives vis-à-vis the WDP and web licensing finally make web licensing accurately reflect the value of the product.

Work has started on the next version of OI, OI 7 – codenamed "Leap Frog" and Revelation UK are pleased to be involved in the planning of this product. Sprezzatura are watching with interest but at this early stage can report that the major thrust is on getting more of the product written in the product itself and in updating and generally streamlining the look and feel of the product. In common with recent releases there will be no backwards incompatible changes but the product should become easier to use and of special interest to Sprezz – easier to write add on tools for! Developers should be able to bolt their own tools directly into the interface, thus encouraging a market in after sales products.

One of the best side effects of the new management focus at Revelation as far as Sprezz are concerned is that we can now concentrate on technical matters rather than petty squabbling about licensing and company directions. The new management definitely are more focused on delivering value to the user and we’ve been pleased because it allows us to direct our energies down more productive routes. The ODBC driver was a good example of this. Under the old management we would have been tempted to develop it ourselves and premium price it to a select few. Under the new management the proposed cost was so reasonable given the development costs, that we were happy to accept the subcontract for the work.

Finally work continues on advancing into the Pick marketplace and Rev UK have signed up as sponsors of the first International Spectrum show to be held in London for over a decade. This should be a fantastic experience, if the US reaction is anything to go by, so we hope to see as many of you there as possible!

The Linux version ON THE DESKTOP looks set to be a reality and the Universal Driver is all but here with the removal of the 8GB (4+4) limit.

All in all it has been a great year for the Rev community and with the direction and integrity provided by the new management team both at home and abroad we can only look for things to get better again!

Thanks to all of our colleagues and friends for keeping the faith! See you in New Orleans in 2004 for the next User Conference (http://www.revelationconference.com) if we don’t see you before!

Regards
All at Sprezz

[top]

Feedback

As you will be aware, we, along with several other companies in the community, make our living from consultancy and software development. If you have any projects that would benefit from our input we would be pleased to quote and whilst our daily rates are low in comparison to the industry as a whole (normal in relation to the community itself!) we become even more reasonable when booked for extended periods! Moreover, with the current slump in international travel there has never been a better time to fly a Sprezzie in. It is with some amusement that we note that it is frequently more expensive to fly someone in from our Philly office than it is to fly someone in from the UK!

Products such as S/List and S/Web primarily serve as a vehicle to demonstrate our technical excellence – we cannot recommend this sort of development for those wishing to get rich quickly! However, it is nice to know that our work is appreciated as the following quotations show:-

A nice comment from a gentleman with the Government in Utah

"Someone from the company helped me to find the solution that bothered me so much for a month. I posted the trouble on the www.revelation.com on-line discussion regarding the advanced revelation running so slow on Windows 2000 pro issue. Thanks this person again. Excellent service."

We were stunned by such a polite follow-up to a routine forum posting – so thanks to you sir!

Meanwhile in the SLIST camp "Slist is loaded and running…Special Thanks to you and your group for writing SLIST."

"Thanks again to all in your company - your support and knowledge is superb!"

"Working with S/List that we just purchased, I must say it is a fantastic product."

"I am enjoying Slist so far. Thanks for the software. Now I can produce

pretty reports."

"S/List is a must"

And effusion for CPU Plus! (Good work Steve!)

You are awesome! Thank you soooo much! We are no longer having the RTP20 error in Arev running in WinXP, after installing the update you provided. Thank you for taking the time to fix the RTP20 error we were having when we initially installed CPU plus. I know you had said we were the only ones having the RTP20 error (or least at that time, I don't know if you've had anyone else have the error since). I just wanted to respond to let you know that CPU plus seems to be working great, and to show the appreciation all of us in the office have for you taking the time to listen to us and fix the RTP20 error.

We seem to be doing more and more legacy support of other AREV apps too:-

"Thank you very much for taking this on so promptly and competently."

"The staff and I express our sincere appreciation for your help. The system works fine."

"I want to thank you again for all your help. For the first in over a year I can relax a little with regards to my Boost ™ software."

S/ENL itself still has a huge fan base!

"I about wet my pants at ARFH!" (A reference to Advanced Revelation for Handhelds)"

"Thanks for the latest S/ENL – well worth reading as usual."

"yes, I would like subscribe to SENL. Thank you for this great service"

"Great work everyone!"

Finally S/Web continues to attract new followers!

"We have been pleased by the performance of S/WEB. We have developed a prototype system utilizing S/WEB that has been performing well. We appreciate your help in working out the interface between AREV and the web and we wish you success with S/WEB."

It’s always interesting to do Web Searches on your own product! Our favourite new S/Web site is one put together in Australia by Oryx (Project Lead) and Steve Smith. The site (http://www.tvsn.com.au ) utilises S/Web and OI and has everything you’d expect from a state of the art shopping site including searching, ordering and shopping cart software. At peak this site is experiencing upwards of 25,000 hits an hour! In the early days this was being handled by just ONE web database server! The hardware has since been upscaled but where else could you configure a setup supporting such volumes for below 6 figure sums?!!

Finally it’s nice to see that S/Web has also gone live on a very large UK financial provider’s web site. Whilst it is obvious from the URLs that they use S/Web we’ll still respect their wish for privacy. On the bright side this does show that a custom configured S/Web installation can withstand the worst that a professional hacking organisation can throw at it so congratulations to all at ****************** and especially to our liaison there ******************** who has come a long way over the past decade or so to show himself not only capable as a technician but as a project manager. To those about to Phase 2 – we salute you! <g>

[top]

S/Merge

Where usefulness and name originality are inversely proportional

One of our users recently had the task of moving lots of their existing AREV MERGE routines to OpenInsight and balked at the idea of recoding them in OIPI – they worked after all so why bother? We hit upon the idea of rewriting MERGE in OI and in so doing we managed to get several other useful techniques sorted!

Anyway firstly let’s look at what S/Merge is… for those of you who don’t come from an AREV background, Merge was a reporting tool that what it lacked in user friendliness made up in flexibility. It wasn’t WYSIWYG by any means but once mastered it was a very useful tool. It was designed to create reports of a mail merge variety but it dealt with multivalues much more successfully than other tools.

S/Merge is an OI replacement for MERGE, it doesn’t really improve on the original at all (although we’re open to suggestions for the next release) but it allows existing merge reports to be used in OI. As with S/List it is designed with the developer in mind. Unlike S/List it is not anticipated to be a suitable end user tool and it is therefore priced accordingly. Licensing is similar to S/List – you may deploy as many S/Merge reports as you want free of charge, but the moment the user has input into the process a developer license is required.

S/Merge is made up of three primary components – namely:

The S/Merge Import Wizard – brings existing MERGE reports into OI

The S/Merge processor – responsible for actually creating the S/Merge reports

The S/Merge window – allows developers to modify or add S/Merge reports.

Let’s look at these in turn.

The S/Merge Import Wizard

To assist people with existing Merges we provide the S/Merge Import Wizard. It is launched by shift-double clicking SMERGE_IMPORT_WIZ or typing EXEC SMERGE_IMPORT_WIZ from the system monitor.

selecting the location of the file the merges are in

whereupon the wizard finds the reports and imports them

and they are now available for use.

The S/Merge Processor

The SMERGE subroutine can be called directly by the programmer and takes the following parameters

MergeId

Name of the merge definition record stored in the SYSREPOSREPORTS table

MergeKeys

@fm delimited list of keys to use for the merge.

Passing null forces the processor to use an active select list if one is available, otherwise the entire file is selected.

MergeOptions

A string representing various options:

"S" : Merge to screen ( the default )

"P": Merge to the windows default printer

TestRunAmount

An optional number of rows to output in a test run.

 sMerge (mergeID, mergeKeys, mergeOptions, TestRunAmount )

The S/Merge Window

Launching the SMERGE window by shift-double licking on the SMERGE Window Executable or by EXECing SMERGE loads the S/Merge Window as follows :-

Deleted: dblclking

from here you can select an existing Merge report to edit

the script is on tab 2

A right click context menu exposes the traditional formatting commands

and of course the ability to perform a test merge

or create a new report by typing the name in and filling in the prompts. (Standard dimensions default in automatically)

Pricing

S/Merge is not designed as an end user tool and is priced accordingly. It is licensed per developer and developers may distribute the SMERGE routine with their software so long as they do not in any way allow users to modify or construct merge reports. Any customization must be done either with your own front end or with ours AND a legitimate developer copy. Please contact sales@sprezzatura.com for a quotation for S/Merge.

[top]

S/List 3.01

New Improved and Generally Kickin’ It!

After an implausibly long gestation we’re pleased to announce that S/List 3.01 is finally ready or prime time! The biggest delay factor was an obsession with attention to detail on the User Interface brought about by reading "GUI Bloopers" by Jeff Johnson (http://www.guibloopers.com).

S/List 3.01 primarily adds in support for the newer features in OIPI but it also extends the customizability of the product to help those increasing number of users who wish to make S/List the reporting tool of choice in their shrink wrap application!

The most apparent change is that you now invoke S/LIST designing by using the SLIST_EXECUTIVE window – SLIST_97 is still there as a stub to allow you to use your applications unchanged. At first glance there is no real change, as you can see, but selecting the Options menu reveals a new set of options, namely "System" and "Reset Defaults".

We wanted to be able to specify defaults for ALL reports on a system so we added that as an option AND we added the ability to reset the current report to defaults. Let’s look at this new screen:-

and at the defaults page

Once these defaults are set they will be used in all new reports unless overridden.

Other changes include cosmetic changes to Wizards and some other new features extending the range of reporting options available. In addition, acting on user feedback, we’ve tweaked the entire system quite extensively. Changes include:

Right-clicking on Query columns in the wizard displays dictionary information

Small changes have been made to placement of controls in various forms

CSV options have been added to report wizard

Columns now show up in report in the order they were added to the wizard

Launching window after wizard close no longer displays "Entity already open" message

System options now available

Number of records selected should clear from the status line

The F8 key should clear any and all active lists

The cursor stays on the command line (however, by setting focus, it will move it in front of a run report)

Horizontal sliders have been added to all list boxes

The F2 key drops down the saved command dropdown

SLIST.INI issues have been resolved

Associated MV fields now print correctly aligned with each other

@ID, @CRT and @LPTR are now loaded from the current dictionary, if those fields exist. If not, they are taken from SYSDICT

Text justified fields wrap has been enhanced

We've created new wizards for designing reports and queries, which should make it easier for you and your users to create new reports

We've added support for PDF exporting of report

We've also added in support to allow you to export your report in a CSV or Tab delimited file

When using the CSV option, if you name the file with an XLS extension, the file will automatically open in Excel.

We've created a new Options window, allowing you to specify default options for your reports

We've fixed and enhanced parts of the system dealing with multi-value and limit support

We've fixed many long standing bugs

We've also drastically changed the licensing methods, requiring a user key before installation. A bonus feature is you no longer have to install a new copy of S/List when you wish to add developer users

We've enhanced the shading options to allow for any RGB or numeric colour value

The first obvious change is that our Wizards are now more Win2Kish –

and that for those of you with long column names and/or descriptions in the dictionary you can now scroll the dictionary name horizontally AND see the description as you highlight each column.

The column selection has been modified to make it a little more intuitive – a drop down now not a slider bar

The other obvious change is when selecting output destination.

Yes – you can now output to PDF, CSV or Tab delimited files! Regretfully not HTML though as (techie dweeb note here) S/List doesn’t use AddTable as it can’t deal with multiple fonts in adjacent columns. To provide HTML output we have a separate product which will be reviewed separately.

All in all this is quite a significant release and represents man months of labour. Therefore, the question that will be vexing you all is "How much does it cost?" We realize that most of the cost of software is in the initial development, so rather than increase the software cost and in keeping with precedent, we’re keeping the cost of the software the same as it has been since S/List went on sale several years ago.

We realize that there is nothing more annoying than paying for a product and then being expected to pay the same again for just a few new features and a cosmetic touch up – so if you bought any version 3.x upgrade or 3.x full product more than six months ago we are providing specially discounted upgrade pricing.

Finally, we also realize that if there IS one thing more annoying that paying for a product and then being expected to buy it again, it’s buying a product just before it’s released and then being expected to pay for an upgrade! Therefore, if you bought within the last six months the upgrade is free.

To summarize, those prices (in GBP and USD) are

Age

1 User

3 User

5 User

250 User

New

£99

$149

£249

$375

£399

$599

£1,999

$2,999

> 6 months

£65

$99

£165

$249

£265

$399

£1,315

$1,999

<= 6 months

FREE

FREE

FREE

FREE

FREE

FREE

FREE

FREE

For localized pricing in your currency, contact us directly. Integration as part of your package by negotiation!

[top]

Tips for OI Users

Check Boxes and GotFocus/LostFocus

A member of the Sprezz team recently spent several hours tracking down why his promoted event for GotFocus was not working on check boxes. The answer was painfully simple – Got/LostFocus are not enforced in the EventDesigner. Set the No to yes there and all is wellagain.

Speaking of the EventDesigner

Remember that new upgrades OVERWRITE your EventDesigner settings in SYSENV so before upgrading remember to back this up or redo you changes afterwards. Otherwise, do not be surprised when your promoted events stop working!

Context Menus and GotFocus

Be warned that context menus do not necessarily make the control with the context menu get focus. In other words to ensure that the SYSTEM focus is the control with the context menu you must first click on or tab to that control. This only becomes an issue when youwant the context menu to take an action against that control.

List_Volume_Sub

A handy little function that "backends" the LIST_VOLUME routine but allows the programmer to get at what’s stored on a volume.

Syntax is

ResultList = List_Volume_Sub(A, B, C, D)

Where

A = Volume location

B = Database

C = Result list (field mark delimited SYSDICT column names)

D = Sort Column (ditto)

For example

Declare Function List_Volume_Sub, Get_Status
VolumeName = "c:\damato\damato\GUIDES"
DatabaseName = "GUIDES"
ReturnList = "TABLE_NAME" : @Fm : "TABLE_FOREIGN_NAME"
SortList = "TABLE_FOREIGN_NAME" :
Res = List_volume_sub(VolumeName, DatabaseName, ReturnList, SortList)
Err = Get_Status(Codes)

[top]

BTN (97) BTN (97) – Who’s Got the BTN (97)?

One of the most commented upon features in the S/List User Interface is the use of Hover Style buttons – where as the mouse approaches the button the image changes to show that it is clickable.

At Sprezz we like to encapsulate where possible thus minimising actual hard work! Naturally we encapsulated this button technology as a routine called BTN97 which, if you are an S/List developer you may use in your own applications (although it cannot be distributed separately from a developer copy of S/List – if you wish to do this then talk to us and we’ll provide terms).

You’ll be pleased to know that there is NO programming required to actually making the buttons work – in fact the only programming required is in telling the buttons what to do when they’re clicked.

BTN_97 Usage instructions

Create a bitmap with four images

Enabled

Focus

Down

Disabled

And add to a form sizing to the size of one button calling it BTN97_controlname.

add a create event to the form

(note UK spelling <g>) then add a button down, button up and winmsg, passing on all parameters passed as shown :-

(@Param1-@Param7)

(@Param1-@Param7)

(@Param1-@Param4)

Now run the window

move the mouse over

and click.

This invokes the Window’s OMNIVENT with a message of CLICK and Param1 set to the name of the clicked button. The programmer can now decide how to proceed. Note this does mean that you have to have an omnievent handler on your screen but again this can be a quick event to call another stored procedure.

That is all there is to it although naturally there will be times when you want to do more.

To disable a button programmatically

Void=BtnWin97("SET_ENABLED",AtWindow : ".BTN97_STOP",False$)

To enable a button programmatically

Void=BtnWin97("SET_ENABLED",AtWindow : ".BTN97_STOP", True$)

To make a button programmatically invisible

Void=BtnWin97("SET_VISIBLE",AtWindow : ".BTN97_STOP", False$)

To make a button programmatically visible

Void=BtnWin97("SET_VISIBLE",AtWindow : ".BTN97_STOP", True$)

If the SIZE property of the button may change (right anchored etc) then on the Window’s SIZE event call BtnWin97. This will ensure internal pointers are kept up to date.

[top]

Changes in Web Licensing in 4.X

Some changes have been introduced into the way that Web licensing works recently that may very well have passed you by. If you’ve been putting off moving your app to the web because of the cost then these changes may very well affect you – but equally if you’ve taken advantage of these changes to move to the web and missed a subtlety of the Web licensing then this might just as well affect you. So whichever camp you’re in read on!

When web support was first built into OpenInsight it was just slipped into the product as an add on. Thus in version 3.3 it was possible to deploy Web applications on a runtime version of OI. RevSoft very quickly (and rightly) realised that this was a mistake! Unscrupulous developers could create huge server farms based around single user runtime OI's and exponentially increase the worldwide number of linear hash users without actually increasing the number of licenses!

RevSoft moved very quickly to plug this licensing gap and by 3.5 you needed a Web Deployment Pack to deploy linear hash data to the web. Around about the same time, the Advanced Revelation license was also changed to make deploying linear hash data to the Web illegal without a WDP as well. Before anyone gets het up about retrospective changes to the license calm down! You can’t change licenses retrospectively – this new license only applied to new installations of AREV.

This was all well and good – but the WDP wasn’t cheap, and surely an unlimited user license is an unlimited user license regardless of how users accessed the data? Slowly RevSoft again saw the light and in the final days of the old management, unlimited server deployment packs began to include a WDP. This at last was licensing that Sprezz could get behind. Yes, it made it expensive for small intranets but something was better than nothing!

The major restrictions of the WDP remained the same. Out of the box you couldn’t process more than a single thread at a time nor could you return greater than 64K to the client. This may seem like a moot point – after all at the time OI records maxed out at 64K but believe us, by the time you’ve added your HTML to the data the return size could easily exceed this figure. The security aspects also left a lot to be desired but in spite of this people were able to go out and build great web applications. (Naturally developers were free to create their own workarounds to these restrictions – Sprezzatura went the whole hog and developed their own replacement for OICGI that eliminated all of these restrictions, that product still exists and is known as S/Web).

Roll on to the present day and the new management felt the developer’s pain. More and more people expected to be able to add "kiosk style" applications to their own software, but with entry levels of some software starting at less than the cost of a WDP this posed some problems! Time for the cavalry in the shape of OI32 and the new look RevSoft! OICGI was replaced by the introduction of OECGI which, to quote the online help "The OpenEngine CGI interface connects directly to an OpenEngine without using the OpenInsight presentation server. The engine runs in-process with OECGI.EXE. This means that the Web server only creates one external process, and that the process does not interact with the desktop. OECGI significantly reduces the overhead and security footprint of an OpenInsight Web application while providing increased response time.

Additionally, it is possible to configure OECGI so that each web request gets a unique copy of the engine. This means that long running requests do not block each other." There in a couple of simple sentences are laid out in their full glory the answer to so many prayers – not only is security made easier but "each web request can get a unique copy of the engine". What isn’t immediately clear in this documentation is that this method of working also SEVERELY reduces the cost of deploying web applications in OI. You see, now that each web request can be handled by a separate engine, RevSoft have a way of keeping track of the user count and can thus allow web access for the same price as network access!

Each time a new engine starts it decrements the server user count by one. When the process completes the engine is closed and the user count is restored. Now you only need to buy as many SDPs as there are likely to be CONCURRENT web users with no need for a WDP! Note that minor caveat "as there are likely to be CONCURRENT web users". Unlike with OICGI, OECGI will NOT queue requests so a 6th user attaching to a 5 user WDP will receive an error message not a wait for response.

This is such a radical change that it is worth repeating. If you use the dynamic engine model for web deployment you no longer need to deploy using a WDP! Suddenly the world is your oyster. If your client wants three local workers and two remote workers via an extranet this would have previously cost you for an SDP and a WDP. Now it only costs you an SDP!

What isn’t immediately apparent from this is the slight GOTCHA if you choose to use PERSISTENT engines. A persistent engine is a strange beast. Once instantiated it stays there and is able to accept web requests from anybody – much like the old OICGI, and there’s the rub. Because it IS like the old OICGI, OICGI licensing style applies. So if you want to use persistent engines you have to have a WDP. Sound strange? Well think of it like this – with a product like S/Web, the moment one user’s request has finished, S/Web can start processing the next – without any login or logout. This means that one LH user is actually processing MANY requests. In recent testing (and more recently in a live scenario (http://www.tvsn.com.au)) 5 S/Web sessions (using 5 LH licenses) was serving over 20,000 transactions an hour. That COULD conceivably have come from 20,000 separate users in an hour. Can anyone reasonably assert that this should only require 5 LH users? Hence the WDP stipulation.

In honour of the latest release of Matrix Reloaded – think of it like this. Dynamic Engines are like normal time, a user walks up to your desk, logs onto your terminal does some work logs off and walks away. Then another user walks over to the desk next to you logs on does some work, logs off and walks away. There are only two desks free so if a third user approaches s/he is asked to leave and does. Each desk represents an SDP license and each user is a dynamic engine. Now we switch into bullet time. All you see is a blur but behind that blur if you slow it down sufficiently is a whole horde of people converging on all the desk tops logging in, working, logging off and leaving. If more people arrive than there are desks, they form an orderly queue until it is their turn to get desk access or they can’t be bothered waiting anymore and leave the queue (their session times out). The engines that make this possible are persistent engines and they’re designed for very high volume systems.

Now any attempt to describe licensing in terms of load, users or even the Matrix misses the point. The simple bottom line is that with dynamic engines Revelation Software are able to at least keep some track on the number of "simultaneous" users, whilst with persistent engines they are not. So they use two different licensing methods. At the end of the day all of the arguments in the world won’t change the fact that this is a license not an academic debate.

Whilst here at Sprezz we don’t always grasp the intricacies of all license aspects we’re glad that RevSoft management have at least made it possible for us to deploy more modest systems at more modest prices!

So to summarise. If you know how many people will be connected at once OR you expect a limited volume of transactions then DYNAMIC engines are your answer. This makes them ideal for intranets, extranets for external employees or low volume web sites. If you don’t know how many people will be connected but do know that it will be high volume then PERSISTENT engines are the way to go, or else a product such as S/Web, both of which require a WDP when deploying on new AREV or OI systems.

zzCGI – Multiple Applications on a Single Web Server

If you’re in the business of servicing clients who wish to leverage their existing applications into a thin client/Web environment then the chances are that you’ll have played with OECGI, either in persistent or dynamic mode This extension to the web handling, along with the concurrent change in Web licensing, has had a dramatic effect on the ability of Revelation applications to deal with web based applications "out of the box".

However there are still some areas where it is still not quite enough – for example you may wish to deploy your application in both a test and a live mode so that users may practice in real surroundings before working on the live system. Or you may be running a bureau and wish to allow multiple users to access different applications over the web. When using OECGI both of these scenarios are difficult to achieve and this is where zzCGI comes in.

At it’s simplest, zzCGI allows you the developer to set up a number of different script directories on your web server and then these directories trigger an engine launched for a separate application or separate user name. So for example logging into http://www.testcompany.com/live/zzcgi.exe/index would launch one OpenEngine and thus one application, but logging into http://www.testcompany.com/demo/zzcgi.exe/index would launch another.

How is this accomplished? Well to quote the brief installation notes:

Product Description

ZZCGI.EXE is an EXE that should be placed in each subdirectory that represents a distinct OpenInsight application.

Modus Operandi

Sprezzatura realise that not all users are comfortable editing the registry, therefore we have provided a number of ways in which you may invoke the different OECGIs. Essentially for all mechanisms of invocation, you the developer must tell zzCGI the location and user details of the OpenInsight system to invoke.

Primary Method - Registry Method

Developers use the standard OECGI registry entry and add a subkey called /subdir/zzcgi.exe. For example for a subkey called /scripts/zzcgi.exe -

HKEY_LOCAL_MACHINE\SOFTWARE\RevSoft\OECGI\/scripts/zzcgi.exe

If it finds the sub-key it will take all of the standard OECGI settings from under there and launch zzcgi.exe with these settings.

Secondary Method - Subkey in ZZCGI.CFG file

The system will look for a ZZCGI.CFG in the subdirectory referenced. It will look for a subkey entry as follows

[zzCGIRegistry]

regPath=HKEY_LOCAL_MACHINE\SOFTWARE\RevSoft\OECGI\/scripts/zzcgiexe

Tertiary Method - Details in ZZCGI.CFG file

[zzCGIEngine]

CreateFlags=1

UserName=SYSPROG

etc...

Quaternary Method - Fall Back to Standard Behaviour

If all else fails it will use the standard OECGI details from the registry.

So that’s it – very straightforward to use and after initial configuration no maintenance is required.

All that’s left to cover is licensing, which at £495 per server ($795 US) is designed to make it pointless to develop your own – and if you intend to deploy zzCGI in quantity we have special volume licensing deals to make the package even more attractive. For further details, or to request an evaluation copy mail sales@sprezzatura.com .

[top]

GEN_POP Easy Peasy Popup

John Godfrey – Carys Computing

Introduction

I have avoided taking a great deal of time to fully understand the code behind Popups. After all it could be the basis of a PhD thesis. The User Interface already allows me to design a Popup efficiently, effectively and quickly. Why reinvent the wheel? However many systems are littered with Popups, essentially the same structure but containing different data i.e. different suites of codes or options etc. It makes no sense to have a Popup specially created for every single piece of data, if I can re-use the same structure all the time. Data is not the only candidate for Normalisation. How could I use the same OI popup with different data without resorting to laborious coding or creating unnecessary duplicate Popups? I devised the following solution using minimal code.

The Popup created was entitled ‘SECTORS’ but could be entitled any neutral name say ‘BLANK’. The Popup is linked to a row from my ‘Lookup’ table in this case ‘LOOKUPS’, entitled ‘SECTORS’.

The structure is held in SYSREPOSPOPUPS. This Popup is then called from my subroutine but would be used with different code suites, each with their own Code Id. E.g. SECTORS, STATES etc. I edited the record in SYSREPOSPOPUPS and could see the code Name/Id was stored in Field 8 of the code record. So I could amend the structure to insert the required code Id into Field 8 and call the Popup. Easy Peasy.

FROM the SCRIPT of a QUICKEVENT

From a script, in this case a commuter module, I would call the Popup thus:

Passed would be the Id of the required code e.g. ‘OS’ my code set for Operating Systems.

Case Control = 'OS'
Ans = Gen_Pop('OS')

This calling code would call my generic popup program GEN_POP

Function Gen_Pop(Passed)
* Generic popup using structure built in User Interface but calling various Code Ids
Declare Function Popup
$Insert Popup_Equates
Control = Get_Property(@Window, "FOCUS")
Structure = ''
Structure<8> = Passed
Ans = Popup(@Window,Structure,'SECTORS')
Return Ans

One problem remained. If I returned a null to a control the existing data was blanked out. I.e. when nothing was chosen from the Popup the existing text property was lost. I was setting Ans to Null. I needed to get the original data and reset it if not amended. How?

@window was available but not @control. How could I identify the specific control in my generic popup? @window was of course the route to the answer. Using a Get_Property to find the control in focus I could get the text value of the control in focus and return it if not amended.

The Code was amended thus.

Function Gen_Pop(Passed)
* Generic popup using structure built in User Interface but calling various Code Ids
Declare Function Get_Property,Popup
$Insert Popup_Equates
Control = Get_Property(@Window, "FOCUS")
Tmp = Get_Property(Control, "TEXT")
Structure = ''
Structure<8> = Passed
Ans = Popup(@Window,Structure,'SECTORS')
If Ans Else Ans = Tmp
Return Ans

The final piece of the jigsaw was to reset the text property. Within a commuter module simply add

Action = Set_Property(Full_Control,'TEXT',Ans)

DIRECTLY FROM A QUICKEVENT

I can now call my generic popup from a Quick Event also passing to it any parameter I care to – see the next figure. In this case it is ‘OS’ my set of codes for operating systems, called from a Dropdown QuickEvent.

Voila!

The above solution avoided me having to create hundreds of similar Popups and I did not have to be an OI guru to do so.

John Godfrey
Carys Computing Tel +44 (0) 1494 765846

[top]

Repositories In The Mist – Gary Gnu

Lemme tell you a little story...
It's a story without a beginning....
...or a middle
...or an ending....
It didn't happen long long ago nor in a galaxy far far away...
There are no mystic rings or chosen ones...
There are no heroes or villains...

There is, however, a gnu...
a wandering gnu....
a wondering wandering gnu
a wallowing wondering wandering gnu...

A gnu that didn't know the meaning of the word fearless. He didn't know the meanings of a lot of words. But that gnu knew this. He knew he was the gnu in this story.

This is his story, a repository, if you will.

One day, a short time ago, like, maybe an hour or two, our good friend Gary was sitting at home coding up this and coding up that. Gary decided to take a break an