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

Oppkall av tenester

Før du brukar tenesta Datasheet må biblioteket ScriptForge vera lasta inn eller importert:

note

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


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.

note

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

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.

note

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.

note

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.

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.

note

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

Toolbars

Denne metoden returnerer anten ei liste over dei tilgjengelege verktøylinjenamna i det gjeldande dokumentet eller i ein førekomst av SFWidgets.Toolbar-tenesta.

Syntaks:

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

Parametrar:

ToolbarName: Det vanlege namnet på ei av verktøylinjene.

Eksempel:

I Basic

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

    a_list = doc.Toolbars()
  
warning

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


Støtt oss!