Computer U, Ltd., Smart Solutions for your computer.

   
Home | Solutions | Training | News | Technical Commentaries | About Us | Contact Us

Visual FoxPro Training Overview

Learning a complex tool like Visual FoxPro requires a foundation of knowledge about data and how Visual FoxPro handles it.

The foundation for VFP begins with the data, container and fields associated with it. Database output (queries) explains FP tables, fields, and cursors as read-only data. We should spend some time on queries, perhaps as we complete data.

Outer joins (all customers and invoice data where there are invoices) were added in VFP 5.0. We need to look at the different ways of relating tables: with SQL Join  and the language based SET RELATION TO.

While VFP 6.0, with SP 5 has been very solid, the Fox team has been busy building versions 7, 8 and 9. Each have small updates, including improved interoperability with other OLE and now .NET.  There were small memory leaks that are now fixed. We noticed one in the OLEDB engine that was fixed in VFP 8 SP 1.

The training The topics and skill development are not developed in a strictly sequential manner, in fact we hope that folks have all sorts of knowledge and skills that let them speed through this material and be productive the moment they apply themselves.

Delivery and Topics

Currently, I am conducting Visual FoxPro Developer training using this set of topics as the objectives, the latest in Visual FoxPro texts available as the study, and the goals of the students. I distribute or discuss the topics prior to the class, provide the topics list at the beginning of the first day, and check in with the students at every break during the course. Some programmers want to make sure we cover the broadest possible set to topics; others want to practice as much as possible. Some learn best watching the process based on a demonstration. I lecture, we explore examples from the texts and Microsoft sample files and we develop forms and classes also.

Training Manuals

It would be nice to use custom training manuals for these classes, but I haven't had the revenue from VFP training to justify the 875 hours it would take to finish the manuals based upon the outline I started in 1995. I have used other manuals (including the Microsoft Press material and another local brand) for training, but find that the books available from the bookstores serve as much better texts for reference material after the class. I use the white board and VFP itself to help explain the process as we work in class.

Overview  |  VFP Basics   |  Programmer Topics - Databases, Tables and Relationships |
Programmer Topics - Language |   VFP App Dev 1: Projects, Forms, Controls  | 
VFP App Dev 2: Project Management, Classes, Subclasses and more Objects  |
VFP 3: Advanced Use of Data, OLE Objects and Remote Data

Visual FoxPro Basics 2 day course

It's an intro course, for non-programmers. I've taught it only once. The material should be mastered by programmers, so I include the topics in the VFP Application Development 1. I cover quickly the material about tables and databases, then move on to queries, views, and reports. Unlike some, I don't believe the wizard developed forms are useful unless you add programming, so I don't use them. In other words, if you are not ready to use programming techniques, go to Microsoft Access - it has a fast learning curve that you can do more without programming. The queries and report topics are listed here.

  1. Queries
    1. SQL vs. Other...
    2. Updateable
    3. Language vs. Tools
    4. Queries as program
    5. Retrieving Data Advanced
    6. Unions
  2. Report Processing
    1. Bands
    2. Advanced concepts
    3. Report Variables
    4. Report Data - Pass 2
    5. Data grouping
    6. Sums AVG, calc fields, report variables
    7. partial sums, IIF()
    8. Memo field, stretch, float
    9. Two pass report calculation. E.g., percentage of the group total.
Overview  |  VFP Basics   |  Programmer Topics - Databases, Tables and Relationships |
Programmer Topics - Language |   VFP App Dev 1: Projects, Forms, Controls  | 
VFP App Dev 2: Project Management, Classes, Subclasses and more Objects  |
VFP 3: Advanced Use of Data, OLE Objects and Remote Data

Foundations:  Topics for Programmers -
Databases, Tables and Relationships

