MANUALE OPERATIVO DI PROCONTE

) INTRODUZIONE
) CREARE UN PROGRAMMA DA ESEGUIRE IN AMBIENTE DI SVILUPPO
) IL PROGRAMMA UTENTE
) MODELLI DI CONTESTO = "ModCtx" , ( COGNITIVO, DI INTERFACCIA, BASE)
) CREAZIONE DI UN MODELLO DI CONTESTO DI INTERFACCIA
) CREAZIONE DI UN MODELLO DI CONTESTO COGNITIVO
) COPIA E MODIFICA DI MODELLI DI CONTESTO
) CONTROLLO DEL CONTENUTO BINARIO DEGLI RLTP PER RICONOSCERE I MODELLI
) EVENTI
) CREAZIONE DI UNA FORM_MAIN
) CREAZIONE DI UNA DIALCUSTOM
) AGGIUNGERE CONTROLLI ALLE FINESTRE (FORM_MAIN O DIALCUSTOM)
) TOGLIERE CONTROLLI A FORM_MAIN O DIALCUSTOM
) CONVENZIONI DEI NOMI
) IL CONTESTO CORRENTE
) MODELLI DI DATI
) TIPI BINARI
) LA DENOMINAZIONE DEGLI RLTP
) LA DENOMINAZIONE DEGLI RLTP E LA LINGUA NATURALE
) MEMORIZZAZIONE DI RECORDS
) PARAGONE COI DATABASE
) PICCOLI ESEMPI DI PROGRAMMI PROCONTE
) GLOSSARIO


INTRODUZIONE


Questa sezione riguarda il manuale operativo di ProConte che serve per comprendere gli strumenti tecnici ed operativi, per una spiegazione dei principi teorici di ProConte, delle ragioni per cui e' stato creato, a cosa serve , quali sono i vantaggi e svantaggi nel suo uso, ecc. ... , vedere la sezione "Principi teorici di ProConte" .

"ProConte" e' un nuovo tipo di linguaggio di programmazione creato da Stefano Sampietro, si tratta di un linguaggio di programmazione contestuale, ("Pro-Conte" : "Pro" = programmazione, "Conte" = contestuale), creato prendendo spunto da come funzionano i cervelli biologici, tra cui il cervello umano .
I cervelli biologici sono macchine "stimolo-risposta", vale a dire che reagiscono agli stimoli che derivano dall'ambiente in cui l'individuo e' immerso, piu' precisamente, il cervello biologico, reagisce all'insieme di stimoli (percezioni) che riceve.

L'implementazione pratica in informatica di questo modo di operare, ha comportato la creazione di un linguaggio di programmazione ove si afferma il concetto che :
un determinato insieme di dati informatici in un dato momento, corrisponda ad un "contesto ambientale" , il quale stimola il programma operante a reagire relativamente, finendo la sua reazione modificando i dati del contesto ambientale, da cui riparte un nuovo ciclo di analisi contestuale che produrra' un nuovo ciclo di reazione relativa, continuando in modo perpetuo, almeno fino a quando non si provvede a fare terminare i cicli con opportuni accorgimenti .

Abbiamo quindi :

Il "contesto dati" e i "modelli di contesto dati" :

Il "contesto dati" e' semplicemente l'insieme dei dati che si vengono a creare man mano che il programma esegue aggiunte o eliminazioni dei dati da elaborare .

