Wobsah

# Słužba SFDatabases.Datasheet

Słužba Datasheet zmóžnja, wobsah tabelow datoweje banki kaž tež wuslědki wotprašowanjow a SQL-přikazy z pomocu datoweho napohlada Base wizualizować. Nimo toho tuta słužba zmóžnja:

- Datowemu napohladej swójske menije přidać.

- Přistup k hódnotam we wěstych pozicijach datoweho napohlada dóstać.

- Kursor we wěstej celi datoweho napohlada pozicioněrować.

## Słužbowe wuwołanje

Před wužiwanjom słužby Datasheet dyrbi so biblioteka ScriptForge začitać abo importować:

• Makra Basic sej wužaduja, zo so biblioteka ScriptForge z pomocu slědowaceho přikaza začituje:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Skripty Python sej import z modula scriptforge wužaduja:
from scriptforge import CreateScriptService

##### W Basic

Słužba Datasheet da so na dwě rozdźělnej wašni wuwołać, wotwisujo wot toho, hač dataja datoweje banki je wočinjena.

Slědowacy přikład z toho wuchadźa, zo dataja datoweje banki je wočinjena, tohodla da so słužba UI wužiwać, zo by dokument wotwołała a metoda OpenTable ze słužby Database so wužiwa, zo by słužbowu instancu Datasheet dóstała.

        Dim ui As Object, oBase As Object, oSheet As Object
        Set ui = CreateScriptService("UI")
        ' Objekt oBase je instanca słužby Base
        Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
        ' Objekt oSheet je instanca słužby Datasheet
        Set oSheet = oBase.OpenTable("Customers")

W přikładźe horjeka je tež móžno, metodu OpneQuery ze słužby Base wužiwać, zo by instancu Datasheet dóstało.

Zo byšće słužbu Datasheet wuwołał, hdyž dataja datoweje banki wočinjena njeje, wužiwajće metody OpenTable, OpenQuery abo OpenSql ze słužby Database. Slědowacy přikład metodu OpenTable wužiwa, zo by eksistowacu tabelu w dataji datoweje banki wočinił:

        Dim oDatabase As Object, oSheet As Object
        ' Objekt oDatabase je instanca słužby Database
        Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
        ' Objekt oSheet je instanca słužby Datasheet
        Set oSheet = oDatabase.OpenTable("Customers")

##### W Python

Přikłady horjeka dadźa so takle do Python přełožić:

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

## Kajkosće

Slědowace kajkosće su w słužbje Datasheet k dispoziciji:

Mjeno | Přećiwo pisanju škitany | Typ | Wopisanje
--- | --- | --- | ---
ColumnHeaders | Haj | Matriks znamješkowych rjećazkow | Wróći matriks Array z mjenami špaltowych nadpismow w datowej tabeli.
CurrentColumn | Haj | String | Wróći tuchwilu wubrane špaltowe mjeno.
CurrentRow | Haj | Integer | Wróći čisło tuchwilu wubraneje linki, započinajo z 1.
DatabaseFileName | Haj | String | Wróći datajowe mjeno dataje Base w formaće FSO.FileNaming.
Filter | Ně | String | Podawa filter, kotryž so ma na datowu tabelu nałožić, zwuraznjeny jako klawsla WHERE wotprašowanja SQL bjez klučoweho słowa WHERE. Jeli so prózdny znamješkowy rjećazk podawa, so aktiwny filter wotstroni.
IsAlive | Haj | Boolean | True, hdyž njeje so datowa tabela začiniła (na př. přez akciju wužiwarja).
LastRow | Haj | Integer | Wróći ličbu linkow w datowej tabeli.
MenuHeaders | Haj | String array | Wróći lisćinu z menijowymi mjenami, kotrež su w menijowej lajsće.
OrderBy | Ně | String | Podawa porjad, po kotrymž so datowe sadźby pokazuje, zwuraznjeny jako klawsla ORDER BY wotprašowanja SQL bjez klučoweho słowa ORDER BY. Jeli so prózdny znamješkowy rjećazk podawa, so aktiwny OrderBy wotstroni.
ParentDatabase | Haj | Objekt | Wróći słužbowu instancu Database, ke kotrejž datowa tabela słuša.
Source | Haj | String | Wróći znamješkowy rjećazk, kotryž datowe žórło reprezentuje, kotrež móže SQL-přikaz, tabelowe mjeno abo mjeno wotprašowanja być.
SourceType | Haj | String | Wróći typ datoweho žórła, kotryž móže jedna ze slědowacych hódnotow być: „SQL“, „TABLE“ abo „QUERY“.
XComponent | Haj | Objekt UNO | Wróći objekt UNO com.sun.star.lang.XComponent, kotryž datowu tabelu reprezentuje.
XControlModel | Haj | Objekt UNO | Wróći objekt UNO com.sun.star.awt.XControl, kotryž datowu tabelu reprezentuje.
XTabControllerModel | Haj | Objekt UNO | Wróći objekt UNO com.sun.star.awt.XTabControllerModel, kotryž datowu tabelu reprezentuje.

## Metody

Lisćina metodow w słužbje Datasheet
Activate CloseDatasheet CreateMenu | GetText GetValue GoToCell | RemoveMenu Toolbars

## Activate

Přinjese wokno datoweho napohlada doprědka, na kotrež so přez instancu Datasheet wotkazuje.

### Syntaksa:

svc.Activate()

### Přikład:

##### W Basic

          oSheet.Activate()

##### W Python

          sheet.Activate()

## CloseDatasheet

Začini wokno datoweho napohlada, na kotrež so přez instancu Datasheet wotkazuje.

### Syntaksa:

svc.CloseDatasheet()

### Přikład:

##### W Basic

          oSheet.CloseDatasheet()

