Tenesta SFDocuments.Calc

Tenesta Base inneheld ei rad metodar og eigenskapar for å forenkla administreringa og hanfsaminga av LibreOffice Base-dokument.

Denne tenesta er nært knytt til tenesta ;Document, som inneheld generiske metodar for handsaming av LibreOffice-dokument, inkludert Base-dokument. Difor utvidar tenesta Base Document-tenesta og inneheld fleire metodar som er spesifikke for Base-dokument, slik at brukarane kan:

tip

Sjå tenesta Document for å læra meir om metodane og eigenskapane som kan brukast for å administrera LibreOffice-dokument.


Oppkall av tenester

Før du brukar tenesta Base må biblioteket ScriptForge vera lasta inn eller importert:

note

• Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-skript krev import frå scriptforge-modulen:
from scriptforge import CreateScriptService


I Basic

Tenesta Base kan kallast opp på ulike måtar. Kodesnutten nedanfor brukar metoden CreateBaseDocument i tenesta UI til å laga ei ny Base-fil.

Merk at i alle eksempla er objektet oDoc ein førekomst av tenesta Base.


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  

Base-tenesta kan også startast medan du opnar ei eksisterande basisfil som vist nedanfor:


    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  

Viss eit Base-dokument er opna frå før, er det råd å starta tenesta Base direkte:


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
I Python

Eksempla ovanfor kan omsetjast til Python slik:


    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

Bruk av delstrengen «SFDocuments.» i det førre eksempelet er valfritt.


Liste over metodar i tenesta Base

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Lukkar det gjevne skjemadokumentet. Returnerer Sann viss lukkinga lukkast.

warning

Metoden CloseFormDocument er avvikla sidan LibreOffice 7.6. Sjølv om han framleis er tilgjengeleg, kan han verta fjerna frå Base-tenesta i ei framtidig utgjeving. Bruk CloseDocument-metoden frå FormDocument-tenesta i staden.


Syntaks:

svc.CloseFormDocument(formdocument: str): bool

Parametrar:

formdocument: Namnet på FormDocument som skal lukkast som ein streng som skil mellom små og store bokstavar.

Eksempel:

Viss skjemadokumenta er organiserte i mapper, er det nødvendig å ta med mappenamnet for å spesifisera kva skjemadokument som skal opnast. Dette er vist i dei neste eksempela:

I Basic

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

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Returnerer ei matrise med heile namnet (sti/namn) på alle skjemadokument i Base-dokumentet som ei null-basert matrise av strenger.

Syntaks:

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

Eksempel:

Kodesnutten nedanfor skriv ut namna på alle skjemadokumenta i det gjeldande Base-dokumentet.

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

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

For å læra meir om skjema-dokument, sjå hjelpesidene til tenesta Form.


Forms

Avhengig av kva parameterar som er gjevne, vil denne metoden returnera:

warning

Metoden Forms er avvikla sidan LibreOffice 7.6. Sjølv om han framleis er tilgjengeleg, kan han verta fjerna frå Base-tenesta i ei framtidig utgjeving. Bruk Forms-metoden frå FormDocument-tenesta i staden.


Syntaks:

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

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

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

Parametrar:

skjemadokument: Namnet på eit gyldig skjemadokument som ein streng som skil mellom store og små bokstavar.

skjema: Namnet eller indeksnummeret på skjemaet som er lagra i skjemadokumentet. Viss dette argument manglar, vil metoden returnera ei liste med namna på alle skjemaa som er tilgjengelege i skjemadokumentet.

note

Sjølv om det er mogleg å bruka indekstal til å referere til skjema, vert dette tilrådd brukt berre når det er eitt skjema i skjemadokumentet. Viss det er fleire skjema, bør du helst bruka skjemanamnet i staden.


Eksempel:

Den første linja i eksemplet nedanfor returnerer ei liste over alle skjemaa i skjemadokumentet "myFormDocument". Den andre linja returnerer eit eksemplar av tenesta «Form» som representerer skjemaet «myForm».

I Basic

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

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

GetDatabase

Returnerer ein førekomst av tenesta Database som tillet utføringa av SQL-kommandoar som er definerte og/eller lagra i det gjeldande Base-dokumentet.

Syntaks:

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

Parametrar:

brukar, passord: Valfrie påloggingsparameterar som strengar. Standardverdien for begge parametera er ein tom streng "".

Eksempel:

I Basic

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Brukar og passord vert sett inn nedanfor om nødvendig
    Set myDatabase = myDoc.GetDatabase()
    '   … Køyr spørjingar, SQL-uttrykk, …
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
I Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   … Køyr spørjingar, SQL-uttrykk, …
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Returner True (sann) viss det spesifiserte FormDocument er ope.

Syntaks:

svc.IsLoaded(formdocument: str): bool

Parametrar:

skjemadokument: Namnet på eit Skjemadokument som skal kontrollerast om det inneheld ein streng som skil mellom små og store bokstavar.

Eksempel:

I Basic

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

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