I "modelli di contesto dati" (chiamati piu' avanti "Modelli di contesto" o "ModCtx"), sono delle definizioni formali di un contesto dati, memorizzate nel programma e che fungono da modello di riferimento per stabilire se il contesto dati corrisponde ad una determinata conformazione .
Inoltre, i Modelli di contesto, nella loro definizione formale, contengono anche la reazione stabilita per il contesto a cui si riferiscono, vale a dire che contengono l'indicazione delle procedure da eseguire nel programma quando il contesto dati assume una determinata conformazione .

ProConte e' un linguaggio interpretato, vale a dire che vi e' un programma (l'interprete Proconte (ProConte.exe)), che esegue il codice ProConte trasformando le istruzioni ProConte in codice macchina .

L'interprete ProConte , fondamentalmente, esegue un ciclo ove si controlla il contesto dati cercando il modello di contesto che gli corrisponde, se viene trovato, vengono eseguite le istruzioni di reazione contenute nel modello di contesto .

Pertanto , l'attivita' di programmazione di ProConte, dopo avere creato un contesto dati di partenza per ogni "programma utente", consiste sopratutto nel creare i modelli di contesto .

Purtroppo la grande complessita' di questo linguaggio di programmazione non mi consente di
creare al momento un manuale completo e ben fatto come anche molte cose dell'ambiente di programmazione stesso, ( Il codice C++ che produce l'interprete "ProConte.exe" e' di circa 60000 righe di codice ed e' il frutto di un lungo e complesso lavoro iniziato nel 1994 per arrivare nel 2006 ad essere presentabile, sono quindi circa 12 anni, senza contare gli anni che ci sono voluti prima ancora per sviluppare quel bagaglio di conoscenze che sono servite per concepire ProConte ), spero che coloro che intendono usare questo linguaggio di programmazione siano comprensivi di cio' e si armino della pazienza necessaria per superare le difficolta' concernenti le carenze pocanzi citate, naturalmente, appena possibile, apportero' quanti piu' miglioramenti potro' .

Per il necessario per sviluppare in ProConte, spedire una e-mail a : info@1111az.com
CREARE UN PROGRAMMA DA ESEGUIRE IN AMBIENTE DI SVILUPPO

Un programma utente ProConte e' basato su di un file *.Ctx , che viene lanciato e da cui parte il caricamento di quello specifico programma nell'ambiente di sviluppo di ProConte .

Per lanciare il programma si apre la finestra "Start Programmi"

Win Start Programmi.JPG (15568 bytes)

Si clicca sul bottone "Load Ctx Da File" e comparira' una comune finestra windows per la apertura di files, si seleziona il file *.Ctx desiderato e verra' caricato il programma in ProConte, Se non esiste ancora il file *.Ctx, lo si puo' creare digitando il nome del file che si vuole creare, in tal caso, non trovando il file vengono avviate delle procedure che richiedono varie impostazioni e conducono a creare il file *.Ctx del nuovo programma che si vuole creare .

IL PROGRAMMA UTENTE

Il programma utente e' il risultato di un programma ProConte e in generale corrisponde ad un comune programma windows.
Per confezionare un programma utente, in modo che l'utente lanci il programma come un comune programma windows, si deve :

Creare una cartella che contiene :

    il file : ProConte.exe
    la cartella : Data
    la cartella : DataSave
    la cartella : Hlp

Copiare nella dir "Data" alcuni files della dir "Data" dell'ambiente di sviluppo Proconte, che sono :

MC.bin
MM.bin

Inoltre puo' risultare necessario creare altre cartelle e files che dipendono specificamente dal programma creato .

Supponendo di avere creato un programma ProConte denominato "MioProgramma" e il cui file Ctx e' "MioProgramma.Ctx", creare un programma esterno o un file *.bat che esegua la chiamata "ProConte.exe MioProgramma.Ctx", rispettando ovviamente le regole del sistema operativo per le path in modo che alla chiamata vengano trovati i files .

Questo programma puo' essere lanciato come si lancia comunemente un programma windows, per esempio da una icona sul desktop .

MODELLI DI CONTESTO = "ModCtx" , ( COGNITIVO, DI INTERFACCIA, BASE)

I modelli di contesto sono di tre tipi :

MODELLI DI CONTESTO BASE

Sono funzioni C o C++ che eseguono realmente i dati che gli passano i modelli di contesto di interfaccia, devono essere fatti dentro una DLL o dati alla societa' di gestione dello standard ProConte da compilare in ProConte.exe .

MODELLI DI CONTESTO DI INTERFACCIA

Contengono gli "RLTP di interfaccia" ( (RLTP COGNITIVO) -> (RLTP BASE) ) .
La sequenza con cui vengono inseriti gli RLTP non e' importante per il riconoscimento del contesto .

I modelli di contesto di interfaccia, fanno riferimento ad un "modello di contesto base", a cui passano i dati mediante la creazione degli "RLTP di interfaccia" ( (RLTP COGNITIVO) -> (RLTP BASE) ) .
vale a dire che viene stabilita l'associazione tra i dati del modello di contesto di interfaccia e quelli del modello di contesto base, in modo da potere passare i dati al modello di contesto base il quale e' una funzione C che elabora realmente i dati .

MODELLI DI CONTESTO COGNITIVI

Contengono gli RLTP dei dati che rappresentano il contesto dati che li deve richiamare .
La sequenza con cui vengono inseriti gli RLTP non e' importante per il riconoscimento del contesto .
Possono contenere anche delle chiamate alla esecuzione di altri modelli di contesto che in questo caso vengono usati come "SUB -> modelli di contesto" e che corrispondono alla esecuzione di "sub-procedure"

CREAZIONE DI UN MODELLO DI CONTESTO DI INTERFACCIA


Nella finestra "Creazione Modelli di Contesto di Interfaccia"

Win creazione modelli di contesto di interfaccia.JPG (79855 bytes)

La procedura e' la seguente :

) Scegliere il contesto base cliccando sul bottone [CB], comparira'una finestra che consente di scegliere un CB , dopo avere scelto cliccare su [OK] e si ritornera' nella finestra precedente dove si potra' notare che nella combobox [RLTP CTX Base ( ? = Facoltativo)] e' stata introdotta la parte base degli RLTP obbligatori o facoltativi del CB selezionato.

) Si procede quindi cliccando nella combobox sugli RLTP che si devono applicare al modello, si notera' che il testo della riga selezionata sara' replicato nella editbox della combobox, a questo punto bisogna selezionare il RLTP da applicare cliccando sulla combobox RLTP o sul bottone [RLTP] , al ritorno della scelta fatta si notera' che il testo del RLTP sara' composto da "RLTP TipoBin -> RLTPBase TipoBinBase" .

) Abbiamo fatto un "RLTP Base" per il nostro modello di interfaccia che inseriamo col bottone [->], quindi vedremo nella listbox "Contesto di interfaccia" aggiungersi il testo che descrive l'RLTP .

) Si ripete l'operazione per ogni RLTP che si vuole introdurre .

) Si nomina il modello creato nella casella "Nome modello di contesto di interfaccia"

) Quindi si clicca su [Salva ModCtx Interf] poi [OK] ed il modello e' fatto .

) Si puo' notare che nella finestra vi sono molte altre cose , ma si avra' modo di comprendere cosa siano man mano che si procedera' nella pratica .

