SFDocuments.Base service

De service Base heeft een aantal methoden 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 methoden 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 methoden die specifiek zijn voor Base-documenten, waarmee gebruiken kunnen:

tip

Bekijk de service Document voor meer informatie over de methoden en eigenschappen die gebruikt kunnen worden om te werken met LibreOffice-documenten.


Service aanroep

Voordat de service Base gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:

note

• 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


In BASIC

De service kan op verschillende manieren worden aangeroepen. Het stukje code hieronder gebruikt de methode CreateBaseDocument van de service UI om een nieuw Base-bestand aan te maken.

NB: In alle voorbeelden is het object oDoc een instantie van de service Base.


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  

Hier maken we een instantie van de service Base aan, bij het openen van een bestaand Base-bestand:


    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  

Indien het Base-document al geopend is, kan de de instantie van de service Base direct worden aangemaakt:


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
In Python

We zetten de bovenstaande voorbeelden om naar Python:


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")
  

    doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  
note

Het gebruik in het vorige voorbeeld van "SFDocuments." is optioneel.


De methoden in de service Base

CloseFormDocument
FormDocuments
Forms

GetDatabase
IsLoaded
OpenFormDocument

PrintOut
SetPrinter


CloseFormDocument

Sluit het aangegeven document. Retourneert True als het sluiten lukt.

Syntaxis:

svc.CloseFormDocument(formdocument: str): bool

Parameters:

formdocument: De naam van het FormDocument dat gesloten moet worden, dit is een hoofdlettergevoelige tekenreeks.

Voorbeeld:

Indien formulierdocumenten in mappen zijn georganiseerd, moet de mapnaam zijn toegevoegd aan de opgegeven formdocument, dit geven we aan in deze voorbeelden:

In BASIC

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
In Python

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Retourneert een matrix met de volledige namen (bestandsnaam inclusief pad) van alle formulierdocumenten in het Base-document.

Syntaxis:

svc.FormDocuments(): str[0..*]

Voorbeeld:

Met de onderstaande code worden de namen afgedrukt van de formulierdocumenten in het huidige Base-document.

In BASIC

    Dim oDoc as Object, myForms as Object, formName as String
    Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
    Set myForms = oDoc.FormDocuments()
    For Each formName In myForms
        MsgBox formName
    Next formName
  
In Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  
tip

Meer informatie over formulierdocumenten staat in de beschrijving van de service Form.


Forms

Deze methode retourneert, afhankelijk van de parameters:

Syntaxis:

svc.Forms(formdocument: str): str[0..*]

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

Parameters:

formdocument: De naam van een geldig formulierdocument (hoofdlettergevoelig).

form: De naam of het indexnummer van het formulier opgeslagen in het formulierdocument. Indien dit argument niet wordt meegegeven, geeft de methode een lijst terug met alle formulieren in het formulierdocument.

note

Wij raden het gebruik van het indexnummer af, zeker als er meer één formulier is.


Voorbeeld:

De eerste regel in het onderstaande voorbeeld geeft een lijst met alle formulieren in het formulierdocument "myFormDocument". De volgende regel geeft een instantie van de service voor het formulier "myForm".

In BASIC

    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
In Python

    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  

GetDatabase

Retourneert een instantie van de service Database waarmee de uitvoering van de SQL-commando's op de databases die in het huidige Base-document zijn gedefinieerd of opgeslagen, mogelijk is.

Syntaxis:

svc.GetDatabase(user: str = '', password: str = ''): svc

Parameters:

user, password: Optionele parameters, tekenreeksen, om in te loggen. De standaardwaarde is voor beide "".

Voorbeeld:

In BASIC

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' User en password worden indien ze nodig zijn, hieronder meegegeven
    Set myDatabase = myDoc.GetDatabase()
    '   ... SQL-statements uitvoeren
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
In Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... SQL-statements uitvoeren
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Retourneert True als het aangegeven FormDocument geopend is.

Syntaxis:

svc.IsLoaded(formdocument: str): bool

Parameters:

formdocument: De naam van het te controleren FormDocument, een hoofdlettergevoelige tekenreeks.

Voorbeeld:

In BASIC

    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
In Python

    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  

OpenFormDocument

Opent het aangegeven FormDocument, of in de normale of in de ontwerpmodus.

Als het formulierdocument al geopend is dan wordt het geactiveerd zonder dat de modes wordt gewijzigd. De methode retourneert True als het formulierdocument kon worden geopend.

Syntaxis:

svc.OpenFormDocument(formdocument: str, designmode: bool = False): bool

Parameters:

formDocument: De naam van het formulierdocument dat geopend moet worden, een hoofdlettergevoelige tekenreeks

designmode: Als dit argument True is, dan wordt het FormDocument geopend n de ontwerpmodus.

Voorbeeld:

In BASIC

De meeste formulierdocumenten worden opgeslagen in de root van het Base-document. Ze worden geopend door de naam te gebruiken, zoals we in dit voorbeeld aangeven:


    oDoc.OpenFormDocument("myFormDocument")
  

Indien de formulierdocumenten georganiseerd zijn in mappen, is het noodzakelijk om de mapnaam op te nemen in de naam van het formulierdocument bij het openen. Voorbeeld:


    oDoc.OpenFormDocument("myFolder/myFormDocument")
  
In Python

    doc.OpenFormDocument("myFormDocument")
  

    doc.OpenFormDocument("myFolder/myFormDocument")
  

PrintOut

Deze methode stuurt de inhoud van het aangegeven formulierdocument naar de standaardprinter die gedefinieerd is met de methode SetPrinter.

Retourneert True als het document is afgedrukt.

Syntaxis:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

Parameters:

formdocument:Een geldige naam van een geopend formulierdocument, een hoofdlettergevoelige tekenreeks. Het wordt geactiveerd door de methode.

pages: De te printen pagina's in de vorm van een tekenreeks. Voorbeeld: "1-4;10;15-18". Standaardwaarde is alle pagina's.

copies: Het aantal afdrukken. Standaardwaarde is 1.

Voorbeeld:

In BASIC

    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
In Python

    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  

SetPrinter

Definieert de afdrukopties van een formulierdocument. Het formulierdocument moet geopend zijn.

Retourneert True indien het afdrukken is gelukt.

Syntaxis:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

Parameters:

formdocument: Een geldige naam van een formulierdocument, een hoofdlettergevoelige tekenreeks.

printer: De naam van de printerwachtrij waarnaar moet worden afgedrukt. Indien afwezig is de standaardprinter ingesteld.

orientation: Ofwel PORTRAIT of LANDSCAPE. Blijft onveranderd indien afwezig, met betrekking tot de printerinstellingen.

paperformat: Specificeert het papierformaat als een tekenreekswaarde die A3, A4, A5, LETTER, LEGAL of TABLOID kan zijn. Blijft onveranderd indien afwezig.

Voorbeeld:

In BASIC

    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
In Python

    doc.SetPrinter('myForm', paperformat='TABLOID')
  
warning

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.


Help ons, alstublieft!