Innhold

# SFDatabaser.Dataark tjeneste

Tjenesten Dataark gjør det mulig å visualisere innholdet i databasetabeller samt resultatene av spørringer og SQL-setninger ved å bruke datavisningen i Base. I tillegg tillater denne tjenesten å:

- Legg til egendefinerte menyer i datavisningen.

- Få tilgang til verdier i bestemte posisjoner i datavisningen.

- Plasser markøren i en bestemt celle i datavisningen.

## Tjenestepåkallelse

Før du bruker Dataark-tjenesten, må ScriptForge-biblioteket lastes eller importeres:

• Grunnleggende makroer krever å laste ScriptForge-biblioteket ved hjelp av følgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService

##### I Basic

Tjenesten Dataark kan startes på to forskjellige måter avhengig av om databasefilen er åpen.

Eksemplet nedenfor anser at databasefilen er åpen, derfor kan UI-tjenesten brukes til å hente dokumentet og OpenTable-metoden fra Database tjenesten brukes til å få en Dataark tjenesteforekomst.

        Dim ui As Object, oBase As Object, oSheet As Object
        Set ui = CreateScriptService("UI")
        ' Object oBase er en forekomst av Base-tjenesten
        Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
        ' Object oSheet er en forekomst av Datasheet-tjenesten
        Set oSheet = oBase.OpenTable("Customers")

I eksemplet ovenfor er det også mulig å bruke metoden OpenQuery fra Base-tjenesten for å få en Dataark-forekomst.

For å starte Dataark-tjenesten når databasefilen ikke er åpen, bruk metodene OpenTable, OpenQuery eller OpenSql fra Database-tjenesten. Eksemplet nedenfor bruker metoden OpenTable for å åpne en eksisterende tabell i databasefilen:

        Dim oDatabase As Object, oSheet As Object
        ' Objekt oDatabase er en forekomst av databasetjenesten
        Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
        ' Object oSheet er en forekomst av Dataarktjenesten
        Set oSheet = oDatabase.OpenTable("Customers")

##### I Python

Eksemplene ovenfor kan oversettes til Python slik:

        from scriptforge import CreateScriptService
        ui = CreateScriptService("UI")
        base_doc = ui.GetDocument(r"C:\Documents\MyFile.odb")
        sheet = base_doc.OpenTable("Customers")

        database = CreateScriptService("Database", r"C:\Documents\myDB.odb")
        sheet = database.OpenTable("Customers")

## Egenskaper

Følgende egenskaper er tilgjengelige i Dataark-tjenesten:

Navn | Skrivebeskyttet | Type | Beskrivelse
--- | --- | --- | ---
ColumnHeaders | Ja | Strenegematrise | Returnerer en Matrise med navnene på kolonneoverskriftene i dataarket.
CurrentColumn | Ja | String | Returnerer det valgte kolonnenavnet.
CurrentRow | Ja | Integer | Returnerer nummeret på den valgte raden, med start på 1.
DatabaseFileName | Ja | String | Returnerer filnavnet til Base-filen i FSO.FileNaming-format.
Filter | Nei | String | Spesifiserer et filter som skal brukes på dataarket uttrykt som WHERE-leddet i en SQL-spørring uten nøkkelordet WHERE. Hvis en tom streng er spesifisert, fjernes det aktive Filteret.
LastRow | Ja | Integer | Returnerer antall rader i dataarket.
OrderBy | Nei | String | Angir rekkefølgen som poster vises i uttrykt som ORDER BY-leddet i en SQL-spørring uten nøkkelordet ORDER BY. Hvis en tom streng er spesifisert, fjernes den aktive OrderBy.
ParentDatabase | Ja | Objekt | Returnerer Database-tjenesteforekomsten som dataarket tilhører.
Source | Ja | String | Returnerer en streng som representerer datakilden, som kan være en SQL-setning, et tabellnavn eller et spørringsnavn.
SourceType | Ja | String | Returnerer typen til datakilden, som kan være en av følgende verdier: "SQL", "TABLE" eller "QUERY".
XComponent | Ja | UNO Objekt | Returnerer com.sun.star.lang.XComponent UNO-objektet som representerer dataarket.
XControlModel | Ja | UNO Objekt | Returnerer com.sun.star.awt.XControl UNO-objektet som representerer dataarket.
XTabControllerModel | Ja | UNO Objekt | Returnerer com.sun.star.awt.XTabControllerModelUNO-objektet som representerer dataarket.

## Metoder

Liste over metoder i dataarktjenesten
Activate CloseDatasheet CreateMenu | GetText GetValue GoToCell | RemoveMenu Toolbars

## Activate

Setter frem datavisningsvinduet som refereres til av Dataark-forekomsten.

### Syntaks:

svc.Activate()

### Eksempel:

##### I Basic

          oSheet.Activate()

##### I Python

          sheet.Activate()

## CloseDatasheet

Lukker datavisningsvinduet referert til av Dataark-forekomsten.

### Syntaks:

svc.CloseDatasheet()

### Eksempel:

##### I Basic

          oSheet.CloseDatasheet()

##### I Python

          sheet.CloseDatasheet()

## CreateMenu

Oppretter en ny menyoppføring i datavisningsvinduet og returnerer en SFWidgets.Menu tjenesteforekomst, som menyelementer kan legges til programmatisk.