CREAZIONE DI UN MODELLO DI CONTESTO COGNITIVO


Nella finestra "Creazione Modelli di Contesto cognitivi"

Win creazione modelli di contesto cognitivi.JPG (95327 bytes)

La procedura e' la seguente :

) Selezionare il RLTP da applicare cliccando sulla combobox RLTP o sul bottone [RLTP] .

) Selezionare il Tipo Binario dalla combobox "Tipo BIN"

) Inserire col tasto [<-] il RLTP nella listbox "Modello di contesto" .

) Volendo si possono aggiungere dei ModCtx come SubModCtx selezionandoli dalla combobox "Modelli di subcontesto"
e cliccando il bottone [<- Add ID ModCtx come Sub] .

) Si nomina il modello creato nella casella "Nome modello di contesto"

) Quindi si clicca su [Salva ModCtx] poi [OK] ed il modello e' fatto .

) Si puo' notare che nella finestra vi sono molte altre cose , ma si avra' modo di comprendere cosa siano man mano che si procedera' nella pratica .

COPIA E MODIFICA DI MODELLI DI CONTESTO


Modifica :
Nella finestra "Creazione Modelli di Contesto Cognitivi", si puo' modificare un modello di contesto gia fatto in precedenza, prima selezionandolo dalla lista dei modelli e poi mediante il bottone "<- Modifica Mod Ctx" si ottiene il caricamento del modello nella finestra, da cui si puo' modificare cio' che si vuole e salvare .

Per la finestra "Creazione Modelli di Contesto di interfaccia", abbiamo la stessa cosa col bottone "<- Carica Sub Ctx Per Modifica" .

