Innhald
Innhaldsliste 🔎︎

# Tenesta SFDocuments.Base

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:

- Få tilgang til databasen innebygd i eit Base-dokument.

- Opna skjemadokument som er lagra i eit Base-dokument.

- Kontrollera om eit skjemadokument frå eit Base-dokument er lasta inn.

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:

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

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.

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

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

## Forms

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

- Ei null-basert matrise med namna på alle skjema i eit skjemadokument (viss argumentet Form manglar)

- Eit SFDocuments.Form-objekt som representerer skjemaet spesifisert i argumentet Form.

### 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.

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 i anten normal- eller i utformings-modus.

Viss skjemadokumentet alt er opna, vert det aktivert utan å endra modus. Metoden returnerer Sann viss skjemadokumentet kan opnast.

### Syntaks:

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

### 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:

        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:

        oDoc.OpenFormDocument("myFolder/myFormDocument")

##### I Python

        doc.OpenFormDocument("myFormDocument")

        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.

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.

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.

### 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.

### 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')

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

Liknande emne

Tenesta SFDatabases.Database

Tenesta SFDocuments.Document

Tenesta SFDocuments. Form

Tenesta ScriptForge.UI