Edukiak
Indizea 🔎︎

# ScriptForge.Services zerbitzua

ScriptForge liburutegia "zerbitzuak" deitutako bilduma hedagarri baten gainean eraikita dago.
Bilduma hori Basic liburutegien edo Python moduluen kategoria gisa inplementatzen da:

1. LibreOffice aplikazioarekin banatutako ScriptForge liburutegia

2. LibreOffice aplikazioarekin ere banatutako liburutegi "elkartuen" multzo bat

3. edozein erabiltzailek/garatzailek sortu duen eta lan-marko berean sartu nahi den beste edozein LibreOffice hedapen

Zerbitzu bat propietateen eta metodoen multzo bat da, zerbitzu hori inplementatzen dutenak.

Erabiltzaile-script baten egilearentzat, zerbitzu bat izan daiteke bai liburutegi bateko modulu bat, bai klase-modulu bateko instantzia bat.

Gertaeren kudeatzaile bat makro bat abiarazten duen gertaera bat zerbitzu-instantzia batekin lotzen duen script bat da, liburutegi batean dagoena. Sarritan Tresnak - Pertsonalizatu menuan definituta dago.

Adibidez, dokumentu batek baino gehiagok makro bera abiarazten badute kargatuta daudenean, erabilgarria izan daiteke jakitea zein dokumentuk abiarazi duen makroa. Gertaera-kudeatzaile batek egoera horretan betetzen du lana.

ScriptForge lan-markoaren muina honako metodoek osatzen dute:

- RegisterScriptServices

  Barnetik deitzen du ScriptForge liburutegiak, liburutegi batek inplementatzen dituen zerbitzuen zerrenda erregistratzeko.
  Scriptforge-ri lotuta dagoen edo hura hedatzen duen liburutegi bakoitzak bere RegisterScriptServices metodo propioa inplementatu behar du.

- RegisterService

  RegisterScriptServices metodoak deitzen du, liburutegian erregistratu behar diren zerbitzu kopurua bezainbeste aldiz.

- RegisterEventManager

  RegisterScriptServices metodoak liburutegiaren gertaera-kudeatzaile bat erregistratzeko deitzen da.

- CreateScriptService

  Erabiltzaile-scriptek deitzen dute argumentu gisa ematen den zerbitzua atzitzeko erabili daitekeen objektu bat eskuratzeko.
  Zerbitzu guztiak CreateScriptService metodoaren bidez deitu behar dira.

Normalean, String, Array eta Exception zerbitzuei zuzenean deitu dakizkieke, SF_String, SF_Array eta SF_Exception modura.

Services zerbitzuaren metodoen zerrenda
CreateScriptService | RegisterScriptServices RegisterService | RegisterEventManager

## CreateScriptService

Atzitu liburutegi baten zerbitzuetako bat, erabiltzaile-script batean erabili ahal izateko.
Itzulitako balioa Basic objektu bat edo, errore bat gertatzen bada, Nothing da.

Zerbitzu bat honakoetako bat izan daiteke:

- Basic modulu estandar batean bildutako metodoen multzoa

- edo Basic klase-modulu batean bildutako metodoen eta propietateen multzo bat.

### Sintaxia:

           CreateScriptService(Service As String, [arg0, ...] As Variant) As Variant

### Parametroak:

Service: "library.service" gisa identifikatutako zerbitzuaren izena.
Basic liburutegi bat da, GlobalScope adierazlean existitu behar dena. Balio lehenetsia "ScriptForge" da.
Liburutegiak RegisterScriptServices() metodoaren bidez erregistratzen duen zerbitzuetako bat da.

arg0, ...: Deitutako zerbitzuak behar dituen argumentuen zerrenda.
Lehen argumentuak gertaera-kudeatzaile bati egiten badio erreferentzia, orduan arg0 derrigorrezkoa da eta erabiltzaile-makroari argumentu gisa eskainitako gertaera ordezkatzen duen UNO objektua izan behar du.

### Adibidea:

            GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
            ' Behin bakarrik egingo da
            Dim svc As Object
            Set svc = CreateScriptService("Array")
            ' "ScriptForge.Array" zerbitzuari edo SF_Array objektuari egiten dio erreferentzia
            Set svc = CreateScriptService("ScriptForge.Dictionary")
            ' Hiztegi huts baten klase-instantzia bat itzultzen du; "ScriptForge." aukerakoa da
            Set svc = CreateScriptService("SFDocuments.Calc")
            ' Lotutako SFDocuments liburutegian inplementatutako Calc zerbitzuari egiten dio erreferentzia
            Set svc = CreateScriptService("Timer", True)
            ' Berehala hasiko den Timer klase-instantzia bat itzultzen du
            Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
            ' Lotutako SFDocuments liburutegian inplementatutako DocumentEvent zerbitzuari egiten dio erreferentzia
            ' Gertaera abiarazi duen Document klasearen instantzia egiten dio erreferentzia

