Guida di LibreOffice 25.2
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.
Fare riferimento a Servizio Document per imparare di più sui metodi e le proprietà da utilizzare per gestire i documenti di LibreOffice.
Prima di usare il servizio Base è necessario caricare o importare la libreria ScriptForge:
Il servizio Base può essere invocato in diversi modi. Il frammento di codice sottostante usa il metodo CreateBaseDocument del servizio UI per creare un nuovo file di Base.
Fate attenzione che in tutti gli esempi l'oggetto oDoc è un'istanza del servizio Base.
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  Il servizio Base può essere istanziato anche aprendo un file di Base esistente, come mostrato qui sotto:
    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  Se un documento di Base è già aperto, è possibile istanziare il servizio Base direttamente:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  Gli esempi qui sopra possono essere portati in Python come segue:
    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  
    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  
    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  L'uso della sottostringa "SFDocuments." dell'esempio precedente è opzionale.
| Elenco dei metodi del servizio Base | ||
|---|---|---|
Chiude il formulario indicato. Restituisce True se la chiusura va a buon fine.
Il metodo CloseFormDocument è deprecato dalla versione 7.6 di LibreOffice. Anche se è ancora disponibile, potrebbe essere rimosso dal servizio Base in una delle prossime versioni. Al suo posto usare il metodo CloseDocument del servizio FormDocument.
svc.CloseFormDocument(formdocument: str): bool
formdocument: il nome del FormDocument da chiudere, espresso come stringa che distingue tra maiuscole e minuscole.
Quando i formulari sono organizzati in cartelle, diventa necessario includere il nome della cartella per specificare il formulario da aprire, come illustrato dagli esempi seguenti:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Restituisce una matrice con i nomi completi (percorso/nome) di tutti i formulari del documento di Base. La matrice inizia con indice zero e contiene stringhe.
svc.FormDocuments(): str[0..*]
Il frammento di codice sottostante stampa i nomi di tutti i formulari del documento corrente di Base.
    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  Per saperne di più sui formulari, fare riferimento alla pagina della guida del servizio ScriptForge.FormDocument.
A seconda dei parametri forniti questo metodo restituirà:
Una matrice, che inizia dall'indice zero, con i nomi di tutti i formulari contenuti in un formulario (se l'argomento Form è assente)
Un oggetto SFDocuments.Form che rappresenta il formulario specificato nell'argomento Form.
Il metodo Forms è deprecato dalla versione 7.6 di LibreOffice. Anche se è ancora disponibile, potrebbe essere rimosso dal servizio Base in una delle prossime versioni. Al suo posto usare il metodo Forms del servizio FormDocument.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
formdocument: il nome di un formulario valido, espresso come stringa che distingue tra maiuscole e minuscole.
form: il nome o il numero indice del formulario memorizzato nel documento. Se l'argomento è assente, il metodo restituirà l'elenco dei nomi di tutti i formulari disponibili nel documento.
Anche se è possibile usare il numero indice per fare riferimento ai formulari, questo è raccomandato solo quando nel documento è presente un solo formulario. Se ce ne sono due o più, è preferibile usare invece il nome del formulario.
La prima riga dell'esempio che segue restituisce un elenco dei formulari nel documento "myFormDocument". La seconda riga restituisce un'istanza del servizio Form che rappresenta il formulario "myForm".
    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  Restituisce un'istanza del servizio Database che permette l'esecuzione di comandi SQL sul database definito e/o memorizzato nel documento di Base corrente
svc.GetDatabase(user: str = '', password: str = ''): svc
user, password: parametri di accesso opzionali espressi come stringa. Il valore predefinito di entrambi i parametri è una stringa vuota "".
    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Utente e password sono fornite di seguito, se necessarie
    Set myDatabase = myDoc.GetDatabase()
    ' Esegue ricerche, istruzioni SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    # .... Esegue ricerche, istruzioni SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Restituisce True se il FormDocument specificato è attualmente aperto.
svc.IsLoaded(formdocument: str): bool
formdocument: il nome di un FormDocument da controllare, espresso come stringa che distingue tra maiuscole e minuscole.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Apre il FormDocumentspecificato o in modo normale o in modo progettazione. Questo metodo restituisce un'istanza del servizio FormDocument corrispondente al formulario specificato.
Se il formulario è già aperto, viene attivato senza modificarne il modo.
Se il formulario specificato non esiste, viene restituito Nothing.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
formDocument: il nome del FormDocument da aprire, espresso come stringa che distingue tra maiuscole e minuscole.
designmode: se questo argomento è True il FormDocument sarà aperto in modo bozza.
La maggior parte dei formulari è memorizzata nella radice dei documenti di Base e può essere aperta usando semplicemente il loro nome, come nell'esempio seguente:
    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  Quando i formulari sono organizzati in cartelle, diventa necessario includere il nome della cartella per specificare il formulario da aprire, come illustrato dal seguente esempio:
    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Apre la finestra Struttura dati della ricerca specificata e restituisce un'istanza del servizio Datasheet.
La finestra può essere aperta sia in modo normale che in modo struttura.
Se la ricerca è già aperta, la sua finestra Struttura dati sarà resa attiva.
La chiusura del documento di Base comporterà anche la chiusura della finestra Struttura dati.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: il nome di una ricerca esistente in formato stringa con distinzione tra maiuscole e minuscole.
designmode: se questo argomento è impostato su True la ricerca viene aperta in modo struttura. Altrimenti è aperta in modo normale (predefinito = False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Apre la finestra Struttura dati della tabella specificata e restituisce un'istanza del servizio Datasheet.
La tabella può essere aperta sia in modo normale che in modo struttura.
Se la tabella è già aperta, la sua finestra Struttura dati sarà resa attiva.
La chiusura del documento di Base comporterà anche la chiusura della finestra Struttura dati.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: il nome di una tabella esistente in formato stringa con distinzione tra maiuscole e minuscole.
designmode: se questo argomento è impostato a True la tabella viene aperta in modo struttura. Altrimenti è aperta in modo normale (predefinito = False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    Questo metodo invia il contenuto del formulario indicato alla stampante predefinita o a quella precisata dal metodo SetPrinter().
Restituisce True se il documento è stato stampato correttamente.
Il metodo PrintOut è deprecato dalla versione 7.6 di LibreOffice. Anche se è ancora disponibile, potrebbe essere rimosso dal servizio Base in una delle prossime versioni. Al suo posto usare il metodo PrintOut del servizio FormDocument.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
formdocument: il nome valido di un formulario in formato stringa che distingue minuscole e maiuscole. Il documento del formulario deve essere aperto. Viene attivato dal metodo.
pages: le pagine da stampare in formato stringa, come nell'interfaccia utente. Esempio "1-4;10;15-18". L'impostazione predefinita è tutte le pagine.
copies: il numero di copie. Il valore predefinito è 1.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Definisce le opzioni della stampante per un formulario. Il documento del formulario deve essere aperto.
Il metodo restituisce True se eseguito correttamente.
Il metodo SetPrinter è deprecato dalla versione 7.6 di LibreOffice. Anche se è ancora disponibile, potrebbe essere rimosso dal servizio Base in una delle prossime versioni. Al suo posto usare il metodo SetPrinter del servizio FormDocument.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: il nome valido di un formulario in formato stringa che distingue minuscole e maiuscole.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')