SECTION I-The Interactive Use of Visual FoxPro
Chapter 1: Introduction to the Tool
Today's computing environment
Installing and starting Visual FoxPro
The Visual FoxPro interface
The Command window
Windows, menus, and toolbars

Chapter 2: The Language
Working with Visual FoxPro interactively
Using the Command window
The Command window context menu
Building commands, functions, and expressions
A Visual FoxPro command and function overview
Data - Database
Data - Editing
Data - Fields
Data - Indexes
Data - Locking
Data - Memo Fields
Data - Navigation
Data - SQL commands
Data - Structure
Data - Tables
Environment - General
Environment - Disk
Environment - Keyboard
Environment - Monitor
Environment - Network
Error handling
File name manipulations
File information
File selection
File and directory writing
Interrupts (Mouse, Keyboard, Other)
Low-level file functions
Math - Financial
Math - Numeric
Math - Statistical
Math - Trig and Exponential
OOP - Control-specific
Programming - Comments
Program control structures
Program event handling
Program subroutines
Program variable scoping
Project manager
String functions
Text merge
User interface
Visual Studio
Obsolete commands and functions

Chapter 3: The Interactive Data Engine
The relational model
Visual FoxPro's data structures
Original table
Index file (for order by Birth Date)
Table displayed according to Birth Date index
Index file
Table displayed according to Sex/Name tag
Indexes and Rushmore
.MEM files
Other FoxPro files
Working with data structures
Manipulating tables
Accessing an existing table
Exclusive vs. Shared use
Accessing multiple tables
Closing a table
Viewing the contents of a table
Specifying the order of records in a table
Creating indexes
Creating a table and modifying the structure of an existing table
Setting a filter
Manipulating databases
Accessing an existing database
Accessing multiple databases
Viewing the contents of a database
Using the Database Designer
Working with persistent relationships
Working with table structures programmatically
Modifying tables and databases programmatically
Working with data
Navigating through tables and finding specific data
BOF(), EOF() and the Phantom Record
Modifying data
Adding records interactively
Adding records programmatically
Adding a batch of records from another source
Deleting records interactively
Deleting records programmatically
Handling deleted records: recalling and packing
Editing records interactively
Editing records programmatically
How do I save the data?

Chapter 4: Visual FoxPro's SQL Implementation
Sample databases
Basic SELECT syntax
Field lists
Record subsets
Aggregate functions
Subtotaling-GROUP BY
Multi-Table SELECTs
Outer joins
Controlling the result set: destination
Controlling the result set: ORDER BY
Controlling the result set: DISTINCT
Controlling the result set: HAVING

SECTION II-Tools Needed for Building an Application
Chapter 5: Creating Programs
Creating a program with the editor
Running a program
Compiling a program
Up close with the VFP editor
Configuring Visual FoxPro program execution preferences

Chapter 6: The VFP Project Manager
Using the VFP Project Manager to build an .APP or .EXE
Up close with the Project Manager
The Project Manager dialog
The Project Manager context menu
The Project menu
Tips and tricks

Chapter 7: Building Menus
Driving an application with a menu
Using the Menu Designer to create a menu
Up close with the Menu Designer
The Menu Designer dialog
The Menu menu
The View menu
The Menu-generation process
Tips and tricks
Adding flexibility to the Visual FoxPro Menu Designer
Creating context menus
So why isn't the Menu Designer OOP-ified?

Chapter 8: Building Forms
The big picture
Terminology and tools
Creating and running a form
Changing form properties through user input
Calling methods from objects on the form
Integrating forms and data
Up close with the Form Designer
Form Designer
Properties window
Code window
Form Designer toolbar
Form Controls toolbar
Layout toolbar
Tab order
Include files
Referencing objects
Referencing objects by their full names
Referencing objects by their container
Indirect object references
Tips and tricks
Referencing generic objects
Names and captions
Code windows

Chapter 9: Native Visual FoxPro Controls
The proper care and feeding of controls
Focus and containers
Common properties
Common events
Event firing
Visual delineators
Label control
Image control
Line control
Shape control
Page Frame control
Separator control
Controls to initiate action
Command Button control
Command Button Group control
Timer control
Hyperlink control
Controls to manipulate data
Text Box control
Edit Box control
Check Box control
Option Group control
List Box and Combo Box controls
Uses of lists and combos
Populating a list or combo box
List Box functionality
Combo box functionality
Defining and returning values from a list box
Spinner control
Grid control
Other controls
ActiveX control and ActiveX bound control
Custom class
Session class

Chapter 10: Using VFP's Object- Oriented Tools
A quick introduction to object-oriented programming
The original form and control objects
Inheriting from the original
Creating your own originals
OOP terminology
Inheritance and overriding methods
Non-visual classes
Where OOP fits in with Visual FoxPro
Quick start to creating classes
Form classes
Creating your own form base class
Using your own form base class
Creating a form from a Form Class template
Using a different form base class "on the fly"
Creating form subclasses
Registering a form class with Visual FoxPro
Attaching a custom icon to a registered class
Modifying a form class
Control classes
Creating your own control base class
Creating control subclasses from your base class
Registering your controls base class
Placing controls on a form from your base class or a subclass
Use the Project Manager
Select the class from the Form Control toolbar
Control and container classes
Working with Visual FoxPro's object orientation
Naming classes
Adding your own properties and methods
The property and method hierarchy
Overriding property inheritance
Overriding method inheritance
Preventing a parent's method from firing
Preventing an event from firing
Calling a parent's method in addition to the local method
Suggested base class modifications
Up close with the Class Designer
Up close with the Class Browser
Starting the Class Browser
Using the Class Browser

Chapter 11: Output: The Report and Label Designers
Quick start to building reports
Report terminology
To-may-to or tuh-mah-to?
Dumbing down the Report Writer
How about an example?
Up close with the Report Designer
The Report Designer window
Select a control
Select a group of controls
Move a control within a report
Move a control from one report to another
Duplicate a control
Resize a control
Delete a control
Change the font or other attributes of a control
Resize a band
The Report Controls toolbar
Change the text of a label
Change the internal properties of a control
Create a control
The Layout Controls toolbar