Serviço SFDocuments.FormDocument

O serviço FormDocument permite acessar documentos de formulário armazenados em documentos do Collabora Office Base.

Em um documento Base, os documentos de formulário existentes podem ser visualizados selecionando Exibir - Formulários na interface do usuário. 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 usado junto com os serviços Base e Database.

tip

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


Invocação do serviço

Antes de usar o serviço FormDocument 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

Uma instância do serviço FormDocument pode ser criada chamando o método OpenFormDocument que existe nos serviços Base e Database.

O exemplo abaixo usa o serviço UI para abrir um documento Base e então recuperar um documento de formulário. Observe que neste exemplo tanto o documento Base quanto o documento formulário serão abertos e exibidos na tela.


    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 a seguir usa o serviço Database para abrir o documento de formulário. Neste caso, o arquivo Base não será aberto e apenas o documento de formulário será mostrado.


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

Chamar OpenFormDocument para um documento de formulário que já está aberto ativará a janela do documento e a colocará em foco.


Em Python

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


    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

PrintOut


CloseDocument

Fecha o documento de formulário referido pela instância FormDocument. Retorna True se o documento de formulário foi fechado com sucesso.

Sintaxe:

svc.CloseDocument(): bool

Exemplo:

Em Basic

    oFormDoc.CloseDocument()
  
Em Python

    formDoc.CloseDocument()
  

Forms

Retorna um array com os nomes dos formulários principais contidos no documento de formulário ou uma instância do serviço Form referente a um formulário específico.

Chame este método sem argumentos para obter uma lista de strings iniciada em zero com os nomes de todos os formulários contidos no documento de formulário.

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

note

Um documento de formulário possui pelo menos um formulário principal. Documentos de formulários mais complexos podem ser compostos por mais de um formulário e subformulários.


Sintaxe:

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

svc.Forms(form: str): svc

svc.Forms(form: int): svc

Parâmetros:

form: Este argumento pode ser uma string com o nome de um formulário que existe no documento de formulário ou o índice do formulário que deve ser retornado (iniciando em zero). Se este argumento não for especificado, será retornado um array com o nome de todos os formulários disponíveis.

Exemplo:

Em Basic

O exemplo a seguir verifica se o documento de formulário contém um formulário chamado "MainForm":


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

O exemplo abaixo recupera o formulário "MainForm" e move sua posição para o último registro:


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

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


PrintOut

Este método envia o conteúdo do documento para a impressora padrão ou para a impressora definida pelo método SetPrinter.

Retorna True se o documento foi enviado à impressora com sucesso.

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:

pages: as páginas a serem impressas como uma string. Este argumento deve ser especificado da mesma maneira que na interface do usuário (veja a caixa de diálogo Arquivo - Imprimir). Exemplo: "1-4;10;15-18". O valor padrão é uma string vazia "", o que fará com que todas as páginas sejam impressas.

copies: O número de cópias a serem impressas (padrão = 1).

printbackground: especifica se a imagem de fundo deve ser impressa (Default = True).

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

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

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

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

Exemplo:

Em Basic

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

    formDoc.PrintOut("1-4", copies = 2, printbackground = False)
  
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! ♥