LetItB e
Version 0.1.0
Database program

Copyright © 1998 Pascal Goguey. All rights reserved.


0. You don't like reading docs?

Don't bother. Go directly to the tutorial and play with the software.

This is a first draft of a database software. Call it "proof of concept", "exercice de style", whatever. It is a little bit sketchy, probably full of bugs, but it features an interesting dynamic GUI.

1. What it does.

This version is a single window and single file version (let's start simple!) of a database software. The maximum you can expect of it now is an address book functionality level. It allows you to edit your own interface objects (buttons and fields) and to set up a little database which is limited to 30 fields.

The program window is divided into two sheets associated with tabs: a database sheet and a layout editor sheet. I will mostly describe the layout editor sheet. The database sheet functionality will highly depend of what you put inside. The database sheet functionality will be described when talking about the user-defined commands.

In this first version, the window cannot be resized. The reason is the object editor which looks ugly when the window is bigger. This problem will be fixed with the graphical object editor in a later version.

1.1 The layout editor sheet.

I'm aware that calling this an editor is a little bit optimistic. What it does: the layout sheet allows you to edit the characteristics od interface objects to be used in the database, and which will appear in the database sheet (which starts its life empty). It is possible to create only two kinds of objects at present: buttons and captions. Due to their specific characteristics, they are each in a specific sub-tab. Here is a short description of the fields of the caption settings:

  • Geometry: the location and size of the object in the DataBase sheet. These coordinates are not a rectangle, but the coordinates of the top-left point, the width and the height, which is easier when designing several objects having the same size. They can be separated by a space or a comma, and they are expected to be integers. Any other format will result in unpredictable behaviour.
  • Label: whatever you want to call your object (e.g. Name, ID, phone...)
  • Label width : the width of the label part of a caption.
  • Label alignment : exactly what this suggests.
  • Text alignment : can be LEFT, RIGHT or CENTER (caps only). Default alignment is LEFT.

The button's Geometry and Label are the same as for the Caption. The command specifies what will be the function of the button. Here is a list of the commands that you can assign to a button.
Important: these commands are the possible commands the user can assign to user-defined buttons in the database area, not the commands of the five buttons of the layout editor which will be described in parahraph "Editor Sheet Functions".

  • PREV : show previous record. Show nothing if there is no record. If already at first record, stay there.
  • NEXT : Show next record. Stay at last record if already there.
  • NEW : basically does nothing, except resetting all the fields. Can be useful to change completely the nature of the next record. However, storing records with many common parts is easier by keeping the fields filled, and changing only the proper records.
  • STORE : puts the record into the file. At that point, the user should know that the first field he has defined is the main field. The concept of main field will be useful in a later version to link two databases using one field. If another record has the same main field, the program will ask if it should modify the record, add a new one with the same name, or do nothing.
  • DEL : Deletes the current record.
  • FIND : A first push on Find cleans the fields. You can enter data in one of the fields and push again find to find the records containing that data in the SAME FIELD. Subsequent pushes on the FIND button will get the next matching records. At the last matching record, subsequent pushes on Find have no effect.Important: if you want to request another search, you must reset the find function. Push any button except Find, and then push Find to set a new request.
The button commands must be specified in capitals.

If it is not clear, you can have a look at the tutorial that creates a database that looks pretty much like the application "people"

I think it is almost over for the buttons functionalities. The caption fields are rather classical, and they probably do not need further description.

Editor Sheet Functions:
  • Previous :
    Edits the field description which is before the currently edited field description. If at the beginning of te list, clicking previous edits the last field descripton.
  • Next :
    Edits the field description which is next to the currently edited field description. If at the end of te list, clicking previous edits the first field descripton.
  • New :
    Does basically nothing. It cleans all the fields to enter a new record. But usually few parameters change, so it is quicker to change only those parameters. For instance if you edit a column of objects, only the second parameter of the geometry and the name will change.
  • Create :
    Puts the object configuration of the current object to the file.
  • Delete :
    Removes the currently edited object description from the file.
1.2 The Database Sheet:

As the database sheet is designed by the user, there is not so much to write here. The functionalities of the buttons the user may setup have already been defined earlier (see paragraph 1.1).

2. The next versions:

As said previously, this version is rather sketchy, especially the object editor. One of the next versions, and probably the next one, will feature a graphical object editor. That will take some time, since I need first to step 5 meters backwards to have a better overview, and probably rebuild the software better and with new ideas. Since I also need to work sometimes for my employer, that may take a while.

Here is an idea of what will change / stay as is in the future:

  • The find function will be enhanced. The current find is only sequential, and therefore inefficient.
  • New objects will be implemented. For instance a text view which is useful when there is a lot of info in one field.
  • Scripting will be adopted in order to automatically stuff data into the file.
  • As the roots of this program were a Japanese/French dictionary, a dictionary file will be provided (after R4 for Japanese support). Some support for existing dictionaries will be added.
3. Bugs: Please send me the bugs you find and if possible the conditions in which they occured.

As I have made many last-minute bug fixes in ANSI shitty code, I am afraid many last-minute bugs have been introduced...

4 Copyright & license.

This version is free for the time being, and may be freely copied / distributed. I have read somewhere a suggestion of "Beerware" which sounds very interesting. So, if you live in Japan, send me a beer coupon. If not, you have to promise me to invite me for a few drinks if you ever come to Japan.

5 Disclaimer.

No warranty of any kind. By using this software, the user agrees that the author cannot be held responsible of any problem on his software and hardware.

6 Acknowledgements.

Special thanks to Laurent Safa whose only defect is to be a Windows programmer, and to Raphael Moll for many useful hints.



Copyright © 1998 Pascal Goguey. All rights reserved.