Developing a Database Application:
After everything we've done, we have some settings in dBASE SE that we may not want to leave around.
These settings have to do specifically with the custom forms and custom reports.
The next time you go to create a form or report, dBASE SE is going to assume you want to use the custom one in the tutorial directory that you last used. You may want to solve that NOW by doing the following:
Repeat the above for a report, or you will run into the same issue there.
This will save you some frustration when you next go to create a new application.
One other thing you should do is to type, at the command window:
This will ensure that the tutorial database is closed, and that the next time you go to create tables you don't accidentally save them to that location ...
First we have learned that dBASE SE is a powerful software package and object oriented programming is it's foundation. We learned about classes, properties and events.
Next, we learned about Re-Usability! That is what all that stuff with custom datamodules, custom forms, custom controls, and custom reports is about. You should always try to use these, and try to design any code that you place in your custom objects so that it is as generic or re-usable as possible. We learned about (although these terms weren't used) inheritance, polymorphism, and encapsulation.
We learned how to create an MDI application that works like most other data driven applications.
We learned how to create database aliases and use them as databases.
We created some parent/child relationships among our query objects (in the datamodules). We created forms that showed these relationships as well as reports that used them.
We used datamodules in forms and reports, and in one case the same datamodule was used in both a form and a report.
We created forms with child-forms or dialog forms, whatever you want to call them.
We created reports with groups, with totals, and more.
In the process we learned something about how the Object-Oriented Database Manipulation Language (OODML) is used, and created code to manipulate data using it.
And we learned about how flexible and powerful dBASE SE can really be.
Believe it or not, we really only scratched the surface of the abilities of dBASE SE with this tutorial. While we sometimes scratched fairly deeply, there's a lot more going on under the hood. There are objects in dBASE SE we haven't touched. We didn't write any code that was independant of forms and reports to manipulate data. We didn't use any ActiveX controls, OLE abilities, and so on.
When it comes right down to it, every time one of the authors use dBASE to write a new application we learn more about what it can do. So will you.
You should get used to the following misc. bits of information (provided in no particular sequence):
Note: You are hereby granted full permission to use any or all of the code in this tutorial for any application you write. If the code is in the .CC (Custom Control) files or the Preview.wfm, please make sure you credit the authors, and if the code comes from instructions in the tutorial, assume the authors to be either Gary White, Peter Rorlick, Ken Mayer or a combination of the three.
With luck, you learned something about creating applications in dBASE SE.
The process of creating this tutorial has caused both authors to stretch their own knowledge, and in some cases we have actually changed some of our own development techniques based on what we learned in building this project for you.
After you get over the learning curve, you will find that development in this product is largely enjoyable process. Enjoy it, and maybe we'll see you out in the newsgroups!
Last Modified: October 25, 2002
The Legal Stuff: This document is part of the dBASE SE Tutorial created by Ken Mayer and Michael Nuwer. This material is copyright © 2002, by Ken Mayer and Michael Nuwer. dBASE SE is copyrighted, trademarked, etc., by dBASE, Inc., the BDE (Borland Database Engine) and BDE Administrator are copyrighted, trademarked and all that by Borland, International. This document may not be posted elsewhere without the explicit permission of the authors, who retains all rights to the document.