A questo punto si dovrebbe avere familiarità con il comando WP Get position . Per lo meno ne avete letto in questo post. Introdotto con la versione 17, consente di ottenere informazioni sulla posizione degli elementi all’interno dei documenti.
4D v17 R4 rende le cose più piccanti… ora restituisce anche le coordinate!
nuovi attributi
Il comando WP Get position restituisce due nuovi attributi: bounds e rangeHeight.
L’attributo bounds è un oggetto che descrive il rettangolo che circonda un intervallo, in base al suo tipo. Il tipo dell’intervallo passato può essere “tipo predefinito” (caratteri), “tipo paragrafo”, “tipo tabella” o “tipo immagine”, come mostrato di seguito:
L’attributo bounds ha dei propri attributi: left, top, right e bottom. Sono numerici ed espressi nell’unità di misura del layout corrente (mm, cm, in, pt o px).
Esempio
Questa funzione consente di impostare facilmente design di pagina complessi. Ad esempio, quando si utilizzano i modelli può essere necessario confrontare le dimensioni di un blocco da inserire in base allo spazio disponibile alla fine della pagina corrente. Se lo spazio non è sufficiente( ad esempio “5 cm”), si può decidere di inserire prima un’interruzione di pagina. È semplice e facile. Ecco come procedere:
$range:=WP Get selection(WParea)
WP SET ATTRIBUTES (WParea;wk layout unit;wk unit cm) // change the unit to "cm"
$position :=WP Get position
($range ;
wk 4D Write Pro layout) // call the WP Get position function
$heightInCm:=$position.rangeHeight // read the height in "cm"
If ($heightInCm<5)
// insert a break…
End if
Ecco il contenuto dettagliato dell’oggetto restituito
{ "section": 1, "page": 1, "column": 1, "line": 11, "position": 49, "bounds": // New! { "left": 1.52, "top": 10.65, "right": 18.66, "bottom": 12.56, } rangeHeight: 1.9 // New! }
Guardate la funzione in azione con questo database dimostrativo.