## RegisterScriptServices

RegisterService() eta RegisterEventManager() metodoen dei sorta bat exekutatuta, RegisterScriptServices() metodoak liburutegi bat gehitzen dio ScriptForge lan-markoari.
Lan-markoko liburutegi bakoitzak metodo honen bertsio propioa inplementatu behar du.

Metodoa Basic modulu estandar batean biltegiratu behar da, klase-moduluen kasuan ez bezala.

Zerbitzu bat honakoetako bat izan daiteke:

- Basic objektu gisa pasatu den Basic modulu estandar bat.

- edo zerbitzuaren instantzia bat eskuratzeko exekutatuko den funtzioa adierazten duen kate bat. Izatez, instantzia sortzen duen Set instrukzio baten New gako-hitza duen funtzioa da.

              EsparruGlobala.LiburutegiIzena.ModuluIzena ' Objektua
              "LiburutegiIzena.ModuluIzena.FuntzioIzena" ' Katea

### Adibidea:

          Public Sub RegisterScriptServices()
          ' To be stored in library = myLibrary
              With GlobalScope.ScriptForge.SF_Services
                  .RegisterService("myService1", GlobalScope.myLibrary.myModule)
                  ' Zerbitzua metodoen multzo gisa inplementatzen duen Basic modulu estandar baten erreferentzia
                  .RegisterService("myService2", "myLibrary.someModule.someFunction")
                  ' Funtzioak zerbitzua inplementatzen duen Basic objektu-klase baten instantzia bat itzuli beharko luke
                  ' ...
              End With
          End Sub

Erabiltzaile-script batek honako instrukzio bat duenean:

    Set myServ = CreateScriptService("myLibrary.myService1")

ScriptForge liburutegiak honako zereginak betetzen ditu:

1. myLibrary liburutegia kargatzea, beharrezkoa denean

2. RegisterScriptServices metodoari deitzea myLibrary liburutegiko zerbitzuen zerrenda memorian kargatzeko

3. myServ aldagaia hasieratzea emandako zerbitzuarekin

## RegisterService

Metodoak True itzultzen du argumentu gisa emandako izena-balioa bikotea ongi erregistratu bada.

### Sintaxia:

          GlobalScope.ScriptForge.SF_Services.RegisterService(ServiceName As String, ServiceReference As Variant) As Boolean

### Parametroak:

ServiceName: Zerbitzuaren izena, maiuskulak/minuskulak bereizten ez dituen kate gisa. Izenak bakarra izan behar du.

ServiceReference: Zerbitzu-erreferentzia bat honakoetako bat da:

- Basic objektu gisa pasatu den Basic modulu estandar bat.

- edo zerbitzuaren instantzia bat eskuratzeko exekutatuko den funtzioa adierazten duen kate bat. Izatez, instantzia sortzen duen Set instrukzio baten New gako-hitza duen funtzioa da.

              EsparruGlobala.LiburutegiIzena.ModuluIzena ' Objektua
              "LiburutegiIzena.ModuluIzena.FuntzioIzena" ' Katea

### Adibidea:

              With GlobalScope.ScriptForge.SF_Services
                  .RegisterService("myService1", GlobalScope.myLibrary.myModule)
                  ' Zerbitzua metodoen multzo gisa inplementatzen duen Basic modulu estandar baten erreferentzia
                  .RegisterService("myService2", "myLibrary.someModule.someFunction")
                  ' Funtzioak zerbitzua inplementatzen duen Basic objektu-klase baten instantzia bat itzuli beharko luke
                  ' ...
              End With

## RegisterEventManager

Metodoak True itzuliko du argumentu gisa emandako izena-balioa parea ongi erregistratu ahal bada.

### Sintaxia:

          GlobalScope.ScriptForge.SF_Services.RegisterEventManager(ServiceName As String, ServiceReference As String) As Boolean

### Parametroak:

ServiceName: Zerbitzuaren izena maiuskulak/minuskulak bereizi gabeko kate gisa. Izenak bakarra izan behar du.

ServiceReference: Zerbitzuaren instantzia bat eskuratzeko exekutatuko den funtzioa adierazten duen kate bat. Izatez, instantzia sortzen duen Set instrukzio baten New gako-hitza duen funtzioa da:

        "LibraryName.ModuleName.FunctionName" ' String

### Adibidea:

              With GlobalScope.ScriptForge.SF_Services
                  .RegisterEventManager("myEventMgr", "myLibrary.someModule.someFunction")
                  ' Funtzioak zerbitzua inplementatzen duen Basic objektu-klase baten instantzia bat itzuli behar du
                  ' ...
              End With

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.

Erlazionatutako gaiak

Set instrukzioa

GlobalScope adierazlea