Storitev SFDocuments.FormDocument

Storitev FormDocument omogoča dostop do dokumentov obrazcev, shranjenih v dokumentih LibreOffice Base.

V dokumentu Base lahko pogledate obstoječe dokumente obrazca z izbiro Pogled – Obrazci v uporabniškem vmesniku. Vsak dokument obrazca je lahko sestavljen iz enega ali več obrazcev, vključno z glavnim obrazcem ter drugimi podobrazci.

Ta storitev deduje metode in lastnosti storitve Document in je pogosto uporabljena skupaj s storitvama Base in Database.

tip

Preberite si opis storitve Document, da izveste več o metodah in lastnostih, ki jih lahko uporabite za upravljanje dokumentov LibreOffice.


Priklic storitve

Pred uporabo storitve FormDocument je potrebno naložiti ali uvoziti knjižnico ScriptForge:

note

• Za makre Basic mora biti naložena knjižnica ScriptForge z naslednjim ukazom:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Za skripte Python mora biti opravljen uvoz iz modula scriptforge:
from scriptforge import CreateScriptService


V Basicu

Instanco storitve FormDocument lahko ustvarite s klicem metode OpenFormDocument, ki obstaja v storitvah Base in Database.

Spodnji primer uporablja storitev UI za odprtje dokumenta Base in nato za pridobitev dokumenta obrazca. Upoštevajte, da se v tem primeru odpreta in na zaslonu prikažeta tako dokument Base kot dokument obrazca.


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

Spodnji primer uporablja storitev Database za odprtje dokumenta obrazca. Upoštevajte, da se v tem primeru datoteka ne bo odprla in na zaslonu bo prikazan samo dokument obrazca.


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

S klicem OpenFormDocument za dokument obrazca, ki je že odprt, aktivirate okno dokumenta in ga postavite v ospredje (dobi pozornost).


V Pythonu

Zgornje primere lahko prevedemo v Python na sledeč način:


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

Seznam metod storitve FormDocument

CloseDocument
Forms

GetDatabase

PrintOut


CloseDocument

Zapre dokument obrazca, na katerega se sklicuje instanca FormDocument. Vrne True, če je zapiranje dokumenta obrazca uspelo.

Skladnja:

svc.CloseDocument(): bool

Primer:

V Basicu

    oFormDoc.CloseDocument()
  
V Pythonu

    formDoc.CloseDocument()
  

Forms

Vrne polje z imeni glavnih obrazcev, vsebovanih v dokumentu obrazca, ali instanco storitve Form, ki se sklicuje na določen obrazec.

To metodo kličite brez argumentov, če želite dobiti ničelno polje nizov z imeni vseh obrazcev, vsebovanih v dokumentu obrazca.

Kot argument navedite ime obrazca ali njegov indeks, da dobite instanco storitve Form, ki ustreza navedenemu obrazcu.

note

Dokument obrazca vsebuje vsaj en glavni obrazec. Zapletenejše dokumente obrazcev lahko sestavlja več obrazcev in podobrazcev.


Skladnja:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Parametri:

form: ta argument je lahko niz z imenom obrazca, ki obstaja v dokumentu obrazca, ali indeks obrazca, ki bo vrnjen, ki se šteje od nič naprej. Če ta argument ni določen, vrne polje z imeni vseh razpoložljivih obrazcev.

Primer:

V Basicu

Naslednji primer preveri, če dokument obrazca vsebuje obrazec z imenom »MainForm«:


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

Spodnji primer pridobi obrazec z imenom »MainForm« in ga premakne na zadnji zapis:


    Dim oForm As Object
    oForm = oFormDoc.Forms("MainForm")
    oForm.MoveLast()
  
V Pythonu

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

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

Če želite izvedeti več o metodah in lastnostih obrazca, glejte stran pomoči storitve Form.


GetDatabase

Vrne instanco SFDatabases.Database, ki ponuja dostop do izvajanja ukazov SQL z zbirko podatkov, s katero je povezan trenutni obrazec in/ali ki je shranjena v trenutnem dokumentu programa Base.

Vsak obrazec ima svojo povezavo z zbirko podatkov, razen dokumentov programa Base, kjer si vsi delijo isto povezavo.

Skladnja:

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

Parametri:

user, password: parametra prijave (uporabniško ime in geslo; privzeto = "").

Primer:


      Dim myDb As Object ' SFDatabases.Database
      Set myDb = oForm.GetDatabase()
   
V Pythonu

      db = form.GetDatabase()  # SFDatabases.Database
   

PrintOut

Ta metoda pošlje vsebino dokumenta obrazca privzetemu tiskalniku ali tiskalniku, ki ga določa metoda SetPrinter().

Vrne True, če je bil dokument uspešno poslan tiskalniku.

Skladnja:

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: strani za tiskanje, podane kot niz. Ta argument je treba navesti na enak način kot v uporabniškem vmesniku (glejte pogovorno okno Datoteka – Natisni). Primer: "1-4;10;15-18". Privzeta vrednost je prazen niz (""), zaradi česar se natisnejo vse strani.

copies: število kopij, ki jih želite natisniti. Privzeto ima vrednost 1.

printbackground: natisne sliko ozadja, če ima vrednost True (privzeto).

printblankpages: določa, ali naj natisne prazne strani (privzeta vrednost je False).

printevenpages: določa, ali naj natisne sode strani (privzeta vrednost je True).

printoddpages: določa, ali naj natisne lihe strani (privzeta vrednost je True).

printimages: določa, ali naj natisne slike (privzeta vrednost je True).

Primer:

V Basicu

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

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

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!