Copia :
Nella finestra "Creazione Modelli di Contesto Cognitivi", si puo' copiare un modello di contesto gia fatto in precedenza, prima selezionandolo dalla lista dei modelli e poi mediante "<- Carica RLTP ModCtx" si caricheranno i dati del modello scelto nella finestra , da cui si potranno fare le modifiche desiderate, (ovviamente non e' possibile salvare un modello copiato identico ad un'altro, si avrebbe un messaggio di errore, in quanto non ha senso fare due modelli uguali, la copia serve per facilitare la creazione di un modello simile ad uno gia esistente) .
Infine si puo' salvare .

Per la finestra "Creazione Modelli di Contesto di interfaccia", abbiamo la stessa cosa col bottone "<- Add RLTP Del ModCtx" .

CONTROLLO DEL CONTENUTO BINARIO DEGLI RLTP PER RICONOSCERE I MODELLI

Quando si decide di creare un modello di contesto ove il suo riconoscimento contestuale sia determinato anche dal contenuto binario delle variabili, le variabili da controllare in binario del modello vengono confrontate con quelle del contesto corrente, l'operatore di confronto scelto nella definizione del modello viene applicato mettendo il dato binario del modello a desta dell'operatore, vale a dire che viene operato il confronto mettendo il dato binario del contesto corrente viene a sinistra e il dato binario del modello a destra , il risultato del confronto , se positivo, promuove quel RLTP come valido per il riconoscimento del modello .

EVENTI

In un programma tradizionale, il processo avviene secondo sequenze varie che vengono eseguite tutte in una volta, dal momento in cui viene lanciato il programma al momento in cui il processo finisce .
Nei programmi piu' complessi, che hanno una interfaccia utente , ci sono diversi processi che vengono lanciati da eventi sull'interfaccia o altro, pertanto i processi vengono lanciati da eventi .

Nella programmazione contestuale, per implementare processi scatenati dall'interfaccia, bisogna creare delle interfacce di input sempre presenti, che mettano a disposizione delle finestre di dialogo che all'interno della loro chiamata consentano di scatenare eventi che rilanciano processi contestuali (vedi le "DIALCUSTOM" o la "FORM_MAIN").

CREAZIONE DI UNA FORM_MAIN

Procedura:
) Aprire la Win "Creazione Modelli di Contesto Di Interfaccia",
) Selezionare il contesto base "FORM_MAIN : 2"
) Compilare gli RLTP del contesto base e nominare il modello cominciando con "Form Main Start ..... " .

CREAZIONE DI UNA DIALCUSTOM


Procedura:
) Aprire la Win "Creazione Modelli di Contesto Di Interfaccia",
) Selezionare il contesto base "DIALCUSTOM : 15"
) Compilare gli RLTP del contesto base e nominare il modello cominciando con "Dial Start ..... " .

Nota :
Ogni programma utente deve essere creato a partire da una form main .

AGGIUNGERE CONTROLLI ALLE FINESTRE (FORM_MAIN O DIALCUSTOM)


Per aggiungere ai Modelli di una finestra gli RLTP di uno o piu' controls, si puo' creare un Modello di interfaccia con "CB_ADD_CONTROLS_CTX_CUR_SU_WIN_E_CTX_CURR_O_SEL", assegnare gli RLTP-ctrls obbligatori del contesto base piu' gli RLTP-ctrls che si vogliono aggiungere e nominare il modello "Add Ctrls ...."

La aggiunta degli RLTP-ctrls avverra' al momento che il modello viene eseguito e gli RLTP-ctrls verranno messi o sulla Win corrente o su altre a seconda di come vengono impostati alcuni RLTP obbligatori di "CB_ADD_CONTROLS_CTX_CUR_SU_WIN_E_CTX_CURR_O_SEL" .

TOGLIERE CONTROLLI A FORM_MAIN O DIALCUSTOM


) Creare un Modello di interfaccia con "CB_ELIMINA_CONTROLS_SU_WIN_CURR", compilare gli RLTP del contesto base e nominare il modello "Elimina Ctrls ...."

