Serviço SFDocuments.Base

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:

note

Este serviço está disponível a partir do LibreOffice 7.2 em diante.


tip

Consulte o serviço Document para saber mais sobre métodos e propriedades que podem ser usado para gerenciar documentos do LibreOffice.


Invocação do serviço

Em Basic

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")
  
Em Python

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")
  
note

A utilização da substring "SFDocuments." no exemplo anterior é opcional.


Lista de métodos do serviço Base

FormDocuments
Forms

GetDatabase
IsLoaded

OpenFormDocument


FormDocuments

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.

Sintaxe:

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

Exemplo:

O trecho de código abaixo imprime os nomes de todos os documentos de formulário no documento Base atual.

Em 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
  
Em Python

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

Para saber mais sobre documentos de formulário, consulte a página de ajuda do serviço Form.


Forms

Dependendo dos parâmetros fornecidos, este método retornará:

Sintaxe:

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

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

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

Parâmetros:

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.

note

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.


Exemplo:

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".

Em Basic

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

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

GetDatabase

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

Sintaxe:

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

Parâmetros:

usuário, senha: Parâmetros de login opcionais como strings. O valor padrão para ambos os parâmetros é uma string vazia "".

Exemplo:

Em Basic

    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()
  
Em Python

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    ' ... Executar consultas, comandos SQL, etc...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Retorna True se o FormDocument especificado estiver aberto no momento.

Sintaxe:

svc.IsLoaded(formdocument: str): bool

Parâmetros:

formdocument: O nome de um FormDocument a ser verificado, como uma string que diferencia maiúsculas de minúsculas.

Exemplo:

Em Basic

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

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

OpenFormDocument

Abre o FormDocument especificado tanto no modo normal quanto no modo de edição.

Se o documento do formulário já estiver aberto, ele será ativado sem alterar seu modo. O método retorna True se o documento do formulário puder ser aberto.

Sintaxe:

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

Parâmetros:

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.

Exemplo:

Em Basic

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:


    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:


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

    doc.OpenFormDocument("myFormDocument")
  

    doc.OpenFormDocument("myFolder/myFormDocument")
  
warning

Todas as rotinas básicas ou identificadores do ScriptForge que possuem o caractere "_" como prefixo são reservados apenas para uso interno. Elas não devem ser usadas em macros Basic.


♥ Doe para nosso projeto! ♥