Un modulo per ordine di acquisto con LiveCycle Designer

di Corrado Del Buono

scritto il

Realizzare modulo capace di calcolare automaticamente gli importi totali dell'ordine di acquisto di un cliente

Abbiamo trattato, in un precedente tutorial, il “ciclo di vita” di un modulo attraverso l’analisi delle procedure che consentono di creare, pubblicare e gestire un semplice modulo realizzato con Live Cycle Designer.

In questo tutorial analizziamo le procedure che consentono di realizzare un “modulo di ordine di acquisto” (ci soffermeremo principalmente sulla creazione delle tabelle e dei campi calcolati) e di salvare quest’ultimo come modello di Live Cycle Designer.

Dal modello potremo quindi creare un modulo in PDF personalizzato (con l’intestazione dell’azienda, i prodotti realmente venduti, etc.) nel quale il cliente dovrà inserire i suoi dati personali, la data dell’ordine e le quantità che intende acquistare di uno o più prodotti; il calcolo dell’importo complessivo della sua ordinazione, comprensivo di IVA, verrà eseguito automaticamente.

Esempio di modulo ordine
scarica l’esempio

La creazione della struttura del modulo

Il modulo di un ordine di acquisto è composto, principalmente, da quattro elementi: l’intestazione dell’azienda, i dati relativi al cliente, la data e la parte tabellare che evidenzia i dettagli dell’ordine (prodotto, prezzo quantità ordinate, importi).

Creiamo innanzitutto un modulo vuoto attraverso il pulsante “Nuovo” presente sulla barra degli strumenti standard (l’utilizzo del pulsante, in alternativa al comando “Nuovo” del menu “File”, consente la creazione immediata del modulo senza visualizzare la procedura guidata) ed assicuriamoci di avere a video le finestre Gerarchia, Libreria e Oggetto, utili per la costruzione del modulo (per visualizzare queste ultime è sufficiente selezionarle all’interno del menu Finestra).

L’intestazione del modulo

Tralasciamo le procedure che consentono la creazione dell’intestazione dell’azienda, completa di logo, e del suo salvataggio come “oggetto” della libreria delle quali ci siamo già occupati nel precedente tutorial; ricordiamo semplicemente che per creare una intestazione solo testuale è sufficiente trascinare l’oggetto Testo dalla Libreria all’interno del modulo in Visualizzazione struttura, digitare al suo interno e formattare il testo attraverso la barra degli strumenti “Formattazione testo”.

I dati relativi al cliente

Con riferimento al cliente possiamo pensare di utilizzare i seguenti campi: Azienda, Indirizzo, CAP, Città, Provincia, Referente, Telefono.

Per creare il campo Azienda trasciniamo innanzitutto l’oggetto “Campo di testo” della Libreria all’interno della “Visualizzazione struttura” del modulo; successivamente, attraverso la scheda “Campo” della finestra “Oggetto”, digitiamo Azienda in corrispondenza di Didascalia e scegliamo, dall’elenco a discesa della casella “Aspetto”, il formato “Sottolineato”.

Selezioniamo, infine, la scheda “Binding” ed assegniamo al campo creato il nome “azienda” digitandolo all’interno della casella Nome in sostituzione di “Campoditesto1” (l’assegnazione di un nome al campo è una operazione consigliata per avere maggiore chiarezza in una eventuale esportazione o assemblaggio di dati).

Ripetiamo la procedura per l’inserimento degli altri campi relativi al cliente (per alcuni campi, quali ad esempio CAP e Provincia, possiamo limitare il numero di caratteri digitabili inserendone il valore all’interno di N. max car. della scheda Campo) ed, infine, posizioniamoli e ridimensioniamoli in maniera da avere un risultato simile a quello riproposto in figura.

La data dell’ordine

Proseguiamo con l’inserimento del campo per l’indicazione della data dell’ordine di acquisto; per farlo è sufficiente trascinare dalla finestra Libreria (sulla Visualizzazione struttura), l’oggetto “Campo data/ora”. Una volta inserito il nuovo campo gli assegnamo l’etichetta “Data dell’ordine” dalla finestra “Oggetto”, l’aspetto Sottolineato (nella scheda “Campo”) ed il nome “dataordine” (nella scheda Binding). Il campo verrà visualizzato sotto forma di calendario con evidenziata la data corrente.

