README


The sample FoxPro code files contained in GSXSAMPL.ZIP are designed 
for example use with GENSCRNX.PRG.  The files contained in 
GSXSAMPL.ZIP are for use with FoxPro 2.5 for MS-DOS, although 
GENSCRNX.PRG is compatible with all versions of FoxPro 2.x.



INSTALLATION


Read documentation on installation supplied with GENSCRNX before 
using the sample code.



UP AND RUNNING


After unzipping GSXSAMPL.ZIP, execute GSXDEMO.PRG from within 
FoxPro 2.5 for MS-DOS:
.
To execute GSXDEMO.PRG, enter:
DO GSXDEMO

Notes:
CUST0.SCX does not reference the object library while CUST1.SCX, 
CUST2.SCX, CUST3.SCX, and CUST4.SCX do.  Notice the #:INSERT 
directive in the Cleanup snippet of CUST3.SCX.  GENSCRNX executes 
#:INSERT faster than GENSCRN executes #INSERT with the same code 
output.  GENSCRNX also supports the #INSERT screen directive when 
using FoxPro 2.0 with identical specifications as FoxPro 2.5 although 
using #:INSERT is recommended because it is executed faster.

Important:
The best way to understand the example screens is to compare the 
object contents using the Screen Builder followed by analysis of the 
generated .SPR files.  Refer to GENSCRNX documentation for directive 
definition.  If changes are made to any object library screen, the object 
library screen must be re-generated. This may be accomplished by using 
the Generate option with the object library screen open or by rebuilding 
the LIBRARY project.  For any object library changes to affect screens in 
the SAMPLE project, open the SAMPLE project and rebuild the project 
using the Rebuild All option.



PROJECTS


LIBRARY.PJX		Object library project

Files:
LIBMAIN1.SCX	MAIN object library
LIBACCT1.SCX	ACCT object library

Notes:
Files in LIBRARY.PJX may be built individually and are not dependent on 
each other when changes are made.  Although the ACCT library 
references objects contained in the MAIN library, rebuilding ACCT after 
changes are made to MAIN are not required.

Important:
Object library screens must re-generated before screens referencing their 
objects (such as screens in the SAMPLE project) can be generated.


TEMPLATE.PJX	Template project

Files:
CUSTINF1.SCX	Customer information template 1
CUSTINF2.SCX	Customer information template 1
SPINNER.SCX		MS-DOS spinner template

Notes:
Files in TEMPLATE.PJX may be built individually and are not dependent 
on each other when changes are made.  To suppress the generation of 
unused code from the template screens, the directive *:NOGEN is used 
in the Setup snippet for the screens above.  *:NOGEN is used to make 
updates to the FOXSCX library only without generating an .SPR file.  
Using *:NOGEN with template screens is faster because GENSCRN is 
not called.

Important:
Template screens never have to be generated since they are used for 
importing only.  The project is only used as a filing cabinet only and does 
not require building at any time.


SAMPLE.PJX		Sample project

Files:
CUST0.SCX		Customer sample 0
CUST1.SCX		Customer sample 1
CUST2.SCX		Customer sample 2
CUST3.SCX		Customer sample 3
CUST4.SCX		Customer sample 4
CUST5.SCX		Customer sample 5
CUST6.SCX		Customer sample 6
CUST7.SCX		Customer sample 7

Notes:
Files in SAMPLE.PJX may be built individually and are not dependent on 
each other when changes are made.  CUST0.SCX is a typical screen 
that does not define or reference any objects and does not used any 
GENSCRNX directives.  CUST0.SCX is used to demonstrate how a 
FoxPro screen built without GENSCRNX directives creates an identical 
.SPR as when compiled without _GENSCRN=GENSCRNX.PRG.



DRIVERS


WINMOVE.PRG	Window move driver

Notes:
The WINMOVE driver is used to automatically add code necessary to 
move the screen window off the screen by 800,800 at the end of the 
Setup snippet and back again at the end of the READ Show clause.  This 
is useful (especially in FoxPro for Windows) when the READ Show 
clause has a visual delay when executing the .SPR and having it 
suppressed is desirable.  The WINMOVE driver can be specified by 
adding *:SCXDRV2 WINMOVE in the Setup snippet.  Refer to 
CUST5.SCX for an example of the WINMOVE driver.

NOSIZE.PRG		No SIZE clause driver

Notes:
The NOSIZE driver is used to automatically remove the SIZE clause from 
all screen objects (except for objects directly specifying the *:SIZE 
directive).  This is useful when a field lengths change dynamically at 
runtime and proper execution requires the SIZE clause to be left out of 
the GET command.  The NOSIZE driver can be specified by adding 
*:SCXDRV2 NOSIZE in the Setup snippet.  Refer to CUST5.SCX for an 
example of the NOSIZE driver.  

CONTROLS.PRG	Controls driver

Notes:
The CONTROLS driver is used to execute the *:SPINNER and *:FILL 
directives.  The CONTROLS driver can be specified by adding 
*:SCXDRV2 CONTROLS in the Setup snippet.  Refer to CUST3.SCX for 
an example of the CONTROLS driver.



COPYRIGHT NOTICE


Compressed file: GSXSAMPL.ZIP
System: GenScrnX
Author: Ken R. Levy
Company: Jet Propulsion Laboratory
Copyright: None (Public Domain)

All source code and documentation contained in GSXSAMPL.ZIP was 
developed at the Jet Propulsion Laboratory in Pasadena, Calif. and has 
been placed into the public domain.  You may use, modify, copy, 
distribute, and demonstrate any source code, example programs, or 
documentation contained in GSXSAMPL.ZIP freely without copyright 
protection.  You may not resell any source code, example programs, or 
documentation contained in GSXSAMPL.ZIP.  All files contained in 
GSXSAMPL.ZIP are provided 'as is' without warranty of any kind.  In no 
event shall its authors, contributors, or distributors be liable for any 
damages.




COMMENTS/SUGGESTIONS/PROBLEMS/QUESTIONS


Please use CompuServe's FoxForum (section 3rd Party Products) 
directed to:

Ken Levy 76350,2610

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