##### W Python

          sheet.CloseDatasheet()

## CreateMenu

Wutwori nowy menijowy zapisk we woknje datoweho napohlada a wróći słužbowu instancu SFWidgets.Menu, z kotrejž dadźa so menijowe zapiski přez program přidać.

Menije, kotrež su so z pomocu metody CreateMenu přidali, so zhubja, hdyž so wokno datoweho napohlada začini.

### Syntaksa:

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

### Parametry:

menuheader: Mjeno noweho menija.

before: Tutón argument móže pak mjeno eksistowaceho menijoweho zapiska być, před kotrymž so nowy meni placěruje, pak ličba, kotraž pozicija noweho menija zwuraznja. Jeli tutón argument so prózdny wostaja, so nowy meni jako posledni zapisk placěruje.

submenuchar: Dźělatko, kotrež so w menijowych štomach wužiwa (standard = ">")

### Přikład:

##### W Basic

          Dim oMenu As Object
          Set oMenu = oSheet.CreateMenu("Mój meni", Before := "Data")
          With oMenu
              .AddItem("Zapisk 1", Command := ".uno:About")
              ' ...
              .Dispose()
          End With

##### W Python

          menu = sheet.CreateMenu("Mój meni", before="Data")
          menu.AddItem("Zapisk 1", command=".uno:About")
          # ...
          menu.Dispose()

Čitajće stronu pomocy słužby Menu, zo byšće wjace wo tym zhonił, kak móžeće zapiski menijow a podmenijow wutworić a jim přikazy přirjadować.

## GetText

Wróći tekst w datej špalće aktualneje linki.

Tuta metoda poziciju kursor we woknje datoweho napohlada njezměni.

### Syntaksa:

svc.GetText(column: any): str

### Parametry:

column: Mjeno špalty jako znamješkowy rjećazk abo špaltowa pozicija (započinajo z 1). Jeli pozicija je podata, kotraž je wjetša hač ličba špaltow, so poslednja špalta wróći.

### Přikład:

##### W Basic

          oSheet.GetText("FirstName")

##### W Python

          sheet.GetText("FirstName")

## GetValue

Wróći hódnotu w datej špalće aktualneje linki jako płaćiwy typ Basic.

Typy, kotrež dadźa so wróćić, su: String, Integer, Long, Single, Double, Date a Null.

Binarne typy so jako hódnota Long wróćeja, kotraž dołhosć binarneho pola podawa.

Hódnota Empty so wróća, jeli trěbna hódnota njeda so wotwołać.

Tuta metoda poziciju kursor we woknje datoweho napohlada njezměni.

### Syntaksa:

svc.GetValue(column: any): any

### Parametry:

column: Mjeno špalty jako znamješkowy rjećazk abo špaltowa pozicija (započinajo z 1). Jeli pozicija je podata, kotraž je wjetša hač ličba špaltow, so poslednja špalta wróći.

### Přikład:

##### W Basic

          oSheet.GetValue("Address")

##### W Python

          sheet.GetValue("Address")

## GoToCell

Pohibuje kursor k podatej lince a špalće.

### Syntaksa:

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

### Parametry:

row: Linkowe čisło jako numeriska hódnota započinajo z 1. Jeli požadana linka ličbu eksistowacych linkow překročuje, so kursor do poslednjeje linki pohibuje. Jeli so tutón argument njepodawa, so linka njezměni.

column: Mjeno špalty jako znamješkowy rjećazk abo špaltowa pozicija (započinajo z 1). Jeli požadana špalta ličbu eksistowacych špaltow překročuje, so kursor do poslednjeje špalty pohibuje. Jeli so tutón argument njepodawa, so špalta njezměni.

### Přikład:

##### W Basic

          ' Pohibuje kursor k špalće „SwójbneMjeno“ w lince 4
          oSheet.GoToCell(4, "SwójbneMjeno")
          ' Pohibuje kursor k třećej špalće aktualneje linki
          oSheet.GoToCell(Column := 3)
          ' Pohibuje kursor wo jednu linku dele a wostaja jón w samsnej špalće
          oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
          ' Pohibuje k poslednjej špalće poslednjeje linki
          Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
          oSheet.GoToCell(oSheet.LastRow, LastColumn)

##### W Python

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

## RemoveMenu

Wotstronja menijowy zapisk z datoweho napohlada po jeho mjenje.

Tuta metoda móže menije wotstronić, kotrež k standardnemu wužiwarskemu powjerchej słušeja kaž tež menije, kotrež su so přez program z metodu CreateMenu přidali. Wotstronjenje standardnych menijow na přeco njeje a budu so zaso jewić, po tym zo wokno je so začiniło a zaso wočiniło.

### Syntaksa:

svc.RemoveMenu(menuheader: str): bool

### Parametry:

menuheader: Mjeno menija, kotryž so ma wotstronić dźiwajo na wulkopisanje. Mjeno njesmě znamješko tilda ("~") wobsahować.

### Přikład:

##### W Basic

          oSheet.RemoveMenu("Data")

##### W Python

          sheet.RemoveMenu("Data")

### Toolbars

Tuta metoda pak lisćinu mjenow symbolowych lajstow, kotrež su k dispoziciji, w poprawnym dokumenće pak instancu słužby SFWidgets.Toolbar wróći.

### Syntaksa:

svc.Toolbars(opt toolbarname: str): svc
svc.Toolbars(): str[0..]

### Parametry:

toolbarname: Zwučene mjeno jedneje ze symbolowych lajstow, kotrež su k dispoziciji.

### Přikład:

##### W Basic

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

##### W Python

        a_list = doc.Toolbars()

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.

Podobne temy

Słužba SFDatabases.Database

ScriptForge.UI service

Prošu podpěrajće nas!