De ScriptForge bibliotheek
              
  
    ScriptForge bibliotheken zijn een uitbreidbare collectie van macro-scripts voor LibreOffice die aangeroepen kunnen worden door Basic-macro's en Python-scripts.
  
    
• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService
 
  
  
Lees, voor een uitleg hoe een Python-script te maken en uit te voeren met gebruik van de ScriptForge bibliotheek, de help-pagina.
 
  ScriptForge services activeren
  De beschreven modules en klassen worden geactiveerd door gebruikersscripts als "Services". Voor dit doel is er voor elke taal een algemene "constructor" ontworpen.
  In elke service is er een methode Dispose waarmee na het gebruik van de service de gebruikte bronnen vrij gegeven kunnen worden:
  
  
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Set oSvc = CreateScriptService("servicename"[, arg0, arg1, ...])
    ' ...
    oSvc.Dispose()
  
    from scriptforge import CreateScriptService
    svc = CreateScriptService('servicename'[, arg0, arg1, ...])
    # ...
    svc.Dispose()
  
Services beschikbaar in de ScriptForge-bibliotheek
  
    
      
  
  
  Geeft methodes voor het manipuleren en omzetten van eendimensionale matrixen (vectoren) en tweedimensionale matrixen. Dit is inclusief het zetten, sorteren, importeren uit en exporteren naar tekstbestanden.
  Voor matrixen met meer dan twee dimensies kunnen deze methodes niet worden gebruikt, hierop is één uitzondering, de methode CountDims.
 
    
    
      
  
  
  De service Base heeft een aantal methodes en eigenschappen voor het ondersteunen van het beheren en werken met LibreOffice Base-documenten.
  Deze service is sterk gerelateerd aan de service Document, die generieke methodes bevat door het werken met LibreOffice documenten, inclusief Base-documenten. Deze service Base is dus eigenlijk een uitbreiding op de service Document en geeft aanvullende methodes die specifiek zijn voor Base-documenten, waarmee gebruiken kunnen:
  
    - 
        Toegang krijgen tot de database in het Base-document. 
- 
        Formulieren kunnen openen die opgeslagen zijn in een Base-document. 
- 
        Controleren of een formulier van een Base-document al geladen is. 
 
    
    
      
    
  De service ScriptForge.Basic bevat een aantal LibreOffice Basic methodes die vanuit Python uitgevoerd kunnen worden. De methodes in de service Basic gebruiken dezelfde syntaxis en doen hetzelfde als de ingebouwde Basic-functies.
 
    
    
      
    
    De gedeelde bibliotheek SFDocuments biedt een aantal methodes en eigenschappen om het beheer en de verwerking van LibreOffice-documenten te vergemakkelijken.
    De service SFDocuments.Calc is een subklasse van de service SFDocuments.Document. Alle methodes en eigenschappen die gedefinieerd zijn voor de service Document kunnen ook benaderd worden via een instantie van de service Calc.
    De service Calc is gericht op:
    
        - 
            Werkbladen in een Calc-document verwerken (kopiëren, invoegen, verplaatsen, enz.) 
- 
            Gegevens uitwisselen tussen basisgegevensstructuren en Calc-bereiken 
- 
            Grote hoeveelheden gegevens kopiëren en importeren 
 
    
    
      
    
    De service Chart heeft een aantal eigenschappen en methodes voor het werken met diagrammen in Calc.Met deze methode is het mogelijk om:
    
      - 
        Diagram-objecten in Calc-documenten te benaderen en de eigenschappen ervan te wijzigen. 
- 
        Diagrammen toe te voegen in een Calc-document. 
- 
        Diagrammen als afbeelding te exporteren. 
 
    
    
      
    
    De service Database biedt toegang tot databases die zijn ingesloten of beschreven in Base-documenten. Deze service biedt methodes om:
    
      - 
        Krijg toegang tot gegevens in databasetabellen. 
- 
        SELECT query's en aggregatiefuncties uitvoeren. 
- 
        SQL-instructies, zoals INSERT, UPDATE, DELETE, enz uitvoeren. 
 
    
    
      
    
    De service Dataset wordt gebruikt om tabelgegevens weer te geven die door een database worden geproduceerd. Met deze dienst is het mogelijk om:
    
      - 
        Navigeer door en open de gegevens in een dataset. 
- 
        Records in een dataset bijwerken, invoegen en verwijderen. 
 
    
    
      
  
  
  De Datasheet-service maakt het mogelijk om de inhoud van databasetabellen te visualiseren, evenals de resultaten van query's en SQL-statements met behulp van Base's Gegevensweergave. Bovendien maakt deze service het volgende mogelijk:
  
    - 
        Voeg aangepaste menu's toe aan de gegevensweergave. 
- 
        Krijg toegang tot waarden op specifieke posities van de gegevensweergave. 
