Ogni volta che viene rilasciata una nuova versione, teniamo conto del feedback che riceviamo dai nostri clienti sull’uso generale di 4D Write Pro e dei suoi comandi. Pur rimanendo compatibili al 100%, alcuni comandi e funzioni del linguaggio si stanno evolvendo!
Alcuni comandi, la cui sintassi è stata migliorata in 4D 20 R8, consentono ora l’uso di parametri moderni come oggetti o collezioni. Altri sono diventati funzioni, il che ne facilita l’uso. Infine, sono state create alcune nuove funzioni. Tutto questo renderà il vostro codice più semplice, più generico e più facile da mantenere!
ATTRIBUTI WP GET/SET: Tutti gli attributi in un unico oggetto!
Uno dei comandi più popolari è WP SET ATTRIBUTES, perché può essere usato per tutti i tipi di obiettivi, da un singolo carattere all’intero documento. Questo comando può ora ricevere un oggetto come parametro, anziché coppie attributo-valore.
Esempio di codice
$attributes:={color: "red"; fontBold: 0; fontItalic: 1; fontSize: "16pt"}
WP SET ATTRIBUTES($range1; $attributes)
WP SET ATTRIBUTES($range2; $attributes)
WP SET ATTRIBUTES($range3; $attributes)
Allo stesso modo, è possibile ricevere in un oggetto tutti o parte degli attributi di qualsiasi intervallo o elemento. Questo è molto utile se si desidera applicare gli stessi attributi a un’altra destinazione… Se si passa un solo parametro, l’oggetto restituito conterrà tutti gli attributi, ma è possibile limitarlo usando una collezione!
$attributes:=WP Get attributes($range; ["color"; "fontItalic"])
Infine, il comando WP RESET ATTRIBUTES accetta ora un insieme invece di parametri multipli (naturalmente la sintassi precedente è ancora valida)
$attributes:=["color"; "fontBold"; "fontItalic"; "fontSize"]
WP RESET ATTRIBUTES($range1; $attributes)
WP RESET ATTRIBUTES($range2; $attributes)
WP RESET ATTRIBUTES($range3; $attributes)
WP TABLE APPEND ROW: formule, collezioni e ritorni di funzioni!
I parametri di questo comando possono ora essere di tipo formula o una formula denominata (si ricorda che una formula denominata è un oggetto contenente sia la formula che il nome della formula… si veda questo BLOG).
Quindi, i parametri possono essere passati al comando come una collezione e, soprattutto, il comando ora restituisce un elemento di riga!
$row:=WP Table append row($table; "Reference"; "Date"; "Time"; "rnd 1"; "rdn 2")
WP SET ATTRIBUTES($row; wk background color; "lightgrey")
$colItems:=[]
$colItems.push("KX-825")
$colItems.push(Formula(Current date))
$colItems.push(Formula(String(Current time; HH MM SS)))
$colItems.push(Formula(Random))
$colItems.push({name: "RND NUMBER"; formula: Formula(Random)})
$row:=WP Table append row($table; $colItems)
WP INSERISCI IMMAGINE
Quando si inserisce un elemento in un documento, è generalmente utile avere accesso immediato a questo elemento. Il comando WP INSERT PICTURE diventa quindi una funzione WP Insert picture e restituisce un elemento immagine. Ad esempio, si può desiderare di inquadrare un’immagine subito dopo averla inserita. Inoltre, questo comando può ora accettare un 4D.File come argomento!
$pictureFile:=File(Folder(fk resources folder).path+"bullet.png"; fk posix path)
$picture:=WP Insert picture(WParea; $pictureFile; wk append)
$attributes:={}
$attributes[wk margin]:="8pt"
$attributes[wk padding]:="5pt"
$attributes[wk border width]:="2pt"
$attributes[wk border style]:=wk solid
$attributes[wk border color]:="navy"
WP SET ATTRIBUTES($picture; $attributes)
DOCUMENTI e IMMAGINI
Anche i comandi WP IMPORT DOCUMENT, WP EXPORT DOCUMENT, WP INSERT PICTURE e WP Add picture sono stati modernizzati e ora accettano gli argomenti 4D.File oltre ai tipi di argomenti consueti.
$documentFile:=File("/RESOURCES/reference.4wp")
WParea:=WP Import document($documentFile)
$documentFile:=File("/DATA/CopyOfReference.4wp")
WP EXPORT DOCUMENT(WParea; $documentFile)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture3:=WP Insert picture(WParea; $pictureFile; wk append)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture:=WP Add picture(WParea; $pictureFile)
“INSERIRE IL CORPO DEL DOCUMENTO” INVECE DI “INSERIRE IL DOCUMENTO”.
Per maggiore chiarezza, il comando WP INSERT DOCUMENT è stato rinominato WP Insert document body, perché è proprio questa la sua funzione.
Quando viene chiamato, viene inserito il corpo del documento. Intestazioni, piè di pagina, immagini ancorate e caselle di testo vengono ignorate. Unica eccezione: vengono importati anche i fogli di stile!
Come si può vedere nell’esempio seguente, questo comando ora restituisce un intervallo corrispondente al corpo importato!
$file:=File("/RESOURCES/Main.4wp")
$main:=WP Import document($file)
$pictureFile:=File("/RESOURCES/bullet.png")
$sub:=WP Import document($pictureFile)
$range:=WP Insert document body($main; $sub; wk append)
ULTERIORI INFORMAZIONI SULL’INTERVALLO
Alcuni comandi erano silenziosi e non restituivano… nulla, mentre spesso un intervallo sarebbe stato molto utile. I comandi seguenti fanno proprio questo e restituiscono tutti intervalli di testo!
- WP INSERT FORMULA
- WP INSERT BREAK
- WP INSERT DOCUMENT BODY (in precedenza WP INSERT DOCUMENT)
$range:=WP Insert formula(WParea; Formula(Current date); wk append)
WP SET ATTRIBUTES($range; {color: "red"; fontItalic: 1; fontBold: 0})
BENVENUTO ALLE NUOVE FUNZIONI
Sezioni
Le sezioni hanno nomi e indici (questi sono attributi), ma accedere a queste informazioni non era facile.
Ora è un gioco da ragazzi con le nuove funzioni This.sectionIndex e This.sectionName, che possono essere inserite come formule direttamente nei vostri documenti!
Indici delle pagine
Se necessario, è ora possibile accedere all’indice delle pagine con la funzione This.pageIndex.
Ecco una rapida spiegazione: a differenza della funzione This.pageNumber, il cui valore può variare (può essere impostato o reimpostato per ogni sezione), l’indice di pagina parte sempre da 1 e dipende esclusivamente dalla paginazione.
Ad esempio, un documento può contenere tre sezioni i cui numeri di pagina iniziano sistematicamente da 1. La parte del preambolo va da 1 a 30, la parte principale da 1 a 200 e la parte dell’appendice da 1 a 8. In questo caso, l’indice di pagina inizierà a partire da 1. In questo caso, l’indice di pagina andrà da 1 a 238.
Conclusione
Non c’è dubbio che i comandi semplificati renderanno la vita più facile agli sviluppatori di 4D Write Pro e semplificheranno la revisione e la manutenzione del codice. Saremo lieti di ricevere il vostro feedback sul forum!