Innhald

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

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)

For å læra meir om skjemadokument, kan du sjå på hjelpsida ScriptForge.FormDocument service.

## Forms

Avhengig av kva parametrar 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.

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.

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 eksempelet 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 tillèt 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åloggingsparametrar 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.

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

### Syntaks:

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

### Parametrar:

queryname: Namnet på ei spørjing som finst 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 tabell som finst 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.

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.

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

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