Guida di LibreOffice 25.2
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 servizio eredita i metodi e le proprietà dal servizio Document e spesso viene affiancato dai servizi Base e Database .
Per saperne di più sui metodi e le proprietà da utilizzare per gestire i documenti di LibreOffice, fare riferimento al Servizio Document.
Prima di usare il servizio FormDocument è necessario caricare o importare le librerie ScriptForge:
Un'istanza del servizio FormDocument può essere creata chiamando il metodo OpenFormDocument che esiste in entrambi i servizi Base e Database.
L'esempio sotto riportato usa il servizio UI per aprire un documento di Base e recuperare un formulario. Da notare che in questo esempio sia il documento di Base, sia il formulario saranno aperti e visualizzati sullo schermo.
    Dim ui As Object, oBase As Object, oFormDoc As Object
    ui = CreateScriptService("UI")
    oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
    oFormDoc = oBase.OpenFormDocument("MyFormDocument")
    ' ...
    oFormDoc.CloseDocument()
  L'esempio seguente usa il servizio Database per aprire il formulario. In questo caso, il documento di Base non sarà aperto e sarà visualizzato solamente il formulario.
    Dim oDatabase As Object, oFormDoc As Object
    oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")
  Richiamando OpenFormDocument per un formulario già aperto si attiverà la finestra del documento alla quale sarà trasferito il fuoco.
Gli esempi qui sopra possono essere portati in Python come segue:
    ui = CreateScriptService("UI")
    baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
    formDoc = baseDoc.OpenFormDocument("MyFormDocument")
    # ...
    formDoc.CloseDocument()
  
    database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    formDoc = database.OpenFormDocument("MyFormDocument")
  | Elenco dei metodi del servizio FormDocument | ||
|---|---|---|
Chiude il formulario cui fa riferimento l'istanza di FormDocument. Restituisce True se il formulario viene chiuso correttamente.
svc.CloseDocument(): bool
    oFormDoc.CloseDocument()
  
    formDoc.CloseDocument()
  Restituisce una matrice con i nomi dei formulari principali contenuti nel documento o un'istanza del servizio Form che fa riferimento a uno specifico formulario.
Chiamare questo metodo senza argomenti per ottenere una matrice di stringhe, con indice a partire da zero, contenente i nomi di tutti i formulari contenuti nel formulario.
Fornire il nome di un formulario o il suo indice come argomento per ottenere un'istanza del servizio Form corrispondente al formulario specificato.
Il documento di un formulario contiene almeno un formulario principale. Documenti con formulari più complessi possono essere composti da più formulari e da formulari secondari.
svc.Forms(): str[0..*]
svc.Forms(form: str): svc
svc.Forms(form: int): svc
form: questo argomento può essere una stringa con il nome di un formulario esistente nel documento oppure l'indice, con base a partire da zero, del formulario da restituire. Se questo argomento non è specificato, viene restituito l'elenco dei nomi di tutti i formulari disponibili.
L'esempio seguente controlla se il documento contiene un formulario denominato "MainForm":
    arrForms = oFormDoc.Forms()
    If SF_Array.Contains(arrForms, "MainForm") Then
        ' ...
    End If
  L'esempio seguente recupera il formulario denominato "MainForm" e lo posiziona sull'ultimo record:
    Dim oForm As Object
    oForm = oFormDoc.Forms("MainForm")
    oForm.MoveLast()
  
    arrForms = formDoc.Forms()
    if "MainForm" in arrForms:
        # ...
  
    form = formDoc.Forms("MainForm")
    form.MoveLast()
  Per saperne di più sui metodi e sulle proprietà dei formulari, fare riferimento alle pagine di aiuto del servizio Form.
Questo metodo invia i contenuti del formulario alla stampante predefinita o a quella impostata dal metodo SetPrinter().
Restituisce True se il documento è stato inviato correttamente alla stampante.
svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool
pages: le pagine da stampare in formato stringa. Questo argomento dovrebbe essere specificato nello stesso modo usato nell'interfaccia utente (vedere la finestra di dialogo ). Esempio: "1-4;10;15-18". Il valore predefinito è una stringa vuota "" che comporta la stampa di tutte le pagine.
copies: il numero di copie da stampare (predefinito = 1).
printbackground: specifica se deve essere stampata l'immagine di sfondo (predefinito = True).
printblankpages: specifica se devono essere stampate le pagine vuote (predefinito = False).
printevenpages: specifica se devono essere stampate le pagine pari (predefinito = True).
printoddpages: specifica se devono essere stampate le pagine dispari (predefinito = True).
printimages: specifica se devono essere stampate le immagini (predefinito = True).
    oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)
  
    formDoc.PrintOut("1-4", copies = 2, printbackground = False)