SFDatabases.Datasheet-tjeneste

Tjenesten Datasheet gør det muligt at visualisere indholdet af databasetabeller og resultater af forespørgsler og SQL-sætninger, med brug af datavisningen i Base. Derudover gør denne tjeneste det muligt at:

Kald af tjeneste

Før du bruger Datasheet-tjenesten, skal ScriptForge-biblioteket være indlæst eller importeret:

note

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService


I Basic

Tjenesten Datasheet kan kaldes på to forskellige måder, afhængigt af om databasefilen er åben eller ikke.

Eksemplet nedenfor går ud fra, at databasefilen er åben, derfor kan UI-tjenesten bruges til at hente dokumentet, og metoden OpenTable fra Database-tjenesten bruges til at få in instans af Datasheet-tjenesten.


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

I eksemplet ovenfor er det også muligt at bruge metoden OpenQuery fra Base-tjenesten til at få en Datasheet-instans.

For at kalde Datasheet-tjenesten når databasefilen ikke er åben, brug metoderne OpenTable, OpenQuery eller OpenSql fra Database-tjenesten. Eksemplet nedenfor bruger OpenTable-metoden til at åbne en eksisterende tabel i databasefilen:


    Dim oDatabase As Object, oSheet As Object
    ' Objektet oDatabase er en instans af Database-tjenesten
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' Objektet oSheet er en instans af Datasheet-tjenesten
    Set oSheet = oDatabase.OpenTable("Customers")
  
I Python

Eksemplerne ovenfor kan oversættes til Python således:


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

Egenskaber

De følgende egenskaber er tilgængelige i tjenesten Datasheet:

Navn

Skrivebeskyttet

Type

Beskrivelse

ColumnHeaders

Ja

Array af strenge

Returnerer et Array med navnene på kolonneoverskrifterne i dataarket.

CurrentColumn

Ja

String

Returnerer det aktuelt valgte kolonnenavn.

CurrentRow

Ja

Integer

Returnerer tallet på den aktuelt valgte række, begyndende med 1.

DatabaseFileName

Ja

String

Returnerer filnavnet på Base-filen i FSO.FileNaming-format.

Filter

Nej

String

Specificerer et filter som skal anvendes på dataarket, på form som en WHERE-delsætning i en SQL-forespørgsel uden nøgleordet WHERE. Hvis der angives en tom streng, så bliver det aktive Filter fjernet.

LastRow

Ja

Integer

Returnerer antallet af rækker i datasættet

OrderBy

Nej

String

Angiver rækkefølgen for visning af dataposterne, på form som en ORDER BY-delsætning fra en SQL-forespørgsel, uden nøgleordet ORDER BY. Hvis der angives en tom streng, så fjernes den aktive OrderBy.

ParentDatabase

Ja

Objekt

Returnerer den instans af Database-tjenesten, som dataarket tilhører.

Source

Ja

String

Returnerer en streng som repræsenterer datakilden, hvilket kan være et SQL-udtryk, et tabelnavn eller et forespørgselsnavn.

SourceType

Ja

String

Returner typen af datakilden, hvilket kan være en af de følgende værdier: "SQL", "TABLE" eller "QUERY" (forespørgsel).

XComponent

Ja

UNO-objekt

Returnerer det com.sun.star.lang.XComponent UNO-objekt, som repræsenterer dataarket.

XControlModel

Ja

UNO-objekt

Returnerer det com.sun.star.awt.XControl UNO-objekt, som repræsenterer dataarket.

XTabControllerModel

Ja

UNO-objekt

Returnerer det com.sun.star.awt.XTabControllerModel UNO-objekt, som repræsenterer dataarket.


Metoder

Liste over metoder i tjenesten Datasheet

Activate
CloseDatasheet
CreateMenu

GetText
GetValue
GoToCell

RemoveMenu
Toolbars


Activate

Sætter datavisningsvinduet, som refereres til at Datasheet-instansen, i forgrunden.

Syntaks:

svc.Activate()

Eksempel:

I Basic

      oSheet.Activate()
    
I Python

      sheet.Activate()
    

CloseDatasheet

Lukker det datavisningsvindue, som refereres til at Datasheet-instansen.

Syntaks:

svc.CloseDatasheet()

Eksempel:

I Basic

      oSheet.CloseDatasheet()
    
I Python

      sheet.CloseDatasheet()
    

CreateMenu

Opretter et nyt menuelement i datavisningsvinduet og returnerer en instans af SFWidgets.Menu, som menuelementer programmeringsmæssigt kan tilføjes med.

note

Menuer tilføjet med CreateMenu-metoden går tabt, så snart datavisningsvinduet lukkes.


