SFDocuments.FormDocument serviço

O serviço FormDocument permite aceder a documentos de formulário armazenados nos documentos base LibreOffice.

Num documento Base, os documentos de formulário existentes podem ser visualizados selecionando Ver - Formulários na interface do utilizador. Cada documento de formulário pode ser composto por um ou mais formulários, incluindo o formulário principal e outros subformulários.

Este serviço herda métodos e propriedades do serviço Document e é frequentemente utilizado em conjunto com os serviços Base e Database.

Ícone da dica

Consulte o serviço Document para saber mais sobre os métodos e propriedades que podem ser utilizados para gerir documentos LibreOffice.


Chamada de serviço

Antes de utilizar o serviço FormDocument, é necessário carregar ou importar a biblioteca ScriptForge:

Ícone de nota

• As macros básicas requerem o carregamento da biblioteca ScriptForge através da seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Os scripts Python requerem a importação do módulo scriptforge:
from scriptforge import CreateScriptService


Em Basic

É possível criar uma instância do serviço FormDocument chamando o método OpenFormDocument, que existe tanto no serviço Base como no serviço Database.

O exemplo abaixo utiliza o serviço UI para abrir um documento Base e, em seguida, recuperar um documento de formulário. Note-se que, neste exemplo, tanto o documento Base como o documento de formulário serão abertos e apresentados no ecrã.


    Dim ui As Object, oBase As Object, oFormDoc As Object
    ui = CreateScriptService("UI")
    oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
    oFormDoc = oBase.OpenFormDocument("MyFormDocument")
    ' ...
    oFormDoc.CloseDocument()
  

O exemplo seguinte utiliza o serviço Database para abrir o documento do formulário. Neste caso, o ficheiro Base não será aberto e apenas o documento do formulário será apresentado.


    Dim oDatabase As Object, oFormDoc As Object
    oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")
  
Ícone de nota

A chamada de OpenFormDocument para um documento de formulário que já esteja aberto ativará a janela do documento e colocá-la-á em foco.


Em Python

Os exemplos acima podem ser traduzidos para Python da seguinte forma:


    ui = CreateScriptService("UI")
    baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
    formDoc = baseDoc.OpenFormDocument("MyFormDocument")
    # ...
    formDoc.CloseDocument()
  

    database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
    formDoc = database.OpenFormDocument("MyFormDocument")
  

Lista de métodos do serviço FormDocument

CloseDocument
Forms

GetDatabase

PrintOut


CloseDocument

Fecha o documento de formulário a que se refere a instância FormDocument. Devolve True se o documento de formulário tiver sido fechado com sucesso.

Sintaxe:

svc.CloseDocument(): bool

Exemplo:

Em Basic

    oFormDoc.CloseDocument()
  
Em Python

    formDoc.CloseDocument()
  

Forms

Devolve uma matriz com os nomes dos formulários principais contidos no documento do formulário ou uma instância do serviço Form que se refere a um formulário específico.

Chame este método sem argumentos para obter um array de cadeias de caracteres, com índice a partir de zero, contendo os nomes de todos os formulários incluídos no documento de formulários.

Indique o nome ou o índice de um formulário como argumento para obter uma instância do serviço Form correspondente ao formulário especificado.

Ícone de nota

Um documento de formulário tem, pelo menos, um formulário principal. Os documentos de formulário mais complexos podem ser compostos por mais do que um formulário e subformulários.


Sintaxe:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Parâmetros:

formulário: Este argumento pode ser uma cadeia de caracteres com o nome de um formulário existente no documento de formulários ou o índice, com início em zero, do formulário que deve ser devolvido. Se este argumento não for específico, é devolvida uma matriz com os nomes de todos os formulários disponíveis.

Exemplo:

Em Basic

O exemplo seguinte verifica se o documento do formulário contém um formulário denominado «MainForm»:


    arrForms = oFormDoc.Forms()
    If SF_Array.Contains(arrForms, "MainForm") Then
        ' ...
    End If
  

O exemplo abaixo recupera o formulário denominado «MainForm» e desloca-o para o último registo:


    Dim oForm As Object
    oForm = oFormDoc.Forms("MainForm")
    oForm.MoveLast()
  
Em Python

    arrForms = formDoc.Forms()
    if "MainForm" in arrForms:
        # ...
  

    form = formDoc.Forms("MainForm")
    form.MoveLast()
  
Ícone da dica

Para saber mais sobre os métodos e propriedades dos formulários, consulte a página de ajuda do serviço Form.


GetDatabase

Devolve uma instância SFDatabases.Database que permite a execução de comandos SQL na base de dados à qual o formulário atual está ligado e/ou que está armazenada no documento Base atual.

Cada formulário tem a sua própria ligação à base de dados, exceto nos documentos Base, em que todos partilham a mesma ligação.

Sintaxe:

svc.GetDatabase(opt user: str, opt password: str): svc

Parâmetros:

utilizador, palavra-passe: Os parâmetros opcionais de início de sessão (predefinição = "").

Exemplo:


      Dim myDb As Object ' SFDatabases.Database
      Set myDb = oForm.GetDatabase()
   
Em Python

      db = form.GetDatabase()  # SFDatabases.Database
   

PrintOut

Este método envia o conteúdo do documento para a impressora predefinida ou para a impressora definida pelo método SetPrinter().

Devolve True se o documento tiver sido enviado com sucesso para a impressora.

Sintaxe:

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

Parâmetros:

páginas: As páginas a imprimir, expressas como uma cadeia de caracteres. Este argumento deve ser especificado da mesma forma que na interface do utilizador (ver caixa de diálogo Ficheiro - Imprimir). Exemplo: "1-4;10;15-18". O valor predefinido é uma cadeia de caracteres vazia "" que fará com que todas as páginas sejam impressas.

cópias: O número de cópias a imprimir (Predefinição = 1).

printbackground: especifica se a imagem de fundo deve ser impressa (Predefinição = True).

printblankpages: especifica se as páginas em branco devem ser impressas (Predefinição = False).

printevenpages: especifica se as páginas pares devem ser impressas (Predefinição = True).

printoddpages: especifica se as páginas ímpares devem ser impressas (Predefinição = True).

printimages: especifica se as imagens devem ser impressas (Predefinição = True).

Exemplo:

Em Basic

    oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)
  
Em Python

    formDoc.PrintOut("1-4", copies = 2, printbackground = False)
  
Ícone de aviso

Todas as rotinas ou identificadores do ScriptForge Basic que tenham o caractere de sublinhado «_» como prefixo estão reservados para uso interno. Não se destinam a ser utilizados em macros do Basic ou em scripts Python.


Necessitamos da sua ajuda!

Necessitamos da sua ajuda!