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:

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

Antes de usar o serviço Base a biblioteca ScriptForge precisa ser carregada ou importada:

note

• Macros BASIC precisam carregar a biblioteca ScriptForge usando a seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Scripts Python exigem uma importação do módulo scriptforge:
from scriptforge import CreateScriptService


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

CloseFormDocument
FormDocuments
Forms

GetDatabase
IsLoaded
OpenFormDocument

PrintOut
SetPrinter


CloseFormDocument

Fecha o documento de formulário. Retorna True se o fechamento foi bem sucedido.

Sintaxe:

svc.CloseFormDocument(formdocument: str): bool

Parâmetros:

formdocument: Nome do FormDocument a ser fechado, como uma string sensível à caixa.

Exemplo:

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:

Em Basic

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

    doc.CloseFormDocument('Folder1/myFormDocument')
  

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 = doc.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, ...
    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")
  

PrintOut

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.

Sintaxe:

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

Parâmetros:

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.

Exemplo:

Em Basic

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

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

SetPrinter

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.

Sintaxe:

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

Parâmetros:

formdocument: Um nome válido de documento de formulário como uma string sensível à caixa.

printer: Nome da fila de impressão para a qual a impressão será enviada. Se ausente, a impressora padrão é usada.

orientation: Pode ser PORTRAIT ou LANDSCAPE. Se ausente, a orientação não é alterada e o valor definido nas configurações da impressora será usado.

paperformat: especifica o formato do papel como um valor de string que pode ser A3, A4, A5, LETTER , LEGAL ou TABLOID. Deixado inalterado quando ausente.

Exemplo:

Em Basic

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

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

Todas as rotinas ou identificadores do ScriptForge em Basic que possuem o caractere "_" como prefixo são reservadas para uso interno. Elas não devem ser usadas em macros escritas em Basic ou em Python.


♥ Doe para nosso projeto! ♥