Syntaks:

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

Parametre:

menuheader: Navne på den nye menu.

before: Dette argument kan enten være navnet på et eksisterende menuelement, som den nye menu vil blive placeret før, eller argumentet kan være et tal, som udtrykker placeringen af den nye menu. Hvis dette argument står tomt, bliver den nye menu placeret som det sidste element.

submenuchar: Skilletegnet brug i menu-træer (standard = ">")

Eksempel:

I Basic

      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Min menu", Before := "Data")
      With oMenu
          .AddItem("Item 1", Command := ".uno:Om")
          ' ...
          .Dispose()
      End With
    
I Python

      menu = sheet.CreateMenu("Min menu", before="Data")
      menu.AddItem("Item 1", command=".uno:Om")
      # ...
      menu.Dispose()
    
tip

Læs hjælpesiden Menu-tjeneste for at lære mere om, hvordan du opretter menuer og undermenuer og tilknytter kommandoer.


GetText

Returnerer teksten i en given kolonne fra den aktuelle række.

note

Denne metode ændrer ikke markørens placering i datavisningsvinduet.


Syntaks:

svc.GetText(column: any): str

Parametre:

column: Navnet på kolonnen som en streng eller en kolonneposition (begyndende med 1). Hvis en position er større end antallet af kolonner, returneres den sidste kolonne.

Eksempel:

I Basic

      oSheet.GetText("FirstName")
    
I Python

      sheet.GetText("FirstName")
    

GetValue

Returnerer værdien en en given kolonne fra den aktuelle række som en gyldig Basic-type.

Følgende typer kan blive returneret: String, Integer, Long, Single, Double, Date og Null.

Binære typer returneres som en Long-værdi, der angiver længden på det binære felt.

Værdien Empty returneres, hvis den krævede værdi ikke kunne hentes.

note

Denne metode ændrer ikke markørens placering i datavisningsvinduet.


Syntaks:

svc.GetValue(column: any): any

Parametre:

column: Navnet på kolonnen som en streng eller en kolonneposition (begyndende med 1). Hvis en position er større end antallet af kolonner, returneres den sidste kolonne.

Eksempel:

I Basic

      oSheet.GetValue("Address")
    
I Python

      sheet.GetValue("Address")
    

GoToCell

Flytter markøren til den angivne række og kolonne.

Syntaks:

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

Parametre:

row: Rækkenummeret som en talværdi, begyndende med 1. Hvis det forespurgte rækkenummer overskrider antallet af eksisterende rækker, bliver markøren flyttet til den sidste række. Hvis dette argument ikke er angivet, bliver rækken ikke ændret.

column: Navnet på kolonnen som en String eller kolonnenummeret (begyndende med 1). Hvis det forespurgte kolonnenummer overskrider antallet af eksisterende kolonner, bliver markøren flyttet til den sidste kolonne. Hvis dette argument ikke er angivet, bliver kolonnen ikke ændret.

Eksempel:

I Basic

      ' Flytter markøren til kolonnen "Efternavn" i række 4
      oSheet.GoToCell(4, "Efternavn")
      ' Flytter markøren til den tredje kolonne i den aktuelle række
      oSheet.GoToCell(Column := 3)
      ' Flytter markøren en række ned i den samme kolonne
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Flytter til den sidste kolonne i den sidste række
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
I Python

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

RemoveMenu

Fjerner et menuelement fra datavisningen ud fra navnet.

note

Denne kommando kan fjerne menuer som tilhører standard-brugerfladen, så vel som menuer der blev programmeringsmæssigt tilføjet med CreateMenu-metoden. Fjernelse af standardmenuer er ikke permanent, og de vil dukke op igen efter at vinduet er blevet lukket og åbnet igen.


Syntaks:

svc.RemoveMenu(menuheader: str): bool

Parametre:

menuheader: Navnet på menuen, der skal fjernes, med forskel på store og små bogstaver. Navne må ikke indeholde tilde-tegnet ("~").

Eksempel:

I Basic

      oSheet.RemoveMenu("Data")
    
I Python

      sheet.RemoveMenu("Data")
    

Toolbars

Denne metode returnerer enten en liste med navne på de tilgængelige værktøjslinjer i det aktuelle dokument, eller en instans af SFWidgets.Toolbar-tjenesten.

Syntaks:

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

Parametre:

ToolbarName: Det sædvanlige navn på en af de tilgængelige værktøjslinjer.

Eksempel:

I Basic

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

    a_list = doc.Toolbars()
  
warning

Alle ScriptForge Basic-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


Støt os venligst!