Macros/Writer/003/it

Descrizione
Questa macro manipola i bordi sia di un'intera tabella, sia di una singola cella.

I bordi della tabella sono accessibili tramite la proprietà ''' com.sun.star. table.TableBorder'''.

Gli elementi di questa struttura sono di due tipi:
 * Bordi (superiore, inferiore, sinistro, destro, orizzontale e verticale); i bordi sono dati dalle strutture  com.sun.star. table.BorderLine2 che "applica" degli elementi decorativi alla struttura  com.sun.star. table.BorderLine.
 * Valori Booleani (IsLeftLineValid, IsRightLineValid, IsTopLineValid, ecc.). Quando vengo scritti, se si impostano come Vero si modifica la linea di conseguenza, mentre come Falso si ignorano, nel senso che vengono mantenuti i valori correnti.

L'impostazione della spaziatura rispetto al contenuto avviene tramite la proprietà della tabella ''' com.sun.star. table.TableBorderDistances'''. Questa struttura viene manipolata con lo stesso principio, usando i valori BottomDistance, LeftDistance, ecc. e dei valori booleani per modificarne il nome.

La macro seguente viene eseguita sulla tabella selezionata in quel momento. Nella macro, vengono eseguite le seguenti opeazioni:
 * Inizia controllando che il cursore sia posizionato all'interno di una tabella;
 * l'obiettivo è quello di sostituire i bordi correnti (il parametro Is... viene impostato su True) al fine di ottenere il perimetro esterno e linee doppie orizzontali. Non si vogliono ottenere delle linee verticali. Perciò sono necessari i valori .IsVerticalLineValid = true e VerticalLine = LibONoLine, una struttura definita al fine di assegnare il valore "empty" ad una linea. Non è possibile usare semplicemente .IsVerticalLineValid = false in quanto la tabella corrente potrebbe avere delle linee verticali già definite e si desidera eliminarle. Con il parametro false le linee esistenti rimarrebbero nello stesso stato in cui si trovano;
 * lo spessore del bordo desiderato è di 0.30 cm;
 * il parametro Unisci stili di riga adiacenti viene definito tramite la proprietà CollapsingBorders della tabella.

Codice
Le distanze e lo spessore delle linee dei Bordi sono espresse in 1/100 di mm.

File ODT di esempio con la macro

 * [[Media:Example macro for table border manipulation.odt|Scaricate il file ODT di esempio che contiene questa macro]]