Помощ за LibreOffice 25.2
Услугата Base предоставя методи и свойства за управление и работа с документи на LibreOffice Base.
Тази услуга е тясно свързана с услугата Document, която предоставя общи методи за работа с документи на LibreOffice, включително такива на Base. Следователно услугата Base разширява Document и предлага допълнителни методи, специфични за документите на Base, като позволява на потребителите:
да получават достъп до базата от данни, която се съдържа в документ на Base;
да отварят документи с формуляри, съхранявани в документ на Base;
да проверяват дали в момента е зареден документ с формуляри от документ на Base.
Вижте услугата услугата Document, за да научите повече за методите и свойствата, чрез които се управляват документи на LibreOffice.
Преди да използвате услугата Base, библиотеката ScriptForge трябва да бъде заредена или импортирана:
Услугата Base може да бъде извикана по няколко начина. Долният програмен откъс използва метода CreateBaseDocument от услугата UI, за да създаде нов файл на Base.
Обърнете внимание, че във всички примери обектът oDoc е екземпляр на услугата Base.
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  Екземпляр на услугата Base може да бъде създаден и чрез отваряне на съществуващ файл на Base, както е показано по-долу:
    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  Ако вече има отворен документ на Base, е възможно директно да се създаде екземпляр на услугата Base:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  Примерите по-горе могат да бъдат преведени на 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")
  Употребата на подниза "SFDocuments." в предишния пример не е задължителна.
| Списък с методи на услугата Base | ||
|---|---|---|
Затваря дадения документ с формуляри. Връща True, ако затварянето е успешно.
Методът CloseFormDocument е отхвърлен от LibreOffice 7.6 нататък. Макар че все още е достъпен, той може да бъде премахнат от услугата Base в бъдещо издание. Вместо него използвайте метода CloseDocument на услугата FormDocument.
svc.CloseFormDocument(formdocument: str): bool
formdocument: името на обекта от типа FormDocument, който да бъде затворен, като чувствителен към регистъра низ.
Ако документите са организирани в папки, е необходимо да се включи името на папката, за да се укаже кой документ да бъде отворен, както е показано в следващите примери:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Връща масив с пълните имена (път/име) на всички документи с формуляри в документа на Base като индексиран от нула обект Array от низове.
svc.FormDocuments(): str[0..*]
Програмният откъс по-долу отпечатва имената на всички документи с формуляри в текущия документ на Base.
    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)
  За да научите повече за документите с формуляри, вижте страницата Услуга ScriptForge.FormDocument от помощта.
В зависимост от подадените параметри, този метод връща:
индексиран от нула масив (Array) с имената на всички формуляри, съдържащи се в документ с формуляри (ако отсъства аргументът Form);
обект SFDocuments.Form, който представя формуляра, зададен в аргумента Form.
Методът Forms е отхвърлен от LibreOffice 7.6 нататък. Макар че все още е достъпен, той може да бъде премахнат от услугата Base в бъдещо издание. Вместо него използвайте метода Forms на услугата FormDocument.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
formdocument: името на валиден документ с формуляри като чувствителен към регистъра низ.
form: името или индексът на формуляр, съхраняван в документа с формуляри. Ако този аргумент отсъства, методът ще върне списък с имената на всички формуляри, налични в документа с формуляри.
Макар че е възможно за посочване на формуляри да се използват индексни номера, това се препоръчва само когато в документа с формуляри има един единствен формуляр. Ако има два или повече формуляра, за предпочитане е вместо това да се използва името на формуляра.
Първият ред на следващия пример връща списък на всички формуляри в документа с формуляри "myFormDocument". Вторият ред връща екземпляр на услугата Form, който представя формуляра "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")
  Връща екземпляр на услугата Database, която позволява изпълняване на команди на SQL върху базата от данни, дефинирана и/или съхранявана в текущия документ на Base.
svc.GetDatabase(user: str = '', password: str = ''): svc
user, password: незадължителни параметри за влизане – низове. Подразбираната стойност и за двата параметъра е празен низ "".
    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Потребителят (user) и паролата (password) се подават по-долу, ако е необходимо.
    Set myDatabase = myDoc.GetDatabase()
    '   ... Изпълняване на заявки, оператори на SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Изпълняване на заявки, оператори на SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Връща True, ако указаният документ с формуляри FormDocument е отворен в момента.
svc.IsLoaded(formdocument: str): bool
formdocument: името на обекта от типа FormDocument, който да бъде проверен, като чувствителен към регистъра низ.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Отваря указания обект FormDocument в нормален режим или режим на проектиране. Този метод връща екземпляр на услугата FormDocument, съответстващ на указания формулярен документ.
Ако формулярният документ вече е отворен, той се активира, без да се променя режимът му.
Ако указаният документ с формуляри не съществува, се връща стойността Nothing.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
formDocument: името на обекта от типа FormDocument, който да бъде отворен, като чувствителен към регистъра низ.
designmode: ако този аргумент е True, обектът FormDocument ще бъде отворен в режим на проектиране.
Повечето документи с формуляри се съхраняват в корена на документа на Base и могат да бъдат отворени просто чрез имената си както в долния пример:
    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  Ако документите с формуляри са организирани в папки, за задаване на отваряния формулярен документ е необходимо да се включи името на папката, както е показано в следващия пример:
    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Отваря прозореца „Изглед с данни“ на указаната заявка и връща екземпляр на услугата Datasheet.
Заявката може да бъде отворена в нормален режим или в режим на проектиране.
Ако заявката вече е отворена, прозорецът ѝ „Изглед с данни“ ще бъде активиран.
Затварянето на документ на Base предизвиква затваряне и на прозореца „Изглед с данни“.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: името на съществуваща заявка като низ, малките и главните букви се различават.
designmode: ако този аргумент е True, заявката се отваря в режим на проектиране. В противен случай се отваря в нормален режим (подразбира се False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Отваря прозореца „Изглед с данни“ на указаната таблица и връща екземпляр на услугата Datasheet.
Таблицата може да бъде отворена в нормален режим или в режим на проектиране.
Ако таблицата вече е отворена, прозорецът ѝ „Изглед с данни“ ще бъде активиран.
Затварянето на документ на Base предизвиква затваряне и на прозореца „Изглед с данни“.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: името на съществуваща таблица като низ, малките и главните букви се различават.
designmode: ако този аргумент е True, таблицата се отваря в режим на проектиране. В противен случай се отваря в нормален режим (подразбира се False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    Този метод изпраща съдържанието на дадения документ с формуляри към подразбирания принтер или принтер, определен от метода SetPrinter().
Връща True, ако документът е бил успешно отпечатан.
Методът PrintOut е отхвърлен от LibreOffice 7.6 нататък. Макар че все още е достъпен, той може да бъде премахнат от услугата Base в бъдещо издание. Вместо него използвайте метода PrintOut на услугата FormDocument.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
formdocument: валидно име на документ с формуляри като чувствителен към регистъра низ. Документът с формуляри трябва да е отворен. Той ще бъде активиран от метода.
pages страниците, които да бъдат отпечатани, като низ, както в потребителския интерфейс. Пример: "1-4;10;15-18". Подразбират се всички страници.
copies: броят копия. Подразбира се 1.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Задава настройките на принтера за документ с формуляри. Документът трябва да е отворен.
Връща True при успех.
Методът SetPrinter е отхвърлен от LibreOffice 7.6 нататък. Макар че все още е достъпен, той може да бъде премахнат от услугата Base в бъдещо издание. Вместо него използвайте метода SetPrinter на услугата Document.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: валидно име на документ с формуляри като чувствителен към регистъра низ.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')