Innhald
Innhaldsliste 🔎︎

# SFDatabaser.Datasheet-teneste

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

- Leggja til eigendefinerte menyar i datavisinga.

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

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

## Oppkall av tenester

Før du brukar tenesta Datasheet 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 Datasheet kan opnast på to ulike måtar, avhengig av om databasefila er open eller ikkje.

Eksempelet nedanfor går ut frå at databasefilea er opna. Dirfor kan UI-tenesta brukast til å henta dokumentet og OpenTable-metoden frå Database-tenesta brukast for å få ein førekomst av Datasheet.

        Dim ui As Object, oBase As Object, oSheet As Object
        Set ui = CreateScriptService("UI")
        ' Object oBase er ein førekomst av Base-tenesta
        Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
        ' Object oSheet er ein førekomst av Datasheet-tenesta
        Set oSheet = oBase.OpenTable("Customers")

I eksempelet ovanfor er det også mogleg å bruka metoden OpenQuery frå Base-tenesta for å få ein førekomst av Dataark.

Bruk metoden OpenTable,OpenQuery eller OpenSql frå Database-tenesta for å byrja Datasheet-tenesta når databasefila ikkje er opna. Eksempelet nedanfor brukar metoden OpenTable for å opna ein eksisterande tabell i databasefila:

        Dim oDatabase As Object, oSheet As Object
        ' Objektet oDatabase er ein førekomst av databasetenesta
        Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
        ' Objektet oSheet er ein førekomst av Datasheet-tenesta
        Set oSheet = oDatabase.OpenTable("Customers")

##### I Python

Eksempla ovanfor kan omsetjast 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")

## Eigenskapar

Desse eigenskapane er tilgjengelege i Datasheet-tenesta:

Namn | Skriveverna | Type | Beskriving
--- | --- | --- | ---
ColumnHeaders | Ja | Strengmatrise | Returnerer ei matrise med namna på kolonneoverskriftene i dataarket.
CurrentColumn | Ja | String | Returnerer det gjeldande merkte kolonnenamnet.
CurrentRow | Ja | Integer | Returnerer nummeret på den merkte rada, med start på 1.
DatabaseFileName | Ja | String | Returnerer filnamnet på Base-fila i formatet FSO.FileNaming.
Filter | Nei | String | Spesifiserer eit filter som skal brukastpå dataarket uttrykt som WHERE-leddet i ei SQL-spørjing utan nøkkelordet WHERE. Viss det er spesifisert ein tom streng, vert det gjeldande filteret fjerna.
LastRow | Ja | Integer | Returnerer talet på rader i dataarket.
OrderBy | Nei | String | Spesifiserer rekkjefølgja som postane skal visast i i uttrykk som ORDER BY-leddet i ei SQL-spørjing utan nøkkelordet ORDER BY. Viss det er spesifisert ein tom streng, vert det gjeldande OrderBy fjerna.
ParentDatabase | Ja | Objekt | Returnerer Database-tenesteførekomsten som dataarket høyrer til.
Source | Ja | String | Returnerer ein streng som representerer datakjelda, som kan vera ei SQL-setning, eit tabellnamn eller eit spørjingsnamn.
SourceType | Ja | String | Returnerer typen til datakjelda, som kan vera ein av desse verdiane: «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.

## Metodar

Liste over metodar i «datasheet»-tenesta
Activate CloseDatasheet CreateMenu | GetText GetValue | GoToCell RemoveMenu

## Activate

Set datavisingsvindauget som er referert til av Dataark-førekomsten fremst.

### Syntaks:

svc.Activate()

### Eksempel:

##### I Basic

          oSheet.Activate()

##### I Python

          sheet.Activate()

## CloseDatasheet

Lukker datavisingsvindauget som er referert til av Datasheet-førekomsten.

### Syntaks:

svc.CloseDatasheet()

### Eksempel:

##### I Basic

          oSheet.CloseDatasheet()

##### I Python

          sheet.CloseDatasheet()

## CreateMenu

Opprettar ei ny menyoppføring i datavisingsvindauget og returnerer ein førekomst av SFWidgets.Menu, som menyelementa kan leggjast til programmatisk med.

