Re: SPERFORM Utility
Posted in 1997
>From: peter@prospect.anprod.csiro.au (Peter Wiley) >Date: Wed, 18 Jun 1997 11:10:34 GMT >X-Informix-List-Id: <news.39351> > >johnl@informix.com (Jonathan Leffler) writes: >[snip] >>If you want to do more than add functions to be used in the instructions >>section, then you're out of luck -- ISQL is not that configurable. However, >>I4GL can be used to do most of what ISQL/SPERFORM does (one program per >>screen form, though, rather than one program for all screen forms as with >>ISQL). > >Shouldn't that be one *function* per screen form? Largely a point of detail. I suppose it could be one top-level function for each form (with a collection of sub-functions to make the code maintainable -- if all the code for a 6-screen ISQL form rewritten in I4GL was in a single function, I would refuse point blank to maintain the code). However, I would expect to write a separate I4GL program for each separate ISQL multi-screen form, reusing as much code as possible within a suite of such programs, but... >Nit-picky, maybe, but IMO you can do all in 4GL that's possible in ISQL >and considerably more. Actually, there are some things that ISQL (SPERFORM) does that are essentially impossible to reproduce in I4GL. The most important one is that the single ISQL program will run any ISQL form without any extra code being written. You simply cannot replicate that in I4GL. There are other tricks which ISQL pulls that are not readily duplicatable in I4GL, such as only highlighting the field delimiters for the fields which are part of the current input operation. However, ISQL cannot be made to provide scrolling popup lists which I4GL can be used to provide, nor can it do what the INPUT ARRAY does (I'm ignoring the example which simulates an array as being as bad as a custom I4GL function for handling a form -- it would not handle an arbitrary screen form). >Just requires programming ability. Basically, I agree that I4GL can do 'anything' that ISQL can do, with the big proviso that a given I4GL program (or function) is tailored to a particular set of forms handling a particular set of tables, typically in a specific database. Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>