Guida Redattore PDF
L'app per creare le apps di Diritto Pratico
work in progress... Questa guida è in fase di redazione e continuo aggiornamento. Torna spesso a visitarla!
Indice
- 1 Introduzione
- 2 Campi e Variabili
- 3 Calcoli matematici
- 4 Blocchi di campi replicabili
- 5 Operazioni con le date
- 6 Lavorare con le tabelle a scaglioni
- 7 Lavorare con le tabelle
- 8 Lavorare con i dataset
- 9 Calcolare interessi e rivalutazione monetaria
- 10 Blocchi di testo ad inclusione condizionata
- 11 Variabili globali e istruzioni "di trasformazione"
- 12 Integrazione con Note di Udienza
- 13 Interoperabilità tra le apps
- 14 Creazione di menu dinamici
- 15 Come personalizzare la nostra "app"
- 16 Tutte le istruzioni in dettaglio
- 16.1 Istruzioni per la codifica dei campi
- 16.2 Istruzioni per la formattazione del modulo compilabile
- 16.3 Istruzioni di trasformazione
- 16.4 Istruzioni speciali
- 17 FAQ: Domande poste frequentemente
Introduzione
Se stai leggendo queste righe probabilmente conosci già Apps! Avvocati i "redattori assistiti" di Diritto Pratico con i quali predisporre in pochi passaggi, direttamente online, atti e documenti ricorrenti nella professione forense (e non solo). Fra le applicazioni più conosciute e utilizzate quella per la redazione assistita della relata di notifica via PEC, il calcolo e la verifica delle impronte informatiche, la nota deposito documenti con eventuali attestazioni di conformità.
Il Redattore PDF è la nuova applicazione per consentire a chiunque di "programmare" autonomamente nuove apps! o personalizzare, integrare e migliorare quelle create da altri Colleghi!
Come funziona?
Tutto parte da un modello "ospitato" su una pagina di questo wiki o salvato sul proprio PC. Sotto il cofano dell'app Redattore PDF gira un "motore" in grado di interpretare particolari istruzioni inserite nel modello medesimo e che consentono di compiere varie operazioni sul testo: è ad esempio possibile calcolare interessi, termini processuali, l'importo del contributo unificato, i compensi ex dm 55-2014, il risarcimento del danno biologico, eseguire calcoli matematici indicando particolari regole di valorizzazione come arrotondamenti e limiti di valore...
Quali le applicazioni pratiche?
Dalla redazione automatizzata di un preventivo personalizzato (con indicazione dei compensi per fase, le spese ipotizzabili ecc. come ad esempio questo) alla redazione di una richiesta di pagamento con calcolo degli interessi al tasso legale o commerciale e il cacolo del compenso (esempio). Dalla redazione di un ricorso per decreto ingiuntivo su fatture (esempio) al successivo atto di precetto (esempio) ed al pignoramento presso terzi con individuazione automatica del tribunale competente e degli istituti di credito più vicini al debitore quali terzi pignorati.
Quanto è complesso utilizzare il Redattore PDF?
Utilizzare modelli già pronti non presenta alcuna difficoltà. La filosofia di funzionamento è quella di tutte le apps di Diritto Pratico:
- scelta del modello da utilizzare
- compilazione dei campi variabili
- personalizzazione libera del testo
- download del documento direttamente in formato PDF ovvero "copia e incolla" sul proprio elaboratore di testi preferito.
Creare i modelli è ovviamente meno immediato ma, come vedremo, tutt'altro che complesso. Obiettivo di questa guida è proprio quello di illustrare tutte le funzionalità del "motore" del Redattore PDF per consentire a chiunque di creare le proprie apps.
Come creare la pagina wiki contenente il modello personalizzato
Per creare un nuovo modello "condiviso", utilizzabile cioè da chiunque, deve essere predisposta una nuova pagina nel wiki di Diritto Pratico: Redattore PDF lo può fare automaticamente a patto di essersi preventivamente registrati sul wiki di Diritto Pratico. Inutile dire che la registrazione sul wiki è assolutamente gratuita e richiesta solo per combattere il fenomeno dello spamming.
Possiamo a questo punto lavorare su un modello esistente che vogliamo modificare oppure iniziare un progetto completamente nuovo: nel primo caso apriamo l'editor del codice cliccando su "modifica il modello", nel secondo colleghiamoci alla pagina di sviluppo raggiungibile a questo indirizzo https://apps.dirittopratico.it/redattore/tester.html o cliccando sul pulsante "crea una nuova app".
In entrambi i casi sarà sufficiente inserire le credenziali di accesso al wiki, scegliere un nome per il nostro lavoro e cliccare su "salva le modifiche sul wiki".
ATTENZIONE: i modelli ospitati sul wiki sono PUBBLICI, fai attenzione a non inserire dati sensibili o contenuti che non vuoi divulgare! Se hai creato un modello altamente personalizzato che ritieni non sia utile alla community, puoi sempre salvarlo in locale sul tuo PC: per utilizzarlo dovrai però caricalo ogni volta cliccando su "carica un modello".
E' anche possibile, se vuoi e lo sa fare, lavorare lato wiki: scegli il nome del tuo modello (che sarà il nome della pagina wiki) e crea la pagina. A questo punto puoi scrivere una breve introduzione/descrizione o quello che vuoi e poi inserire il testo del modello utilizzando il template "modello". Per far questo puoi fare copia e incolla del seguente codice:
{{modello|1= QUI IL TESTO E LE ISTRUZIONI DEL TUO MODELLO }}
Lavorare lato wiki consente di categorizzare i modelli per renderli navigabili direttamente dall'applicazione Redattore PDF e di inserire più modelli in una stessa pagina.
Campi e Variabili
Per capire il funzionamento del redattore occorre assimilare due concetti fondamentali: l'utente deve poter inserire un'informazione (compilando un campo) che verrà ricordata e riutilizzata nel testo (per mezzo della variabile che ne rappresenta il contenuto).Chiariremo subito con un modello semplicissimo.
Ogni esempio a seguire è immediatamente verificabile e "sperimentabile" semplicemente cliccando sull'icona a forma di taccuino. In tal modo il modello di esempio sarà caricato ed "eseguito" sul redattore PDF. Dal Redattore PDF, cliccando sulla scritta "modello" (fig. 1), è possibile aprire l'editor del codice sorgente per poterlo modificare e verificare immediatamente gli effetti con un clic su "rigenera il modello modificato". Infine, per sperimentare liberamente senza alcun modello precaricato dando vita ad un nuovo progetto, collegati alla piattaforma di sviluppo.
Partiamo:

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Nell'esempio viene richiesto all'utente di inserire un "nome" utilizzato per completare la frase Ciao ... come stai?
.
Per far questo viene definito (in questo caso con la sintassi "semplificata") il campo chiamato "nome" racchiuso tra i caratteri di controllo $[ ... ]
. Sintassi semplificata perchè, come vedremo, è possibile inserire fra i caratteri di controllo che "delimitano" il campo vere e proprie istruzioni per compiere operazioni più complesse.
In questo caso il nome del campo è quanto sarà mostrato all'utente in fase di compilazione ("nome") e al tempo stesso il nome della variabile che ricorderà quanto inserito dall'utente. Per riferirsi alla variabile sarà sufficiente inserire nel testo il nome del campo preceduto dal carattere di controllo $
. Ad esempio:

Il dato inserito dall'utente è $nome.
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Abbiamo detto che quella appena illustrata è una sintassi semplificata per la definizione di un campo e della relativa variabile. Potremo tuttavia avere la necessità di essere più descrittivi per facilitare l'utente nella compilazione del modulo. Ad esempio:

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Così facendo, tuttavia, la variabile sarà decisamente poco "maneggevole" se dovessimo adoperarla in altre parti del testo. Da notare che gli spazi nel nome della variabile sono sostituiti "d'ufficio" dal carattere _
che dunque, nell'esempio, diverrà $Inserisci_il_nome_e_cognome_della_parte_rappresentata
. Decisamente troppo macchinoso!
Specificare il nome e la descrizione di un campo
Vediamo allora come indicare, in modo distinto, il nome della variabile e la descrizione del campo che sarà mostrata all'utente in fase di compilazione grazie alle istruzioni nome
e descrizione

