La libreria ScriptForge
       
  
    
    Aprire  e selezionare il contenitore .
 
   
 
    Le librerie ScriptForge costituiscono una collezione estensibile di risorse per la scrittura di macro per LibreOffice e possono essere invocate dalle macro in Basic o dagli script in Python.
  
    
• Le macro in Basic richiedono il caricamento della libreria ScriptForge usando la seguente istruzione:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Gli script in Python richiedono un'importazione dal modulo scriptforge:
from scriptforge import CreateScriptService
 
  
  
  Invocazione dei servizi di ScriptForge
  I moduli e le classi descritte sono invocate dagli script dell'utente come "Servizi". A tal fine è stato progettato, per ciascun linguaggio, un costruttore generico di questi servizi.
  Il metodo Dispose è disponibile in tutti i servizi e dovrebbe essere chiamato per liberare risorse dopo averli utilizzati.
  
  
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Set oSvc = CreateScriptService("servicename"[, arg0, arg1, ...])
    ' ...
    oSvc.Dispose()
  
    from scriptforge import CreateScriptService
    svc = CreateScriptService('servicename'[, arg0, arg1, ...])
    # ...
    svc.Dispose()
  
Servizi forniti dalle librerie ScriptForge
  
    
      
  
  
  Fornisce una raccolta di metodi per manipolare e trasformare matrici a una dimensione (vettori) e a due dimensioni (matrici). Questi comprendono: operazioni di inserimento, ordinamento, importazione da ed esportazione in file di testo.
  Le matrici con più di due dimensioni non possono essere usate con i metodi di questo servizio, con l'unica eccezione del metodo CountDims che accetta matrici con qualsiasi numero di dimensioni.
 
    
    
      
  
  
  Il servizio Base fornisce numerosi metodi e proprietà per facilitare la gestione e la manipolazione dei documenti di LibreOffice Base.
  Questo servizio è strettamente connesso al servizio Document, che fornisce metodi generici per manipolare documenti di LibreOffice, compresi quelli di Base. Perciò, il servizio Base estende il servizio Document e fornisce metodi aggiuntivi specifici per i documenti di Base, consentendo all'utente di:
  
    - 
        Ottenere l'accesso al database contenuto in un documento di Base. 
- 
        Aprire i formulari memorizzati in un documento di Base. 
- 
        Controlla se un formulario di un documento di Base è attualmente caricato. 
 
    
    
      
    
  Il servizio ScriptForge.Basic propone una raccolta di metodi di LibreOffice Basic da eseguire in ambiente Python. I metodi del servizio Basic riproducono esattamente la sintassi e il comportamento delle funzioni incorporate in Basic.
 
    
    
      
    
    La libreria condivisa SFDocuments fornisce una serie di metodi e proprietà che facilitano la gestione e la manipolazione dei documenti di LibreOffice.
    Il servizio SFDocuments.Calc è una sottoclasse del servizio SFDocuments.Document. Potete accedere a tutti i metodi e le proprietà definiti per il servizio Document anche usando un'istanza del servizio Calc.
    Il servizio Calc è mirato per:
    
        - 
            Manipolare i fogli all'interno di un documento di Calc (copiare, inserire, spostare, ecc.) 
- 
            Scambiare dati tra strutture di dati in Basic e aree di Calc 
- 
            Copiare e importare grandi quantità di dati 
 
    
    
      
    
    Il servizio Chart fornisce un insieme di proprietà e metodi per gestire i grafici nei documenti di Calc. Con questo servizio potete:
    
      - 
        Accedere agli oggetti di tipo grafico nei documenti di Calc e manipolare le loro proprietà. 
- 
        Creare e inserire nuovi grafici in un documento di Calc. 
- 
        Esportare i grafici in file di tipo immagine. 
 
    
    
      
    
    Il servizio Database fornisce l'accesso sia ai database incorporati, sia a quelli descritti nei documenti di Base. Questo servizio fornisce metodi per:
    
      - 
        Ottenere l'accesso ai dati nelle tabelle del database. 
- 
        Avviare ricerche con SELECT ed eseguire funzioni aggregate. 
- 
        Eseguire istruzioni SQL come INSERT, UPDATE, DELETE, ecc. 
 
    
    
      
    
    Il servizio Dataset è usato per rappresentare in formato tabulare i dati prodotti da un database. Con questo servizio è possibile:
    
      - 
        Navigare attraverso e accedere ai dati di un insieme di dati. 
- 
        Aggiornare, inserire ed eliminare record in un insieme di dati. 
 
    
    
      
  
  
  Il servizio Datasheet consente di visualizzare i contenuti delle tabelle di un database, così come i risultati delle ricerche e delle istruzioni SQL usando la Struttura dati di Base. Inoltre, questo servizio permette di:
  
    - 
        Aggiungere menu personalizzati alla struttura dati. 
- 
        Accedere ai valori in una posizione specifica della struttura dati. 
