LibreOffice 24.8 Help
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.
Bekijk de service Document voor meer informatie over de methodes en eigenschappen die gebruikt kunnen worden om te werken met LibreOffice-documenten.
Voordat de service Base gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:
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")
  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")
  Het gebruik in het vorige voorbeeld van "SFDocuments." is optioneel.
| De methodes in de service Base | ||
|---|---|---|
Sluit het aangegeven document. Retourneert True als het sluiten lukt.
De methode CloseFormDocument is verouderd sinds LibreOffice 7.6. Hoewel het nog steeds beschikbaar is, kan het in een toekomstige release uit de Base-service worden verwijderd. Gebruik in plaats daarvan de methode CloseDocument uit de service FormDocument.
svc.CloseFormDocument(formdocument: str): bool
formdocument: De naam van het FormDocument dat gesloten moet worden, dit is een hoofdlettergevoelige tekenreeks.
Indien formulierdocumenten in mappen zijn georganiseerd, moet de mapnaam zijn toegevoegd aan de opgegeven formdocument, dit geven we aan in deze voorbeelden:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Retourneert een matrix met de volledige namen (bestandsnaam inclusief pad) van alle formulierdocumenten in het Base-document.
svc.FormDocuments(): str[0..*]
Met de onderstaande code worden de namen afgedrukt van de formulierdocumenten in het huidige Base-document.
    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
  
    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
    myForms = doc.FormDocuments()
    for formName in myForms:
        bas.MsgBox(formName)
  Voor meer informatie over formulierdocumenten raadpleegt u de helppagina van ScriptForge.FormDocument-service .
Deze methode retourneert, afhankelijk van de parameters:
Een matrix met de namen van alle formulieren in een formulierdocument (als er geen argument Form is)
Een object SFDocuments.Form dat een weergave is van het in het argument Form aangegeven formulier.
De methode Forms is verouderd sinds LibreOffice 7.6. Hoewel het nog steeds beschikbaar is, kan het in een toekomstige release uit de Base-service worden verwijderd. Gebruik in plaats daarvan de methode Forms uit de service FormDocument.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
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.
Wij raden het gebruik van het indexnummer af, zeker als er meer één formulier is.
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".
    Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
    Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")
  
    formsList = doc.Forms("myFormDocument")
    form = doc.Forms("myFormDocument", "myForm")
  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.
svc.GetDatabase(user: str = '', password: str = ''): svc
user, password: Optionele parameters, tekenreeksen, om in te loggen. De standaardwaarde is voor beide "".
    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()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... SQL-statements uitvoeren
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Retourneert True als het aangegeven FormDocument geopend is.
svc.IsLoaded(formdocument: str): bool
formdocument: De naam van het te controleren FormDocument, een hoofdlettergevoelige tekenreeks.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Opent het opgegeven FormDocument in de normale modus of in de ontwerpmodus. Deze methode retourneert een service-instantie FormDocument die overeenkomt met het opgegeven formulierdocument.
Als het formulierdocument al geopend is, wordt het geactiveerd zonder de modus te wijzigen.
Als het opgegeven formulierdocument niet bestaat, wordt Niets geretourneerd.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
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.
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:
    Dim oFormDoc As Object
    oFormDoc = 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:
    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Opent het venster Gegevensweergave van de opgegeven query en retourneert een instantie van de Datasheet-service.
De query kan worden geopend in de normale modus of in de ontwerpmodus.
Als de query al open is, wordt het venster Gegevensweergave actief gemaakt.
Als u het Base-document sluit, wordt het venster Gegevensweergave ook gesloten.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: De naam van een bestaande query als een hoofdlettergevoelige tekenreekstekenreeks.
designmode: Als dit argument is ingesteld op True, wordt de query geopend in de ontwerpmodus. Anders wordt het geopend in de normale modus (standaard = False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Opent het venster Gegevensweergave van de gespecificeerde tabel en retourneert een instantie van de Datasheet-service.
De tabel kan worden geopend in de normale modus of in de ontwerpmodus.
Als de tabel al open is, wordt het venster Gegevensweergave actief gemaakt.
Als u het Base-document sluit, wordt ook het venster Gegevensweergave gesloten.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: De naam van een bestaande tabel als een hoofdlettergevoelige tekenreeks.
designmode: Als dit argument is ingesteld op True wordt de tabel geopend in de ontwerpmodus. Anders wordt het geopend in de normale modus (standaard = False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    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.
De methode PrintOut is verouderd sinds LibreOffice 7.6. Hoewel het nog steeds beschikbaar is, kan het in een toekomstige release uit de Base-service worden verwijderd. Gebruik in plaats daarvan de methode PrintOut van de service FormDocument.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
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.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Definieert de afdrukopties van een formulierdocument. Het formulierdocument moet geopend zijn.
Retourneert True indien het afdrukken is gelukt.
De methode SetPrinter is verouderd sinds LibreOffice 7.6. Hoewel het nog steeds beschikbaar is, kan het in een toekomstige release uit de Base-service worden verwijderd. Gebruik in plaats daarvan de methode SetPrinter van de service Document.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: Een geldige naam van een formulierdocument, een hoofdlettergevoelige tekenreeks.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')