			GUICNVT
			=======
The utility guicnvt should be used on Empress GUI databases created with
Empress v6.4 GUI v1.0 Beta, in order to convert them to a format compatible
with the current release of Empress GUI.

Usage: guicnvt DATABASE_NAME

Before a conversion is performed, it is always recommended that you back up 
the database.


Guicnvt will perform the following functions:

1. Check that the database is in v6.4 GUI v1.0 Beta format.
2. Convert the database schema to the current schema.
3. Check for the keyword 'global' within any script actions. If it finds this
   keyword, in an action which is not the 'Global Action' for the module,
   guicnvt will report the module and action name where it is found.
   (See below for an explanation.)
4. Compile all modules.
5. Link all applications.


Global Declarations
===================
In the current version of the Empress GUI, global declarations must be placed
in a separate Script Action by themselves. The name of this script action must
be entered in the 'Global Action' field within the Module Property Editor.

Global declarations may no longer appear in script actions with other 
statements.

For example, assume I have an action called 'init_all' (within the module
'Upd_my_accounts') as follows:

--------------------------------------------------------------------
    action: init_all 
--------------------------------------------------------------------
parameters
  char last_date;
end;
global
 char arr[5];
 char var;
 char var2;
end;

open table 'my_accts' read;
let arr[1] = "name";
let var = 'name';
declare c1 cursor for
   select inv_date, inv_number, inv_stock, ex_date, count print cnt
      from 'my_accts' where inv_date >= last_date group by inv_number
   with count;

call empgui_multirecord_define ('c1', 'w5', 'ml', null, 'inv_stock',
   'inv_number', 'inv_date', 'ex_date', 5);

open c1;

--------------------------------------------------------------------

This action must be copied within the Empress GUI Action Manager (press File, 
Copy).  The new action, perhaps called "set_globals", must be edited to 
contain just the global declarations (press File, Properties).  The rest of
the script should be deleted.  The new action, "set_globals" will look like 
this:

--------------------------------------------------------------------
    action: set_globals 
--------------------------------------------------------------------
global
 char arr[5];
 char var;
 char var2;
end;
--------------------------------------------------------------------


Next, the original action, "init_all" needs to be modified to remove the 
global declarations.  It will look like this once they are removed:

--------------------------------------------------------------------
    action: init_all (modified)
--------------------------------------------------------------------
parameters
  char last_date;
end;

open table 'my_accts' read;
let arr[1] = "name";
let var = 'name';
declare c1 cursor for
   select inv_date, inv_number, inv_stock, ex_date, count print cnt
      from 'my_accts' where inv_date >= last_date group by inv_number
   with count;

call empgui_multirecord_define ('c1', 'w5', 'ml', null, 'inv_stock',
   'inv_number', 'inv_date', 'ex_date', 5);

open c1;

--------------------------------------------------------------------

Please note that deletions of large parts of actions can usually be done in 
Motif by highlighting the text you want to remove, and then pressing DELETE 
on the keyboard.

Finally, the name of the new action, "set_globals" must be entered into the 
Global Action field of the module "Upd_my_accounts".  Within the Application
Module Manager, press File, Properties to bring up the correct window.

After these changes are made, the module is ready. Guicnvt can be run again 
on the database when all of the global declarations have been moved in this
fashion.
