Differenze tra le versioni di "Personalizzazione delle finestre"
m (→Definizione di un campo d'immissione testo abilitato all'input) |
m (una versione importata) |
(Nessuna differenza)
|
Versione attuale delle 18:51, 10 apr 2020
In SIGLA® è possibile personalizzare in modo semplice ed immediato le finestre di alcune anagrafiche, aggiungendo alcuni campi personalizzati che l’utente riempirà con i valori opportuni.
I campi aggiuntivi possono essere di due tipi diversi, automatici o manuali. Per i campi automatici la memorizzazione ed il reperimento delle informazioni è eseguito automaticamente da SIGLA®, mentre per i secondi, indicati anche con il termine di campi normali, la gestione della memorizzazione e del recupero dell'informazione dalla base dati è demandata al personalizzatore che dovrà operare una reimplementazione della funzione SIGLAPPSaveObject contenuta nella SIGPPDLL.DLL o della funzione SPPFrameIntSaveObject contenuta nella SPPFROLD.DLL.
L'operazione avviene definendo in un file ASCII, il cui nome varia in funzione della finestra di dialogo che si desidera personalizzare, un insieme di istruzioni in grado di descrivere i campi da aggiungere. La funzione SIGLAPPSaveObject contenuta nella SIGPPDLL.DLL (SPPFrameIntSaveObject contenuta nella SPPFROLD.DLL) consente, se opportunamente reimplementata, di effettuare controlli sui campi aggiunti e/o di acquisirne/modificarne il valore a video.
Indice
- 1 Definizione dei campi aggiuntivi
- 1.1 Sintassi dei file di personalizzazione
- 1.2 Definizione della label del folder aggiuntivo
- 1.3 Disegno di un riquadro nel folder aggiuntivo
- 1.4 Definizione di una didascalia
- 1.5 Definizione di un campo d'immissione numerico abilitato all'input
- 1.6 Definizione di un campo d'immissione numerico disabilitato all'input
- 1.7 Definizione di un campo d'immissione data abilitato all'input
- 1.8 Definizione di un campo d'immissione data disabilitato all'input
- 1.9 Definizione di un campo d'immissione testo abilitato all'input
- 1.10 Definizione di un campo d'immissione testo disabilitato all'input
- 1.11 Definizione di un campo d’immissione numerico automatico
- 1.12 Definizione di un campo d’immissione data automatico
- 1.13 Definizione di un campo d’immissione testo automatico
- 2 Chiamate a SIGLAPPSaveObject
- 3 Finestre Modificabili
- 4 Esempio
- 5 Bibliografia
- 6 Voci correlate
Definizione dei campi aggiuntivi
Per le finestre di dialogo per le quali è attiva la possibilità di gestire campi aggiuntivi è necessario creare, se si intende sfruttare questa funzionalità, un file ASCII contenente le specifiche dei campi da aggiungere.
Il nome del file è definito nella tabella riportata successivamente ed è univoco per ogni finestra. Per tutti i file il postfisso da usare è .USR. I file devono essere posizionati nell'indirizzario contenente le procedure eseguibili di SIGLA®/START®/.
Sintassi dei file di personalizzazione
I file di descrizione dei campi aggiuntivi sono composti da una serie di righe ognuna delle quali descrive un oggetto da aggiungere alla finestra. La struttura della riga è posizionale e le posizioni devono essere rigidamente rispettate.
Il primo carattere della riga stabilisce il tipo di oggetto da aggiungere, mentre la restante parte della riga riporta i parametri necessari per la definizione del campo stesso.
Tutte le coordinate necessarie per il posizionamento di un oggetto video sono espresse in caratteri (ad esempio, la coordinata orizzontale 10 rappresenta il carattere a colonna 10). Le coordinate dell'angolo alto sinistro della finestra sono x=00,y=00 (intendendo con x l'asse orizzontale e con y l'asse verticale). Il file può contenere delle righe di commento che devono iniziare con il carattere ; (punto e virgola).
|
Definizione della label del folder aggiuntivo
Tutti i campi aggiuntivi devono essere contenuti all'interno di un folder che va ad aggiungersi a quelli normalmente gestiti nella finestra su cui si sta operando. La prima istruzione diversa da un commento che deve essere riportata all’interno del file deve essere quella necessaria ad impostare il titolo del folder aggiuntivo.
La riga di comando per definire la label del folder aggiuntivo è:
Ldescrizione
dove:
- L in prima posizione individua il tipo di azione da intraprendere (definizione label folder aggiuntivo);
- descrizione è il testo della label che individua il folder (il testo non deve superare gli 8 caratteri di ampiezza).
|
Disegno di un riquadro nel folder aggiuntivo
E’ possibile procedere alla definizione di un contorno all'interno del folder aggiuntivo. La riga di comando per definire un contorno è:
AxxyyXXYY
dove:
- A in prima posizione individua il tipo di azione da intraprendere (disegno di un riquadro nel folder aggiuntivo)
- xx,yy rappresentano le coordinate in caratteri dell'angolo alto sinistro del riquadro
- XX,YY rappresentano le coordinate in caratteri dell'angolo basso destro del riquadro
|
|
Definizione di una didascalia
E’ possibile procedere alla definizione di una didascalia all’interno del folder aggiuntivo.
La riga di comando per definire una didascalia è:
TxxyyTesto
dove:
- T in prima posizione individua il tipo di azione da intraprendere (definizione di una didascalia nel folder aggiuntivo)
- xx,yy rappresentano le coordinate in caratteri del primo byte della didascalia
- Testo è la stringa di caratteri che deve comparire sul video come didascalia
|
Definizione di un campo d'immissione numerico abilitato all'input
La riga di comando per definire un campo d’immissione numerico è:
INlldxxyy
dove:
- I in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione nel folder aggiuntivo)
- N in seconda posizione individua il tipo di campo d’immissione (campo numerico abilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (compreso il punto decimale e la parte decimale)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (massimo 5)
- xx,yy rappresentano le coordinate in caratteri del primo byte della didascalia
|
Definizione di un campo d'immissione numerico disabilitato all'input
La riga di comando per definire un campo d’immissione numerico disabilitato è:
Inlldxxyy
dove:
- I in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione nel folder aggiuntivo)
- n in seconda posizione individua il tipo di campo d’immissione (campo numerico disabilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (compreso il punto decimale e la parte decimale)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (massimo 5)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
|
Definizione di un campo d'immissione data abilitato all'input
La riga di comando per definire un campo d’immissione data è:
IDlldxxyy
dove:
- I in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d'immissione nel folder aggiuntivo)
- D in seconda posizione individua il tipo di campo d'immissione (campo data abilitato all'input)
- ll rappresenta, su due digit, l'ampiezza del campo (per i campi data deve essere 08)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (per i campi data deve essere 0)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
|
Definizione di un campo d'immissione data disabilitato all'input
La riga di comando per definire un campo d’immissione data è:
Idlldxxyy
dove:
- I in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d'immissione nel folder aggiuntivo)
- d in seconda posizione individua il tipo di campo d'immissione (campo data dsabilitato all'input)
- ll rappresenta, su due digit, l'ampiezza del campo (per i campi data deve essere 08)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (per i campi data deve essere 0)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
|
Definizione di un campo d'immissione testo abilitato all'input
La riga di comando per definire un campo d’immissione testo è:
ITlldxxyyppp...p
dove:
- I in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione nel folder aggiuntivo)
- T in seconda posizione individua il tipo di campo d’immissione (campo testo abilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (per i campi testo deve essere minore o uguale a 60)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (per i campi testo deve essere 0)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
- ppp...p è una stringa di caratteri che viene usata come picture di lettura (obbligatoria) che deve avere la stessa lunghezza del campo
Le picture per i campi testo possono essere una combinazione dei seguenti caratteri:
- X carattere alfanumerico case sensitive
- ! carattere alfanumerico convertito in maiuscolo
- A carattere alfabetico
- 9 carattere numerico
La picture di lettura per un campo testo di 16 caratteri destinato a contenere un codice fiscale potrebbe essere impostato come:
!!!!!!99!99!999! o XXXXXX99X99X999X
|
Definizione di un campo d'immissione testo disabilitato all'input
La riga di comando per definire un campo d’immissione testo disabilitato è:
Itlldxxyyppp...p
dove:
- I in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione nel folder aggiuntivo)
- t in seconda posizione individua il tipo di campo d’immissione (campo testo disabilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (per i campi testo deve essere minore o uguale a 60)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (per i campi testo deve essere 0)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
- ppp...p è una stringa di caratteri che viene usata come picture di lettura (obbligatoria) che deve avere la stessa lunghezza del campo
Le picture per i campi testo possono essere una combinazione dei seguenti caratteri:
- X carattere alfanumerico case sensitive
- ! carattere alfanumerico convertito in maiuscolo
- A carattere alfabetico
- 9 carattere numerico
La picture di lettura per un campo testo di 16 caratteri destinato a contenere un codice fiscale potrebbe essere impostato come:
!!!!!!99!99!999! o XXXXXX99X99X999X
|
Definizione di un campo d’immissione numerico automatico
La riga di comando per definire un campo d’immissione numerico automatico è:
DNlldxxyytfffffffffff
dove:
- D in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione automatico nel folder aggiuntivo)
- N o n in seconda posizione individua il tipo di campo d’immissione (campo numerico abilitato o disabilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (compreso il punto decimale e la parte decimale)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (massimo 5)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
- t rappresenta su un digit il numero della tabella del database in cui è posizionato il campo da gestire (il numero della tabella è un intero di un byte il cui valore minimo è 1 - i numeri possibili variano da finestra a finestra e sono mappati nella tabella che segue)
- fffffffffff è una stringa di 11 caratteri che individua il nome del campo da aggiornare nella tabella definita al punto precedente
|
Definizione di un campo d’immissione data automatico
La riga di comando per definire un campo d’immissione data automatico è:
DDlldxxyytfffffffffff
dove:
- D in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione automatico nel folder aggiuntivo)
- D o d in seconda posizione individua il tipo di campo d’immissione (campo data abilitato o disabilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (per i campi data deve essere 08)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (per i campi data deve essere 0)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
- t rappresenta su un digit il numero della tabella del database in cui è posizionato il campo da gestire (il numero della tabella è un intero di un byte il cui valore minimo è 1 - i numeri possibili variano da finestra a finestra e sono mappati nella tabella che segue)
- fffffffffff è una stringa di 11 caratteri che individua il nome del campo da aggiornare nella tabella definita al punto precedente
|
Definizione di un campo d’immissione testo automatico
La riga di comando per definire un campo d’immissione testo automatico è:
DTlldxxyytfffffffffffppp...p
dove:
- D in prima posizione individua il tipo di azione da intraprendere (definizione di un campo d’immissione automatico nel folder aggiuntivo)
- T o t in seconda posizione individua il tipo di campo d’immissione (campo testo abilitato o disabilitato all’input)
- ll rappresenta, su due digit, l’ampiezza del campo (per i campi testo deve essere minore o uguale a 60)
- d rappresenta il numero di digit decimali da gestire dopo la virgola (per i campi testo deve essere 0)
- xx,yy rappresentano le coordinate in caratteri del primo byte del campo d'immissione
- t rappresenta su un digit il numero della tabella del database in cui è posizionato il campo da gestire (il numero della tabella è un intero di un byte il cui valore minimo è 1 - i numeri possibili variano da finestra a finestra e sono mappati nella tabella che segue)
- fffffffffff è una stringa di 11 caratteri che individua il nome del campo da aggiornare nella tabella definita al punto precedente
- ppp...p è una stringa di caratteri che viene usata come picture di lettura (obbligatoria) che deve avere la stessa lunghezza del campo
Le picture per i campi testo possono essere una combinazione dei seguenti caratteri:
- X carattere alfanumerico case sensitive
- ! carattere alfanumerico convertito in maiuscolo
- A carattere alfabetico
- 9 carattere numerico
La picture di lettura per un campo testo di 16 caratteri destinato a contenere un codice fiscale potrebbe essere impostato come:
!!!!!!99!99!999! o XXXXXX99X99X999X
|
Chiamate a SIGLAPPSaveObject
Se è stata attivata la gestione di campi video aggiuntivi SIGLA®/START® eseguono una serie di chiamate alla funzione SIGLAPPSaveObject contenuta nella libreria a link dinamico SIGPPDLL.
|
Il parametro theObject deve essere in tal caso castato sulla classe DPUsrFld. L'header file che definisce la classe DPUsrFld è distribuito assieme al sistema di sviluppo.
La funzione SIGLAPPSaveObject viene chiamata a seguito dei seguenti eventi:
- durante la fase di cleanup dei campi video della finestra (ad esempio quando l’utente preme il push button Nuovo). In tal caso il campo actualfld dell'oggetto DPUsrFld assume il valore –4. La chiamata può essere sfruttata per inizializzare il contenuto dei campi aggiuntivi ad un valore di default. I campi automatici vengono sbiancati senza che sia necessario alcun intervento di programmazione.
- immediatamente dopo la determinazione della chiave univoca per la finestra su cui si sta operando (ad esempio, dopo che l'utente ha individuato il codice univoco). In tal caso il campo actualfld dell'oggetto DPUsrFld assume il valore –1 e il campo keyfld contiene il valore della chiave univoca.
- immediatamente dopo la memorizzazione del record su cui si sta operando (ad esempio quando l'utente preme il tasto Registra). In tal caso il campo actualfld dell'oggetto DPUsrFld assume il valore -2
- immediatamente dopo la cancellazione del record su cui si sta operando (ad esempio quando l'utente preme il tasto Cancella). In tal caso il campo actualfld dell'oggetto DPUsrFld assume il valore -3
- all'uscita di ogni campo aggiuntivo, comunque determinata. In tal caso il campo actualfld dell'oggetto DPUsrFld assume un valore maggiore o uguale a zero che individua il numero progressivo del campo da cui si è usciti. Il primo campo aggiuntivo di input è individuato dal valore 0, il secondo dal valore 1 e così via. Se la funzione restituisce il valore logico FALSE SIGLA® emette un segnale acustico e il controllo di input resta assegnato al campo attuale
- immediatamente dopo la pressione del tasto RicercaPlus quando il controllo di input è assegnato ad un campo aggiuntivo. In questo caso la variabile booleana ricercaplus assume il valore TRUE. E’ quindi possibile, per il personalizzatore, sviluppare una adeguata funzione di ricerca.
In ogni caso all'uscita dalla chiamata il pacchetto controlla il valore contenuto nei buffer dei campi video (vedi descrizione della classe DPUsrFld) e riporta sullo schermo quelli variati. Si ha in questo modo la possibilità di operare modifiche sui campi video.
|
La classe DPUsrFld
La classe DPUsrFld definisce un insieme di dati membro che consentono al personalizzatore di operare sui campi video aggiuntivi.
I dati d’interesse sono i seguenti:
- char videoname[64] contiene il nome del file di personalizzazione della finestra (senza il postfisso .USR). Il dato consente di determinare quale finestra personalizzata ha generato la chiamata a SIGLAPPSaveObject
- int actualfld contiene un intero che determina o il campo video che detiene il controllo di input (valori maggiori o uguali a zero) o il motivo della chiamata alla funzione SIGLAPPSaveObject (valori negativi)
- BOOL ricercaplus assume normalmente valore FALSE. E' impostato a TRUE se l'utente ha premuto il pulsante RicercaPlus. In tal caso la variabile actualfld individua il campo che detiene il controllo dell'input.
- char *usrfld[60] vettore di 60 componenti ognuna delle quali individua il buffer di un campo video. Il buffer del primo campo video definito è contenuto in usrfld[0], quello del secondo in usrfld[1] e così via. I buffer associati a campi d'immissione di tipo data contengono l'informazione nel formato ANSI (AAAAMMGG), quelli associati a campi numerici contengono il dato sottoforma di stringa ASCII. In tutti i casi la stringa e null terminated.
|
Finestre Modificabili
Finestra | Nome file .USR | Tabelle disponibili |
---|---|---|
Agenti | AGENTI | 1 - AGENTI |
Aliquote Iva | TABIVA | 1 - TABIVA |
Anagrafica Magazzino | ANAMAG | 1 - ANAMAGA |
Causali Contabili | CAUSCO | 1 - CAUSCONT |
Centri di Costo | CENCOS | 1 – CENTRCOS |
Clienti/Fornitori | CLIFOR | 1 – CLIFO 2 - CFVEN |
Famiglie Merceologiche | FAMMER | 1 - GRUPMERC |
Gruppi Merceologici | GRUMER | 1 - GRUPMERC |
Magazzini | TABMAG | 1 - TABMAGAZ |
Marchi | MARCHI | 1 - TMARCHI |
Raggruppamento Magazzini | RAGMAG | 1 - RAGGRMAG |
Sottoconti | PIACON | 1 - PIACON |
Sottofamiglie Merceologiche | SFAMER | 1 - GRUPMERC |
Vettori | VETTOR | 1 - VETTORI |
Imballi | IMBAL | 1 – IMBALLI |
Indirizzi di spedizione | INDSPED | 1 – INDSPED |
Anagrafica Cespiti | ANACES | 1 – CESPITI |
Causali di Magazzino | CAUSMAGA | 1 – CAUSMAGA |
Anagrafica Cespiti | TIPODOC | 1 – TIPODOCU |
Esempio
Per approfondire, vedi la voce Esempio di personalizzazione dell'anagrafica articoli di magazzino. |
Per approfondire, vedi la voce Esempio di personalizzazione dell'anagrafica clienti e fornitori. |
Bibliografia
Voci correlate
Anagrafica articoli
Anagrafica dei clienti e fornitori
Come si personalizza SIGLA
Configurazione
Gestione documenti
La libreria SIGPPDLL
La libreria SPPFrame
SIGLAPPSaveObject