| Author | Alberto Bellina |
| Title | Dynamic Engine |
| Date | 31 Marzo 1999 |
| Version | 1.0 |
| Thanks | to Luca Quintarelli for many, many, ... and many helps and also for some really useful routines (Scroller, ...). |
forms forms printer DB
| | | |
v v v v
+--------------------------------------------------------------+
| +---------+ +---------+ +---------+ +---------+ |
| | | | | | | | | |
| DynEng | DynGui | |DynSpread| | DynRpt | | DynDb | |
| | | | | | | | | |
| +---------+ +---------+ +---------+ +---------+ |
+--------------------------------------------------------------+
^ ^
| |
| v
+-------. +---------+
| |\ | |
| +-\ | User |
| DynFile | | Program |
+---------+ +---------+
|
+-------. +---------+ +---------+
| |\ | | | |
| File '-\ <--> | DynGui | <--> | GUI |
| dynGui | | | | |
+---------+ +---------+ +---------+
|
| ATTRIBUTE | OBJECTS | DESCRIPTION |
|---|---|---|
| A | TextBox | Campo di soli caratteri alfabetici. |
| AN | TextBox | Campo caratteri alfanumerici. |
| N | TextBox | Campo di soli caratteri numerici. |
| P | TextBox | Campo per valore percentuale 0-100. |
| H | TextBox | Rende invisibile l'oggetto. Viene utilizzato per inserire calcoli intermedi oppure per eseguire dei controlli su una serie di campi |
| OUT | TextBox | Campo di solo output. |
| LEFT | TextBox | Allinea a sinistra |
| RIGHT | TextBox | Allinea a destra |
| F | TextBox | TO DO Campo di soli caratteri numerici con virgola. |
+----------------------------------------------------+
| Title of form... |
+----------------------------------------------------+
| +---------------------+ +-----------+ +-----+ |
| | label... | | textbox | |label| |
| | label... | | combobox | | | |
| | label... | | checkbox | | | |
| | ... | | ... | |... | |
| +---------------------+ +-----------+ +-----+ |
+----------------------------------------------------+
|
OPT{LAYOUTNCOL|Ncolumn|X1|W1|X2|W2...}
|
OPT{LAYOUTNCOL|2|0|2000|.|400}
La seconda colonna partirà dalla posizione 2000 circa.
OPT{LAYOUTROW|Heigth}
|
+----------+ +----------+ +------------------+ | finestra | --- | scroller | --- | elementi grafici | +----------+ +----------+ +------------------+ |
+--------------------+
| Label Text |
| Label Text |
| Label Text |
| +-----------------+|
| |Label Text |^|| ------> +----------+
| |Label Text | || | scroller |
| |Label Text |v|| ------> +----------+
| +-----------------+|
| Label Text |
| Label Text |
+--------------------+
|
+------------------------------------------------------+
| Title of form... |
+------------------------------------------------------+
| +--------+---------+-----------+ |
| | Tab1 | Tab2 | Tab3 | |
| | +---------'-----------'-------------------+ |
| | +---------------------+ +-----------+ +-----+ | |
| | | label... | | textbox | |label| | |
| | | label... | | combobox | | | | |
| | | label... | | checkbox | | | | |
| | | ... | | ... | |... | | |
| | +---------------------+ +-----------+ +-----+ | |
| +--------------------------------------------------+ |
+------------------------------------------------------+
|
Private Sub TabStrip1_Click()
Dim i As Integer
Dim f As cFrame
Dim f1 As cFrame
Dim key As String
For i = 1 To ntab
key = TabStrip1.SelectedItem.key
Set f = fields.item("TAB" & i)
Set f1 = fields.item("FRA" & i)
If key = "TAB" & i Then
f.visible = True
f1.visible = True
Else
f.visible = False
f1.visible = False
End If
Next i
End Sub
|
TYPE{TAB|LogicalName|Caption}
|
TYPE{LABEL|LogicalName|Caption}
TYPE{LABELCR|LogicalName|Caption}
|
TYPE{LTEXT|LogicalName|Len|Attribute|Formula|Default|Help}
TYPE{LTEXTCR|LogicalName|Len|Attribute|Formula|Default|Help}
|
TYPE{COMBO|LogicalName|Len|Caption}
TYPE{COMBOCR|LogicalName|Len|Caption}
|
TYPE{CHECK|LogicalName|Caption}
TYPE{CHECKCR|LogicalName|Caption}
|
TYPE{COMMAND|LogicalName|Len|Caption}
TYPE{COMMANDCR|LogicalName|Len|Caption}
|
+-------+ +--------------------+
| OBJ | | DATA |
| obj | | obj name value |
| 3 | -----------+-> | 3 A1 prova |
| 12 | ----+ '-> | 3 A2 test |
| ... | +------+-> | 12 A1 nome... |
+-------+ +-> | 12 A2 cogn... |
'-> | 12 A3 via... |
| ... |
+--------------------+
|
| Variabili | Sono variabili tutti quei nomi che iniziano con un carattere
alfabetico (A-Z,a-z) e NON hanno come carattere immediatamente seguente
il nome la parentesi tonda aperta. La lunghezza delle variabili è arbitraria. Esempio di nomi di variabili: var1, VAR2, VaR3, V_A_R_4, ...
|
| Funzioni | Sono funzioni tutti quei nomi che iniziano con un carattere
alfabetico (A-Z,a-z) e hanno come carattere immediatamente seguente
il nome la parentesi tonda aperta. Sono possibili funzioni senza e con parametri. La lunghezza delle funzioni è arbitraria. Un certo numero di funzioni sono built-in: abs(n), neg(n), date(), time(), ...Esempio di nomi di funzione: funzione1(), sum(A1,A2), ... |
| Operatori | Gli operatori sono di tipo aritmetico:
(+ - / * ^)
|
| NAME | DESCRIPTION |
|---|---|
| date() | Ritorna la data odierna in formato dd/mm/yyyy |
| time() | Ritorna l'ora corrente in formato hh:mm |
| abs(v) | Ritorna il valore assoluto di v. Es: se v=-3 ritorna 3 |
| neg(v) | Ritorna il valore negato di v. Es: se v=3 ritorna -3 |
+------------+------------+-------------------+
| | | V
+-------. +-------. +-------. +-------.
| |\ | |\ | |\ | |\
| Class '-\ | Class '-\ | Class '-\ | '-\
| cLabel | | cText | | cCombo | | Vars |
+---------+ +---------+ +---------+ +---------+
| | | |
+------------+------------+ |
| |
+-------. |
| |\ |
| I/F '-\ |
| DynObj | |
+---------+ |
| V
+-------. +-------.
| Class |\ | NT |\
| Obj '-\ -------------------> | Parser'-\
| Collect | | Runtime |
+---------+ +---------+
|
+-------. +------+
| |\ | |
| Class '-\ <------------------> | DB |
| cDynamic| | |
+---------+ +------+
| ^
V |
+---------+ |
| | |
| APP | <------------------------+
| |
+---------+
|
| GUI | Graphics User Interface |
| RAD | Rapid Application Development |
| Rif. | Document |
|---|---|
| [1] | |
| [2] | |
| [3] |