Come detto, il tuo cliente è $parte.
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Ecco dunque la sintassi "ordinaria" (per distinguerla da quella semplificata che abbiamo visto prima e che può sempre tornare utile quando una determinata variabile non dovrà più essere utilizzata nel testo): $[nome:nomevariabile;descrizione:descrizionecampo;]
Abbiamo il nostro "contenitore" $[ ... ]
con dentro l'istruzione per nominare la variabile nome:nome della variabile;
e quella per specificare la descrizione descrizione:descrizione da mostrare all'utente;
. Da notare che ogni istruzione all'interno del contenitore è delimitata dal carattere punto e virgola ;
. Questa è una regola sintattica generale, ogni istruzione ha infatti questa struttura: istruzione:argomento(eventualiparametri);
. Ma vedremo via via con gli esempi.
Verificare quanto inserito dall'utente
Immaginiamo adesso di dover richiedere all'utente l'inserimento del nome e del codice fiscale:

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Proviamo ad avviare il redattore e ad inserire, nel campo del codice fiscale, un testo qualsiasi. Riceveremo un errore perchè, in questo caso, abbiamo specificato - grazie all'istruzione formato
- una regola di valorizzazione del campo che, nell'esempio, deve contenere un codice fiscale formalmente valido.
Quindi, allorchè si renda necessario verificare quanto inserito dall'utente (ad esempio per evitare che questi compia errori di digitazione) dovremo indicare al redattore "di cosa si tratta" per mezzo dell'istruzione formato
. Ad esempio, se vogliamo che venga inserita una mail formalmente valida, potremo specificare formato:email
.
Calcoli matematici
Redattore PDF è in grado di eseguire operazioni matematiche anche relativamente complesse. Le formule possono essere inserite nel modello essenzialmente con due modalità:
- in sede di definizione di un campo/variabile racchiudendo la formula fra due parentesi tonde poste immediatamente dopo il nome del campo
- racchiudendo la formula fra due segni "uguale"
=
Un esempio per chiarire:

$[nome:importonetto($importo/1,22);]
L'IVA scorporata da € $importo è pari ad € =$importo-$importonetto=
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Apriamo una parentesi (anzi due!) sulla possibilità di inserire "blocchi commento" nel testo del modello per renderlo più comprensibile e per ottenere anche un altro interessante risultato. "Eseguendo" l'esempio precedente l'importo inserito comparirià anche all'inizio del testo. Questo è normale poichè, di regola, all'istruzione utilizzata per generare il campo (nell'esempio $[importo]
) verrà sostituito quanto inserito dall'utente. La seconda istruzione, invece, assegnando un valore ad una variabile senza chiedere nulla all'utente, non sortirà lo stesso effetto.
Come far sparire dal testo elaborato dal redattore il primo importo? Racchiudendo l'istruzione per la generazione del campo in un blocco commento, delimitato da due semplici doppie parentesi tonde + il carattere "due punti" :
:

Chiediamo quindi all'utente di inserire un importo e già che ci siamo definiamo anche il formato così avremo l'importo correttamente formattato con due decimali...
$[nome:importo;formato:valuta;]
e calcoliamo l'importo al netto dell'IVA...
$[nome:importonetto($importo/1,22);]
adesso chiudiamo il commento con due punti e due parentesi tonde :))
L'IVA scorporata da € $importo è pari ad € =$importo-$importonetto= ((: mostriamo il risultato :))
Infatti $importonetto + =$importo-$importonetto= = $importo ((: mostriamo anche la riprova! :))
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Blocchi di campi replicabili
In molti casì potrà essere utile consentire all'utente di inserire più elementi a sua discrezione: si pensi ai dettagli delle fatture poste a base di un ricorso per decreto ingiuntivo. Come al solito chiariamo con un esempio:

fattura n. $[nome:Fattura;descrizione:Riferimenti fattura (numero e data);] per l'importo di € $[nome:FatturaImporto;descrizione:Importo fattura;formato:valuta;]; </blocco:fatture>
$[nome:fatture;descrizione:aggiungi una nuova fattura;aggiungiblocco;]
Corrispettivo complessivo di € $[nome:totale($FatturaImporto);]$totale;
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Nell'esempio chiediamo all'utente di descrivere una fattura (numero e data) e di specificare il suo importo. Da notare che le due istruzioni per generare i campi sono racchiuse tra due tag, il primo di apertura <blocco:fatture>
ed il secondo di chiusura </blocco:fatture>
. I due tag delimitano, nel nostro esempio, un blocco denominato "fatture" che l'utente potrà replicare cliccando sul pulsante generato dall'istruzione $[nome:fatture;descrizione:aggiungi una nuova fattura;aggiungiblocco;]
(dove nome
si riferisce al nome del blocco da replicare e aggiungiblocco
è l'istruzione per mostrare il pulsante).
Da notare che la variabile $FatturaImporto
rappresenterà nel nostro documento finale la somma di tutti gli importi inseriti dall'utente.
Operazioni con le date
Redattore PDF è in grado di eseguire calcoli con le date ad esempio aggiungendo o sottraendo, ad una data fornita dall'utente, giorni, mesi o anni. E' anche possibile imporre il calcolo tenendo conto del periodo di sospensione feriale, della posticipazione del termine al primo giorno non festivo, calcolare termini a ritroso e a giorni liberi.
Vediamo un semplice esempio per calcolare i termini dell'art. 183 comma VI cpc:

Memoria n. 1: $[nome:primo($data + 30gg);primononfestivo;sospensioneferiale;]$primo
Memoria n. 2: $[nome:secondo($primo + 30gg);primononfestivo;sospensioneferiale;]$secondo
Memoria n. 3: $[nome:terzo($secondo + 20gg);primononfestivo;sospensioneferiale;]$terzo
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Nell'esempio chiediamo all'utente di inserire una data. Vengono poi definite tre variabili $primo
, $secondo
e $terzo
contenenti rispettivamente la scadenza del primo, del seconto e del terzo termine come prevista dall'art. 183 comma VI cpc. Le formule utilizzate non necessitano, ovviamente, di spiegazione. Da notare che specificando le opzioni primononfestivo
e sospensioneferiale
chiediamo al redattore di posticipare il risultato alla prima data non festiva e di tenere conto del periodo di sospensione feriale. Altra opzione disponibile ma non utilizzata nell'esempio è giorniliberi
.
E' anche possibile calcolare il numero di giorni, mesi o anni che separano due date semplicemente indicando in argomento le due date e l'eventuale "modificatore" per specificare quale risultato vogliamo ottenere: nome:periodo($data1 $data2 opzione);
dove $data1
e $data2
sono le date e opzione
può essere mesi
o anni
per calcolare la differenza rispettivamente in mesi o anni. Se non specificata opzione
il calcolo verrrà eseguito in giorni.
Vediamo un esempio per calcolare l'età di una persona:

$[nome:datanascita;descrizione:Inserisci la tua data di nascita;formato:data;]
$[nome:giorni($datanascita $DATA);]
$[nome:mesi($datanascita $DATA mesi);]
$[nome:anni($datanascita $DATA anni);]
chiudiamo il blocco commento:)) Se sei nato $GIORNOSETTIMANA($datanascita) $datanascita significa che hai $anni anni. Hai messo alle spalle $mesi mesi per un totale di $giorni giorni!
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
N.B.: Redattore PDF lavora soltanto con date espresse nel formato esteso gg MESE anno (giorno in cifre, mese in lettere non abbreviato, anno in cifre, es: 3 agosto 2015
): è dunque fondamentale, in sede di costruzione del campo, specificare che stiamo richiedendo una data con formato:data;
in modo da consentire il riconoscimento di una data inserita dall'utente anche in modo alternativo (es. 3 ago 2015, 3/8/15, 03082015 ecc.). I calcoli per somma di giorni, mesi o anni devono essere compresi tra il 1970 ed il 2038 e restituiscono una data nel medesimo formato gg MESE anno. Ove sia necessario individuare il giorno della settimana è possibile utilizzare l'istruzione $GIORNOSETTIMANA(data)
Lavorare con le tabelle a scaglioni
Redattore PDF offre la possibilità di valorizzare una variabile attingendo da una tabella a scaglioni. Questa funzionalità permette di eseguire non solo i calcoli più ovvi come la determinazione del CU o di un compenso ex DM 55/2014 ma anche determinare, ad esempio, l'entità del risarcimento da danno micropermanente:

