Edukiak
Indizea 🔎︎

# SFDatabases.Datasheet zerbitzua

Datasheet zerbitzuari esker, datu-base baten taulen edukiak eta kontsulten eta SQL instrukzioen emaitzak bistaratu daitezke, horretarako Base aplikazioaren 'Datu-ikuspegia' erabiliz. Horrez gain, zerbitzuak zera ahalbidetzen du:

- Datu-ikuspegiari menu pertsonalizatuak gehitzea.

- Datu-ikuspegiaren kokagune jakinetan dauden balioak atzitzea.

- Kurtsorea datu-ikuspegiaren gelaxka jakin batean kokatzea.

## Zerbitzuari deitzea

Datasheet zerbitzua erabiltzeko, ScriptForge liburutegia kargatu edo inportatu behar da lehenengo:

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService

##### Basic lengoaian

Datasheet zerbitzua bi modutara deitu daiteke, datu-basearen fitxategia irekita dagoen ala ez kontuan hartuta.

Beheko adibidean, datu-basea irekita dagoela kontsideratzen da eta, beraz, UI zerbitzua erabili daitekeela dokumentua atzitzeko eta Database zerbitzuaren OpenTable metodoa erabiltzen dela Datasheet zerbitzuaren instantzia bat eskuratzeko.

        Dim ui As Object, oBase As Object, oSheet As Object
        Set ui = CreateScriptService("UI")
        ' oBase objektua Base zerbitzuaren instantzia bat da
        Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
        ' oSheet objektua Datasheet zerbitzuaren instantzia bat da
        Set oSheet = oBase.OpenTable("Customers")

Goiko adibidean, Base zerbitzuaren OpenQuery ere erabili daiteke Datasheet instantzia bat eskuratzeko.

Datu-basearen fitxategia irekita ez dagoenean Datasheet zerbitzuari deitzeko, erabili Database zerbitzuaren OpenTable, OpenQuery edo OpenSql metodoak. Beheko adibideak OpenTable metodoa erabiltzen du datu-basearen fitxategian dagoen taula bar irekitzeko:

        Dim oDatabase As Object, oSheet As Object
        ' oDatabase objektua Database zerbitzuaren instantzia bat da
        Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
        ' oSheet objektua Datasheet zerbitzuaren instantzia bat da
        Set oSheet = oDatabase.OpenTable("Customers")

##### Python lengoaian

Goiko adibideak Python lengoaian erabiltzeko, egin honela:

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

## Propietateak

Datasheet zerbitzuak honako propietateak ditu:

Izena | Irakurtzeko soilik | Mota | Deskribapena
--- | --- | --- | ---
ColumnHeaders | Bai | Kateen matrizea | Datu-orriko zutabe-goiburukoen izenak dituen Array bat itzultzen du.
CurrentColumn | Bai | String | Unean hautatutako zutabearen izena itzultzen du.
CurrentRow | Bai | Integer | Unean hautatutako errenkadaren zenbakia itzultzen du, 1 zenbakian hasita.
DatabaseFileName | Bai | String | Base fitxategiaren izena itzultzen du, FSO.FileNaming formatuan.
Filter | Ez | String | Datu-orrian aplikatuko den iragazkia zehazten du, WHERE gako-hitzik gabeko SQL kontsulta baten WHERE klausula gisa adierazita. Hutsik dagoen kate bat zehatzen bada, Filter iragazki aktiboa kenduko da.
LastRow | Bai | Integer | Datu-orriak duen errenkada kopurua itzultzen du.
OrderBy | Ez | String | Erregistroak zein ordenatan erakutsiko diren zehazten du, ORDER BY gako-hitzik gabeko SQL kontsulta baten ORDER BY klausula gisa adierazita. Hutsik dagoen kate bat zehatzen bada, OrderBy aktiboa kendu egingo da.
ParentDatabase | Bai | Objektua | Datu-orria dagoen Database zerbitzu-instantzia itzultzen du.
Source | Bai | String | Datu-iturburua ordezkatzen duen kate bat itzultzen du. SQL instrukzio bat, taula-izen bat edo kontsulta-izen bat izan daiteke.
SourceType | Bai | String | Datu-iturburuaren mota itzultzen du. Honako balioetako bat eduki dezake: "SQL", "TABLE" edo "QUERY".
XComponent | Bai | UNO objektua | Datu-orria ordezkatzen duen com.sun.star.lang.XComponent UNO objektua itzultzen du.
XControlModel | Bai | UNO objektua | Datu-orria ordezkatzen duen com.sun.star.awt.XControl UNO objektua itzultzen du.
XTabControllerModel | Bai | UNO objektua | Datu-orria ordezkatzen duen com.sun.star.awt.XTabControllerModel UNO objektua itzultzen du.

## Metodoak

Datasheet zerbitzuaren metodoen zerrenda
Activate CloseDatasheet CreateMenu | GetText GetValue | GoToCell RemoveMenu

## Activate

Datasheet instantziak erreferentzia egiten dion datu-ikuspegiaren leihoa aurrera eramaten du.

### Sintaxia:

svc.Activate()

### Adibidea:

##### Basic lengoaian

          oSheet.Activate()

##### Python lengoaian

          sheet.Activate()

## CloseDatasheet

Datasheet instantziak erreferentzia egiten dion datu-ikuspegiaren leihoa ixten du.

### Sintaxia:

svc.CloseDatasheet()

### Adibidea:

##### Basic lengoaian

          oSheet.CloseDatasheet()