I dettagli dell’ordinazione

Per la realizzazione del dettaglio ordini, utilizziamo una tabella di quattro colonne (Prodotto, Prezzo, Quantità e Importo); nella tabella dovremo inserire i prodotti con i relativi prezzi, lasciare vuota la colonna relativa alle quantità (che verrà utilizzata dal cliente) ed inserire delle formule nella colonna Importo.

Trasciniamo quindi l’oggetto Tabella dalla Libreria. Nella finestra “Inserisci tabella” possiamo indicare che la tabella avrà 2 righe e 4 colonne. Una delle due righe rappresenta l’intestazione, per questo selezioniamo il valore 1 per il campo “Righe corpo” e spuntiamo l’opzione “Includi riga di intestazione nella tabella”. Infine, con un doppio clic, selezioniamo le intestazioni delle colonne e digitiamo Prodotto, Prezzo, Quantità e Importo nelle rispettive celle.

La creazione di campi calcolati

Completiamo, ora, la prima riga della tabella inserendo i campi necessari (ipotizziamo che il prodotto si chiami Prodotto A e che il suo prezzo sia pari a 12 euro).

La descrizione del prodotto non richiede necessariamente un campo (e ciò in quanto non deve essere digitato del testo in fase di compilazione del modulo); pertanto possiamo fare un doppio clic nella cella e digitare il nome del prodotto (nell’esempio, Prodotto A).

Diversamente, per l’indicazione del prezzo è necessario utilizzare un campo numerico in quanto tale valore verrà successivamente inserito nella formula della colonna Importo: trasciniamo quindi l’oggetto Campo numerico dalla Libreria all’interno della cella e modifichiamo alcuni parametri nella finestra Oggetto: per assegnare il formato Euro alla cella selezioniamo, nella scheda Cella, $z,zz9.99 nell’elenco Pattern visualizzazione; nella scheda Valore assegniamo Sola lettura al campo Tipo (il prezzo non dovrà essere modificato in fase di compilazione del modulo) ed indichiamo il prezzo del prodotto in Predefinito (nell’esempio 12 euro); infine, nella scheda Binding assegniamo al campo il nome “prezzo”.

Trasciniamo nuovamente l’oggetto “Campo numerico” all’interno della cella relativa alle quantità ed assegniamo, sempre all’interno della scheda Binding, il nome “quantità” al campo.

La cella “Importo” dovrà contenere la moltiplicazione tra il valore del campo prezzo e l’eventuale valore inserito dall’utente nel campo quantità.

Inseriamo, ancora una volta, l’oggetto “Campo numerico” nell’ultima cella della tabella assegnando sempre il formato euro e digitando “importo” come nome del campo; nella scheda Valore utilizziamo come tipo di campo la voce “Calcolato – Solo lettura” e assicuriamoci che sia spuntata l’opzione “Script di calcolo”.

LiveCycle consente di eseguire calcoli sia attraverso il linguaggio JavaScript sia attraverso FormCalc, un linguaggio creato appositamente per facilitare la creazione di campi calcolati.

Se si utilizza quest’ultimo linguaggio è sufficiente selezionare dall’Editor di script (per visualizzare quest’ultimo si utilizza la voce omonima presente nel menu Finestra) “calculate*” dall’elenco Mostra, digitare la formula prezzo*quantità nell’area di testo, selezionare FormCalc come linguaggio si scripting script e Client nell’elenco “Esegui su”.

Da notare che FormCalc distingue tra lettere maiuscole e lettere minuscole e, pertanto è necessario prestare attenzione nel digitare il nome dei campi.

Completata la prima riga della tabella non ci resta che duplicarla per il numero dei prodotti che dovranno apparire nel modello.

Per evitare di duplicare solo i campi e non l’intera riga è consigliato selezionare quest’ultima (Riga1) dalla finestra “Gerarchia”; successivamente, si utilizza il comando “Copia multipla” del menu Modifica e, nella finestra di dialogo successiva, si indicano il numero di righe da creare (nel modello di esempio è stata creata una tabella contenente 5 prodotti).

