Macro per l'aggiornamento degli indici (come ad es. l'Indice generale)
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Descrizione
Con gli indici, ad esempio con quello generale, si presenta spesso il problema che questi non vengono aggiornati dopo che sono state effettuate delle modifiche. Si rischia di trasmettere documenti contenenti collegamenti sbagliati.
Questa macro aggiorna automaticamente i collegamenti presenti in un indice. Può essere utile collegare la macro al comando Salva documento in (
▸ ▸ ▸ ), in modo che i collegamenti siano aggiornati al momento del salvataggio del documento.Nell'esempio dell'Indice generale, immaginate di aver creato un documento con diversi Titoli (impostati con un clic del pulsante destro del mouse e
▸ , ecc). Dopodiché avete inserito un indice generale con ▸ ▸ . In seguito, se inserirete altri titoli, potrete aggiornare l'indice generale semplicemente eseguendo questa macro.Codice
In LibreOffice Basic:
Option Explicit
Sub UpdateIndexes()
'''Aggiorna gli indici, ad esempi quello generale'''
Dim i As Integer
With ThisComponent 'Elabora esclusivamente documenti di Writer
If .supportsService("com.sun.star.text.GenericTextDocument") Then
For i = 0 To .getDocumentIndexes().count - 1
.getDocumentIndexes().getByIndex(i).update()
Next i
End If
End With ' ThisComponent
End Sub ' UpdateIndexes
In Python:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import uno
def UpdateIndexes():
"""Aggiorna gli indici, ad esempio quello generale"""
thisComponent = XSCRIPTCONTEXT.getDocument()
if thisComponent.supportsService("com.sun.star.text.GenericTextDocument"):
count = thisComponent.getDocumentIndexes().getCount()
for i in range(0,count):
thisComponent.getDocumentIndexes().getByIndex(i).update()