Vsebina

# Storitev SFDatabases.Datasheet

Storitev Datasheet omogoča vizualizacijo vsebine tabel zbirke podatkov, kot tudi rezultate poizvedb in izjav SQL, ki uporabljajo podatkovni pogled modula Base. Poleg tega vam ta storitev omogoča naslednje:

- Dodajte menije po meri podatkovnemu pogledu.

- Dostopajte do vrednosti na določenih položajih v podatkovnem pogledu.

- Postavite kazalko v določeno celico v podatkovnem pogledu.

## Priklic storitve

Pred uporabo storitve Datasheet je potrebno naložiti ali uvoziti knjižnico ScriptForge:

• Za makre Basic mora biti naložena knjižnica ScriptForge z naslednjim ukazom:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Za skripte Python mora biti opravljen uvoz iz modula scriptforge:
from scriptforge import CreateScriptService

##### V Basicu

Storitev Datasheet je mogoče priklicati na dva različna načina, odvisno od tega, ali je datoteka zbirke podatkov odprta.

Spodnji primer predvideva, da je datoteka zbirke podatkov odprta, zato je storitev UI možno uporabiti, da pridobi dokument, metoda OpenTable iz storitve Database pa se uporabi, da pridobi instanco storitve Datasheet.

        Dim ui As Object, oBase As Object, oSheet As Object
        Set ui = CreateScriptService("UI")
        ' Predmet oBase je instanca storitve Base
        Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
        ' Predmet oSheet je instanca storitve Datasheet
        Set oSheet = oBase.OpenTable("Customers")

V zgornjem primeru lahko uporabite tudi metodo OpenQuery iz storitve Base, da dobite instanco Datasheet.

Če želite priklicati storitev Datasheet, ko datoteka zbirke podatkov ni odprta, uporabite metodo OpenTable, OpenQuery ali OpenSql iz storitve Database. Spodnji primer uporablja metodo OpenTable za odpiranje obstoječe tabele v datoteki zbirke podatkov:

        Dim oDatabase As Object, oSheet As Object
        ' Predmet oDatabase je instanca storitve Database
        Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
        ' Predmet oSheet je instanca storitve Datasheet
        Set oSheet = oDatabase.OpenTable("Customers")

##### V Pythonu

Zgornje primere lahko prevedemo v Python na sledeč način:

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

## Lastnosti

Naslednje lastnosti so na voljo v storitvi DataSheet:

Ime | Samo za branje | Vrsta | Opis
--- | --- | --- | ---
ColumnHeaders | Da | Polje nizov | Vrne polje Array z imeni naslovov stolpcev v delovnem listu.
CurrentColumn | Da | String | Vrne ime trenutno izbranega stolpca.
CurrentRow | Da | Integer | Vrne številko trenutno izbrane vrstice, začenši z 1.
DatabaseFileName | Da | String | Vrne ime datoteke Base v obliki zapisa FSO.FileNaming.
Filter | Ne | String | Določa filter, ki bo uveljavljen na delovnem listu, izražen kot stavek WHERE poizvedbe SQL brez ključne besede WHERE. Če je naveden prazen niz, se dejavni Filter odstrani.
LastRow | Da | Integer | Vrne število vseh vrstic v delovnem listu.
OrderBy | Ne | String | Določa zaporedje, v katerem naj bodo prikazani zapisi, kot stavek SQL ORDER BY, vendar brez ključnih besed ORDER BY. Če je naveden prazen niz, se dejavni OrderBy odstrani.
ParentDatabase | Da | Predmet | Vrne instanco storitve Database, kateri pripada delovni list.
Source | Da | String | Vrne niz, ki predstavlja vir podatkov, ki je lahko izjava SQL, ime tabele ali ime poizvedbe.
SourceType | Da | String | Vrne vrsto vira podatkov, ki ima lahko eno od naslednjih vrednosti: »SQL«, »TABLE« ali »QUERY«.
XComponent | Da | Predmet UNO | Vrne predmet UNO com.sun.star.lang.XComponent, ki predstavlja delovni list.
XControlModel | Da | Predmet UNO | Vrne predmet UNO com.sun.star.awt.XControl, ki predstavlja delovni list.
XTabControllerModel | Da | Predmet UNO | Vrne predmet UNO com.sun.star.awt.XTabControllerModel, ki predstavlja delovni list.

## Metode

Seznam metod v storitvi Datasheet
Activate CloseDatasheet CreateMenu | GetText GetValue GoToCell | RemoveMenu Toolbars

## Activate

V ospredje postavi okno podatkovnega pogleda, na katerega se sklicuje instanca Datasheet.

### Skladnja:

svc.Activate()

### Primer:

##### V Basicu

          oSheet.Activate()

##### V Pythonu

          sheet.Activate()

## CloseDatasheet

Zapre okno podatkovnega pogleda, na katerega se sklicuje instanca Datasheet.

### Skladnja:

svc.CloseDatasheet()

### Primer:

##### V Basicu

          oSheet.CloseDatasheet()

##### V Pythonu

          sheet.CloseDatasheet()

## CreateMenu