Dopo l’inserimento delle righe sarà sufficiente modificare l’etichetta del prodotto (Prodotto A, Prodotto B, …) nelle celle della prima colonna e il valore predefinito del campo “prezzo” all’interno della scheda Valore della finestra Oggetto.

Per calcolare il totale importo inseriamo una ulteriore riga all’interno della tabella: sempre attraverso la finestra Gerarchia selezioniamo Riga1[4] (l’ultima riga della tabella) ed utilizziamo la voce Inserisci>Riga sotto presente nel menu contestuale o nel menu Tabella.

Digitiamo nella terza cella “TotaleIMPORTO” ed inseriamo, ancora una volta, nell’ultima cella un Campo numerico dalle caratteristiche simili al campo Importo; successivamente, utilizziamo come nome del campo “TotaleImporto” e nello Script di calcolo trascriviamo la seguente formula:

Sum(Tabella1.Riga1[*].importo)

La formula somma (attraverso la funzione Sum) il valore dei campi “importo” contenuti in tutte le righe della tabella (Riga1[0], Riga1[1], Riga1[2], …). Si osservi come FormCalc richieda, quando si eseguono calcoli su campi appartenenti a righe differenti di una stessa tabella, l’indicazione della “struttura gerarchica” di riferimento (Tabella, Riga, Campo).

Utilizzando la stessa procedura, inseriamo una ulteriore riga nella tabella, digitiamo nella terza cella l’etichetta “IVA20%”, inseriamo un Campo numerico nella quarta cella (che chiameremo “IVA”) e trascriviamo, nello Script di calcolo, la formula:

Tabella1.Riga1[5].TotaleImporto*20/100

La formula richiama gerarchicamente il campo TotaleImporto, inserito nella sesta riga (.Riga1[5]) della Tabella1 e moltiplica il suo valore per 0,20 (20/100).

Si osservi come, in questo caso, non essendoci istanze multiple del campo TotaleImporto (quest’ultimo è presente, difatti, una sola volta nella tabella) poteva essere utilizzata anche, più genericamente, la formula:

Tabella1.Riga1[*].TotaleImporto*20/100

L’utilizzo dell’asterisco invece del numero esatto della riga nel quale è presente il campo, è particolarmente indicato nel caso in cui la struttura della tabella non sia stata ancora ben definita: se si inserisce, infatti, una ulteriore riga relativa al prodotto all’interno della tabella, quest’ultima formula non necessita di correzioni.

Per calcolare il totale complessivo dell’ordinazione, inseriamo un’ultima riga all’interno della tabella, digitiamo “TOTALE COMPLESSIVO” all’interno della terza cella, inseriamo, nella quarta, sempre un campo numerico assegnandole il nome “TotaleComplessivo” e, nello script di calcolo la formula:

Tabella1.Riga1[5].TotaleImporto+Tabella1.Riga1[6].IVA

La formula somma i campi “TotaleImporto” ed il campo “IVA” richiamandoli all’interno della struttura gerarchica della tabella. Si osservi che la formula poteva essere trascritta anche utilizzando la funzione Sum nel modo seguente:

Sum(Tabella1.Riga1[5].TotaleImporto,Tabella1.Riga1[6].IVA)

Il salvataggio come modello di LiveCycle

Per creare un modello è sufficiente salvare il modulo come Modello di Adobe LiveCycle Designer (con estensione .tds). Al momento della sua riapertura viene visualizzata una finestra che consente di scegliere tra tre opzioni, ovvero, aggiungere il modello nel “Gestore dei modelli”, creare un nuovo modello basato su di esso oppure modificarlo.
Scegliendo la prima opzione, il modello viene aggiunto alla categoria Altri e potrà essere selezionato durante la creazione guidata di un nuovo modulo.

Si osservi, che poiché quest’ultima procedura consente di creare i pulsanti stampa e invia tramite mail, è superfluo aggiungere al modulo tali pulsanti se si intende salvarlo come modello.