CONVENZIONI DEI NOMI

Le convenzioni da seguire per una migliore leggibilita' e comprensibilita' dei modelli sono le seguenti:

(I tre punti "..." indicano il nome specifico che di volta in volta si da al modello) .

Form Main Start ... // Modello di start del programma (FORM_MAIN).
Form Main Ctrls ... // Modello che carica dei Ctrls nel form del programma .
Salva ... // Modello per il salvataggio di un record nella memoria .
Salva Edit ... // Modello per il salvataggio di un RLTP BIN_Edit nella memoria (CB_SALVA_IN_MEM_RLTP_EDIT_CON_CAT).
Ctrls ... // Modello di Ctrls da caricare su una Win .
Crea Categoria ... // Modello per creare una categoria per mettere in memoria un record (CB_GENERATORE_CATEGORIE).
Add Ctrls ... // Modello per aggiungere controlli ad una DialCustom (CB_AGGIUNGE_CONTROLS_SU_DIALCUSTOM) .
Add Cat ... // Modello per aggiugere una categoria a una RLTP (CB_ADD_CAT_A_RLTP_EDIT) .

MODELLI DI DATI

I modelli di dati sono i soliti ModCtx che pero' vengono usati come modelli di dati .
Possono essere usati per caricare un form dei Ctrls da compilare dall'utente o altro .
Ci sono funzioni CB che caricano un ModCtx su una win , la scaricano, ecc.

TIPI BINARI

I tipi binari sono stati espansi ai tipi BIN_Static, BIN_Edit, ecc.
pertanto il contesto puo' essere fatto oltre che di dati , anche di controls , il cui contenuto equivale alla variabile del dato, per esempio, una BIN_Edit contiene una stringa, quindi come contenuto di variabile equivale a BIN_string .
Ecco la lista dei tipi Binari :

BIN_null
BIN_bool
BIN_char
BIN_uchar
BIN_short
BIN_ushort
BIN_int
BIN_uint
BIN_long
BIN_ulong
BIN_float
BIN_double
BIN_string
BIN_Static
BIN_Edit
BIN_Button
BIN_ListBox
BIN_Combo
BIN_Categoria
BIN_FILE
BIN_DataOra
BIN_RichEdit
BIN_IDModCtx
BIN_pDialCustom
BIN_CheckListBox
BIN_ScrollBar
BIN_SliderCtrl

LA DENOMINAZIONE DEGLI RLTP

La denominazione degli RLTP e' una fase critica, in quanto la tendenza generale e' quella di denominare in modo troppo generico .
Di conseguenza, in un tempo successivo, ci si puo trovare ad avere molti dati di natura troppo diversa da quella che ci si aspetta nei modelli creati per quel RLTP, per esempio:
supponiamo il caso di un programma che deve gestire una azienda di confezionamento, di primo acchito, il programmatore ProConte, e' tentato di fare un RLTP per gli articoli denominandolo semplicemente "ARTICOLI", ma gli articoli di una azienda di confezionamento sono diversi degli articoli di una azienda di dolciumi, o altro .
In situazioni di questo tipo, sopratutto se i modelli e gli RLTP sono standard e i dati sono stati creati da altri utenti, e' facile che arrivino dei dati che sono molto piu' variegati di quello che dovrebbero rispetto alla loro definizione, se negli articoli ci sono anche dei dolciumi, il programma per gestire il confezionamento di abiti non sa che farsene dei dolciumi, oppure, peggio ancora, li usa a sproposito .

Pertanto, ci si puo' trovare a dovere rivedere la assegnazione delle denominazioni degli RLTP, in questo caso, si deve ampliare o restringere il significato di un RLTP, l'ampliamento non comporta solitamente problemi, mentre il restringimento solitamente comporta il problema che oramai ci sono dei dati assegnati a quel RLTP che non sarebbero congrui al nuovo significato ridotto del RLTP .

In tal caso si deve evitare di modificare la denominazione del RLTP e lasciarla come e', mentre si deve creare un nuovo RLTP, la cui descrizione sia piu' ristretta e bisogna creare nuovi modelli che usino il nuovo RLTP .

