Innhald

# ScriptForge-biblioteket

For å bruka denne funksjonen …

Opna Verktøy → Makroar → LibreOffice Basic → Rediger og vel Programmakroar.

ScriptForge-biblioteker byggjer opp ei samling av makroskriptressursar, som kan utvidast, for LibreOffice som skal startast frå grunnleggjande makroar eller Python-skript.

• 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

For å læra meir om korleis du lagar og køyrer Python-skript ved å bruka ScriptForge-biblioteket, kan du lesa hjelpesida Laga Python-skript med ScriptForge.

## Slå på ScriptForge-tenester

Dei omtalte modulane og klassane vert kalla opp frå brukarskriptet som «tenester». Til dette føremålet er det utforma ein generisk konstruktør for desse tenestene for kvart språk:

Metoden Dispose er tilgjengeleg i alle tenester og bør kallast opp for å frigjera ressursar etter bruk.

##### I Basic

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Set oSvc = CreateScriptService("servicename"[, arg0, arg1, ...])
        ' ...
        oSvc.Dispose()

##### I Python

        from scriptforge import CreateScriptService
        svc = CreateScriptService('servicename'[, arg0, arg1, ...])
        # ...
        svc.Dispose()

## Tenester leverte av biblioteket ScriptForge

Kategori | Tenester
--- | ---
LibreOffice Basic | Array Dictionary | Exception FileSystem | String TextStream
Dokumentinnhald | Base Calc Chart | Database Dataset Datasheet | Document FormDocument Writer
Brukargrensesnitt | Dialog DialogControl Form | FormControl Menu PopupMenu | Toolbar ToolbarButton UI
Verktøyprogram | Basic L10N Platform | Region Services Session | Timer UnitTest

## ScriptForge.Array-teneste

Inneheld ei samling metodar for å redigera og transformera matriser med éin dimensjon (vektorar) og matriser med to dimensjonar. Dette gjeld også sett-operasjonar, sortering, import frå og eksport til tekstfiler.

Matriser med meir enn to dimensjonar kan ikkje brukast med metodane i denne tenesta. Einaste unntaket er metoden CountDims, som godtar matriser med kor mange dimensjonar som helst.

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

## Tenesta ScriptForge.Basic

Tenesta ScriptForge.Basic tilbyr ei samling av LibreOffice Basic-metodar som kan køyrast i ein Python-samanheng. Tenesta Basic sine metodar reproduserer dei innebygde Basic-funksjonane nøyaktig i høve til syntaks og oppførsel.

## Tenesta SFDocuments.Calc

Det delte biblioteket SFDocuments som gjev mange metodar og eigenskapar som letter administrasjon og handsaming av LibreOffice-dokument.

Tenesta SFDocuments.Calc er ein underklasse av SFDocuments.Document -tenesta. Alle metodar og eigenskapar definerte for tenesta Document kan også nåast ved å bruka ein førekomst av Calc-tenesta.

Tenesta Calc er fokusert på:

- Handsaming av ark i eit Calc-dokument (kopiera, setja inn, flytta osv.)

- Dataudveksling mellom Basic data-strukturar og Calc-område

- Kopiering og import av enorme datamengder

## SFDocuments.Chart-tenesta

Teenesta Chart (diagram) leverer eit sett eigenskapar og metodar for å handsama diagram i Calc-dokument. Med denne tenesta er det råd å:

- Få tilgang til diagram-objekt i Calc-dokument og endra eigenskapane deira.

- Laga og setja inn nye diagram i eit Calc-dokument.

- Eksportera diagram som biletfiler.

## Tenesta SFDatabases.Database

Tenesta Database gjev tilgang til databasar anten innebygde eller omtalte i Base-dokument. Denne tenesta leverer metodar til:

- Få tilgang til data i databasetabellar

- Køyr SELECT-spørjingar og utfør SAMANDRAG-funksjonar.

- Køyr SQL-handlingsuttrykk som INSERT (set inn), UPDATE (oppdater), DELETE (slett) og så vidare.

## SFDatabases.Dataset-tenesta

Database-tenesta er brukt for å representera tabulerte data laga av ein database. Med denne tenesta er det råd å:

- Navigere gjennom og få tilgang til dataa i eit datasett.

- Oppdatera, setja inn og sletta postar i datasettet.

## SFDatabaser.Datasheet-teneste

Tenesta Datasheet gjer det mogleg å visualisera innhaldet i databasetabellar og resultata av spørjingar og SQL-setningar ved å bruke datavisinga i Base. I tillegg tillèt denne tenesta å:

- Leggja til sjølvdefinerte menyar i datavisinga.

- Få tilgang til verdiar i bestemte posisjonar i datavisinga.

- Plassera markøren i ei bestemt celle i datavisinga.

## Tenesta SFDialogs.Dialog

