A Biblioteca ScriptForge

Para acessar este comando...

Vá em Ferramentas - Macros - LibreOfficeDev Basic - Editar e selecione o container Macros e caixas de diálogo do LibreOffice.


As bibliotecas ScriptForge criam uma coleção extensível de recursos de script de macro para oLibreOfficeDev para serem chamados de macros Basic ou scripts Python.

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


tip

Para saber mais sobre como criar e executar scripts em Python usando a biblioteca ScriptForge leia a página Criando Scripts Python com o ScriptForge.


Invocando serviços ScriptForge

Os módulos e classes descritos são invocados a partir de scripts de usuários como "Serviços". Um construtor genérico desses serviços foi desenvolvido para cada linguagem.

O método Dispose está disponível em todos os serviços e deve ser chamado para liberar recursos após o uso:

Em Basic

    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Set oSvc = CreateScriptService("servicename"[, arg0, arg1, ...])
    ' ...
    oSvc.Dispose()
  
Em Python

    from scriptforge import CreateScriptService
    svc = CreateScriptService('servicename'[, arg0, arg1, ...])
    # ...
    svc.Dispose()
  

Serviços disponibilizados pela biblioteca ScriptForge

Categoria

Serviços

LibreOfficeDev Basic

Array
Dictionary

Exception
FileSystem

String
TextStream

Conteúdo do documento

Base
Calc
Chart

Database
Dataset
Datasheet

Document
FormDocument
Writer

Interface de usuário

Dialog
DialogControl
Form

FormControl
Menu
PopupMenu

Toolbar
ToolbarButton
UI

Utilitários

Basic
L10N
Platform

Region
Services
Session

Timer
UnitTest


Serviço ScriptForge.Array

Fornece uma coleção de métodos para manipular e transformar Arrays de uma dimensão (vetores) e Arrays de duas dimensões (matrizes). Isso inclui operações de conjuntos, ordenação, bem como importação e exportação de arquivos texto.

Arrays com mais de duas dimensões não podem ser usados em métodos deste serviço, com a única exceção do método CountDims que aceita arrays com qualquer número de dimensões.

SFDocuments.Base service

O serviço Base oferece vários métodos e propriedades para facilitar o gerenciamento e o manuseio de documentos do LibreOfficeDev Base.

Este serviço está intimamente relacionado ao serviço Document, que fornece métodos genéricos para lidar com documentos do LibreOfficeDev, 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:

Serviço ScriptForge.Basic

O serviço ScriptForge.Basic propõe uma coleção de métodos LibreOfficeDev Basic a serem executados em um contexto Python. Os métodos de serviço Basic reproduzem a sintaxe e o comportamento exatos das funções integradas do Basic.

Serviço SFDocuments.Calc

A biblioteca compartilhada SFDocuments fornece diversos métodos e propriedades que facilitam a gestão e manuseio de documentos do LibreOfficeDev.

O serviço SFDocuments.Calc é uma subclasse do serviço SFDocuments.Document. Todos os métodos e propriedades definidas para o serviço Document podem também serem acessados utilizando uma instância do serviço Calc.

O serviço Calc tem como foco:

Serviço SFDocuments.Chart

O serviço Chart fornece um conjunto de propriedades e métodos para manipular gráficos em documentos Calc. Com este serviço é possível:

Serviço SFDatabases.Database

O serviço Database permite o acesso a bancos de dados embutidos ou descritos por documentos Base. Este serviço fornece métodos para:

SFDatabases.Dataset service

The Dataset service is used to represent tabular data produced by a database. With this service it is possible to:

Serviço SFDatabases.Datasheet service

O serviço Datasheet permite visualizar o conteúdo das tabelas do banco de dados, bem como os resultados das consultas e instruções SQL usando o Data View do Base. Adicionalmente, este serviço permite:

Serviço SFDialogs.Dialog

The Dialog service contributes to the management of dialogs created with the Basic Dialog Editor or dialogs created on-the-fly. Each instance of the current class represents a single dialog box displayed to the user.

Serviço SFDialogs.DialogControl

O serviço DialogControl gerencia os controles pertencentes a caixas de diálogo criadas com o Editor de Diálogos do Basic. Cada instância deste serviço representa um único controle em uma caixa de diálogo.

O foco deste serviço está na obtenção e definição de valores apresentados pelos controles de uma caixa de diálogo. A formatação é acessível por meio das propriedades XControlModel e XControlView.

Note que o conteúdo da propriedade DialogControl.Value varia de acordo com o tipo do controle.

Atenção especial é dada aos controles do tipo Árvore. É fácil povoar uma árvore, tanto ramo a ramo como diversos ramos de uma única vez. Inserir itens em um controle do tipo Árvore pode ser feito tanto de maneira estática como dinâmica.

Serviço ScriptForge.Dictionary

