Esempio di personalizzazione campo quantità nei documenti
Come esempio relativo alla gestione documenti supponiamo, in fase di immissione di un documento, di voler calcolare i valori del peso e del numero dei colli di una riga in funzione del valore della quantità per confezione.
In immissione di una riga di un documento all'uscita dal campo relativo alla quantità per confezione viene richiamata la funzione SIGLAPPSaveobject e la personalizzazione dovrà reimplementare proprio questa funzione.
Indice
Personalizzazione con messaggi
Nel caso in esame il parametro theActionID della funzione SIGLAPPSaveobject ha valore 317 e l'oggetto DPObject è di tipo DPMOVMag:
theActionID | theObject | Note |
---|---|---|
317 | DPMovMag | Viene invocata in fase di immissione documenti all’uscita dal campo Quantità per confezione, dopo aver effettuato tutte le operazioni relative al suddetto campo. theObject è di tipo DPMovMag e i suoi dati membro sono attualizzati con tutti i dati della riga disponibili. Questa uscita consente l’inserimento o la sostituzione dei valori della riga. |
Nell'esempio riportato il codice scritto all'interno della Dll modificherà il valore dei campi PESO e NUMERO COLLI di riga in seguito all'impostazione del campo quantità per confezione.
Per approfondire, vedi la voce Articoli a confezione. |
Allo scopo di illustrare in modo più chiaro il funzionamento della personalizzazione sono stati inseriti una serie di messaggi che spiegano passo per passo le operazioni che vengono eseguite.
In seguito alla pressione del tasto OK vengono compiute le operazioni di calcolo dei valori che sostituiranno i dati scritti: il numero dei colli e il peso.
Le due finestre successive mostrano le operazioni di calcolo e vengono riportati i messaggi indicativi.
I nuovi valori calcolati per il numero dei colli e per il peso sono quindi rispettivamente 2 e 12. Quelli calcolati da SIGLA® (come è possibile vedere nella figura 3) senza l'uso della personalizzazione sono 50 e 10.
Il passo seguente è la chiusura del programma personalizzato che ha terminato il suo lavoro (vedi figura successiva).
Premiamo il tasto OK e rientriamo nella finestra Righe1 dove è possibile vedere (figura 5) che i valori standard calcolati dall’applicativo sono stati sostituiti da quelli calcolati dalla nuova procedura.
Il codice scritto in linguaggio C++ direttamente all'interno della libreria SIGPPDLL.DLL è il seguente:
|
|
Personalizzazione con richiesta informazioni
Come secondo esempio si suppone di avere la necessità, in fase di immissione di un documento, di aggiungere alcune informazioni alla riga del documento non previste nello standard.
In questo caso all'utente sarà mostrata un'apposita finestra di dialogo per inserire i dati aggiuntivi. La personalizzazione dovrà gestire la nuova finestra di dialogo nonché la memorizzazione delle informazioni nella base dati.
La personalizzazione interviene quando viene impostato il campo quantità e pertanto sarà necessario reimplementare la funzione SIGLAPPSaveObject sfruttando la chiamata che ha 427 come valore del parametro theActionID.
theActionID | theObject | Note |
---|---|---|
427 | DPMovMag | In immissione documenti sul campo quantità, permette di leggere tutti i valori a video sui folder Righe1 e Righe2 e di modificarli nel caso si ritorni il valore FALSE. |
Uscendo dal campo quantità infatti viene eseguito il codice della personalizzazione che comporta la visualizzazione della finestra aggiuntiva (come mostrato in figura 6) attraverso la quale si possono inserire i dati aggiuntivi della riga del documento.
Premendo il tasto Conferma la finestra di dialogo personalizzata si chiude e l'utente può tornare a completare la compilazione del documento.
Per questo esempio verrà utilizzata la libreria SPPFrame. L'intervento di personalizzazione richiede l'implementazione della funzione SPPFrameIntSaveObject presente della libreria SPPFOld.dll (la libreria che intercetta le chiamate alla SIGLAPPSaveObject che SIGLA® effettua al verificarsi di determinati eventi).
|
E' necessario implementare anche le funzioni SPPFrOldInit e SPPFrOldExit per le opportune inizializzazioni.
|
Nella funzione SPPFrameIntSaveObject si deve intercettare la chiamata eseguita da SIGLA® con theActionId pari a 427 e inserire il codice necessario alla visualizzazione della form personalizzata e alla memorizzazione delle informazioni nella base dati.
|
I nuovi valori registrati nella base dati di SIGLA® potranno essere utilizzati in seguito, per esempio, a scopo statistico oppure visualizzati nella stampa del documento, ecc.
Bibliografia
Voci correlate
Articoli a confezione
Gestione documenti
La libreria SIGPPDLL
La libreria SPPFrame
La libreria SPPFrOld
SPPFrOldInit
SPPFrOldExit
SPPFrameIntSaveObject
SIGLAPPSaveObject