These topics must be known - I cover them quickly if requested, otherwise integrate them in with the other material... The importance of the database container becomes evident only later - I just fixed a problem at one remote site by taking tables "out" of a database container. There was nothing wrong we could see, but the users at one site were having data problems when others with "identical" data structure and application.

  1. Database & Tables
    1. Database Containers
      1. Attached vs. Free
      2. Format
      3. Creating tables
      4. Field names, types, etc
    2. Types of Visual FoxPro Data
      1. Measurement (numeric, float, integer, date, time)
      2. Descriptive, short (name, city, etc.)
      3. Descriptive, long (memo, paragraphs...)
      4. OLE (graphics, video, sound, binary)
      5. Names, long & short
      6. Indexes as Keys
        1. Primary Key, Candidate
        2. Foreign key (Reference to additional table)
        3. Regular indexes
  2. Creating Relationships
    1. Persistent vs. Normal
    2. Data validation / Foreign key relationship
    3. Normalization issues
      1. Normal Form
      2. Denormalization Optimization for Speed
  3. Buffering, Saving Changes
    1. Buffering as a way of processing data for many users
    2. Buffering Table vs. Record
    3. Optimistic Buffering
    4. Pessimistic Buffering
    5. Commit, Rollback
    6. FP 2.x methods
  4. Stored Procedures (First Pass)
    1. Rules
    2. Triggers
Overview  |  VFP Basics   |  Programmer Topics - Databases, Tables and Relationships |
Programmer Topics - Language |   VFP App Dev 1: Projects, Forms, Controls  | 
VFP App Dev 2: Project Management, Classes, Subclasses and more Objects  |
VFP 3: Advanced Use of Data, OLE Objects and Remote Data

Foundations:  Topics for Programmers -
Visual FoxPro Language

VFP's language is based on FoxPro, then all the way back to dBase and the other "XBase" languages of Clipper and WordTech (which has been folded into Visual dBase). With Visual FoxPro, the language added object oriented commands and syntax, but much of the foundation is in FoxPro 2.6. Again, I perform enough of an introduction to save the new programmers time later, and move on. Some aspects are really different from VB and C like variable scoping, parameter passing and the private declaration.

  1. Language Introduction
    1. Xbase (classic FP 2.x & before)
    2. categories of commands
  2. Other issues
    1. Deadlock
    2. Reuse deleted records
    3. Goley’s deleted record/primary key note
    4. Pack, reindex issues
  3. Memory variables
    1. MEMVAR discussion
    2. Scatter, gather
    3. Scope - delayed until after procedure / function
    4. Arrays
      1. Creating, []vs. ()
      2. Redimensioning, single vs. multi dimensional
        1. Dimension 2 to 1
        2. Re-Size without loosing data, etc
  4. Language Details
    1. Writing Programs
    2. Commands, command rules, getting help about commands
    3. Program control
    4. Conditional execution
    5. Looping
    6. Processing data
    7. Procedures & functions
      1. Passing Parameters
      2. Variable declaration
        1. Local
        2. Private
      3. Variable scope
  5. Data manipulation commands
Overview  |  VFP Basics   |  Programmer Topics - Databases, Tables and Relationships |
Programmer Topics - Language |   VFP App Dev 1: Projects, Forms, Controls  | 
VFP App Dev 2: Project Management, Classes, Subclasses and more Objects  |
VFP 3: Advanced Use of Data, OLE Objects and Remote Data

Visual FoxPro Application Development 1:
Projects, Forms and Controls

  1. Rapid Application Development: Introduction to Forms and the Visual Object Model
  2. Building Objects: Overview
    1. Polymorphism,
    2. Inheritance
    3. Encapsulation.
    4. Preparation: Objects as classes... We will come back to these
    5. First pass: objects with properties, events & methods
  3. Base Classes
    1. Base objects as building blocks
    2. Use form and form controls as exams
  4. A Simple Form
    1. Single table, no real lookup or subform
    2. Nothing but the Data events!
    3. Worry about the IDE - VFP Integrated Development Environment
      1. Demo
      2. Practice
      3. Exercise here!
    4. VCR Controls
    5. Standard Menu (without mods)
    6. Single table
  5. Projects
    1. Put the code in one place
    2. Control the development process
  6. Naming convention
  7. Make the form more complex
    1. Different types of controls
      1. Combo boxes
      2. Radio buttons, check boxes
    2. Worry about data
      1. Data validation
      2. Controlling tab order
  8. Data environment
  9. More and more complex forms
    1. Page frames
    2. Grids
  10. Other Container objects
  11. Other Objects on forms
    1. Image
    2. OLE: Sound,
  12. Form sets
  13. Multi table forms
    1. Multi Table Forms - Many to One (Lookup)
    2. Multi-table Forms - One to Many
  14. Toolbars
  15. Menus
  16. Tools in Solving Programming Problems
    1. Debug
    2. Trace
    3. On error processing - vs. Error method
  17. Data sources
    1. Tables
    2. Views - view conditions
  18. Data buffering, commits, MU issues, etc..
    1. Strategies for saving changes:
    2. Pessimistic, Optimist, etc.
