Tjenesten SFDocuments.Base

Tjenesten Base giver et antal metoder og egenskaber, der letter administration og håndtering af LibreOffice Base-dokumenter.

Denne tjeneste er nært relateret til tjenesten Document, som giver generiske metoder til at håndtere LibreOffice-dokumenter, herunder Base-dokumenter. Derfor udvider tjenesten Base tjenesten Document og giver yderligere metoder, der er specifikke for Base-dokumenter og lader brugerne:

tip

Se tjenesten Document for at få mere at vide om metoder og egenskaber, der kan bruges til at administrere LibreOffice-dokumenter.


Kald af tjeneste

Før brug af tjenesten Base 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

Tjenesten Base kan kaldes på forskellige måder. Kodestumpen herunder bruger metoden CreateBaseDocument i tjenesten UI til at oprette en ny Base-fil.

Bemærk, at i alle eksempler er objektet oDoc en instans af tjenesten Base.


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

TjenestenBase og kan instantieres under åbningen af en eksisterende Base-fil, som vist herunder:


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

Hvis et Base-dokument allerede er åbent, er det muligt at instantiere tjenesten CBase direkte:


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

Eksemplerne ovenfor kan oversættes til Python på denne måde:


    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

Brugen af delstrengen "SFDocuments." i det foregående eksempel er valgfri.


Liste over metoder i tjenesten Base

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Lukker det givne formulardokument. Returnerer True (sand), hvis lukningen lykkes.

warning

Metoden CloseFormDocument er udfaset siden LibreOffice 7.6. Selv om den stadig er tilgængelig, kan den bliver fjernet fra Base-tjenesten i en fremtidig udgivelse. Brug i stedet CloseDocument-metoden fra FormDocument-tjenesten.


Syntaks:

svc.CloseFormDocument(formdocument: str): bool

Parametre:

formulardokument: Navnet på det FormDocument (formulardokument), der skal lukkes, som en streng med skelnen mellem store og små bogstaver.

Eksempel:

Hvis formulardokumenter er organiserede i mapper, er det nødvendigt at medtage mappenavnet for at angive det formulardokument, der skal åbnes, som vist i de følgende eksempler:

I Basic

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

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Returnerer en matrix med det fulde navn (sti/navn) på alle formulardokumenter i Base-dokumentet som en nul-baseret streng-matrix.

Syntaks:

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

Eksempel:

Kodestumpen herunder udskriver navnene på alle formular-dokumenter i det aktuelle Base-dokument.

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 at lære mere om formulardokumenter, se hjælpesiden ScriptForge.FormDocument-tjeneste.


Forms

Afhængig af de givne parametere returnerer denne metode:

warning

Metoden Forms er udfaset siden LibreOffice 7.6. Selv om den stadig er tilgængelig, kan den blive fjernet fra Base-tjenesten i en fremtidig udgivelse. Brug i stedet Forms-metoden fra FormDocument-tjenesten.


Syntaks:

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

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

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

Parametre:

formulardokument: Navnet på et gyldigt formulardokument som en streng med skelnen mellem store og små bogstaver.

formular: Navnet eller indeksnummeret på formularen, der er gemt i formulardokumentet. Hvis dette argument mangler, returnerer metoden en liste med navne på alle formularer, der er tilgængelige i formulardokumentet.

note

Selv om det er muligt at bruge indekstal til at henvise til formularer, anbefales dette kun, når der kun er en formular i formulardokumentet. Hvis der er to eller flere formularer, må det foretrækkes at bruge formularnavnet i stedet.


Eksempel:

Den første linje i eksemplet herunder returnerer en liste over alle formularer i formulardokumentet "myFormDocument". Den anden linje returnerer et eksemplar af tjenesten Formular, der repræsenterer formularen "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 en forekomdt af tjenesten Database, der på databasen tillader udførelsen af SQL-kommandoer, der er defineret og/eller gemt i det aktuelle Base-dokument

Syntaks:

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

Parametre:

bruger, adgangskode: Valgfrie adgangsparametre som strenge. Standardværdien for begge parametre er en 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")
    ' Bruger og adgangskode anføres herunder, om nødvendigt
    Set myDatabase = myDoc.GetDatabase()
    '   ... Kør forespørgsler, SQL-sætninger, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
I Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Udfør forespørgsler, SQL-udtryk, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Returner True (sand), hvis det angivne FormDocument aktuelt er åbent.

Syntaks:

svc.IsLoaded(formdocument: str): bool

Parametre:

formulardokument: Navnet på et Formulardokument, der skal tjekkes, som en en streng med skelnen mellem store og små bogstaver.

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