LA DENOMINAZIONE DEGLI RLTP E LA LINGUA NATURALE

La definizione di un RLTP controls e' meglio che sia nella lingua con la quale si crea il programma, in quanto agli RLTP sono associate anche le stringhe che contengono le scritte del controls, per esempio , quando facciamo un controllo Edit per scrivere il nome in una anagrafica, normalmente sull'interfaccia, si mette anche una scritta descrttiva per far capire all'utente cosa mettere in quella casella di testo, quindi nella scritta probabilmente c'e' una stringa contenente "Nome" oppure "Introdurre il Nome".
Se ci si lascia tentare dall'idea di dare definizioni anglofone agli RLTP, come per esempio :
INPUT_NAME - BIN_Edit
possiamo pensare che questo renda ,meglio riutilizzabile l'RLTP, ma la scritta contenuta e' in italiano, quindi se viene inserito in un programma in lingua inglese o altro ovviamente non va bene.
Pertanto, e' meglio nominare il RLTP-controls con un ID sensilile alla lingua, come per esempio :
INPUT_NOME - BIN_Edit
o meglio
INSERIMENTO_NOME - BIN_Edit

Il fatto che un programma scritto per una lingua debba essere piu' o meno riscritto per un'altra lingua puo' sembrare una limitazione della riusabilita del codice, ma invece e' una peculiarita' che consente automatismi anche sulla lingua, in virtu' dei quali si potra' anche fare programmi che "comprendono la lingua", in quanto "percepiscono" la lingua naturale in uso .

IL CONTESTO CORRENTE

Il contesto corrente e' determinato dagli RLTP dell'ultimo modello di contesto caricato e dagli RLTP aggiunti o tolti alla fine della esecuzione di un modello di contesto cognitivo .

MEMORIZZAZIONE DI RECORDS

Quando si devono introdurre in memoria dei dati in input come un sistema database, per esempio come quando si deve introdurre un record di una anagrafica, e' necessario classificare in una categoria apposita il record stesso, in quanto, per distinguere quel record da un'altro, bisogna farlo appartenere ad una apposita categoria, ragione per cui, per rendere pratica la cosa, si usa un generatore di categorie automatico, che inventa da se' un nome di categoria con determinati criteri (vedi : "CB_GENERATORE_CATEGORIE") e poi si assegna la categoria agli RLTP del record .
In futuro, quando servono delle ricerche, mediante la categoria creata unicamente per quel record si potra' ritrovarlo.

Bisogna quindi creare un ModCtx con :
) un RLTP che contenga la categoria da creare (es. CATEGORIA_GRUPPO_ANAGRAFICA) .
) il RLTP a cui assegnare la categoria (es. COGNOME) .
) la chiamata al SubModCtx di interfaccia che aggiorna le variabili dai Ctrls "Dial Ctrls->Var ..." .
) la chiamata al SubModCtx di interfaccia che aggiunge la categoria al RLTP "Add ..." .
) la chiamata al SubModCtx di interfaccia che salva il RLTP "Salva ..." .

Esempio di ModCtx cognitivo :

"
8 : Salva Anagrafica Clienti
CATEGORIA_GRUPPO_ANAGRAFICA 1035 BIN_string 12 ,
COGNOME 1021 BIN_Edit 14 ,
NOME 1022 BIN_Edit 14 ,
13 SubCtx : Dial Ctrls->Var Inp Materiali
5 SubCtx : Crea Categoria Gruppo Anagrafica
9 SubCtx : Add Cat a Nome
10 SubCtx : Add Cat a Cognome
6 SubCtx : Salva Edit Nome
7 SubCtx : Salva Edit Cognome
"

Nota: oltre alla categoria creata per il gruppo della anagrafica, ci devono essere altre categorie che distinguono il RLTP, come per esempio per il RLTP "COGNOME", ci puo' essere la categoria "cognome", quindi, queste categorie devono essere gia presenti nel RLTP al momento della memorizzazione, per esempio possono essere introdotte in fase di creazione del file *.Ctx.

