SFDocuments.FormDocument-tjeneste

Tjenesten FormDocument giver tilgang til formulardokumenter gemt i LibreOffice Base-dokumenter.

I et Base-dokument kan eksisterende formulardokumenter ses ved at vælge Vis ▸ Formularer i brugerfladen. Hvert formulardokument kan være sammensat af en eller flere formularer, inklusive hovedformularen og andre underformularer.

Denne tjeneste arver metoder og egenskaber fra Document-tjenesten og bruges ofte sammen med tjenesterne Base og Database.

tip

Se tjenesten Document for at lære mere om, hvordan metoder og egenskaber kan bruges til at administrere LibreOffice-dokumenter.


Kald af tjenester

Før du bruger tjenesten FormDocument skal biblioteket ScriptForge være indlæst eller importeret:

note

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService


I Basic

En instans af FormDocument-tjenesten kan oprettes ved at kalde metoden OpenFormDocument, som findes i både Base-tjenesten og Database-tjenesten.

Eksemplet nedenfor bruger tjenesten UI (brugerflade) til at åbne et Base-dokument og derefter hente et formulardokument. Bemærk at i dette eksempel vil både Base-dokumentet og formulardokumentet blive åbnet og vist på skærmen.


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

Det følgende eksempel bruger Database-tjenesten til at åbne et formulardokument. I dette tilfælde vil Base-filen ikke blive åbnet, og kun formulardokumentet vil blive vist.


    Dim oDatabase As Object, oFormDoc As Object
    oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")
  
note

Kald af OpenFormDocument for at formulardokument som allerede er åbent vil aktivere dokumentvinduet og bringe det i fokus.


I Python

Eksemplerne ovenfor kan oversættes til Python som følger:


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

Liste over metoder i tjenesten FormDocument

CloseDocument
Forms

GetDatabase

PrintOut


CloseDocument

Lukker det formulardokument, der refereres til af FormDocument-instansen. Returnerer True hvis det lykkedes at lukke formulardokumentet.

Syntaks:

svc.CloseDocument(): bool

Eksempel:

I Basic

    oFormDoc.CloseDocument()
  
I Python

    formDoc.CloseDocument()
  

Forms

Returnerer enten et array med navnene på hovedformularerne i formulardokumentet, eller en instans af Form-tjenesten, som referer til en specifik formular.

Kald denne metode uden argumenter for at få et streng-array med startindeks 0, som indeholder navnene på alle formularer indeholdt i formulardokumentet.

Angiv navn eller indeks på en formular som argument, for at modtage en instans af Form-tjenesten, der svarer til den den angivne formular.

note

Et formulardokument har mindst én hovedformular. Mere komplekse formulardokumenter kan være sammensat af mere end én formular og underformularer.


Syntaks:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Parametre:

form: (formular) Dette argument kan være enten en streng med navnet på en formular, som findes i formulardokumentet, eller argumentet kan være et indeks, begyndende med 0, på den formular som skal returnereres. Hvis dette argument ikke angives, så returneres et array med navne på alle tilgængelige formularer.

Eksempel:

I Basic

Det følgende eksempel undersøger, om formulardokumentet indeholder en formular med navnet "MainForm":


    arrForms = oFormDoc.Forms()
    If SF_Array.Contains(arrForms, "MainForm") Then
        ' ...
    End If
  

Nedenstående eksempel henter formularen med navnet "MainForm" og flytter den til sidste post:


    Dim oForm As Object
    oForm = oFormDoc.Forms("MainForm")
    oForm.MoveLast()
  
I Python

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

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

For at lære mere om formular-metoder og -egenskaber, se hjælpesiden for Form-tjenesten.


GetDatabase

Returnerer en instans af SFDatabases.Database, der giver adgang til udførelse af SQL-kommandoer på den database, den aktuelle formular er knyttet til og/eller gemt i det aktuelle dokument.

Hver formular har sin engen database-forbindelse, undtagen i Base-dokumenter, hvor de alle deler den samme forbindelse.

Syntaks:

svc.GetDatabase(opt user: str, opt password: str): svc

Parametre:

bruger, adgangskode: De frivillige parametre i log-in'et (Default = "").

Eksempel:


      Dim myDb As Object ' SFDatabases.Database
      Set myDb = oForm.GetDatabase()
   
I Python

      db = form.GetDatabase()  # SFDatabases.Database
   

PrintOut

Denne metode sender indholdet af formulardokumentet til standardprinteren eller til printeren defineret af SetPrinter()-metoden.

Returnerer True hvis det lykkedes at sende dokumentet til printeren.

Syntaks:

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

Parametre:

pages: Siderne der skal udskrives, angivet som en streng. Dette argument angives på samme måde som i brugerfladen (se Filer ▸ Udskriv-dialogen). Eksempel: "1-4;10;15-18". Standardværdien er en tom streng, "", med den virkning at alle sider udskrives.

copies: Antal kopier, der skal printes (standard = 1).

printbackground: Angiver om baggrundsbilledet skal printes (standard = True).

printblankpages: Angiver om tomme sider skal printes (standard = False).

printevenpages: Angiver om lige sider skal printes (standard = True).

printoddpages: Angiver om ulige sider skal printes (standard = True).

printimages: Angiver om billeder skal printes (standard = True).

Eksempel:

I Basic

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

    formDoc.PrintOut("1-4", copies = 2, printbackground = False)
  
warning

Alle ScriptForge Basic-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


Støt os venligst!