- 
        Posizionare il cursore in una specifica cella della struttura dati. 
 
    
    
      
  
  Il servizio Dialog contribuisce alla gestione delle finestre di dialogo create con l'Editor delle finestre di Basic o di quelle create al volo. Ogni istanza della classe corrente rappresenta una singola finestra di dialogo visualizzata all'utente.
 
    
    
      
   
  
  Il servizio DialogControl gestisce i controlli appartenenti a una finestra di dialogo definita dall'Editor delle finestre di Basic. Ogni istanza del servizio corrente rappresenta un singolo controllo all'interno della finestra di dialogo.
  
  Lo scopo è quello di ottenere ed impostare i valori visualizzati dai controlli della finestra di dialogo. La formattazione è accessibile tramite le proprietà XControlModel e XControlView.
  Fate attenzione che il contenuto dell'unica proprietà DialogControl.Value varia in base al tipo di controllo.
  Un'attenzione particolare è rivolta ai controlli del tipo ad albero. È facile popolare un albero, ramo per ramo, o con un insieme di rami contemporaneamente. Il popolamento di un controllo ad albero può essere eseguito staticamente o dinamicamente.
 
    
    
      
  
  
  Un dizionario è una raccolta di coppie chiave-elemento
  
 
    
    
      
    
  La libreria SFDocuments fornisce metodi e proprietà per agevolare la gestione e la modifica dei documenti di LibreOffice.
  I metodi applicabili a tutti i tipi di documento (documenti di testo, fogli elettronici, presentazioni, ecc.) sono forniti dal servizio SFDocuments.Document. Alcuni esempi sono:
  
  - 
    Apertura, chiusura e salvataggio dei documenti 
- 
    Accesso a proprietà standard o personalizzate dei documenti 
 
    
    
      
  
  
  Il servizio Exception è una raccolta di metodi di supporto al debug del codice degli script in Basic e Python e alla gestione degli errori negli script in Basic.
  Negli script in Basic, quando si verifica un errore in fase di run-time, i metodi e le proprietà del servizio Exception consentono di identificare l'errore e di gestirlo.
 
    
    
      
  
  Il servizio FileSystem comprende routine per gestire i file e le cartelle. Di seguito sono riportati alcuni esempi delle funzionalità fornite da questo servizio:
  
    - 
      Verifica se un file o una cartella esiste. 
- 
      Crea e cancella cartelle e file. 
- 
      Avvia i riquadri di dialogo per aprire/salvare file. 
- 
      Accede all'elenco dei file in una cartella, ecc. 
 
    
    
      
  
  Il servizio Form fornisce metodi e proprietà per gestire i formulari nei documenti di LibreOffice. Questo servizio supporta i formulari dei documenti di Base, Calc e Writer e consente di:
  
    - 
        Aprire e attivare formulari. 
- 
        Navigare i record mostrati dal formulario. 
- 
        Ottenere l'accesso ai controlli presenti nel formulario. 
- 
        Ottenere l'accesso ai formulari secondari all'interno di un formulario principale. 
 
    
    
      
  
  Il servizio FormControl fornisce accesso ai controlli che appartengono a un formulario, un formulario secondario o a un controllo tabella di un documento contenente formulari (FormDocument). Ogni istanza del servizio FormControl si riferisce a un singolo controllo del formulario. Questo servizio permette agli utenti di:
  
    - 
        Ottenere e impostare le proprietà del controllo rappresentato dall'istanza di FormControl. 
- 
        Accedere al valore corrente visualizzato dal controllo. 
- 
        Impostare lo stato attivo sul controllo desiderato. 
 
    
    
      
    
    Il servizio FormDocument consente di accedere ai formulari memorizzati nei documenti di LibreOffice Base.
    In un documento di Base, i formulari esistenti possono essere visualizzati selezionando  nell'interfaccia utente. Ogni formulario può essere composto da uno o più formulari, compresi quello principale e altri secondari.
   
    
    
      
    
    Questo sevizio fornisce una serie di metodi relativi alla traduzione di stringhe con un impatto minimo sul codice sorgente del programma. I metodi forniti dal servizio L10N possono essere usati principalmente per:
    
      - 
        Creare file POT che possono essere usati come modelli per la traduzione di tutte le stringhe del programma. 
- 
        Ottenere in fase di esecuzione le stringhe tradotte nella lingua definita nella proprietà Locale. 
 
    
    
      
    
    Il servizio Menu può essere usato per creare ed eliminare dei menu dalla barra dei menu della finestra dei documenti di LibreOffice. Ogni voce di menu può essere associata a uno script o a un comando UNO. Questo servizio fornisce le seguenti capacità:
    
      - 
        Creazione di menu con voci, caselle di controllo, pulsanti di scelta e separatori personalizzati. 
- 
        Decorazione delle voci di menu con icone e suggerimenti. 
 
    
    
      
    
  Il servizio Platform fornisce una raccolta di proprietà relative all'ambiente e al contesto di esecuzione correnti, come:
  
      - 
          La piattaforma hardware (architettura, numero di CPU, tipo di macchina, e via discorrendo) 
