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.

tip

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.

tip

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:

tip

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:

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.

warning

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


Zerbitzu bat honakoetako bat izan daiteke:


          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:


          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
  
warning

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


Emaguzu laguntza!