Tenesta Dialog bidreg til handsaminga av dialogar oppretta med Basic lDialog Editor eller dialogar som er oppretta direkte. Kvar førekomst av den nåverande klassen representerer éin dialogboks som vert vist for brukaren.

## Tenesta SFDialogs.DialogControl

Tenesta DialogControl handsamar dei kontrollelementa som høyrer til eit dialogvindauge som er definert med Dialog Editor i Basic. Kvar førekomst av den gjeldande tenesta representerer eitt kontrollelement i eit dialogvindauge.

Fokus vert sett på å hente verdiane som vert viste av kontrollelementa i dialogvindauget. Formatering er tilgjengeleg via eigenskapane XControlModel og XControlView.

Merk at innhaldet av den unike eigenskapen DialogControl.Value varierer i høve til type kontrollelement.

Kontrollar av typen trekontroll får spesiell merksemd. Det er enkelt å fylla eit tre, anten forgreina etter grein eller med eit sett med greiner samtidig. Utfylling av ein trekontroll kan gjerast statisk eller dynamisk.

## Tenesta ScriptForge.Dictionary

Ei ordliste er ei samling av nøkkelelementpar

- Nøkkelen er ein streng som skil mellom store og små bokstavar

- Elementa kan vera av kva type som helst

## Tenesta SFDocuments.Document

Biblioteket SFDocuments gjev metodar og eigenskapar for å letta handsaming og manipulering av LibreOffice-dokument.

Metodar som kan brukast på alle typar av dokument (tekstdokument, rekneark, presentasjonar og så vidare) vert leverte av tenesta SFDocuments.Document. Nokre eksempel er:

- Opning, lukking og lagring av dokument

- Tilgang til standard eller tilpassa eigenskapar for dokumenta

## Tenesta ScriptForge.Exception

Tenesta Exception (unntak) er ei samling av metodar som hjelper til med med feilsøking (debugging) av kode i Basic- og Python-skript og feilhandsaming i Basic-skript.

Når det oppstår ein køyretidsfeil i Basic-skript, hjelper metodane og eigenskapane til Exception-tenesta til å identifisera feilsamanhengen og tillata å handsama han.

## Tenesta ScriptForge.FileSystem

Tenesta FileSystem inneheld rutinar for handsaming av filer og mapper. Her kjem nokre eksempel på funksjonane som vert leverte av denne tenesta:

- Verifiserer om ei fil eller ei mappa finst.

- Laga og sletta filer og mapper.

- Starta dialogvindauge for å opna og gøyma filer.

- Få tilgang til lista over filer i ei mappe osv.

## Tenesta SFDocuments. Form

Tenesta Form har metodar og eigenskapar for å administrera skjema i LibreOffice-dokument. Denne tenesta har støtte for skjema i Base-, Calc- og Writer-dokument og tillèt:

- Opna og aktiver skjema.

- Naviger gjennom postane som vert viste i skjemaet.

- Få tilgang til kontrollelementa i skjemaet.

- Få tilgang til underskjema til eit overordna skjema.

## Teenesta SFDocuments.FormControl

Tenesta FormControl gjev tilgang til kontrollane knytte til eit skjema, underskjema eller ein tabellkontroll for eit FormDocument. Kvar førekomst av FormControl-tenesta refererer til eitt enkelt kontrollelement i skjemaet. Denne tenesta tillèt brukarane å:

- Finn og set eigenskapane for kontrollelementet representert av førekomsten FormControl.

- Få tilgang til den gjeldande verdien vist av kontrollelementet.

- Set fokus på det ønskte kontrollelementet.

## Tenesta SFDocuments.FormDocument

Tenesta FormDocument gjev tilgang til skjemadokument som er lagra i LibreOffice Base-dokument.

I eit Base-dokument kan skjemadokument som finst visast ved å velja Vis → Skjema i brukargrensesnittet. Kvart skjemadokument kan innehalda eitt eller fleire skjema, og også hovudskjemaet og andre delskjema.

## Tenesta ScriptForge.L10N

Denne tenesta inneheld ei rekkje metodar knytt til omsetjinga av strengar med minimal innverknad på kjeldekodane for programmet. Metodane som er leverte av tenesta L10N kan i hovudsak brukast til å:

- Laga POT-filer som kan brukast som malar for omsetjing av alle strengane i programmet.

- Henta omsette strengar under køyringa for det språket som er definert i eigenskapen Locale.

## Tenesta SFWidgets.Meny

Tenesta Meny kan brukast for å laga og fjerna menyar frå menylinja i eit LibreOffice-dokumentvindauge. Kvar menyoppføring kan knytast til eit skript eller til ein UNO-kommando. Denne tenesta gjev desse funksjonane:

- Oppretting av menyar med sjølvdefinerte oppføringar, avmerkingsboksar, radioknappar og skiljeteikn.

- Utstyre menyelement med ikon og infotekstar

## Tenesta ScriptForge.Platform