- 
        Plaats de cursor in een specifieke cel van de gegevensweergave. 
 
    
    
      
  
  De service Dialog draagt bij aan het beheer van dialoogvensters die zijn gemaakt met de Basic Dialog Editor of van dialoogvensters die on-the-fly zijn gemaakt . Elke instantie van de huidige klasse vertegenwoordigt een enkel dialoogvenster dat aan de gebruiker wordt weergegeven.
 
    
    
      
   
  
  De service DialogControl beheert de bedieningselementen die horen bij een dialoogvenster dat is gedefinieerd met de Basic Dialog Editor. Elk exemplaar van de huidige service vertegenwoordigt een enkel besturingselement in een dialoogvenster.
  
  De focus ligt op het verkrijgen en instellen van de waarden die worden weergegeven door de bedieningselementen van het dialoogvenster. Opmaak is toegankelijk via de eigenschappen XControlModel en XControlView.
  Merk op dat de unieke inhoud van de eigenschap DialogControl.Value varieert afhankelijk van het type besturingselement.
  Speciale aandacht wordt besteed aan besturingen van het type boombesturing. Het is gemakkelijk om een boom te bevolken, tak voor tak, of met een set takken tegelijk. Het vullen van een boombesturing kan statisch of dynamisch worden uitgevoerd.
 
    
    
      
  
  
  Een woordenboek is een verzameling sleutel-itemparen
  
 
    
    
      
    
  De bibliotheek SFDocuments biedt methodes en eigenschappen om het beheer en de manipulatie van LibreOffice-documenten te vergemakkelijken.
  Methodes die van toepassing zijn op alle soorten documenten (tekstdocumenten, bladen, presentaties, enz.) worden geleverd door de service SFDocuments.Document. Enkele voorbeelden zijn:
  
  - 
    Documenten openen, sluiten en opslaan 
- 
    Toegang tot standaard- of aangepaste eigenschappen van documenten 
 
    
    
      
  
  
  De service Exception is een verzameling methodes om te helpen bij het debuggen van code in Basic- en Python-scripts en bij foutafhandeling in Basic-scripts.
  Wanneer in Basic-scripts een runtime-fout optreedt, helpen de methodes en eigenschappen van de Exception-service om de foutcontext te identificeren en deze af te handelen.
 
    
    
      
  
  De service FileSystem bevat routines om met bestanden en mappen te werken. Enkele voorbeelden van de functies in deze service:
  
    - 
      Testen of een bestand of map bestaat. 
- 
      Mappen en bestanden aanmaken en verwijderen. 
- 
      Dialoogvensters starten om bestanden te openen of op te slaan. 
- 
      Toegang tot een lijst van bestanden in een map, enz. 
 
    
    
      
  
  De service Form biedt methodes en eigenschappen om formulieren in LibreOffice-documenten te beheren. Deze service ondersteunt formulieren in Base-, Calc- en Writer-documenten en maakt het volgende mogelijk:
  
    - 
        Formulieren openen en activeren. 
- 
        Door de records navigeren die op het formulier worden weergegeven. 
- 
        Toegang krijgen tot de bedieningselementen in het formulier. 
- 
        Toegang krijgen tot subformulieren van een bovenliggend formulier. 
 
    
    
      
  
  De service FormControl biedt toegang tot de besturingselementen die horen bij een formulier, een subformulier of een tabelbesturingselement van een FormDocument. Elke instantie van de service FormControl verwijst naar een enkel besturingselement in het formulier. Met deze service kunnen gebruikers:
  
    - 
        Eigenschappen van het besturingselement verkrijgen en instellen, dat wordt vertegenwoordigd door de instantie FormControl. 
- 
        Toegang tot de huidige waarde weergegeven door het besturingselement. 
- 
        De focus instellen op het gewenste besturingselement. 
 
    
    
      
    
    De service FormDocument biedt toegang tot formulierdocumenten die zijn opgeslagen in LibreOffice Base-documenten.
    In een Base-document kunnen bestaande formulierdocumenten worden bekeken door in de gebruikersinterface  te selecteren. Elk formulierdocument kan uit een of meer formulieren bestaan, inclusief het hoofdformulier en andere subformulieren.
   
    
    
      
    
    De service bevat een aantal methodes gerelateerd met de vertaling van teksten van de applicatie en zou geen gevolgen moeten hebben voor de werking van de applicatie. De methodes in de service L10N worden hoofdzakelijk gebruikt voor:
    
      - 
        Het aanmaken van POT-bestanden, met een POT-bestand kan een vertaler aan de slag om alle teksten in de applicatie te gaan vertalen vanuit standaard het Engels naar de gewenste taal. 
- 
        Het op runtime ophalen van een tekst in de taal die in de eigenschap Locale is aangegeven. 
 
    
    
      
    
    De service Menu kan worden gebruikt om menu's te maken en te verwijderen uit de menubalk van een LibreOffice-documentvenster. Elk menu-item kan worden gekoppeld aan een script of aan een UNO-opdracht. Deze service biedt de volgende mogelijkheden:
    
      - 
        Het maken van menu's met aangepaste items, selectievakjes, keuzerondjes en scheidingstekens. 