Um dicionário é uma coleção de pares de chaves-itens.

Serviço SFDocuments.Document

A biblioteca SFDocuments fornece métodos e propriedades que facilitam a gestão e manuseio de documentos do LibreOfficeDev.

Métodos aplicáveis a todos os tipos de documentos (documentos de texto, planilhas, apresentações, etc.) são disponibilizados pelo serviço SFDocuments.Document. Alguns exemplos são:

Serviço ScriptForge.Exception

O serviço Exception fornece uma coleção de métodos que ajudam a depurar scripts em Basic e Python e também auxiliam na manipulação de exceções em scripts escritos em Basic.

Em scripts Basic, quando um erro de em tempo de execução ocorre, os métodos e propriedades do serviço Exception ajudam a identificar o contexto do erro e ajudam na sua manipulação.

Serviço ScriptForge.FileSystem

O serviço FileSystem inclui rotinas para manusear arquivos e pastas. A seguir estão alguns exemplos do que pode ser feito com este serviço:

Serviço SFDocuments.Form

O serviço Form fornece métodos e propriedades para gerenciar formulários em documentos do LibreOfficeDev. Este serviço suporta formulários de documentos Base, Calc e Writer e permite:

Serviço SFDocuments.FormControl

O serviço FormControl provê acesso aos controles que pertencem a um formulário, subformulário ou controle de tabela de um FormDocument. Cada instância do serviço FormControl se refere a um único controle no formulário. Este serviço permite:

SFDocuments.FormDocument service

The FormDocument service allows to access form documents stored in LibreOfficeDev Base documents.

In a Base document, existing form documents can be viewed by selecting View - Forms in the user interface. Each form document may be composed of one or more forms, including the main form and other sub-forms.

Serviço ScriptForge.L10N

Este serviço fornece diversos métodos relacionados à tradução de Strings com impacto mínimo no código fonte do programa. Os métodos disponibilizados pelo serviço L10N podem ser usados para:

Serviço SFWidgets.Menu

O serviço Menu pode ser usado para criar e remover menus da barra de menus de uma janela de documento do LibreOfficeDev. Cada entrada do menu pode ser associada a uma macro ou comando UNO. Este serviço fornece as seguintes possibilidades:

Serviço ScriptForge.Platform

O serviço Platform fornece um conjunto de propriedades sobre o ambiente de execução atual e seu contexto, incluindo:

Serviço SFWidgets.PopupMenu

O serviço PopupMenu pode ser usado para criar menus de popup que podem ser associados a eventos ou executados por scripts. O serviço fornece as seguintes funcionalidades:

Serviço ScriptForge.Region

O serviço Region fornece um conjunto de propriedades e métodos para manipular aspectos de programação relacionados à localidade e região, tais como:

Serviço ScriptForge.Services

O principal objetivo do módulo Services é prover acesso ao método CreateScriptService, o qual pode ser chamado em scripts de usuário para instanciar serviços que são implementados usando o framework ScriptForge.

Serviço ScriptForge.Session

O serviço Session reúne diversos métodos de propósito geral sobre:

Serviço ScriptForge.String

O serviço String fornece um conjunto de métodos para processamento de Strings. Tais métodos podem ser usados para:

Serviço ScriptForge.TextStream

O serviço TextStream é usado para ler e escrever sequencialmente de/para arquivos abertos usando o serviço ScriptForge.FileSystem service.

Os métodos OpenTextFile e CreateTextFile do serviço FileSystem retornam uma instância do serviço TextStream.

Serviço ScriptForge.Timer

O serviço Timer mede o tempo para executar scripts de usuário.

Um Timer mede durações. Ele pode ser:

SFWidgets.Toolbar service

The Toolbar service allows to retrieve information related to the toolbars available for a specific document window. With this service it is possible to:

SFWidgets.ToolbarButton service

The ToolbarButton service allows to retrieve information related to the toolbar buttons available in a given toolbar. With this service it is possible to:

Serviço ScriptForge.UI

O serviço UI (do inglês, User Interface - Interface de Usuário) simplifica a identificação e manipulação das diferentes janelas que compõem toda a aplicação do LibreOfficeDev:

Serviço SFUnitTests.UnitTest

O serviço UnitTest fornece um framework para automatização de testes de unidade usando a linguagem Basic, incluindo a possibilidade de:

Serviço SFDocuments.Writer

A biblioteca compartilhada SFDocuments fornece diversos métodos e propriedades que facilitam a gestão e manuseio de documentos do LibreOfficeDev.

Alguns métodos são genéricos para todos os tipos de documentos e são herdados do módulo SF_Document, enquanto outros métodos que são específicos para documentos do Writer são definidos no módulo SF_Writer.

Nota: Outros módulos do ScriptForge não descritos aqui são reservados para uso interno. Seu conteúdo está sujeito a mudanças sem aviso prévio.

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.