The Genius Application Suite provides a set of tools to facilitate design and construction of complete data processing systems. Although aimed principally at the computer professional, many of these facilities are suitable for the end user.
Two record designers allow definitions to be stored in the Data Dictionary. The first is a simple conversational program intended principally for the design of indexed files, by accepting the input of data definitions including field headings, datatypes and sizes. Data items may then be marked as indices or cross-validated against key values on other files. In addition, fields may be defined in the data view which will be retrieved automatically from other files.
The second, the Structure Editor, offers more powerful "lower CASE" facilities for designing and modifying definitions as well as allowing further tuning of record layouts and the definition of referential integrity constraints etc.
The Database Bind utility may then be invoked as necessary, to bind the "file" definitions to tables, relations, record types etc. in a specified database rather than to the default of indexed flat files (RMS on OpenVMS, D-ISAM on other platforms). Finally, the File Creator may be used to create files (or some types of database) from the Dictionary definitions.
The Genius System Builder creates application programs to take on, update, display or validate a file or a relational join of files. Screen layouts may be generated automatically or replaced by stored forms; to facilitate this, the default layout may be stored as a form for modification by the Forms Designer. Different combinations of video attributes and colours may be specified for displayed fields and for the current input field.
Navigation from field to field, from form to form and, in the case of a relational join, from file to file is automatic. This is controlled by information stored in the Data Dictionary and in the form definitions. A subfile may be associated with a scrolling region which displays all records related to a single owner record and allows them to be updated selectively.
Special support is provided for "freetext", in the form of an amorphous multiline text block associated with a particular field in a record. Freetext may be displayed and edited in a scrolling window, with automatic word wrap between lines.
Optionally, a "skeleton" for the application may be created. In its simplest form, this provides a means of regenerating a program with the same options as before and also serves as program documentation. Additionally, skeletons provide a powerful and expansible mechanism for modifying the logic flow of the generated program. This is done by including expertGenius routines and directives which cause them to be called from strategic "hook" points in the generated program. Typical uses would be to implement special validation of input, or to alter the program flow on the basis of previously entered data (e.g. to skip the input of "Maiden name" for a male employee). The use of skeletons is not limited to such simple cases and allows programs of considerable complexity to be constructed.
The Menu Designer allows the creation of complete menu programs which can control access to other programs, user applications and operating system facilities.
The user must initially create menu skeleton files which specify the format and functionality of the required menus. These are processed by the Menu Designer which creates compiled Genius menu programs. The menu skeleton files are simple text files which maybe created or changed with any available text editor.
A generated menu program can have various styles and modes of operation, multiple selection levels, formatted screens, context sensitive help screens, hidden options, protected options and incorporate user written routines. A menu program will run or spawn other processes.
General purpose skeletons can be written which will automatically configure the generated menu program to the environment in which it is working. Operating system and site specific options can be offered only if they are available or supported.
The Menu Designer is one of two menu generators available within the Genius Suite. The other is the Menu Builder which is an interactive program which creates single level menu programs, each of which can be linked to other programs or menu programs to form a menu structure. The Menu Designer has many more facilities than the Menu Builder, and is aimed at the systems developer rather than the end user.
The Menu Designer can use menu forms which have been created by the Menu Builder.
The Genius Suite includes a number of mechanisms for inserting definitions into the Data Dictionary, including utilities for importing definitions from other dictionary systems. In some cases, however, access is required to existing files for which no definitions are available. The File Explorer is an interactive utility which samples records in such a file and makes intelligent estimates of probable field boundaries and types, including floating point numbers and dates. These definitions are then used to redisplay the sampled records to the user, who can if necessary override them before moving on. The final set of definitions may optionally be stored in the Data Dictionary, and its accuracy may be checked by automatically generating an exception report program to read the entire file.
It is sometimes necessary to change the layout of an existing file, typically to add new fields or to modify the type and length of existing ones. After the record layout in the Data Dictionary has been updated (keeping a copy of the old layout), the File Reformatter may be used to create a dedicated bulk transfer program to copy data from the old file to the new one, performing any type conversions and rearranging fields into the new layout. Fields not present in the new file are discarded, while new fields are set to the default values defined for them in the Data Dictionary.
Because "files" include database tables mapped transparently via the Genius linker, the File Reformatter can also create database load/unload programs.
In addition, the File Reformatter may be used to export or import information to or from a sequential file for transport of data between different hardware platforms.