SFDocuments.Base service

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

Henvise til 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 forekomst 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

The method CloseFormDocument is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the CloseDocument method from the FormDocument service instead.


Syntaks:

svc.CloseFormDocument(formdocument: str): bool

Parametre:

formulardokument: Navnet pÄ det FormDocument (formulardokument), der skal lukkes, som en streng med Stort-og-smÄt.

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 fÄ mere at vide om formular-dokumenter finder du hjÊlpesiden til tjenesten Form.


Forms

AfhĂŠngig af de givne parametere returnerer denne metode:

warning

The method Forms is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the Forms method from the FormDocument service instead.


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 Stort-og-smÄt.

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 Stort-og-smÄt.

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

Opens the specified FormDocument either in normal or in design mode. This method returns a FormDocument service instance corresponding to the specified form document.

If the form document is already open, it is activated without changing its mode.

If the specified form document does not exist, then Nothing is returned.

Syntaks:

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

Parametre:

Formulardokument: Navnet pÄ det Formulardokument, der skal Äbnes, som en streng med Stort-og-smÄt.

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

Opens the Data View window of the specified query and returns an instance of the Datasheet service.

The query can be opened either in normal or design mode.

If the query is already open, its Data View window will be made active.

note

Closing the Base document will cause the Data View window to be closed as well.


Syntaks:

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

Parametre:

queryname: The name of an existing query as a case-sensitive String.

designmode: If this argument is set to True the query is opened in design mode. Otherwise it is opened in normal mode (Default = False).

Eksempel:

I Basic

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

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

OpenTable

Opens the Data View window of the specified table and returns an instance of the Datasheet service.

The table can be opened either in normal or design mode.

If the table is already open, its Data View window will be made active.

note

Closing the Base document will cause the Data View window to be closed as well.


Syntaks:

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

Parametre:

tablename: The name of an existing table as a case-sensitive String.

designmode: If this argument is set to True the table is opened in design mode. Otherwise it is opened in normal mode (Default = 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

The method PrintOut is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the PrintOut method from the FormDocument service instead.


Syntaks:

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

Parametre:

formulardokument: Et gyldigt dokumentformularnavn som en Stort-og-smÄt streng. 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

Definer printerindstillingerne for et formulardokument. Formulardokumentet skal vĂŠre Ă„bent.

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

warning

The method SetPrinter is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the SetPrinter method from the Document service instead.


Syntaks:

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

Parametre:

formulardokument: Et gyldigt dokumentformularnavn som en streng med Stort-og-smÄt.

printer: Navnet pÄ den printerkÞ, der skal printes til. NÄr den mangler, sÊttes standardprinteren.

papirretning: Enten PORTRAIT (stÄende) eller LANDSCAPE (liggende). NÄr den mangler, efterlades feltet uÊndret med hensyn til printerindstillinger.

papirformat: 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 er indledet med et understreget tegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


StĂžt os venligst!