Richiediamo la data di nascita:
$[nome:datanascita;descrizione:Inserisci la data di nascita;formato:data;]
Calcoliamo l'età in anni semplicemente contando gli anni tra la data di oggi ($DATA) e quella inserita dall'utente:
$[nome:anni($DATA $datanascita anni);]
Chiediamo di indicare l'IP:
$[nome:ip;descrizione:Inserisci la percentuale di invalidità permanente;tipo:select(1%@1//2%@2//3%@3//4%@4//5%@5//6%@6//7%@7//8%@8//9%@9);]
Calcoliamo il risarcimento attingendo dalla tabella a scaglioni "micropermenenti": come scaglione utilizziamo l'età ridotta di un anno e come n-elemento quello rappresentato dalla IP:
$[nome:risarcimento($anni);scaglione:micropermanenti §ip;]
chiudiamo il blocco commento :))
Data di nascita: $datanascita ($anni anni)
Risarcimento spettante per una IP accertata del $ip: € $risarcimento
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Come funziona?
Anzitutto occorre poter disporre di una tabella di riferimento sulla pagina Tabelle servizio Redattore PDF. Le tabelle, nel markup mediawiki, hanno la seguente struttura:
{| !CU |1100:43-64,50-86 |5200:98-147-196 |26000:237-355,50-474 |52000:518-777-1036 |260000:759-1138,50-1518 |520000:1214-1821-2428 |999999999999999:1686-2529-3372 |}
La prima {|
e l'ultima |}
riga aprono e chiudono la tabella.
La seconda riga indica il nome della tabella: fondamentale che sia univoco rispetto a quello di tutte le altre tabelle sulla pagina.
I dati nella tabella seguono la seguente logica:
|limite superiore scaglione:dato_1,dato_2,dato_3,dato_4, ... dato_n
Nell'esempio abbiamo una tabella con tre valori per scaglione corrispondenti, rispettivamente, al CU per i giudizi ordinari di primo grado, per l'appello e per la cassazione.
La sintassi per accedere ad un determinato valore è la seguente:
$[nome:nomevariabile(valore);scaglione:nometabella numeroelemento;]
Nell'esempio, posto $valorecausa
il valore della causa, potremo avere:
$[nome:CU($valorecausa);scaglione:CU 1;]
per assegnare alla variabile $CU
l'importo del Contributo Unificato per una causa ordinaria di primo grado di valore $valorecausa
.
Piuttosto che il numeroelemento
possiamo anche specificare una percentuale: in tal caso il valore assegnato alla variabile sarà quello, in percentuale, calcolato fra il primo e l'ultimo elemento. Utile in varie circostanze come nel calcolo dei compensi professionali (vedi ad esempio il sorgente della demo Preventivo opposizione decreto ingiuntivo giudice di pace).
Lavorare con le tabelle
da scrivere!
Lavorare con i dataset
Redattore PDF offre la possibilità di lavorare con i dataset in formato csv (comma separated values) consentendo la ricerca fulltext su tutto l'archivio o su campi specifici. Per far questo è disponibile il #tipo "dataset" (che attiva una funzione di autocopletamento associabile a qualsiasi campo richiesto all'utente con possibilità di assegnare a varibili correlate qualsiasi informazione singola o aggregata estrapolabile dal record individuato) e l'istruzione $DATASET (che consente l'estrazione di informazioni dal dataset in forma aggregata secondo filtri di ricerca e pattern definibili dall'utente).
Vediamo la sintassi del "tipo:dataset"
:
tipo:dataset( dataset | pattern | regole autocompletamento)
dove:
dataset
è il nome del dataset (se "ospitato" da Diritto Pratico) o l'url del file in formato .csv reperibile in retepattern
individua quali campi del dataset devono essere aggregati per l'autocompletamento e quali assegnati alle varibili correlate create automaticamente da RedattorePDF con la seguente sintatti:campi autocompletamento separati da spazi , campi da assegnare alle varibili automatiche separati dal carattere <code>-
(o aggregati se separati da spazi)</code>. Può sembrare complicato ma gli esempi successivi ne chiariranno la semplice logica.
Vediamo un esempio. Il Ministero della Salute mette a disposizione un dataset openData relativo alle farmacie operanti su tutto il territorio nazionale. Il dataset, scaricabile all'indirizzo http://www.dati.salute.gov.it/imgs/C_17_dataset_5_download_itemDownload0_upFile.CSV per ogni record riporta le seguenti informazioni:
- CODICEIDENTIFICATIVOFARMACIA
- CODFARMACIAASSEGNATODAASL
- INDIRIZZO
- DESCRIZIONEFARMACIA
- PARTITAIVA
- CAP
- CODICECOMUNEISTAT
- DESCRIZIONECOMUNE
- FRAZIONE
- CODICEPROVINCIAISTAT
- SIGLAPROVINCIA
- DESCRIZIONEPROVINCIA
- CODICEREGIONE
- DESCRIZIONEREGIONE
- DATAINIZIOVALIDITA
- DATAFINEVALIDITA
- DESCRIZIONETIPOLOGIA
- CODICETIPOLOGIA
- LATITUDINE
- LONGITUDINE
- LOCALIZE
Se volessimo consentire all'utente di selezianare una qualsiasi farmacia ed estrarne i dati associati?
$[nome:farmacia;descrizione:Individua la farmacia iniziando a scrivere quello che conosci (nome, città, indirizzo, cap...);tipo:dataset(http://www.dati.salute.gov.it/imgs/C_17_dataset_5_download_itemDownload0_upFile.CSV%7C4 3 8,1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21);formato:libero;]
L'istruzione definisce un campo di nome farmacia (variabile principale $farmacia) chiedendo all'utente di iniziare a scrivere ciò che conosce della farmacia da trovare (nome, città, indirizzo cap...). il tipo:dataset
istruisce RedattorePDF di lavorare con il dataset reperibile all'indirizzo specificato ed indica come pattern per l'autocompletamento i campi n. 4 (DESCRIZIONEFARMACIA), 3 (INDIRIZZO) e 8 (DESCRIZIONECOMUNE). Ciò significa che iniziando a scrivere nel campo saranno filtrati i record che soddisfano i criteri di ricerca e mostrati nome, indirizzo e città delle farmacie trovate. I numeri dopo la virgola indicano invece quali campi del record selezionato dall'utente vogliamo utilizzare nel nostro documento (nell'esempio tutti i campi del dataset da 1 a 21) che verranno così automaticamente assegnati alle variabili automatiche $farmacia1, $farmacia2, $farmacia3 ecc..
Calcolare interessi e rivalutazione monetaria
Redattore PDF offre la possibilità di calcolare interessi e rivalutazione monetaria. Vediamo un esempio:

$[nome:data;descrizione:Inserisci la data dalla quale far decorrere interessi e rivalutazione monetaria;formato:data;]
$[nome:interessi($importo);interessi:tasso legale $data $DATA;]
$[nome:interessicom($importo);interessi:tasso commerciale $data $DATA;]
$[nome:sommarivalutata($importo);rivalutazione: $data $DATA;] :))
Interessi e rivalutazione dal $data ad oggi sulla somma di € $importo
Interessi al tasso legale: € $interessi
Interessi al tasso di mora commerciale: € $interessicom
Somma rivalutata: $sommarivalutata
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Per il calcolo degli interessi occorre poter disporre di una tabella di riferimento sulla pagina Tabelle servizio Redattore PDF. Le tabelle per il calcolo degli interessi, nel markup mediawiki, hanno la seguente struttura:
{| !tasso legale |01-01-1957/15-12-1990:5 |16-12-1990/31-12-1996:10 |01-01-1997/31-12-1998:5 |01-01-1999/31-12-2000:2.5 |01-01-2001/31-12-2001:3.5 |01-01-2002/31-12-2003:3 |01-01-2004/31-12-2007:2.5 |01-01-2008/31-12-2009:3 |01-01-2010/31-12-2010:1 |01-01-2011/31-12-2011:1.5 |01-01-2012/31-12-2013:2.5 |01-01-2014/31-12-2014:1 |01-01-2015/19-1-2038:0.5 |}
La prima {|
e l'ultima |}
riga aprono e chiudono la tabella.
La seconda riga indica il nome della tabella: fondamentale che sia univoco rispetto a quello di tutte le altre tabelle sulla pagina.
I dati nella tabella seguono la seguente logica:
|data iniziale/data finale:tasso
Le date devono essere espresse nel formato solo numerico gg-mm-aaaa e i tassi con i decimali separati dal carattere punto (e non la virgola).
La sintassi per calcolare gli interessi è la seguente:
$[nome:nomevariabile(valore);interessi:nome tabella datainiziale datafinale;]
La funzionalità per il calcolo della rivalutazione monetaria non necessita invece di alcuna tabella interrogando piuttosto, in tempo reale, l'apposito servizio messo a disposizione dall'ISTAT. La sintassi è la seguente:
$[nome:nomevariabile(valore);rivalutazione:datainiziale datafinale;]
che assegnerà alla variabile $nomevariabile
la rivalutazione di $valore
dalla datainiziale
alla datafinale
sulla base dell’indice dei prezzi al consumo per le famiglie di operai e impiegati (FOI) al netto dei tabacchi. Possono essere eseguiti calcoli dal 1947 ad oggi. Se non disponibile il dato relativo alla datafinale
sarà utilizzato l'ultimo utile.
Blocchi di testo ad inclusione condizionata
Può essere utile includere nel documento porzioni di testo soltanto allorchè sia verificata una determinata condizione. Vediamo un semplice esempio:

((:$importo>1000::L'importo inserito è superiore ad € 1.000,00:))((:$importo<1000::L'importo inserito è inferiore ad € 1.000,00:))((:$importo=1.000,00::L'importo inserito è proprio € 1.000,00:))
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Il blocco condizionato è pressochè identico al "blocco commento" di cui abbiamo già parlato, una porzione di testo racchiusa tra due doppie parentesi tonde e due segni di "due punti". La differenza sta nella condizione da verificare che deve seguire immediatamente le due doppie tonde e i due punti di apertura del blocco e terminare con un doppio "due punti" ::
. La sintassi è la seguente:
((:espressione booleana semplificata::testo del blocco:))
L'espressione booleana (espressione, cioè, che può essere soltanto vera o falsa) deve avere la seguente sintassi:
elemento1 operatore elemento2
dove l'operatore può essere <
(minore), >
maggiore, =
uguale o ^
diverso.
Nell'esempio: $importo > 1000
sarà vera (e dunque mostrerà il blocco) se la variabile $importo
sarà valorizzata con una somma superiore a 1000.
Vediamo un altro esempio:

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
In questo caso nel primo blocco confrontiamo la variabile $nome
con una stringa vuota (dopo l'operatore ^
non c'è nulla se non i doppi due punti di chiusura). L'espressione vuol dire: "se la variabile $nome
NON è vuota (diversa da niente) mostra il blocco" che sarà "Ciao" seguito dal nome. Nel secondo blocco confrontiamo sempre la variabile $nome
con una stringa vuota ma utilizzando l'operatore =
. L'espressione vuol dire: "se la variabile $nome
è uguale ad una stringa vuota mostra il blocco" che sarà "Non hai inserito alcun nome!".
Se sei completamente digiuno di informatica tutto questo potrà sembrarti incomprensibile: non disperare! Sappi solo che è possibile inserire nel modello parti di testo che risulteranno visibili solo a particolari condizioni. Se hai questa esigenza e non sai come fare chiedi aiuto sul forum.
I blocchi ad inclusione condizionata possono essere utilizzati anche nell'ambito di definizione di una variabile con la sola differenza sintattica che non occorre inserire i due punti insieme alle parentesi tonde di apertura e chiusura. Per chiarire:

IVA: $[nome:IVA;descrizione:Selezione l'IVA applicabile;tipo:select(22%@22//10%@10);]
TOTALE: $[nome:totale($importo+($importo*((§IVA=22::22))((§IVA=10::10))/100));formato:valuta;]$totale
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Un esempio di utilizzo dei blocchi ad inclusione condizionata nel modello Lettera adeguamento ISTAT canone locazione: in caso di varizione negativa dell'indice FOI, l'app non adeguerà il canone (che in tal caso subirebbe una riduzione) lasciandolo invariato.
Variabili globali e istruzioni "di trasformazione"
Le variabili globali sono variabili predefinite dal sistema e direttamente riutilizzabili nel testo. Per convenzione sono riconoscibili per essere in maiuscolo come ad esempio $DATA
che inserisce la data odierna.
Le istruzioni di trasformazione consentono invece di compiere varie trasformazioni sul testo (solitamente rappresentato da una variabile) passato in argomento. Vediamo un esempio:

$MAIUS restituisce $MAIUS($stringa)
$MINUS restituisce $MINUS($stringa)
$PRIMAMAIUS restituisce $PRIMAMAIUS($stringa)
$PRIMEMAIUS restituisce $PRIMEMAIUS($stringa)
Oggi, $DATA, è $GIORNOSETTIMANA($DATA).
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Integrazione con Note di Udienza
Redattore PDF può leggere e scrivere su Note di Udienza, la webapp per la verbalizzazione "telematica".
Per inserire nel testo il contenuto di una nota salvata su Note di udienza è sufficiente richiamarlo con l'istruzione $NOTE(codicenota)
. Ad esempio:
$NOTE(kilo54)
Inserirà nel testo, in corrispondenza dell'istruzione, il contenuto della nota con codice kilo54
. Ovviamente, in argomento, possiamo indicare una variabile.
Per salvare un documento su Note di Udienza occorre invece assegnare il codice da utilizzare ad una variabile specificando che si tratta di un codice per il salvataggio su Note con l'istruzione codicenota
. Ad esempio:
$[nome:codice;descrizione:Inserisci il codice per il salvataggio su Note di Udienza;codicenota;]
Ove l'utente non inserisca alcun codice ne verrà generato uno casuale. Il salvataggio non è automatico, l'utente dovrà cliccare sullo specifico pulsante che comparirà sotto "scarica il documento in formato PDF".
Il salvataggio sovrascrive il contenuto della nota ove preesistente (contenuto che potrà comunque essere sempre ripristinato navigando nella cronologia delle modifiche di Note di udienza). Per aggiungere il testo elaborato da Redattore PDF ad una nota preesistente occorrerà utilizzare l'istruzione $NOTE
per caricarlo ed inserirlo ove serva nel contesto del documento elaborato. In questo esempio per la redazione automatizzata di un provvedimento di assegnazione conseguente il pignoramento di una pensione, il modello prevede la possibilità di fornire il codice di una verbalizzazione su Note di Udienza così da "stendere" in calce alla verbalizzazione stessa l'ordinanza elaborata
Interoperabilità tra le apps
Un'app può richiamare un'altra app "passandole" dei dati: in tal modo l'app "invocata" avrà già alcune variabili prevalorizzate. L'istruzione da utilizzare è la seguente:
$[:app <nome app da richiamare>|<descrizione pulsante>|<variabile app destinataria>@@<variabile da passare>|<variabile app destinataria>@@<variabile da passare>| (...) :]
<nome app da richiamare>
è il nome della app che vogliamo lanciare
<descrizione pulsante>
è il testo che comparirà sul pulsante che servirà al richiamo dell'app
<variabile app destinataria>
è il nome della variabile dell'app "invocanda" senza il segno del dollaro alla quale sarà assegnato il valore posto dopo il doppio segno @
<variabile da passare>
è la variabile dell'app "invocante" che sarà assegnato alla variabile dell'app "invocata"
Ad esempio nell'applicazione per la ricerca degli uffici giudiziari competenti per territorio, l'istruzione:
$[:app Trova avvocati|trova Colleghi vicini al Giudice di Pace|indirizzo@@$gdp, $gdpIndirizzo:]
creerà un pulsante "trova Colleghi vicini al Giudice di Pace" che consentirà di lanciare l'app "Trova avvocati" assegnando alla sua variabile $indirizzo
la stringa formata dal contenuto della varibile $gdp
(la città del Gdp) + una virgola + uno spazio + il contenuto della variabile $gdpIndirizzo
(l'indirizzo del GdP).
Il "passaggio" di variabili è opzionale cosicchè l'istruzione in commento è utilizzabile anche soltanto per consentire il richiamo di specifiche apps "correlate" a quella in uso.
In modalità NOEDITOR (attivabile inserendo in qualsiasi punto del codice l'istruzione $NOEDITOR
) è possibile creare menu dinamici sullo stile di apps! (Cosa devi fare?) per raccogliere gruppi di collegamenti ipertestuali (a pagine esterne o altre apps) o realizzare "percorsi guidati" con sotto-menu e blocchi testuali a scomparsa (che è possibile mostrare o nascondere dinamicamente).
La sintassi completa è la seguente:
$[:menu(<eventuale titolo del menu>) #<identificativo menu> opzione <eventuale URL collegamento> <descrizione opzione>|<eventuale tooltip opzione> on:<eventuali elementi da visualizzare> off:<eventuali elementi da nascondere> colore:<colore del testo> sfondo:<colore di sfondo>]
dove <eventuale titolo menu>
è il titolo, opzionale, da mostrare in testa al menu. Deve essere racchiuso tra parentesi tonde. E' possibile ometterlo (omettendo anche le parentesi) se non necessario o se stiamo definendo le opzioni (successive alla prima) del menu stesso.
<identificativo menu>
è l'identificativo numerico univoco del menu: deve essere specificato se stiamo definendo la testa del menu stesso.
<eventuale URL collegamento>
è l'URL dell'eventuale collegamento
<descrizione opzione>
è il testo che sarà mostrato in corrispondenza della voce di menu
<eventuale tooltip opzione>
è il testo dell'eventuale tooltip che sarà mostrato soffermando il puntatore del mouse sull'opzione.
on:<eventuali elementi da visualizzare>
è un elenco di identificatori univoci degli elementi da mostrare quando l'utente clicca sull'opzione, separati da virgole (es.: #1,#4,#45)
off:<eventuali elementi da nascondere>
è un elenco di identificatori univoci degli elementi da nascondere quando l'utente clicca sull'opzione, separati da virgole (es.: #1,#4,#45)
colore:<colore del testo>
consente di specificare il colore del testo secondo la notazione CSS esadecimale o nominale (es. Gray)
sfondo:<colore dello sfondo>
consente di specificare il colore dello sfondo secondo la notazione CSS esadecimale o nominale (es. #00FFFF)
Vediamo un esempio:

$[:opzione https://apps.dirittopratico.it/redattore/Prova_della_notifica_via_PEC.html Devo fornire la prova di una notifica eseguita via PEC|apre l'app per la redazione assistita della nota di deposito per la prova della notifica eseguita via PEC]
$[:menu(Che tipo di notifica devi eseguire?) #2:off opzione https://apps.dirittopratico.it/notifica.html Devo eseguire una notifica in proprio via PEC|apre l'app per la redazione assistita della relata di notifica via PEC]
$[:opzione https://apps.dirittopratico.it/notificaug.html Devo eseguire una notifica via UNEP|apre l'app per la redazione assistita della relata di notifica da eseguirsi tramite Ufficiale Giudiziario]
$[:opzione ricomincia|torna al passo iniziale on:#1 off:### sfondo:#E4FFE4]
$NOEDITOR
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
la prima linea $[:menu(Cosa devi fare?) #1 opzione Devo eseguire una notifica on:#2 off:#1]
crea il primo menu con identificativo #1 e titolo "Cosa devi fare?". Contestualmente definisce la prima opzione "Devo eseguire una notifica" che, se cliccata, mostrerà l'emento con identificativo #2 (nella fattispecie il secondo menu) nascondendo il primo (quindi lo stesso menu che conteneva l'opzione appena cliccata).
la seconda linea $[:opzione https://apps.dirittopratico.it/redattore/Prova_della_notifica_via_PEC.html Devo fornire la prova di una notifica eseguita via PEC|apre l'app per la redazione assistita della nota di deposito per la prova della notifica eseguita via PEC]
definisce la seconda opzione del primo menu che sarà semplicemente un link all'app per la redazione assistita della nota di deposito della prova di una notifica via PEC; nella fattispecie viene anche definito un tooltip di aiuto (che sarà mostrato soffermando il puntatore del mouse sull'opzione).
la terza linea $[:menu(Che tipo di notifica devi eseguire?) #2:off opzione https://apps.dirittopratico.it/notifica.html Devo eseguire una notifica in proprio via PEC|apre l'app per la redazione assistita della relata di notifica via PEC]
definisce il secondo menu. Importante notare che il secondo menu, all'apertura della pagina, è nascosto (per far questo è sufficiente aggiungere :off all'identificativo, nell'esempio #2:off
). Viene definita anche la prima opzione del secondo menu che è semplicemente il link all'app per la redazione assistita della relata di notifica via PEC.
la quarta linea $[:opzione https://apps.dirittopratico.it/notificaug.html Devo eseguire una notifica via UNEP|apre l'app per la redazione assistita della relata di notifica da eseguirsi tramite Ufficiale Giudiziario]
definisce la seconda opzione del secondo menu, il collegamento all'app per la redazione assistita della relata di notifica "cartacea".
infine la quinta linea $[:opzione ricomincia|torna al passo iniziale on:#1 off:#2 sfondo:#E4FFE4]
definisce l'ultima opzione del secondo menu: se cliccata renderà nuovamente visibile il primo menu e nasconderà tutto il resto. L'opzione sarà mostrata con un colore di sfondo modificato.
Da tenere presente la sintassi specifica dei comandi on:
e off:
: oltre ad un elenco di identificativi separati da virgole possono anche semplicemente indicare uno, due o tre simboli cancelletto #
. Ad esempio:
off:#
"spengera" solo l'opzione cliccata
off:##
"spengera" tutto il menu cui appartiene l'opzione cliccata
off:###
"spengera" tutti i menu ed i blocchi con identificativo
Come personalizzare la nostra "app"
Personalizzare il titolo, il sottotitolo e l'autore
E' possibile personalizzare il nome della nostra app specificandolo con l'istruzione titolo:titolopersonalizzato;
che è possibile inserire in qualsiasi codice di definizione campo. Allo stesso modo il sottotitolo con titolo:titolopersonalizzato;
e l'autore con autore:nomeautore;
. Ad esempio:
$[titolo:Conferimento incarico;sottotitolo:modello per la redazione della lettera di conferimento incarico;autore:Paolino Paperino;]
RedattorePDF imposterà di conseguenza i relativi metadati della pagina web utili, ad esempio, in caso di condivisione sui social networks.
Personalizzare l'aspetto del modulo da compilare
E' possibile personalizzare l'aspetto del modulo da compilare racchiudendo determinati campi in blocchi colorati, inserendo titoli, testo e linee di separazione (vedi ad esempio il modello per l'atto di precetto). Per far questo è disponibile uno specifico set di istruzioni di "formattazione" con sintassi $[:istruzione opzioni]
(distinguibili per i due punti subito dopo la prima parentesi quadra).
Incorporare l'app nel proprio sito
Per incorporare una specifica app nel nostro sito è sufficiente cliccare sull'etichetta "modello" e fare copia e incolla con lo snippet riportato subito sotto la finestra del codice sorgente del modello stesso.
Tutte le istruzioni in dettaglio
Istruzioni per la codifica dei campi
nome
Definisce il nome del campo e della relativa variabile che sarà riutilizzabile nel testo.
Esempio: $[nome:Nazione;]
Gli eventuali spazi saranno convertiti nel carattere _
.
Indicando tra parentesi un'espressione matematica (comprensiva di eventuali variabili) ne sarà calcolato il valore risultante e assegnato alla variabile $nome
. Ad esempio:
$[nome:Capitale;formato:valuta;] $[nome:iva($Capitale*22/100);formato:valuta;] Iva calcolata: $iva
calcolerà l'IVA sull'importo $Capitale
assegnandolo alla variabile $iva
.
Allo stesso modo è possibile eseguire calcoli con le date.
N.B.: in caso di assegnazione di un valore calcolato ad una variabile, questo non sarà inserito direttamente nel testo ma occorrerà esplicitarlo ove occorra.
descrizione
Indica cosa richiedere all'utente in fase di compilazione del campo. E' opzionale e se non specificata sarà uguale al nome del campo stesso.
Esempio: $[nome:Indirizzo;descrizione:Inserisci il tuo indirizzo;]
formato
Indica il formato del campo, necessario se occorra la sua "validazione". Può assumere i seguenti valori:
- stringa: per stringhe di testo;
- stringamultipla: come sopra ma richiede che siano inserite almeno due parole (utile ad esempio se richiesto il nome ed il cognome, se l'utente inserisce solo il nome sarà segnalato un errore);
- cf: per il codice fiscale;
- piva: per la partita IVA;
- cfpiva: indifferentemente per codice fiscale o partita iva;
- email: per un indirizzo email;
- data: per una data (sarà possibile selezionare la data da un piccolo calendario);
- valuta: per una somma di denaro;
Esempio: $[nome:Indirizzo;formato:stringamultipla;]
arrotondamenti
E' possibile arrotondare per eccesso o per difetto un determinato importo di formato valuta
.
Esempio: $[nome:importo_arrotondato($importo);eccesso10;formato:valuta;]
assegnerà alla variabile $importo_arrotondato
il valore di $importo
arrotondato ai 10 euro superiori.
Le istruzioni di riferimento sono eccessoX
e difettoX
dove X è l'intero per l'arrotondamento.
Esempio: $[nome:importo_arrotondato($importo);difetto5;formato:valuta;]
assegnerà alla variabile $importo_arrotondato
il valore di $importo
arrotondato per difetto di 5 euro.
limiti di valore
E' possibile impostare un limite massimo o minimo alla valorizzazione di una varibile con le istruzioni max
e min
. Esempio:
$[nome:importo($capitale*2);max:500;min:100;formato:valuta;]
assegnerà alla variabile $importo
il doppio della variabile $capitale
ma senza superare 500
e senza scendere sotto 100
.
tipo
Indica quale tipologia di campo utilizzare. Può assumere i seguenti valori:
- text: per campi testo su singola linea;
- textarea: per campi testo su più linee;
- editor: per testo formattabile e con possibilità di incollare immagini;
- select(opzione 1//opzione 2//opzione 3): per campi a scelta multipla indicando fra parentesi le singole voci separate dalla doppia barra //
- checkbox: per campi "spuntabili"
- tabella
- indirizzo
select e le variabili
select
offre la possibilità di specificare in modo distinto l'opzione mostrata all'utente ed il valore da assegnare alla variabile separandoli con il carattere @
. Ad esempio:
select(opzione 1@valore 1//opzione 2@valore 2//opzione 3@valore 3)
Nel modello sarà poi possibile riferirsi tanto alla descrizione dell'opzione quanto alla sua valorizzazione. Vediamo un esempio:

$[nome:importo;descrizione:Inserisci un importo;formato:valuta;]
$[nome:selezione;descrizione:Seleziona una opzione;tipo:select(Spese generali al 15%@15//Spese generali al 12,5%@12,5//Spese generali al 10%@10);]
$[nome:risultato($importo+($importo*§selezione/100));] :))
Hai selezionato "$selezione" il cui valore è §selezione
L'importo di € $importo aumentato delle $MINUS($selezione) è pari ad € $risultato.
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Nell'esempio, il riferimento ordinario alla variabile $selezione
restituisce la descrizione dell'opzione selezionata dall'utente. Per utilizzare invece la sua valorizzazione è sufficiente riferirsi alla variabile non con il simbolo del dollaro ma con §
.
Come vedremo parlando di scaglioni
e interessi
, il riferimento alle variabili con il carattere di controllo §
piuttosto che $
consente di utilizzarle anche nel codice per la costruzione dei campi.
checkbox e le variabili
checkbox
permette all'utente di spuntare un'opzione: il riferimento ordinario alla variabile (con il carattere del dollaro $
) restituisce la descrizione del campo, mentre il riferimento alternativo con il carattere §
restituisce 1
se l'utente ha spuntato l'opzione o 0
in caso contrario. Ciò permette di impostare condizioni, ad esempio, in formule matematiche:

$[nome:importo;formato:valuta;]
$[nome:opzione;descrizione:Applica le spese generali;tipo:checkbox;]
$[nome:spesegenerali($importo*15/100);]
$[nome:cpa(($importo((§opzione=1::+$spesegenerali)))*4/100);]
$[nome:imponibile($importo+$cpa((§opzione=1::+$spesegenerali)) );]
$[nome:iva($imponibile*22/100);]
$[nome:totale($imponibile+$iva);]
$[:separatore] :)) Importo comprensivo di ((:§opzione=1::spese generali, :))cpa e IVA: $totale
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
checkbox
può anche essere semplicemente utilizzato per includere o meno segmenti di testo in base alla spunta dell'utente. Si veda l'esempio Richiesta esecuzione forzata.
indirizzo
Consente di specificare un indirizzo digitandolo (es. Follonica, via Roma 999) oppure indicandolo sulla mappa e restituendo due ulteriori variabili oltre quella definita con nome
per l'indirizzo: nomeLAT
per la latitudine e nomeLON
per la longitudine. Esempio:

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
E' possibile personalizzare il comportamento dell'input di tipo indirizzo
indicando fra parentesi i relativi parametri con la seguente sintassi:
indirizzo(latitudine iniziale|longitudine iniziale|zoom|raggio|modificatori)
dove:
latitudine iniziale
elongitudine iniziale
sono le coordinate da utilizzare come default per la visualizzazione della mappa prima dell'input dell'utente (se non specificate punteranno su Roma)zoom
indica il livello di zoom inizialeraggio
consente di evidenziare un'area dell'estensione specificata intorno al pickermodificatori
può contenere:nomap
per nascondere la mappanocrd
per nascondere le coordinate
Ad esempio: $[nome:posizione;tipo:indirizzo(||||nocrd nomap);]
Chiederà all'utente l'inserimento di un indirizzo senza mostrare mappa né coordinate.
scaglione
Assegna ad una variabile il valore corrispondente ad un determinato scaglione preso a riferimento. Esempio:
$[nome:compensoprecetto($capitale+$interessi);formato:valuta;scaglione:precetto 2;]
assegna alla variabile $compensoprecetto
il valore corrispondente per scaglione sull'importo dato dalla somma delle variabili $capitale+$interessi
prelevato dalla tabella precetto
.
interessi
Assegna ad una variabile gli interessi calcolati sull'importo indicato in argomento. Esempio:
$[nome:interessi($capitale);interessi:tasso commerciale $datainiziale $datafinale;]
assegnerà alla variabile $interessi
gli interessi calcolati sulla somma $capitale
attingendo alla tabella tasso commerciale
dalla data $datainiziale
alla data $datafinale
.
rivalutazione
Assegna ad una variabile la rivalutazione monetaria calcolata sulla base del'indice ISTAT FOI (Famiglie Impiegati e Operai) al netto dei Tabacchi sull'importo indicato in argomento. Esempio:
$[nome:sommarivalutata($capitale);rivalutazione:$datainiziale $datafinale;]
assegnerà alla variabile $sommarivalutata
l'importo rivalutato di $capitale
dalla data $datainiziale
alla data $datafinale
.
persistente
Il campo registrerà un cookie per ricordare quanto inserito dall'utente anche ad un futuro accesso. Esempio:
$[nome:nome;descrizione:Indica il tuo nome;persistente;]
opzionale
Consente di rendere opzionale la valorizzazione del campo. Esempio:
$[nome:titolo;descrizione:Inserisci l'eventuale titolo (es. avv., dott. ecc.);opzionale;]
primononfestivo
Istruzione senza parametri che indica al redattore, in caso di calcoli con le date, di posticipare il risultato alla prima data utile non festiva. Esempio:
$[nome:termine(25 novembre 2015 + 30 gg);primononfestivo;]
assegnerà alla variabile $termine
la data del 28 dicembre 2015 (il termine scadrebbe il giorno di Natale ed il primo giorno utile non festivo è infatti lunedì 28).
sospensioneferiale
Istruzione senza parametri che indica al redattore, in caso di calcoli con le date, di tenere conto della sospensione feriale dei termini (mese di agosto). Esempio:
$[nome:termine(15 luglio 2015 + 30 gg);sospensioneferiale;primononfestivo;]
assegnerà alla variabile $termine
la data del 14 settembre 2015.
giorniliberi
Istruzione senza parametri che indica al redattore, in caso di calcoli con termini processuali, di non tenere conto nè del dies a quo né del dies ad quem
solocampo
Di default, quanto inserito dall'utente in un campo viene sostituito, in fase di compilazione del modello, anche in corrispondenza dell'istruzione utilizzata per generare il campo medesimo (es.: Ciao $[nome:Inserisci il tuo nome;], come stai?
.
Ove si renda necessario utilizzare quanto inserito dall'utente più avanti nel modello solo con la variabile assegnata (nell'esempio precedente $Inserisci_il_tuo_nome
) magari per ottenere la compilazione dei campi da parte dell'utente segua un ordine diverso da come questi si susseguono nel modello stesso, è possibile inserire l'opzione solocampo
. Esempio:
$[nome:Inserisci il tuo nome;solocampo;] Tanti saluti da $[nome:Luogo;] Firmato: $Inserisci_il_tuo_nome.
In tal modo sarà prima chiesto il nome e poi il luogo. In altre parole l'opzione solocampo
permette di valorizzare una variabile riutilizzabile nel documento senza che questa debba necessariamente comparire (es. l'aliquota IVA da utilizzare per la generazione di una fattura).
nocalcolo
Ignora eventuali espressioni matematiche in fase di assegnazione di un valore ad una variabile.
tuttomaiuscolo
Istruzione senza parametri che consente di trasformare in maiuscolo quanto inserito dall'utente.
Esempio: $[nome:tribunale;tuttomaiuscolo;]
N.B.: l'istruzione tuttomaiuscolo
trasforma il contenuto stesso della variabile in una stringa con soli caratteri maiuscoli. Ove sia necessario utilizzare il maiuscolo solo in determinate posizioni, utilizzare $MAIUS(nomevariabile)
gps
Consente al browser di valorizzare il campo in modo automatico con la città in cui ci troviamo. La funzione utilizza le API di google per il Reverse Geocoding e potrebbe non funzionare o non essere accurata su PC desktop. L'utente deve acconsentire all'utilizzo della geolocalizzazione. Esempio:

Bene, ti trovi a $comune!
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Istruzioni per la formattazione del modulo compilabile
separatore
Consente di inserire una linea di separazione tra i campi.
Esempio: $[:separatore]
lineavuota
Consente di inserire una linea vuota tra i campi.
Esempio: $[:lineavuota]
startbox e endbox
Consentono di racchiudere un gruppo di campi in un box del quale è possibile specificare il colore di sfondo oltre al tipo ed al colore del bordo. Le istruzioni da ultilizzare sono due, uno per indicare l'inizio del box e uno la fine (dopo aver definito i campi da includere. Vediamo un esempio:

$[Nome]
$[Cognome]
$[:endbox]
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
la sintassi è la seguente: $[:startbox coloresfondo spessorebordo tipobordo colorebordo]
E' possibile indicare i colori con la notazione CSS esadecimale (es. #FAEBD7) o nominativa (es. AntiqueWhite).
Il bordo, espresso in pixel, può valere da 0 a 9.
Il tipo di bordo è uno di quelli previsti per la relativa proprietà CSS.
titolo
Consente di collocare un titolo esplicativo fra i campi con la sintassi: $[:titoloX titolo da inserire]
dove X può valere da 1 a 4 per distinguere titoli di diversa gerarchia e di formato diverso.
Esempio: $[:titolo3 Dati del legale]
testo
Consente di inserire un testo esplicativo fra i campi con la sintatti: $[:testo testo da inserire]
.
Esempio: $[:testo Questo è un testo libero che può essere inserito tra i campi per fornire, ad esempio, indicazioni nella compilazione]
Istruzioni di trasformazione
$MAIUS
rende maiuscolo l'argomento. Esempio: $MAIUS(nomevariabile)
$MINUS
rende minuscolo l'argomento. Esempio: $MINUS(nomevariabile)
$PRIMAMAIUS
rende maiuscolo solo la prima lettera dell'argomento. Esempio: $PRIMAMAIUS(nomevariabile)
$PRIMEMAIUS
rende maiuscola la prima lettera di ogni parola dell'argomento. Esempio: $PRIMEMAIUS(nomevariabile)
$GIORNOSETTIMANA
restituisce il giorno della settimana di una data passata in argomento. Esempio: $GIORNOSETTIMANA(25 luglio 2015)
$INLETTERE
restituisce una cifra in lettere. Esempio:

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
$GENERE
restituisce una stringa diversa a seconda che la variabile analizzata sia maschile, femminile o una società. La sintassi è la seguente:
$GENERE($variabile|stringa da restituire se maschile|stringa da restituire se femminile|stringa da restituire se trattasi di società)
La stringa per le società è opzionale, se non specificata viene restituita quella per il femminile.
$variabile
può essere un nome, un nome e cognome (es. Mario Rossi), o un codice fiscale.

Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Istruzioni speciali
$GCALENDAR
Crea un link per consentire il salvataggio di un evento sul calendario di Google. La sintassi:
$GCALENDAR(data | descrizione evento | luogo | stringa personalizzata )
dove:
- data: è la data dell'evento da salvare
- descrizione evento: è la descrizione dell'evento che sarà possibile personalizzare in sede di salvataggio
- luogo: è il luogo dell'evento
- stringa personalizzata: è l'eventuale stringa che sarà inserita nel testo (se non specificata sarà la data stessa)
La data accetta anche gli operatori di cacolo +/- gg mm aa; tutti gli altri parametri sono opzionali.
Vediamo un esempio:

Data: $[nome:data;formato:data;]
Evento: $[scadenza] $GCALENDAR($data -7gg|Tra una settimana scade l'evento: $scadenza|Follonica|(salva sul calendario google\))
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Viene chiesto all'utente di inserire la data e la descrizione di un evento conservate rispettivamente nelle variabili $data e $scadenza.
L'istruzione $GCALENDAR crea il link per salvare l'evento sul calendario google anticipando però la data di sette giorni. Il carattere "\" prima della parentesi (escape) indica a redattore PDF che quella non è la parentesi di chiusura dell'istruzione $GCALENDAR ma una parentesi da inserire nel testo personalizzato (salva sul calendario google)
.
$GMAP
Inserisce una mappa o una foto Street View di Google da scrivere
$IPA_AMM
Interroga il webservice iPA WS05_AMM e restituisce il risultato come stringa formattata. Sintassi:
$IPA_AMM(codice comune | stringa formattata con risultati interrogazione)
la stringa formatta può contenere tutti i dati esposti dal webservice Dati dell'Ente preceduti dal carattere $
. Un esempio:

$IPA_AMM(c_$comune1|<p>Denominazione dell'ente: $des_amm</p><p>Responsaibile: $nome_resp $cogn_resp ($titolo_resp\)</p><p>Indirizzo: $indirizzo</p>)
Modello utilizzabile con Redattore PDF, l'app per creare le apps di Diritto Pratico
Nell'esempio viene chiesto all'utente di inserire il nome di un Comune.
Il campo sfrutta la funzione di autocompletamento attingendo alla tabella "Elenco Comuni Italiani" pubblicata sul wiki. In particolare per l'autocompletamento viene utilizzata la colonna 1 (le denominazioni) cui associare il valore della colonna 2 (i codici catastali).
Il codice del comune così individuato viene utilizzato per interrogare il webservice "Dati dell'Ente" dell'iPA. Viene poi formattata una stinga HTML contenente i dati di risposta des_amm
, nome_resp
, cogn_resp
, titolo_resp
e indirizzo
(per gli altri dati ottenibili dall'interrogazione fare riferimento alla documentazione ufficiale del webservice, paragrafo "response").
$MARGINI
Permette di personalizzare i margini del documento PDF con la sintassi: $MARGINI(margineSinistro,margineSuperiore,margineDestro,margineInferiore)
. Esempio:
$MARGINI(10,5,10,20)
$NOMEFILE
Permette di personalizzare il nome del file che sarà scaricato. Esempio: $NOMEFILE(atto di citazione $parte - $controparte)
$NOEDITOR
Consente di presentare il risultato dell'applicazione non all'interno dell'editor per la personalizzazione del testo ma su una semplice pagina web senza alcuna intestazione. Utile allorchè non sia necessaria la formazione di un documento ma solo la visualizzazione del risultato.
$PAGINANUOVA
Forza il passaggio ad una pagina nuova.
$PAGINEBIANCHE
Consente di estrarre indirizzi dalla banca dati "Pagine Bianche" formattandoli a piacimento. La sintassi:
$PAGINEBIANCHE(chiave di ricerca | città ed eventuale indirizzo di ricerca | tag html | stringa personalizzata )
dove:
- chiave di ricerca: è il nome o la denominazione del soggetto o del servizio da ricercare (es. "banche");
- città ed eventuale indirizzo di ricerca: è la città dove eseguire la ricerca; se indicato anche l'indirizzo i risultati saranno ordinati in base alla distanza dal detto indirizzo;
- tag html: eventuale tag per la suddivisione dei risultati, può valere "p" (paragrafo), "li" (lista) o "primo" per ottenere un solo risultato (il primo).
- stringa personalizzata: per formattare i risultati
ATTENZIONE: I dati sono ricavati dalla banca dati Pagine Bianche di Seat Pagine Gialle S.p.A.. Nel rispetto dei limiti di utilizzo della banca dati la funzione $PAGINEBIANCHE può ricercare ed estrarre un massimo di quindici risultati.
Come formattare i risultati di $PAGINEBIANCHE
E' possibile fornire all'istruzione $PAGINEBIANCHE il "modello" per la formattazione dei risultati. Questa è la formattazione di default:
<denominazione>, <indirizzo>, <cap> <città>
I parametri a disposizione sono quattro, <denominazione>
per il nome o la denominazione, <indirizzo>
per l'indirizzo, <cap>
per il CAP e <città>
per la città.
Ad esempio:
$PAGINEBIANCHE(banche|$indirizzoDebitore|p|<denominazione>, in persona del direttore pro tempore, con sede in <città>, <indirizzo>)
restituirà un elenco con le banche più vicine a $indirizzoDebitore utile per la notifica, ad esempio, di un presso terzi.
Qui un'app dimostrativa per la ricerca degli sportelli bancari.
$WIKI
Permette di estrarre specifici metadati dalle pagine del wiki di Diritto Pratico che lo prevedono. La sintassi:
$WIKI(nomepagina|nomemetadato)
Pagine dei Comuni
Dalle pagine dei Comuni Italiani è possibile estrarre le seguenti informazioni:
- provincia: la provincia
- cap: il codice di avviamento postale
- prefisso: il prefisso telefonico
- codcom: il codice del Comune
- gdp: il Giudice di Pace competente
- tribunale: il Tribunale competente
- cda: la Corte d'Appello competente
- indirizzo: l'ndirizzo sede del Comune
- telefono: il telefono del Comune
- email: l'indirizzo mail ordinario del Comune
- pec: l'indirizzo PEC del Comune
- fax: il numero du fax del Comune
- cf: il codice fiscale del Comune
Ad esempio:
$WIKI(Follonica|gdp)
Ritornerà Grosseto, nello specifico il Giudice di Pace competente per Follonica.
Ecco una semplice app per l'individuazione degli uffici giudiziari competenti per territorio.
Pagine degli Uffici Giudiziari
Dalle pagine degli Uffici Giudiziari è possibile estrarre le seguenti informazioni:
- distretto: il distretto di appartenenza
- comune: il Comune ove ha sede l'Ufficio Giudiziario
- cap: il codice di avviamento postale
- provincia: la provincia ove ha sede l'Ufficio Giudiziario
- cf: il codice fiscale
- codiceunivoco: Codice univoco per la fatturazione elettronica
- indirizzo: l'indirizzo
- telefono: il numero di telefono
- fax: il numero di fax
- email: l'indirizo email ordinario
- pec: l'indirizzo PEC per i depositi telematici
- spct: l'indirizzo web della pagina relativa ai servizi attivi per il PCT
Ad esempio:
$WIKI(Tribunale di Grosseto|codiceunivoco)
Ritornerà il codice univoco dell'Ufficio Spese Giustizia del Tribunale di Grosseto.
FAQ: Domande poste frequentemente
SEZIONE IN ALLESTIMENTO!
Nella modalità $NOEDITOR come posso visualizzare la finestra del codice sorgente?
Nella modalità $NOEDITOR non viene mostrato il collegamento per aprire il codice sorgente del modello nel caso in cui l'app non preveda un input da parte dell'utente (ad esempio questa per il calcolo dei termini processuali da oggi). In tal caso sarà premere CTRL+X per aprire la finestra del codice.
Posso inserire elementi grafici nel testo?
E' possibile inserire elementi grafici nel testo copiando un'immagine nella clipboard e poi incollandola nell'editor premendo CTRL+V: le immagini saranno "incorporate" nel codice html della pagina e potranno così far parte anche dei modelli. Per consentire all'utente di inserire un'immagine devi usare un campo di tipo "editor" e utilizzare un browser recente.