Documentation of the Xdobry application | ||
---|---|---|
<<< Previous | User manual | Next >>> |
It is a program with which the real end user of the databases has to do. This program can evaluate the form descriptions which come from form-editor, display the forms and connect to database. This program must give a receipt for the manipulations on the forms correctly in in the instructions SQL to the databases. Following functions are supported:
Data View
Data modifying (update)
Data create
filter or search Data
order, sort Data
(new feature) data navigating (Browsing)
The forms themselves support directly higher abstraction concepts like association, Aggregation and specialization. The knowledge about the concepts of the relational modeling like foreign key and primary key must not exist by user.
With Form-Links you can brows the database like hypertext-documents.
Consider following association Figure 6. There are three objects (Student, Vorlesung (eng. lesson), Professor) in the relationship Prüfung (eng. exam). The result tables structure.Professor {PersNr,Rang,Raum} Student {MatrNr,Name,Semester} Vorlesung {VorlesungNr,Titel,SWS,PersNr} pruefen {MatrNr},VorlesungNr,PersNr,Note} |
The Problem: Association has reacher semantic the hyper-links. The Association is transitive. Hyper-Links are only one-way references. The association can have more then 2 object (the degree of association can be greater than 2). One object can be associated with more than one another objects.
Figure 7 shows all form-links types, they correspond to Relationship-Types from Er-model.The Association is displayed as choose-list. This is exactly the same as foreign-keys attributes. You can trigger the link by double-click on the reference-list title.
The Association is displayed as action-button. This is just another site of 1:N relationship.
The Association is displayed as menu-button. This is just another site of 1:N relationship. The first menu-item is an N:1 Relationship and it link to the relationship-table. The next item links to objects.
There are simple API to extend the form-server with user-procedures (macros). The FormServer is implemented in Tcl and it allow very ease to dynamic change of program-code.
The macros are loaded as Tcl-scripts and they become a part of FormServer. The are some simply designed API to control some main function of program. You can change the behavior of some form like (delete checking, update checking ...). The idea; you create new XOTcl class derived from FormEngine class and you overwrite some empty methods. This are empty macros for myform form.
Class myform -superclass FormEngine myform instproc update_check klvalues_ref { return 1 } myform instproc delete_check {} { return 1 } myform instproc insert_check klvalues_ref { return 1 } myform instproc after_delete {} { } myform instproc reload_form {} { } myform instproc position_check {pos} { return 1 } FormEngine instproc filling_form klvalues_ref { } |
See the example accountancy how to write your macros. The are such er-schema.
A Customer (Klient) can be not deleted if he has order he has not paid. By deleting customer set all foreign-keys by cust_order table to NULL
The macro compute a derivated attribute total price for oder and sum price for oder item
Check if the date format is 2000-01-01
<<< Previous | Home | Next >>> |
FormEditor | Up | Schema vs.Form appearances |