Menyar lagt til ved hjelp av CreateMenu-metoden går tapt så snart datavisingsvindauget vert lukka.

### Syntaks:

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

### Parametrar:

menuheader: Namnet på den nye menyen.

before: Dette argumentet kan anten vera namnet på ei menyoppføring som finst frå før, som den nye menyen skal setjast framføre eller eit tal som viser plasseringa av den nye menyen. Viss dette argumentet er tomt, vert den nye menyen plassert som den siste oppføringa.

submenuchar: Skiljeteiknet som vert brukt i menytre (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 hjelpesida Menyteneste for å læra meir om korleis du opprettar meny- og undermenyoppføringer og knyt kommandoar til desse.

## GetText

Returnerer teksten i ei gjeve kolonne i den gjeldande rada.

Denne metoden endrar ikkje plasseringa til markøren i datavisnigsvindauget.

### Syntaks:

svc.GetText(column: any): str

### Parametrar:

column: Namnet på kolonnen som ein streng eller kolonneposisjonen (byrjar på 1). Viss ein posisjon som er gjeven er større enn talet på kolonnar, vert den siste kolonnen returnert.

### Eksempel:

##### I Basic

          oSheet.GetText("FirstName")

##### I Python

          sheet.GetText("FirstName")

## GetValue

Returnerer verdien i ein gjeven kolonne i den gjeldande rada som ein gyldig Basic-type.

Typane som kan returnerast er: String, Integer, Long, Singel, Double literal>, Date og Null.

Binære typar vert returnerte som ein Long-verdi som indikerer lengda på det binære feltet.

Det vert returnert verdien Empty viss det er uråd å henta den nødvendige verdien.

Denne metoden endrar ikkje plasseringa til markøren i datavisnigsvindauget.

### Syntaks:

svc.GetValue(column: any): any

### Parametrar:

column: Namnet på kolonnen som ein streng eller kolonneposisjonen (byrjar på 1). Viss ein posisjon som er gjeven er større enn talet på kolonnar, vert den siste kolonnen returnert.

### Eksempel:

##### I Basic

          oSheet.GetValue("Address")

##### I Python

          sheet.GetValue("Address")

## GoToCell

Flytter markøren til den spesifiserte rada og kolonnen.

Denne metoden endrar ikkje plasseringa til markøren i datavisnigsvindauget.

### Syntaks:

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

### Parametrar:

row: Radnummeret som ein numerisk verdi som byrjar på 1. Viss den gjevne rada er større enn talet på rader som finst, vert markøren flytt til den siste rada. Viss dette argumentet manglar, vert rada ikkje endra.

column: Namnet på kolonnen som ein streng eller kolonneposisjonen (byrjar på 1). Viss kolonnen er større enn talet på kolonnar, vert markøren flytt til den siste kolonnen. Viss dette argumentet ikkje er spesifisert, vert kolonnen ikkje endra.

### Eksempel:

##### I Basic

          ' Flytter markøren til kolonnen "LastName" i rad 4
          oSheet.GoToCell(4, "LastName")
          ' Flyttar markøren til den tredje kolonnen i den gjeldande rada.
          oSheet.GoToCell(Column := 3)
          ' Flytter markøren ei rad ned i den same kolonnen
          oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
          ' Flyttar til den siste kolonnen i den siste rada
          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

Fjernar ei menyoppføring frå datavisinga ut frå nemnet på oppføringa.

Denne metoden kan fjerna menyar som høyrer til standard brukargrensesnitt, men også menyar som er programmatisk lagt til med CreateMenu-metoden. Standardmenyar vert ikkje fjerna permanent, og vil dukka opp att når vindauget vert lukka og opna igjen.

### Syntaks:

svc.RemoveMenu(menuheader: str): bool

### Parametrar:

menuheader: Namnet, som skil mellom store og små bokstavar, på menyen som skal fjernast. Namnet må ikkje innehalda teiknet tilde («~»).

### Eksempel:

##### I Basic

          oSheet.RemoveMenu("Data")

##### I Python

          sheet.RemoveMenu("Data")

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 ScriptForge.UI