Tenesta Platform inneheld ei samling eigenskapar om gjeldande køyringsmiljø og samanheng, for eksempel:

- Maskinvareplattforma (arkitektur, tal på CPU-ar, maskintype osv.)

- Informasjon om operativsystemet (OS-type, utgjevnad, versjon osv.)

- LibreOffice-versjonen

- Det gjeldande brukarnamnet

## Tenesta SFWidgets.PopupMenu

Tenesta PopupMenu kan brukast til å laga sprettoppmenyar som kan knyttast til hendingar eller køyrast av skript. Denne tenesta inneheld desse funksjonane:

- Lagar ein sprettoppmeny med tilpassa innføringar, avkryssingsfelt og radioknappar.

- Dekorasjon av menyelement med ikon og infotekstar

## Tenesta ScriptForge.Region

Tenesta Region tilbyr ei samling eigenskapar og metodar for å handsama lokale og regionrelaterte aspekt ved programmering, for eksempel:

- Få tilgang til lokale og regionavhengige innstillingar som talformatering, valuta og tidssoner.

- Konvertera tidssoner og rekna ut forskyvingar av sommartid (DST).

- Transformera tal til tekst på alle støtta språk.

## Tenesta ScriptForge.Services

Hovudføremålet med modulen Services er å gje tilgang til metoden CreateScriptService, som kan kallast opp i brukarskript for å setja opp tenester som vert implementerte med ScriptForge-miljøet.

## Tenesta ScriptForge.Session

Tenesta Session samlar ulike generelle metodar:

- installasjons- eller utførings-miljøet

- UNO-introspeksjon

- oppkall av eksterne skript eller program

## Tenesta ScriptForge.String

Tenesta String leverer ei samling av metodar til strenghandsaming. Desse metodane kan brukast til:

- Kontrollera innhaldet i strengar

- Formater strengar ved å trimma, justera eller tekstbryta innhaldet

- Bruk regulære uttrykk til å søkja og erstatta understrengar

- Bruka hash-algoritmar på strengar og så vidare.

## Tenesta ScriptForge.TextStream

Tenesta TextStream vert brukt til å lesa sekvensielt frå og skriva til filer som er opna eller laga ved hjelp av tenesta ScriptForge.FileSystem.

Metodane OpenTextFile og CreateTextFile frå tenesta FileSystem returnerer ein førekomst av tenesta TextStream.

## Tenesta ScriptForge.Timer

Tenesta Timer måler kor lang tid det tar å køyra brukarskript.

Ein Timer mæler tidlengd. Det kan vera:

- Starta for å visa når tidtakinga byrjar.

- Suspendert for å laga pause i målinga under køyringa.

- Gjenoppteken for å halda fram mælinga etter at «Timer» vart suspendert.

- Starta på nytt. Dette vil avbryta tidlegare målingar og starta Timer frå null.

## SFWidgets.Toolbar-tenesta

Toolbar-tenesta tillèt å henta informasjon relatert til verktøylinja for eit spesifisert dokumentvindauge. Med denne tenesta er det mogleg å:

- Slå av og på visinga av ei spesifisert verktøylinje.

- Få informasjon om kva knappar som er tilgjengelege i kvar verktøylinje.

## SFWidgets.ToolbarButton-tenesta

ToolbarButton-tenesta gjev høve til å få informasjon relatert til verktøylinjeknappane i ei gjeven verktøylinje. Med denne tenesta er det råd å:

- Slå visiga av verktøylinjeelementa av og på.

- Utføra kommandoen som er knytt til ein bestemt knapp.

## Tenesta ScriptForge.UI

T Tenesta UI (User Interface = brukargrensesnitt) gjer identifikasjonen og handsaminga av dei ulike vindauga som heile LibreOffice-programmet er bygd opp av.

- Windows selection

- Flytting og endring av storleiken på vindauga

- Innstillingar for statuslinja

- Å visa ei flytande framdriftslinje

- Laga nye vindauge

- Tilgang til dei underliggjande «dokumenta»

## Tenesta SFUnitTest.UnitTest

Tenesta UnitTest gjev eit rammeverk for å automatisere testar av einingar ved å bruka BASIC-språket, medrekna høve til å:

- Oppsummer testtilfelle i testsuiter og einingstestar.

- Dela setup- og shutdown-kode mellom test-tilfella.

- Rapportera testresultata ved hjelp av konsollen.

## Tenesta SFDocuments.Writer

Det delte biblioteket SFDocuments gjev mange metodar og eigenskapar som letter administrasjon og handsaming av LibreOffice-dokument.

Nokre metodar gjeld for alle typar dokument og er nedarva frå modulen SF_Document, medan andre metodar som er spesifikke for Writer er definerte i modulen SF_Writer.

Merk: Andre ScriptForge-modular som ikkje er omtalte, er reserverte for internt bruk. Innhaldet i desse kan endrast utan varsel.

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