Ustvari nov menijski vnos v oknu podatkovnega pogleda in vrne instanco storitve SFWidgets.Menu, s katero lahko programsko dodajate elemente menija.

Meniji, dodani z metodo CreateMenu, so izgubljeni, takoj ko se zapre okno podatkovnega pogleda.

### Skladnja:

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

### Parametri:

menuheader: ime novega menija.

before: ta argument je lahko ime obstoječega vnosa menija, pred katerega bo postavljen nov meni, ali število, ki izraža položaj novega menija. Če za ta argument vrednost ni določena, bo novi meni vzpostavljen kot zadnji vnos.

submenuchar: ločilo, uporabljeno v menijskih drevesih (privzeto = ">").

### Primer:

##### V Basicu

          Dim oMenu As Object
          Set oMenu = oSheet.CreateMenu("Moj meni", Before := "Podatki")
          With oMenu
              .AddItem("Element 1", Command := ".uno:About")
              ' ...
              .Dispose()
          End With

##### V Pythonu

          menu = sheet.CreateMenu("Moj meni", before="Podatki")
          menu.AddItem("Element 1", command=".uno:About")
          # ...
          menu.Dispose()

Preverite stran pomoči storitve Menu, da izveste več o tem, kako ustvarite vnose menija in podmenijev ter z njimi povežete ukaze.

## GetText

Vrne besedilo v danem stolpcu trenutne vrstice.

Ta metoda ne spremeni položaja kazalke v oknu podatkovnega pogleda.

### Skladnja:

svc.GetText(column: any): str

### Parametri:

column: ime stolpca kot niz (String) ali položaj stolpca (začenši z 1). Če je položaj večji od podanega števila stolpcev, vrne zadnji stolpec.

### Primer:

##### V Basicu

          oSheet.GetText("FirstName")

##### V Pythonu

          sheet.GetText("FirstName")

## GetValue

Vrne vrednost v danem stolpcu trenutne vrstice kot veljavno vrsto Basic.

Vrste, ki so lahko vrnjene, so: String, Integer, Long, Single, Double, Date in Null.

Binarne vrste so vrnjene kot vrednost Long, kar nakazuje dolžino binarnega polja.

Vrne vrednost Empty, če zahtevane vrednosti ni mogoče pridobit.

Ta metoda ne spremeni položaja kazalke v oknu podatkovnega pogleda.

### Skladnja:

svc.GetValue(column: any): any

### Parametri:

column: ime stolpca kot niz (String) ali položaj stolpca (začenši z 1). Če je položaj večji od podanega števila stolpcev, vrne zadnji stolpec.

### Primer:

##### V Basicu

          oSheet.GetValue("Address")

##### V Pythonu

          sheet.GetValue("Address")

## GoToCell

Kazalko premakne v navedeno vrstico in stolpec.

### Skladnja:

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

### Parametri:

row: številka vrstice kot številska vrednost, začenši z 1. Če zahtevana vrstica presega število obstoječih vrstic, se kazalka postavi v zadnjo vrstico. Če ta argument ni podan, se stolpec ne spremeni.

column: ime stolpca kot niz (String) ali položaj stolpca (začenši z 1). Če je številka zahtevanega stolpca večja od števila obstoječih stolpcev, se kazalka postavi v zadnji stolpec. Če ta argument ni podan, se stolpec ne spremeni.

### Primer:

##### V Basicu

          ' Premakne kazalko v stolpec »Priimek« v vrstici 4
          oSheet.GoToCell(4, "Priimek")
          ' Premakne kazalko v tretji stolpec trenutne vrstice
          oSheet.GoToCell(Column := 3)
          ' Premakne kazalko eno vrstico navzdol, da ostane v istem stolpcu
          oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
          ' Premakne kazalko v zadnji stolpec zadnje vrstice
          Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
          oSheet.GoToCell(oSheet.LastRow, LastColumn)

##### V Pythonu

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

## RemoveMenu

Odstrani menijski vnos iz podatkovnega pogleda po njegovem imenu.

Ta metoda lahko odstrani menije, ki sodijo k standardnemu uporabniškemu vmesniku, kot tudi menije, ki so programsko dodani z metodo CreateMenu. Odstranitev standardnih menijev ni trajna in ti se ponovno pojavijo, potem ko okno zaprete in ponovno odprete.

### Skladnja:

svc.RemoveMenu(menuheader: str): bool

### Parametri:

menuheader: ime menija, ki bo odstranjen; loči med malimi in velikimi črkami. Ime ne sme vsebovati znaka vijuge oz. tilde (»~«).

### Primer:

##### V Basicu

          oSheet.RemoveMenu("Data")

##### V Pythonu

          sheet.RemoveMenu("Data")

### Toolbars

Ta metoda vrne seznam imen razpoložljivih orodnih vrstic v trenutnem dokumentu ali instanco storitve SFWidgets.Toolbar.

### Skladnja:

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

### Parametri:

ToolbarName: ime ene od razpoložljivih orodnih vrstic.

### Primer:

##### V Basicu

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

##### V Pythonu

        a_list = doc.Toolbars()

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.

Podobne teme

Storitev SFDatabases.Database

Storitev ScriptForge.UI