Menyer lagt til ved hjelp av CreateMenu-metoden går tapt så snart datavisningsvinduet lukkes.

### Syntaks:

svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj

### Parametre:

menyhode: Navnet på den nye menyen.

før: Dette argumentet kan enten være navnet på en eksisterende menyoppføring som den nye menyen skal plasseres foran eller et tall som uttrykker posisjonen til den nye menyen. Hvis dette argumentet er tomt, plasseres den nye menyen som siste oppføring.

undermenytegn: Skilletegn brukt i menytrær (Standard = ">")

### Eksempel:

##### I Basic

          Dim oMenu As Object
          Set oMenu = oSheet.CreateMenu("My Menu", Before := "Data")
          With oMenu
              .AddItem("Item 1", Command := ".uno:About")
              ' ...
              .Dispose()
          End With

##### I Python

          menu = sheet.CreateMenu("My Menu", before="Data")
          menu.AddItem("Item 1", command=".uno:About")
          # ...
          menu.Dispose()

Les hjelpesiden Menytjeneste for å lære mer om hvordan du oppretter meny- og undermenyoppføringer og tilknytter kommandoer.

## GetText

Returnerer teksten i en gitt kolonne i gjeldende rad.

Denne metoden endrer ikke posisjonen til markøren i datavisningsvinduet.

### Syntaks:

svc.GetText(column: any): str

### Parametre:

kolonne: Navnet på kolonnen som en streng eller kolonneposisjonen (starter på 1). Hvis en posisjon større enn antall kolonner er gitt, returneres den siste kolonnen.

### Eksempel:

##### I Basic

          oSheet.GetText("FirstName")

##### I Python

          sheet.GetText("FirstName")

## GetValue

Returnerer verdien i en gitt kolonne i gjeldende rad som en gyldig grunnleggende type.

Typene som kan returneres er: String, Heltall, Long, Singel, Double literal>, Date og Null.

Binære typer returneres som en Long verdi som indikerer lengden på det binære feltet.

En Tom-verdi returneres hvis den nødvendige verdien ikke kunne hentes.

Denne metoden endrer ikke posisjonen til markøren i datavisningsvinduet.

### Syntaks:

svc.GetValue(column: any): any

### Parametre:

kolonne: Navnet på kolonnen som en streng eller kolonneposisjonen (starter på 1). Hvis en posisjon større enn antall kolonner er gitt, returneres den siste kolonnen.

### Eksempel:

##### I Basic

          oSheet.GetValue("Address")

##### I Python

          sheet.GetValue("Address")

## GoToCell

Flytter markøren til den angitte raden og kolonnen.

### Syntaks:

svc.GoToCell(opt row: int, opt column: any): bool

### Parametre:

rad: Radnummeret som en numerisk verdi som starter på 1. Hvis den forespurte raden overskrider antallet eksisterende rader, flyttes markøren til den siste raden. Hvis dette argumentet ikke er spesifisert, endres ikke raden.

kolonne: Navnet på kolonnen som en streng eller kolonneposisjonen (starter på 1). Hvis den forespurte kolonnen overskrider antallet eksisterende kolonner, flyttes markøren til den siste kolonnen. Hvis dette argumentet ikke er spesifisert, endres ikke kolonnen.

### Eksempel:

##### I Basic

          ' Flytter markøren til kolonnen "Etternavn" i rad 4
          oSheet.GoToCell(4, "LastName")
          ' Flytter markøren til den tredje kolonnen i gjeldende rad
          oSheet.GoToCell(Column := 3)
          ' Flytter markøren en rad ned og lar den stå i samme kolonne
          oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
          ' Flytter til den siste kolonnen i den siste raden
          Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
          oSheet.GoToCell(oSheet.LastRow, LastColumn)

##### I Python

          sheet.GoToCell(4, "LastName")
          sheet.GoToCell(column=3)
          sheet.GoToCell(row=sheet.CurrentRow + 1)
          sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))

## RemoveMenu

Fjerner en menyoppføring fra datavisningen etter navnet.

Denne metoden kan fjerne menyer som tilhører standard brukergrensesnitt, så vel som menyer som er programmert lagt til med CreateMenu-metoden. Fjerningen av standardmenyer er ikke permanent, og de vil dukke opp igjen etter at vinduet er lukket og åpnet igjen.

### Syntaks:

svc.RemoveMenu(menuheader: str): bool

### Parametre:

menuheader: Det skiller mellom store og små bokstaver på menyen som skal fjernes. Navnet må ikke inneholde tegnet tilde ("~").

### Eksempel:

##### I Basic

          oSheet.RemoveMenu("Data")

##### I Python

          sheet.RemoveMenu("Data")

### Toolbars

Denne metoden returnerer enten en liste over de tilgjengelige verktøylinjenavnene i det faktiske dokumentet eller en forekomst SFWidgets.Toolbar tjenesten.

### Syntaks:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

### Parametre:

ToolbarName: Det vanlige navnet på en av de tilgjengelige verktøylinjene.

### Eksempel:

##### I Basic

        Dim oToolbar As Object
        Set oToolbar = oDoc.Toolbars("myToolbar")

##### I Python

        a_list = doc.Toolbars()

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.

Lignende emner

SFDatabaser.Database-tjeneste

ScriptForge.UI tjeneste