Ajuda do LibreOffice 24.8
O serviço FormDocument permite acessar documentos de formulário armazenados em documentos do LibreOffice Base.
Em um documento Base, os documentos de formulário existentes podem ser visualizados selecionando 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.
Consulte o serviço Document para saber mais sobre métodos e propriedades que podem ser usado para gerenciar documentos do LibreOffice.
Antes de usar o serviço FormDocument a biblioteca ScriptForge precisa ser carregada ou importada:
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")
  Chamar OpenFormDocument para um documento de formulário que já está aberto ativará a janela do documento e a colocará em foco.
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 | ||
|---|---|---|
Fecha o documento de formulário referido pela instância FormDocument. Retorna True se o documento de formulário foi fechado com sucesso.
svc.CloseDocument(): bool
    oFormDoc.CloseDocument()
  
    formDoc.CloseDocument()
  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.
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.
svc.Forms(): str[0..*]
svc.Forms(form: str): svc
svc.Forms(form: int): svc
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.
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()
  
    arrForms = formDoc.Forms()
    if "MainForm" in arrForms:
        # ...
  
    form = formDoc.Forms("MainForm")
    form.MoveLast()
  Para saber mais sobre métodos e propriedades de formulário, consulte a página de ajuda do serviço Form.
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.
svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool
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 ). 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).
    oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)
  
    formDoc.PrintOut("1-4", copies = 2, printbackground = False)