Overview  |  VFP Basics   |  Programmer Topics - Databases, Tables and Relationships |
Programmer Topics - Language |   VFP App Dev 1: Projects, Forms, Controls  | 
VFP App Dev 2: Project Management, Classes, Subclasses and more Objects  |
VFP 3: Advanced Use of Data, OLE Objects and Remote Data

Visual FoxPro Application Development 2: Project
Management, Classes, Subclasses and more Objects

We build upon AD1 - but really focus on the process of building applications with classes. While I know (and do in my own VFP work) that it is quick fun to drop fully developed objects on a form, modify a few properties, then see the working complexity running, to do so early in the VFP learning process obscures the many details of the different objects.

And, for fair percentage of the VFP students I have seen, navigating the complexities of multi-classed objects is too confusing as they view early in their Visual FoxPro experience the full cornucopia of VFP properties and methods. So, we have success in developing forms, then turn to the complexities of working with VFP classes.

If an individual's organization has chosen any particular class library as the company standard, I want to work with it in this class.

  1. Review of Object Oriented Programming Goals
    1. Plan and engineer for re-usability
    2. Develop and testing
    3. Use, use, use
  2. Return to Theory
    1. Polymorphism
    2. Inheritance
    3. Encapsulation
    4. Why do they help us??
    5. Subclasses, superclasses, & "classing" and object - nomenclature
  3. Return to VFP
    1. Find the pieces in the IDE (Interface)
    2. dodefault() command - new to VFP 5
    3. :: scope resolution operator
  4. VFP Base Classes
    1. List the object types
    2. Look at the common properties & methods
  5. Base class as starting over
    1. See notions of set century on, set deleted on etc.
  6. Object browser
  7. Custom classes - nonvisual classes
  8. Follow the subclassing code
  9. Lab examples
    1. Simple -form objects for font size, color etc
    2. Telephone, default area code, lookup etc.
  10. Instantiation - several forms run from menu
  11. Object as including the "data environment" - a classed form can't have a data environment
  12. Classing the data buffering events - pick any set of classes to examine
  13. The application object - again, explore the application object from the class library of your choice
  14. VFP sample controls - more fun to explore

Visual FoxPro Application Development 3:
Advanced Use of Data, OLE Objects and Remote Data

I want to teach this class as a full set of topics, but haven't - folks haven't needed these topics to be productive. I have performed quick demos, u

Lessons and tasks we have performed in class include:

    Mailmerge with Word

    Report with Word

    OLE & Outline Tool

    OLE & Pivot Table Control

    OLE & MS Graph

    OLE & Pinnacle’s Graphics Server

    Excel via OLE

    Client Server topics - Now in 1998, perhaps we should use Visual InterDev, rather than Visual FoxPro.

    Strategies for Client Server

    Moving to Client Server - Upsizing a database

    Triggers

    Server side programming

    SQL Server Administration

Questions? - email me, craig {{a-t}} c0mputer-u.c0m

Overview  |  VFP Basics   |  Programmer Topics - Databases, Tables and Relationships |
Programmer Topics - Language |   VFP App Dev 1: Projects, Forms, Controls  | 
VFP App Dev 2: Project Management, Classes, Subclasses and more Objects  |
VFP 3: Advanced Use of Data, OLE Objects and Remote Data
 Copyright 1997-2007 Computer U, Ltd. All rights reserved.                             Last modified at 12/27/07 09:24 AM
         computer-u.com is powered by WebHost4Life.com Click here for a great web host at a great price.