Nota: Nel caso di finestre con Ctrls variabili a seconda delle scelte dell'utente, come per esempio nel caso della listbox "Forma del materiale" che consente di attivare "Barre" o "lamine" o altro, in base alle scelte dell'utente vengono caricati sulla finestra vari Ctrls, nel modello "Salva Materiali ..." ci devono essere tutti i possibili Ctrls caricabili sulla finestra, ma i Ctrls non caricati non vengono salvati, questo implica una concezione di "Records" variabili nella loro struttura .

La identificazione di un record deve avvenire mediante la categoria con la quale e' stato archiviato, quindi, per leggere il record, bisogna trovare la stringa della sua categoria .
Pertanto la stringa della categoria, deve essere archiviata in modo da essere associata all'evento o altro .

Nelle ListBox :
per ogni elemento ci deve essere una stringa per la categoria del record "_AryCatRec"
RECORD CURR
Siccome il record deve essere messo negli RLTP del ctx globale, si deve introdurre il concetto di record corrente come e' stato fatto per le Win, quindi ci deve essere la gestione di un ID del record corrente .

Allo stesso modo ci deve essere la stringa della categoria del record corrente .

Per un migliore comprensione del complesso meccanismo dei records, la cosa piu' semplice e' osservare gli esempi preparati .

PARAGONE COI DATABASE

Nei database relazionali classici come Access, i dati vengono organizzati in tabelle e record, dove il record costituisce una prima forma di raggruppamento, la tabella una altra forma di raggruppamento di livello piu generale, il file "*.mdb" la forma ancora piu' generale di raggruppamento .
Le ricerche dei dati, in un database classico avvengono mediante una prima selezione dei raggruppamenti prestabiliti operata dal programmatore mediante la scelta di "file\tabella", poi la ricerca prosegue dinamicamente mediante un filtro a runtime che estrae i records che soddisfano i tests condizionali sui dati dei vari campi .

Questi pre-raggruppamenti prestabiliti "Files\tabelle\records" consentono una riduzione del carico di lavoro di filtraggio dei dati, pero' sono raggruppamenti prestabiliti e devono essere gestiti in modo prestabilito dal programma .

Volendo, nella programmazione contestuale, si potrebbe implementare qualcosa di equivalente, Ma i cervelli biologici a cui si ispira ProConte non archiviano come nei database .

PICCOLI ESEMPI DI PROGRAMMI PROCONTE


) "VisualizzaScrittaSuFormMain.Ctx" :
    Piccolo esempio di visualizzazione di una scritta sul form principale .

) "FormMain.Ctx" :
    Creazione e cancellazione nella finestra principale di alcuni controls.

) "DialCustom.Ctx" :
    Creazione e cancellazione di una finestra mobile con alcuni controls .

) "Button.Ctx"
    Esecuzione di eventi a seguito del clic su un bottone .

) "ListBox.Ctx"
    Esecuzione di eventi a seguito della selezione su ListBox .

) "Anagrafiche.Ctx" :
    Piccolo esempio di interfaccia per la archiviazione e il ritrovamento di dati anagrafici
    (uso del database in modo simile ai database tradizionali, dove i dati vengono archiviati raggruppati in records).

) "CalcoliMatematici.Ctx" :
    Piccolo esempio di come eseguire dei calcoli matematici sui dati .

) "LeggeFileTxt.Ctx" :
    Piccolo esempio di lettura di un file *.Txt ove vi sono delle righe di dati da visualizzare .

) "ScriveFileTxt.Ctx" :
    Piccolo esempio di scrittura di un file *.Txt ove vengono immessi dei dati estratti dal database di Proconte .

) "VisualizzaSuFormMainUnaImmagine.Ctx" :
    Visualizza una immagine contenuta in un file *.bmp sul form principale.

) "VisualizzaSuDialCustomUnaImmagine.Ctx" :
    Visualizza una immagine contenuta in un file *.bmp su una finestra di dialogo .


) "AutodeterminazioneDiProcessoSuiRuoli.Ctx" :

Piccolo esempio di programma dove i processi vengono autodeterminati dall'analisi contestuale dei "Ruoli" e dove i contesti vengono analizzati solo mediante i ruoli dei dati .

