Re: Improvements to I4GL
Posted in 1992
Dear Paul,
The following items are on my wishlist for I4GL, over and above the INPUT
ARRAY stuff which has already been supplied by other people.
* Dynamically configurable reports.
* Modular report code. So you can call a function to do a standard block of
PRINT statements without having to write it out several times.
* Concurrent activations of a single report, so that I could send one copy
of the report to the screen, a second copy to the printer, and a third
to the fax system, each with a different page size.
* An ELSIF clause.
* Removal of restrictions on where expressions can be used. Eg: subscripts
cannot be function calls or subscripted variables; substrings cannot be
used in DISPLAY statements (INPUT statements, etc).
* Better format control for exponential notation decimal/float numbers.
* Mechanism to determine the current value of OPTIONS.
* ATTRIBUTE values should be able to be variables. WINDOWS should be
variables, so if I need an array of windows, I can use one. Ditto
forms. I could then find the current window, make a different
window current, then restore the current window. Ditto for things like
help files.
* Pass arrays between functions, even if only by reference.
* Pass records to functions by reference.
* Ability to define constants for use in array dimensions, etc (#cefine).
* Ability to include multiple globals files. (#include) Actually, should
also be able to include definitions too -- and arguably arbitrary code.
* Conditional compilation. (#if, #ifdef)
* Ability to hide functions. (static)
* Vertical menus.
* String concatenation in source code.
PREPARE st_select FROM
"SELECT * FROM Quoted_products"
" WHERE Product_code = ?"
* Allow question marks in directly declared cursors.
DECLARE c_select CURSOR FOR
SELECT * FROM Quoted_products
WHERE Product_code = ?
* More powerful picture validation.
* Ability to have arrays of word-wrapped fields in a form.
* Ability to distinguish between a blank and a null field in a form.
* Ability to find dimension of screen array. Ditto dimensions of window,
position of menu line, prompt line, comment line, etc.
* PROMPT "Password: " FOR password WITHOUT ECHO.
* Screen dumps.
* Program Compile should be able to compile forms, and should recognise
globals files. (RDS does recognise globals, I4GL does not -- this
difference is unforgivable!)
* RDS should be provided with a library tool and a linker to use the
libraries. I have a pair of programs called RDSLIB and RDSLINK. RDSLIB
is like RANLIB; it creates a symbol-table file at the beginning of an
archive (with extension .4ga) which contains the symbols defined by .4go
files in the archive. RDSLINK concatenates the .4go files and scans the .4ga
archives to produce an interpretable .4gi file.
I am studiously ignoring any inside information on what is going to happen
in the next release of I4GL -- these features are simply a list of the
principal modifications that I think should be made to I4GL.
I trust that you will eventually post a summary to the net of the changes
suggested.
Yours,
Jonathan Leffler (johnl@obelix.informix.com) #include <disclaimer.h>