OpenFormDocument

Opnar det spesifiserte FormDocument anten i normalmodus eller i utformingsmodus. Denne metoden returnerer ei FormDocument-teneste som svarar til det gjevne skjemadokumentet.

Viss skjemadokumentet alt er ope, vert det aktivert utan å endra modus.

Viss det spesifiserte skjemadokumentet ikkje finst, vert det returrnert Ingenting.

Syntaks:

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

Parametrar:

skjemadokument: Namnet på eit Skjemadokument skal opnast som ein streng som skil mellom små og store bokstavar.

utformingsmodus: Viss dette argument er Sann vert FormDocument opna i utformingsmodus-

Eksempel:

I Basic

Dei fleste skjemadokumenta er lagra i rota til Base-dokumentet og kan opanast ved å bruka namnet, som i eksempelet nedanfor:


    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  

Viss skjemadokumenta er organiserte i mapper, er det nødvendig å ta med mappenamnet for å spesifisera kva skjemadokument som skal opnast. Dette er vist i det neste eksempelet:


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
I Python

    formDoc = doc.OpenFormDocument("myFormDocument")
  

    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  

OpenQuery

Opnar datavisingsvindauget for den spesifiserte spørjinga og returnerer ein førekomst av tenesta Datasheet.

Spørjinga kan opnast anten i normal- eller utformingsmodus.

Viss spørjinga alt er open, vert datavisingsvindauget gjort aktivt.

note

Lukking av Base-dokumentet gjer at datavisingsvindauget også vert lukka.


Syntaks:

svc.OpenQuery(queryname: str, designmode: bool = False): obj

Parametrar:

queryname: Namnet på ei eksisterande spørjing som ein streng som skil mellom store og små bokstavar.

designmode: Viss dette argumentet er sett til Sann, vert spørjinga opna i utforminghsmodus, elles i normalmodus (Standard = Usann).

Eksempel:

I Basic

      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
I Python

      doc.OpenQuery("MyQuery", designmode=True)
    

OpenTable

Opnar datavisingsvindauget for den spesifiserte tabellen og returnerer ein førekomst av tenesta Datasheet.

Tabellen kan opnast anten i normal- eller utformingsmodus.

Viss tabellen alt er open, vert datavisingsvindauget gjort aktivt.

note

Lukking av Base-dokumentet gjer at datavisingsvindauget også vert lukka.


Syntaks:

svc.OpenTable(tablename: str, designmode: bool = False): obj

Parametrar:

tablename: Namnet på ein eksisterande tabell som ein streng som skil mellom store og små bokstavar.

designmode: Viss dette argumentet er sett til Sann, vert tabellen opna i utforminghsmodus, elles i normalmodus (Standard = Usann).

Eksempel:

I Basic

      oDoc.OpenTable("MyTable", DesignMode = False)
    
I Python

      doc.OpenTable("MyTable", designmode=False)
    

PrintOut

Denne metoden sender innhaldet i det gjevne skjemadokumentet til standardskrivaren eller til den skrivaren som er definert med metoden SetPrinter().

Returnerer Sann viss utskrivinga av dokumentet lukkast.

warning

Metoden PrintOut er avvikla sidan LibreOffice 7.6. Sjølv om han framleis er tilgjengeleg, kan han verta fjerna frå Base-tenesta i ei framtidig utgjeving. Bruk PrintOut-metoden frå FormDocument-tenesta i staden.


Syntaks:

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

Parametrar:

formdocument: Eit gyldig dokumentskjemanamn som skil mellom store og små bokstavar. Skjemadokumentet må vera ope. Det vert slått på av metoden.

pages: Sidene som skal skrivast ut som ein streng, som i brukargrensesnittet. Eksempel: «1-4;10;15-18». Standard er alle sidene.

copies: Kor mange kopiar. Standard er 1.

Eksempel:

I Basic

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

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

SetPrinter

Definer skrivarinnstillingane for eit skjemadokument. Skjemadokumentet mår vera ope.

Returnerer Sann når han lukkast.

warning

Metoden SetPrinter er avvikla sidan LibreOffice 7.6. Sjølv om han framleis er tilgjengeleg, kan han verta fjerna frå Base-tenesta i ei framtidig utgjeving. Bruk SetPrinter-metoden frå Document-tenesta i staden.


Syntaks:

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

Parametrar:

formdocument: Eit gyldig dokumentskjemanamn som skil mellom store og små bokstavar.

printer: Namnet på utskriftskøen det skal skrivast til. Når denne manglar, vert standardskrivaren sett.

papirretning: Anten PORTRAIT (ståande) eller LANDSCAPE (liggjande). Når denne manglar vert feltet ikkje endra i høve til skrivarinnstillingane.

papirformat: Spesifiserer papirformatet som ein strengverdi som kan vera anten A3, A4, A5, LETTER, LEGAL eller TABLOID. Vert ikkje endra om denne manglar.

Eksempel:

I Basic

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

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

Alle ScriptForge Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.


Støtt oss!