##### Python lengoaian

          sheet.CloseDatasheet()

## CreateMenu

Menu-sarrera berria sortzen du datu-ikuspegiaren leihoan eta SFWidgets.Menu zerbitzu-instantzia itzultzen du, haren bidez menu-elementuak programatikoki gehitu ahal izateko.

CreateMenu metodoaren bidez gehitutako menuak galdu egingo dira datu-ikuspegiaren leihoa itxi eta berehala.

### Sintaxia:

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

### Parametroak:

menuheader: Menu berriaren izena.

before: Argumentu hau lehendik dagoen menu-sarrera baten izena izan daiteke, menu berria haren aurretik kokatu dadin, edo menu berriaren kokagunea adierazten duen zenbaki bat izan daiteke. Argumentu hau hutsik uzten bada, menu berria azken sarrera gisa kokatuko da.

submenuchar: Menu-zuhaitzetan erabilitako mugatzailea (Balio lehenetsia = ">")

### Adibidea:

##### Basic lengoaian

          Dim oMenu As Object
          Set oMenu = oSheet.CreateMenu("Nire menua", Before := "Datuak")
          With oMenu
              .AddItem("1. elementua", Command := ".uno:About")
              ' ...
              .Dispose()
          End With

##### Python lengoaian

          menu = sheet.CreateMenu("Nire menua", before="Datuak")
          menu.AddItem("1. elementua", command=".uno:About")
          # ...
          menu.Dispose()

Irakurri Menu zerbitzua laguntza-orria menuak eta azpimenuak eta haiei lotutako komandoak nola sortu ikasteko.

## GetText

Uneko errenkadatik emandako zutabearen testua itzultzen du.

Metodo honek ez du aldatzen kurtsorearen kokagunea datu-ikuspegiaren leihoan.

### Sintaxia:

svc.GetText(column: any): str

### Parametroak:

column: Zutabearen izena, kate gisa, edo zutabearen kokagunea (1 baliotik hasita). Zutabe kopurua baino handiagoa den kokagune bat ematen bada, azken zutabea itzuliko da.

### Adibidea:

##### Basic lengoaian

          oSheet.GetText("FirstName")

##### Python lengoaian

          sheet.GetText("FirstName")

## GetValue

Uneko errenkadatik emandako zutabearen balioa itzultzen du, baliozko Basic mota gisa.

Itzuli daitezkeen motak: String, Integer, Long, Single, Double, Date eta Null.

Mota bitarrak eremu bitarraren luzera adierazten duen Long balio gisa itzultzen dira.

Beharrezkoa den balioa ezin bada atzitu, Empty balioa itzultzen da.

Metodo honek ez du aldatzen kurtsorearen kokagunea datu-ikuspegiaren leihoan.

### Sintaxia:

svc.GetValue(column: any): any

### Parametroak:

column: Zutabearen izena, kate gisa, edo zutabearen kokagunea (1 baliotik hasita). Zutabe kopurua baino handiagoa den kokagune bat ematen bada, azken zutabea itzuliko da.

### Adibidea:

##### Basic lengoaian

          oSheet.GetValue("Address")

##### Python lengoaian

          sheet.GetValue("Address")

## GoToCell

Zehaztutako errenkadara eta zutabera darama kurtsorea.

Metodo honek ez du aldatzen kurtsorearen kokagunea datu-ikuspegiaren leihoan.

### Sintaxia:

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

### Parametroak:

row: Errenkadaren zenbakia 1 balioan hasten den zenbakizko balio gisa. Eskatutako errenkada dagoen errenkada kopurua baino handiagoa bada, kurtsorea azken errenkadara eramango da. Argumentu hau zehazten ez bada, errenkada ez da aldatuko.

column: Zutabearen izena String gisa edo zutabearen kokagunea 1 balioan hasita. Eskatutako zutabea dagoen zutabe kopurua baino handiagoa bada, kurtsorea azken zutabera eramango da. Argumentu hau zehazten ez bada, zutabea ez da aldatuko

### Adibidea:

##### Basic lengoaian

          ' Kurtsorea 4. errenkadako "AzkenIzena" zutabera darama
          oSheet.GoToCell(4, "AzkenIzena")
          ' Uneko errenkadaren hirugarren zutabera darama kurtsorea
          oSheet.GoToCell(Column := 3)
          ' Kurtsorea errenkada bat behera darama, baina zutabe berean utzita
          oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
          ' Azken errenkadaren azken zutabera darama
          Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
          oSheet.GoToCell(oSheet.LastRow, LastColumn)

##### Python lengoaian

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

## RemoveMenu

Menu-sarrera bat kentzen du datu-ikuspegitik, bere izenaren arabera.

Metodo honek erabiltzaile-interfaze estandarrarenak diren menuak kendu ditzake, eta baita CreateMenu metodoaren bidez programatikoki gehitu diren menuak ere. Menu estandarrak kentzen badira, ez da behin-betiko izango eta berriro agertuko dira leihoa itxi eta berriro irekitzen bada.

### Sintaxia:

svc.RemoveMenu(menuheader: str): bool

### Parametroak:

menuheader: Kenduko den menuaren izena (maiuskulak/minuskulak kontuan hartuta). Izenak ez du tileta ("~") eduki behar.

### Adibidea:

##### Basic lengoaian

          oSheet.RemoveMenu("Data")

##### Python lengoaian

          sheet.RemoveMenu("Data")

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.

Erlazionatutako gaiak

SFDatabases.Database zerbitzua

ScriptForge.UI zerbitzua