Servizio SFDocuments.Base

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:

tip

Fate riferimento a Servizio Document per imparare di più sui metodi e le proprietà da utilizzare per gestire i documenti di LibreOffice.


Invocare il servizio

Prima di usare il servizio Base è necessario caricare o importare le librerie ScriptForge:

note

• 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


In Basic

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")
  
In Python

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")
  
note

L'uso della sottostringa "SFDocuments." dell'esempio precedente è opzionale.


Elenco dei metodi del servizio Base

CloseFormDocument
FormDocuments
Forms

GetDatabase
IsLoaded
OpenFormDocument

PrintOut
SetPrinter


CloseFormDocument

Chiude il formulario indicato. Restituisce True se la chiusura va a buon fine.

Sintassi:

svc.CloseFormDocument(formdocument: str): bool

Parametri:

formdocument: il nome del FormDocument da chiudere, espresso come stringa che distingue tra maiuscole e minuscole.

Esempio:

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:

In Basic

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
In Python

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

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.

Sintassi:

svc.FormDocuments(): str[0..*]

Esempio:

Il frammento di codice sottostante stampa i nomi di tutti i formulari del documento corrente di Base.

In Basic

    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
  
In Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  
tip

Per saperne di più sui formulari, fate riferimento alle pagine di aiuto del servizio Form.


Forms

A seconda dei parametri forniti questo metodo restituirà:

Sintassi:

svc.Forms(formdocument: str): str[0..*]

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

Parametri:

formdocument: il nome di un documento formulario valido, espresso come stringa che distingue tra maiuscole e minuscole.

form: il nome o il numero indice del formulario memorizzato nel documento formulario. Se l'argomento è assente, il metodo restituirà l'elenco dei nomi di tutti i formulari disponibili nel documento formulario.

note

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.


Esempio:

La prima riga dell'esempio che segue restituisce un elenco dei formulari nel documento formulario "myFormDocument". La seconda riga restituisce un'istanza del servizio Form che rappresenta il formulario "myForm".

In Basic

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
In Python

    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  

GetDatabase

Restituisce un'istanza del servizio Database che permette l'esecuzione di comandi SQL sul database definito e/o memorizzato nel documento di Base corrente

Sintassi:

svc.GetDatabase(user: str = '', password: str = ''): svc

Parametri:

user, password: parametri di accesso opzionali espressi come stringa. Il valore predefinito di entrambi i parametri è una stringa vuota "".

Esempio:

In Basic

    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()
  
In Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    # ... Esegue query, comandi SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Restituisce True se il FormDocument specificato è attualmente aperto.

Sintassi:

svc.IsLoaded(formdocument: str): bool

Parametri:

formdocument: il nome di un FormDocument da controllare, espresso come stringa che distingue tra maiuscole e minuscole.

Esempio:

In Basic

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
In Python

    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  

OpenFormDocument

Apre il FormDocument specificato, sia in modo normale sia in modo bozza.

Se il documento formulario è già aperto, viene attivato senza modificare il suo modo. Il metodo restituisce True se il documento formulario può essere aperto.

Sintassi:

svc.OpenFormDocument(formdocument: str, designmode: bool = False): bool

Parametri:

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.

Esempio:

In Basic

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:


    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:


    oDoc.OpenFormDocument("myFolder/myFormDocument")
  
In Python

    doc.OpenFormDocument("myFormDocument")
  

    doc.OpenFormDocument("myFolder/myFormDocument")
  

PrintOut

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.

Sintassi:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

Parametri:

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.

Esempio:

In Basic

    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
In Python

    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  

SetPrinter

Definisce le opzioni della stampante per un formulario. Il documento del formulario deve essere aperto.

Il metodo restituisce True se eseguito correttamente.

Sintassi:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

Parametri:

formdocument: il nome valido di un formulario in formato stringa che distingue minuscole e maiuscole.

printer: il nome della coda della stampante su cui stampare. Se assente, viene impostata la stampante predefinita.

orientation: uno tra PORTRAIT (verticale) o LANDSCAPE (orizzontale). Se non è presente, le impostazioni della stampante restano immutate.

paperformat: specifica il formato della carta come stringa il cui valore può essere A3, A4, A5, LETTER, LEGAL o TABLOID. Se assente, non viene cambiato.

Esempio:

In Basic

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
In Python

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
warning

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.


Sosteneteci!