Conteúdo

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

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:

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

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.

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

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)

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.

Tópicos relacionados

Serviço.SFDocumentsBase

Serviço SFDatabases.Database

SFDocuments.Document serviço

SFDocuments.Form serviço

ScriptForge.UI service

Necessitamos da sua ajuda!