In questo esempio sono state messe sull'interfaccia delle caselle di testo col testo che descrive la definizione interna del ruolotipo a cui appartengono, questo per far vedere direttamente sull'interfaccia quello che succede di nascosto in proconte .

Viene fatto il semplicissimo caso di calcolare il costo di una vendita in due passaggi :
inizialmente abbiamo un contesto dati composto dal numero di prodotti da vendere, dal prezzo del prodotto, dal bottone di start e dalla casella del risultato, cliccando sul bottone start, proconte esegue un modello di contesto che fa la moltiplicazione tra numero di prodotti e prezzo del prodotto e che a fine lavoro aggiorna la casella del risultato e aggiunge al contesto corrente la scritta "Moltiplicazione Eseguita", quindi vedremo aggiungersi all'interfaccia la scritta .

Poi viene eseguita una nuova fase di controllo contestuale da parte di proconte, il quale trova che a quel nuovo stato contestuale corrisponde un modello di contesto che applica l'IVA al totale , quindi (sempre per motivi esemplificativi) viene messa una nuova casella di testo sull'interfaccia che visualizza il totale+IVA .
Dopo di che finisce il programma .
Nota: Per esemplificare meglio il processo sono stati inseriti due ritardi di 1 secondo per fare vedere la sequenza in cui avvengono le cose, altrimenti il tutto risulterebbe talmente veloce da essere percepito come una fase unica .


) "AutodeterminazioneDiProcessoSuiRuoliESuiDati.Ctx" :

Piccolo esempio di programma dove i processi vengono autodeterminati dall'analisi contestuale dei "Ruoli" e dei dati, e dove i contesti vengono analizzati sia mediante i ruoli dei dati che mediante il contenuto binario delle variabili dei dati .

In questo esempio sono state messe sull'interfaccia delle caselle di testo col testo che descrive la definizione interna del ruolotipo a cui appartengono, questo per far vedere direttamente sull'interfaccia quello che succede di nascosto in proconte .

Viene fatto il semplicissimo caso di calcolare il costo di una vendita in due passaggi :
inizialmente abbiamo un contesto dati composto dal numero di prodotti da vendere, dal prezzo del prodotto, dal bottone di start e dalla casella del risultato, cliccando sul bottone start, proconte esegue un modello di contesto che fa la moltiplicazione tra numero di prodotti e prezzo del prodotto e che a fine lavoro aggiorna la casella del risultato e aggiunge al contesto corrente la scritta "Moltiplicazione Eseguita", quindi vedremo aggiungersi all'interfaccia la scritta .

Poi viene eseguita una nuova fase di controllo contestuale da parte di proconte, il quale trova che a quel nuovo stato contestuale corrisponde un modello di contesto che applica l'IVA al totale , quindi (sempre per motivi esemplificativi) viene messa una nuova casella di testo sull'interfaccia che visualizza il totale+IVA .
Dopo di che finisce il programma .
Nota: Per esemplificare meglio il processo sono stati inseriti due ritardi di 1 secondo per fare vedere la sequenza in cui avvengono le cose, altrimenti il tutto risulterebbe talmente veloce da essere percepito come una fase unica .


Ecco come si presenta l'interfaccia di ProConte in modalita Sviluppo (versione per programmatori ProConte, che contiene in piu' rispetto alla versione User, la barra delle icone per gli strumenti di programmazione).

Vediamo il semplice caso di "AutodeterminazioneDiProcessoSuiRuoliESuiDati.Ctx"

AutodeterminazioneDiProcessoSuiRuoliESuiDati.JPG (36753 bytes)



Diritti d'autore

I diritti sono riservati, come da legge sul Diritto d'Autore n.518 del 1992 e successive modifiche.
Nessuna parte di questo sito potrà essere copiata, modificata, riprodotta e archiviata su mezzi e modalita diverse da quelle acconsentite dall'autore .
E' consentito scaricare, conservare e stampare per uso personale e privato del fruitore dell'opera .
E' consentita la citazione del sito e/o di alcune sue pagine interne, senza preventiva autorizzazione, purchè sia chiaramente identificabile il nome del dominio ufficiale (www.1111az.com/ProConte) .