- 
        Decoratie van menu-items met pictogrammen en helptips. 
 
    
    
      
    
  De service Platform biedt een verzameling eigenschappen over de huidige uitvoeringsomgeving en context, zoals:
  
      - 
          Het hardwareplatform (architectuur, CPU-aantal, machinetype, enz.) 
- 
          Informatie over het besturingssysteem (type besturingssysteem, uitgaves, versie, enz.) 
- 
          De LibreOffice-versie 
- 
          De huidige gebruikersnaam 
 
    
    
      
    
    De service PopupMenu kan worden gebruikt om pop-upmenu's te maken die aan gebeurtenissen kunnen worden gekoppeld of door scripts kunnen worden uitgevoerd. Deze service biedt de volgende mogelijkheden:
    
      - 
        Het maken van pop-upmenu's met aangepaste items, selectievakjes en keuzerondjes. 
- 
        Decoratie van menu-items met pictogrammen en helptips. 
 
    
    
      
  
  De service Region biedt een verzameling eigenschappen en methodes om lokale en regiogerelateerde aspecten van programmeren af te handelen, zoals:
  
    - 
      Toegang tot land- en regioafhankelijke instellingen zoals getalopmaak, valuta en tijdzones. 
- 
      Tijdzones omrekenen en verschuivingen van de zomertijd (DST) berekenen. 
- 
      Getallen omzetten in tekst in elke ondersteunde taal. 
 
    
    
      
  
  
  Het belangrijkste doel van de module Services is om toegang te bieden tot de methode CreateScriptService, die kan worden aangeroepen in gebruikersscripts om services te instantiëren die zijn geïmplementeerd met behulp van het ScriptForge-framework.
 
    
    
      
    
    
    De service Session verzamelt verschillende algemene methodes over:
    
   
    
    
      
  
  De service String service heeft een aantal methodes voor het werken met tekenreeksen. Deze methodes kunnen gebruikt worden om:
  
    - 
      De inhoud van tekenreeksen te valideren 
- 
      De tekenreeks verbeteren door het verwijderen van spaties,  het uitvullen of teruglopen van tekst 
- 
      Met reguliere expressies naar teksten zoeken en die vervangen 
- 
      Hash algoritmes toepassen, enz. 
 
    
    
      
  
  De service TextStream wordt gebruikt om achtereenvolgens te lezen van en te schrijven naar bestanden die zijn geopend of gemaakt met de service ScriptForge.FileSystem.
  De methodes OpenTextFile en CreateTextFile van de service FileSystem retourneren een instantie van de service TextStream.
 
    
    
      
  
  De service Timer meet de hoeveelheid tijd die nodig is om gebruikersscripts uit te voeren.
  Een Timer meet de tijdsduur. Het kan zijn:
  
    - 
      Gestart, om aan te geven wanneer te beginnen met het meten van de tijd. 
- 
      Opgeschort, om de looptijdmeting te stoppen. 
- 
      Hervat om de looptijd voort te zetten nadat de timer is onderbroken. 
- 
      Opnieuw gestart, waardoor eerdere metingen worden geannuleerd en de Timer op nul begint. 
 
    
    
      
    
    Met de service Toolbar kunt u informatie ophalen met betrekking tot de werkbalken die beschikbaar zijn voor een specifiek documentvenster. Met deze dienst is het mogelijk om:
    
   
    
    
      
    
    Met de service ToolbarButton kunt u informatie ophalen met betrekking tot de werkbalkknoppen die beschikbaar zijn in een bepaalde werkbalk. Met deze dienst is het mogelijk om:
    
   
    
    
      
   
De service UI (User Interface) vereenvoudigt de identificatie en de manipulatie van de verschillende vensters die de hele LibreOffice-toepassing vormen:
   - 
      Vensterselectie 
- 
      Vensters verplaatsen en vergroten/verkleinen 
- 
      Statusbalk-instellingen 
- 
      Weergave van een zwevende voortgangsbalk 
- 
      Maken van nieuwe vensters 
- 
      Toegang tot de onderliggende "documenten" 
 
    
    
      
  
  De service UnitTest biedt een raamwerk voor het automatiseren van unit-tests met behulp van de Basic-taal, inclusief de mogelijkheid om:
  
    - 
      Testgevallen in testsuites en unittests samenvoegen. 
- 
      Setup- en afsluitcode delen tussen testcases. 
- 
      Testresultaten rapporteren met behulp van de Console. 
 
    
    
      
    
    De gedeelde bibliotheek SFDocuments biedt een aantal methodes en eigenschappen om het beheer en de verwerking van LibreOffice-documenten te vergemakkelijken.
    Sommige methodes zijn generiek voor alle soorten documenten en worden overgenomen van de module SF_Document, terwijl andere methodes die specifiek zijn voor Writer-documenten worden gedefinieerd in de module SF_Writer.
    
 
    
    
    NB: Overige ScriptForge-modules die hier niet beschreven zijn, dienen voor intern gebruik door ScriptForge. Deze modules kunnen zonder kennisgeving worden gewijzigd.
    
      
Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.