Ajuda do LibreOffice 25.2
O serviço Base oferece vários métodos e propriedades para facilitar o gerenciamento e o manuseio de documentos do LibreOffice Base.
Este serviço está intimamente relacionado ao serviço Document, que fornece métodos genéricos para lidar com documentos do LibreOffice, incluindo documentos Base. Portanto, o serviço Base estende o serviço Document e fornece métodos adicionais que são específicos para documentos Base, permitindo aos usuários:
Obter acesso ao banco de dados contido num documento Base.
Abrir documentos de formulário armazenados num documento Base.
Verificar se um documento de formulário de um documento Base está carregado no momento.
Consulte o serviço Document para saber mais sobre métodos e propriedades que podem ser usado para gerenciar documentos do LibreOffice.
Antes de usar o serviço Base a biblioteca ScriptForge precisa ser carregada ou importada:
O serviço Base pode ser chamado de várias maneiras. O trecho de código abaixo usa o método CreateBaseDocument do serviço UI para criar um arquivo Base.
Observe que em todos os exemplos o objeto oDoc é uma instância do serviço Base.
    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")
  O serviço Base também pode ser instanciado ao abrir um arquivo Base existente, conforme mostrado abaixo:
    Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")
  Se um documento Base já estiver aberto, é possível instanciar o serviço Base diretamente:
    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")
  Os exemplos acima podem ser traduzidos para Python da seguinte maneira:
    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")
  A utilização da substring "SFDocuments." no exemplo anterior é opcional.
| Lista de métodos do serviço Base | ||
|---|---|---|
Fecha o documento de formulário. Retorna True se o fechamento foi bem sucedido.
O método CloseFormDocument foi descontinuado desde LibreOffice 7.6. Embora ainda esteja disponível, pode ser removido do serviço Base em um lançamento futuro. Em vez disso, use o método CloseDocument do serviço FormDocument.
svc.CloseFormDocument(formdocument: str): bool
formdocument: Nome do FormDocument a ser fechado, como uma string sensível à caixa.
Se os documentos do formulário estiverem organizados em pastas, torna-se necessário incluir o nome da pasta para especificar o documento do formulário a ser aberto, conforme ilustrado nos exemplos a seguir:
    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
    doc.CloseFormDocument('Folder1/myFormDocument')
  Retorna um array com os nomes completos (caminho / nome) de todos os documentos de formulário no documento Base como um Array de strings com índice começando em zero.
svc.FormDocuments(): str[0..*]
O trecho de código abaixo imprime os nomes de todos os documentos de formulário no documento Base atual.
    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)
  Para aprender mais sobre documentos de formulário, veja a página de ajuda do serviço ScriptForge.FormDocument .
Dependendo dos parâmetros fornecidos, este método retornará:
Um Array começando com índice zero com os nomes de todos os formulários contidos num documento de formulário (se o argumento Form estiver ausente)
Um objeto SFDocuments.Form representando o formulário especificado no argumento Form.
O método Forms foi descontinuado desde LibreOffice 7.6. Embora ainda esteja disponível, pode ser removido do serviço Base em um lançamento futuro. Em vez disso, use o método Forms do serviço FormDocument.
svc.Forms(formdocument: str): str[0..*]
svc.Forms(formdocument: str, form: str = ''): svc
svc.Forms(formdocument: str, form: int): svc
formdocument: O nome de um documento de formulário válido como uma string que diferencia maiúsculas de minúsculas.
form: O nome ou número de índice do formulário armazenado no documento de formulário. Se este argumento estiver ausente, o método retornará uma lista com os nomes de todos os formulários disponíveis no documento do formulário.
Embora seja possível usar números de índice para se referir a formulários, isso só é recomendado quando houver apenas um formulário no documento de formulário. Se houver dois ou mais formulários, é preferível usar o nome do formulário.
A primeira linha do exemplo abaixo retorna uma lista de todos os formulários no documento de formulário "myFormDocument". A segunda linha retorna uma instância do serviço Form que representa o formulário "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")
  Retorna uma instância doserviço Database que permite a execução de comandos SQL no banco de dados definido e / ou armazenado no documento Base atual
svc.GetDatabase(user: str = '', password: str = ''): svc
usuário, senha: Parâmetros de login opcionais como strings. O valor padrão para ambos os parâmetros é uma string vazia "".
    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' Nome de usuário e senha são informados abaixo, se necessário
    Set myDatabase = myDoc.GetDatabase()
    ' ... Executar consultas, comandos SQL, etc...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    # ... Executar consultas, comandos SQL, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  Retorna True se o FormDocument especificado estiver aberto no momento.