Åbner det angivne FormDocument i enten normaltilstand eller designtilstand. Denne metode returnerer en FormDocument-tjenesteinstans, som svarer til den angivne formulardokument.

Hvis formulardokumentet allerede er åbent, bliver det aktiveret uden at dets tilstand ændres.

Hvis det angivne formulardokument ikke eksisterer, bliver Nothing returneret.

Syntaks:

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

Parametre:

Formulardokument: Navnet på det Formulardokument, der skal åbnes, som en streng med skelnen mellem store og små bogstaver.

designtilstand: Hvis dette argument er True (sand) åbnes FormDocument i designtilstand.

Eksempel:

I Basic

De fleste formulardokumenter gemmes i roden af Base-dokumentet og de kan åbnes ved simpelthen at bruges deres navne, som i eksemplet herunder:


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

Hvis formulardokumenter er organiseret i mapper, bliver det nødvendigt at medtage mappenavnet til at angive det formulardokument, der skal åbnes, som illustreret i det følgende eksempel:


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

    formDoc = doc.OpenFormDocument("myFormDocument")
  

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

OpenQuery

Åbner datavisnings-vinduet for den angivne forespørgsel, og returnerer en instans af Datasheet-tjenesten.

Forespørgslen kan åbnes i enten normaltilstand eller designtilstand.

Hvis forespørgslen allerede er åben, bliver dens datavisnings-vindue gjort aktivt.

note

Lukning af Base-dokumentet gør, at datavisnings-vinduet også lukkes.


Syntaks:

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

Parametre:

queryname: Navnet på en eksisterende forespørgsel som en streng, hvor der skelnes mellem store og små bogstaver.

designmode: Hvis dette argument er sat til True, bliver forespørgslen åbnet i designtilstand. Ellers åbnes den i normaltilstand (standard = False).

Eksempel:

I Basic

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

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

OpenTable

Åbner datavisnings-vinduet for den angivne tabel og returnerer en instans af Datasheet-tjenesten.

Tabellen kan åbnes i normaltilstand eller designtilstand.

Hvis tabellen allerede er åben, vil dens datavisnings-vindue blive gjort aktivt.

note

Lukning af Base-dokumentet gør, at datavisnings-vinduet også lukkes.


Syntaks:

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

Parametre:

tablename: Navnet på en eksisterende tabel som en streng, med forskel på store og små bogstaver.

designmode: Hvis dette argument er sat til True, bliver tabellen åbnet i designtilstand. Ellers bliver den åbnet i normaltilstand (standard = False).

Eksempel:

I Basic

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

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

PrintOut

Denne metoder sender indholdet af det givne formulardokument til en standardprinter eller en printer, der er defineret med metoden SetPrinter() (sæt_printer).

Returnerer True (sand), hvis dokumentet blev printet med succes.

warning

Metoden PrintOut er udfaset siden LibreOffice 7.6. Selv om den stadig er tilgængelig, kan den blive fjernet fra Base-tjenesten i en fremtidig udgivelse. Brug PrintOut-metoden fra FormDocument-tjenesten i stedet.


Syntaks:

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

Parametre:

formulardokument: Et gyldigt dokumentformularnavn som en streng med forskel på store og små bogstaver. Formulardokumentet skal være åbent. Det aktiveres af metoden.

sider: De sider, der skal printes, som en streng, ligesom i brugerfladen, Eksempel: "1-4;10;15-18". Standard er alle sider.

kopier: Antallet af kopier. 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

Definér printerindstillingerne for et formulardokument. Formulardokumentet skal være åbent.

Returnerer True (sand), når den lykkes.

warning

Metoden SetPrinter er udfaset siden LibreOffice 7.6. Selv om den stadig er tilgængelig, kan den blive fjernet fra Base-tjenesten i en fremtidig udgivelse. Brug SetPrinter-metoden fra Document-tjenesten i stedet.


Syntaks:

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

Parametre:

formulardokument: Et gyldigt dokumentformularnavn som en streng med forskel på store og små bogstaver.

printer: Navnet på den printerkø, der skal printes til. Når den mangler, sættes standardprinteren.

orientation: Papirretning, enten PORTRAIT (stående) eller LANDSCAPE (liggende). Når den mangler, efterlades feltet uændret med hensyn til printerindstillinger.

paperformat: Angiver papirformatet som en strengværdi, som kan være enten A3, A4, A5, LETTER, LEGAL eller TABLOID. Efterlades uændret, hvis manglende.

Eksempel:

I Basic

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

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
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!