- 
          Informazioni sul sistema operativo (tipo, versione, ecc.) 
- 
          La versione di LibreOffice 
- 
          Il nome utente in uso 
 
    
    
      
    
    Il servizio PopupMenu può essere usato per creare menu a comparsa che possono essere associati ad eventi o eseguiti da script. Questo servizio fornisce le seguenti funzionalità:
    
      - 
        creazione di menu a comparsa con voci personalizzate, caselle di controllo e pulsanti di scelta; 
- 
        decorazione delle voci di menu con icone e suggerimenti. 
 
    
    
      
  
  Il servizio Region fornisce una raccolta di proprietà e metodi per gestire aspetti della programmazione legati alle impostazioni locali e regionali, come ad esempio:
  
    - 
      Accesso alle impostazioni locali e dipendenti dalla regione corrente come la formattazione dei numeri, delle valute e i fusi orari. 
- 
      Conversione dei fusi orari e calcolo degli scostamenti dell'ora legale (DST). 
- 
      Trasformazione dei numeri in testi in qualsiasi delle lingue supportate. 
 
    
    
      
  
  
  Lo scopo principale del modulo Services è quello di fornire l'accesso al metodo CreateScriptService, che può essere chiamato negli script dell'utente per istanziare servizi implementati usando il framework ScriptForge.
 
    
    
      
    
    
    Il servizio Session raggruppa diversi metodi di uso generale relativi a:
    
   
    
    
      
  
  Il servizio String fornisce una raccolta di metodi per l'eleborazione delle stringhe. Questi metodi possono essere usati per:
  
    - 
      Convalidare il contenuto delle stringhe 
- 
      Formattare le stringhe rimuovendo spazi, giustificandole o adattando i loro contenuti 
- 
      Usare le espressioni regolari per cercare e sostituire parti delle stringhe 
- 
      Applicare algoritmi di hash alle stringhe, ecc. 
 
    
    
      
  
  Il servizio TextStream è usato per leggere e scrivere sequenzialmente da file aperti o creati usando il servizio ScriptForge.FileSystem.
  I metodi OpenTextFile e CreateTextFile del servizio FileSystem restituiscono un'istanza del servizio TextStream.
 
    
    
      
  
  Il servizio Timer misura il tempo impiegato per eseguire gli script dell'utente.
  Un Timer misura le durate. Può essere:
  
    - 
      Avviato, per indicare quando iniziare la misurazione del tempo. 
- 
      Sospeso, per mettere in pausa la misurazione del tempo di esecuzione. 
- 
      Riavviato, per continuare a tracciare il tempo di esecuzione dopo che il Timer è stato sospeso. 
- 
      Ripristinato, per cancellare le misurazioni precedenti e far ripartire il Timer da zero. 
 
    
    
      
    
    Il servizio Toolbar consente di recuperare informazioni relative alle barre degli strumenti disponibili in una specifica finestra del documento. Con questo servizio è possibile:
    
   
    
    
      
    
    Il servizio ToolbarButton consente di recuperare informazioni relative ai pulsanti disponibili in una determinata barra degli strumenti. Con questo servizio è possibile:
    
   
    
    
      
   
Il servizio UI (Interfaccia utente) semplifica l'identificazione e la manipolazione delle diverse finestre che compongono l'intera applicazione LibreOffice:
   - 
      Selezione delle finestre 
- 
      Spostamento e ridimensionamento delle finestre 
- 
      Impostazioni della barra di stato 
- 
      Visualizzazione di una barra di avanzamento mobile 
- 
      Creazione di nuove finestre 
- 
      Accesso ai "documenti" sottostanti 
 
    
    
      
  
  Il servizio UnitTest fornisce un framework per automatizzare i test unitari usando il linguaggio Basic, comprende le funzionalità per:
  
    - 
      Aggregare i casi da verificare in suite di test e test unitari. 
- 
      Condividere il codice di impostazione e di terminazione tra i vari casi sottoposti a test. 
- 
      Visualizzare i risultati dei test usando la Console. 
 
    
    
      
    
    La libreria condivisa SFDocuments fornisce una serie di metodi e proprietà che facilitano la gestione e il trattamento dei documenti LibreOffice.
    Alcuni metodi sono generici per tutti i tipi di documenti e sono ereditati dal modulo SF_Document, altri metodi invece sono specifici per i documenti Writer e sono definiti nel modulo SF_Writer.
    
 
    
    
    Nota: ulteriori moduli di ScriptForge, che non sono qui descritti, sono riservati per uso interno. Il loro contenuto è soggetto a modifiche senza preavviso.
    
      
Tutte le routine e gli identificatori Basic di ScriptForge che iniziano con un carattere di sottolineatura "_" sono riservati per uso interno. Non è previsto il loro utilizzo nelle macro in Basic o negli script in Python.