svc.IsLoaded(formdocument: str): bool
formdocument: O nome de um FormDocument a ser verificado, como uma string que diferencia maiúsculas de minúsculas.
    If Not oDoc.IsLoaded("myFormDocument") Then
        oDoc.OpenFormDocument("myFormDocument")
    End If
  
    if not doc.IsLoaded("myFormDocument"):
        doc.OpenFormDocument("myFormDocument")
  Abre o FormDocument especificado, tanto no modo normal, quanto no modo de design. Este método retorna uma instância de serviço FormDocument de acordo com o tipo de documento de formulário.
Se um documento de formulário já estiver aberto, ele é ativado sem alterar o seu modo.
Se o documento de formulário especificado não existir, então retorna Nothing.
svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc
formDocument: O nome do FormDocument a ser aberto, como uma string que diferencia maiúsculas de minúsculas.
designmode: Se este argumento for True, o FormDocument será aberto no modo de design.
A maioria dos documentos de formulário são armazenados na raiz do documento Base e podem ser abertos simplesmente usando seus nomes, como no exemplo abaixo:
    Dim oFormDoc As Object
    oFormDoc = oDoc.OpenFormDocument("myFormDocument")
  Se os documentos do formulário estiverem organizados em pastas, torna-se necessário incluir o nome da pasta para especificar o documento do formulário a ser aberto, conforme ilustrado no exemplo a seguir:
    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFormDocument")
  
    formDoc = doc.OpenFormDocument("myFolder/myFormDocument")
  Abre a janela de exibição de dados da consulta especificada e retorna uma instância de serviço da Datasheet.
A consulta pode ser aberta no modo normal ou de edição.
Se a consulta já estiver aberta, sua janela de Exibição de dados torna-se ativa.
Ao fechar o arquivo Base também fechará a janela de Exibição de dados.
svc.OpenQuery(queryname: str, designmode: bool = False): obj
queryname: o nome de uma consulta existente como uma string que diferencia maiúsculas de minúsculas.
designmode: Se esse argumento for configurado como True a consulta é aberta no modo de edição. Caso contrário será aberta no modo normal. (Padrão = False).
      oDoc.OpenQuery("MyQuery", DesignMode := True)
    
      doc.OpenQuery("MyQuery", designmode=True)
    Abre a janela Exibição de dados da tabela especificada e retorna uma instância do serviço Datasheet.
A tabela pode ser aberta tanto no modo normal quanto do modo de edição.
Se a tabela já estiver aberta, sua janela Exibição de dados será ativada.
Fechar o documento Base fará com que a janela de exibição de dados também seja fechada.
svc.OpenTable(tablename: str, designmode: bool = False): obj
tablename: O nome de uma tabela existente como uma String que diferencia maiúsculas de minúsculas.
designmode: Se esse argumento for configurado como True a tabela é aberta no modo de edição. Caso contrário é aberta no modo normal. (Padrão = False).
      oDoc.OpenTable("MyTable", DesignMode = False)
    
      doc.OpenTable("MyTable", designmode=False)
    Este método envia o conteúdo de um dado documento de formulário à impressora padrão ou à impressora definida pelo método SetPrinter().
Retorna True se a impressão do documento foi bem-sucedida.
O método PrintOut foi descontinuado desde LibreOffice 7.6. Embora ainda esteja disponível, pode ser removido do serviço Base em um lançamento futuro. Em vez disso, use o método PrintOut do serviço FormDocument.
svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool
formdocument: Um nome válido de documento de formulário informada como uma string sensível à caixa. O documento de formulário deve estar aberto. O documento de formulário é ativado pelo método.
pages: String contendo as páginas a serem impressas, da mesma forma como é feita a definição usando a interface do usuário. Por exemplo: "1-4;10;15-18". O valor padrão é a impressão de todas as páginas.
copies: Número de cópias. O padrão é 1.
    If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
        ' ...
    End If
  
    if doc.PrintOut('myForm', copies=3, pages='45-88'):
        # ...
  Define as opções de impressora para um documento de formulário. O documento de formulário deve estar aberto.
Retorna True se bem-sucedida.
O método SetPrinter foi descontinuado desde LibreOffice 7.6. Embora ainda esteja disponível, pode ser removido do serviço Base em um lançamento futuro. Em vez disso, use o método SetPrinter do serviço Document.
svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool
formdocument: Um nome válido de documento de formulário como uma string sensível à caixa.
    oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")
  
    doc.SetPrinter('myForm', paperformat='TABLOID')