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

Tjenestepåkallelse

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

note

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

note

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()
    
tip

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.

note

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.

note

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.

note

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


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.

note

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()
  
warning

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.


Supporter oss!