Servizio SFDocuments.FormDocument

Il servizio FormDocument consente di accedere ai formulari memorizzati nei documenti di Collabora Office Base.

In un documento di Base, i formulari esistenti possono essere visualizzati selezionando Visualizza - Formulari 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 .

tip

Per saperne di più sui metodi e le proprietà da utilizzare per gestire i documenti di Collabora Office, fare riferimento al Servizio Document.


Invocazione del servizio

Prima di usare il servizio FormDocument è 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

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

Richiamando OpenFormDocument per un formulario già aperto si attiverà la finestra del documento alla quale sarà trasferito il fuoco.


In Python

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

CloseDocument

Forms

PrintOut


CloseDocument

Chiude il formulario cui fa riferimento l'istanza di FormDocument. Restituisce True se il formulario viene chiuso correttamente.

Sintassi:

svc.CloseDocument(): bool

Esempio:

In Basic

    oFormDoc.CloseDocument()
  
In Python

    formDoc.CloseDocument()
  

Forms

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.

note

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.


Sintassi:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Parametri:

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.

Esempio:

In Basic

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

    arrForms = formDoc.Forms()
    if "MainForm" in arrForms:
        # ...
  

    form = formDoc.Forms("MainForm")
    form.MoveLast()
  
tip

Per saperne di più sui metodi e sulle proprietà dei formulari, fare riferimento alle pagine di aiuto del servizio Form.


PrintOut

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.

Sintassi:

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

Parametri:

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 File - Stampa). 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).

Esempio:

In Basic

    oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)
  
In Python

    formDoc.PrintOut("1-4", copies = 2, printbackground = False)
  
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!