Pergunte aqui
0

Como criar macros para abrir e fechar formulários no LibreOffice Base 6.3.5

perguntadas 2020-05-22 12:56:24 +0200

imagem do gravatar de RKRIGGER

Estou trabalhando em um banco de dados do LibreOffice Base 6.3.5,onde eu criei um formulário com botões de pressão, e em um desses botões ,é necessária a ação de abrir um formulário, ação essa que só é possível através de uma macro. Sou usuário iniciante do LibreOffice, e possuo muito pouco conhecimento em programação, gostaria muito de receber auxílio de alguém que me descrevesse, passo a passo como criar essa macro, e também respectivamente uma macro que fechasse o formulário, e uma última macro que acessa- se um relatório.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

0

respondidas 2020-06-23 19:26:57 +0200

imagem do gravatar de Enoque

Boa tarde!

Também sou iniciante no LibreOffice Base e tenho (ou tinha) um problema semelhante. No meu caso, eu já consigo abrir e fechar os formulários, mas eu quero um botão com duas ações (fechar o formulário atual e abrir outro sem voltar para o formulário inicial). Para abrir e fechar (botão com uma só ação), eu fiz assim:

PASSO 1 - Ativar macros

No "Menu Principal" do LibreOffice, clique em "Ferramentas", depois em "Opções", depois em "Segurança", depois no botão "Segurança de macros..." e na aba "Nível de segurança", marque a opção "Média" ou "Baixa (não recomendado)"

Obs: no nível "Média", toda vez que abrir o arquivo de banco de dados vai pedir para ativar macros (eu escolhi o nível "Media"; o nível "Baixa" é mais arriscado).

PASSO 2 - Criar as macros (acho que o arquivo do banco de dados precisa está aberto)

a) No "Menu Principal" do LibreOffice, clique em "Ferramentas", selecione "Macros", "Organizar Macros" e depois clique em "Basic".

Na janela "Macros do BASIC", na coluna esquerda deve aparecer a lista de macros: "Minhas macros", "Macros do Libreoffice", etc e logo abaixo o nome do(s) seu(s) arquivo(s) de banco de dados.

b) Com dois cliques (ou pela seta), selecione seu arquivo de banco de dados, depois "Standard" e depois clique em "Nova" (no meu caso ficou "Module1", mas acho que poderia ter dado outro nome. Todas as macros que criei ficou dentro de "Module1 e depois da primeira macro eu clicava em "Editar" para criar as outras macros). O LibreOffice cira uma macro vazia chamada Main (não sei se tem alguma função, mas eu não mexi nela, apenas criei as minhas logo abaixo dela):

REM BASIC

Sub Main

End Sub

Obs: O texto após o "REM" é um comentário. "Sub" delimita o início da macro, "Main" é o nome da macro e "End Sub" o fim da macro.

c) Os códigos das macros que criei (logo abaixo da macro "Main":

REM Abre o formulário fm_produtos Sub Abrir_fm_produtos const sNewDocumentName="fm_produtos" oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).open End Sub

REM Fecha o formulário fm_produtos Sub Fechar_fm_produtos const sNewDocumentName="fm_produtos" oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).close End Sub

REM Abre o relatório rl_estoque_produtos Sub Abrir_rl_estoque_produtos const sNewDocumentName="rl_estoque_produtos" oNewReportDocument=ThisDatabaseDocument.ReportDocuments.getbyname(sNewDocumentName).open End Sub

Obs1: não esquecer de salvar a macro assim que criá-la. Eu criei uma de cada vez, saia para configurar e testar os botões e voltava para criar a próxima (ao voltar para "Module1", eu clicava em "Editar" em vez de "Nova").

Obs2: o nome da macro fica logo após o "Sub", na primeira linha, e não pode ter caracteres especiais nem espaço. Ex: "Abrir_fm_produtos" para diferenciar do nome do formulário que ela abrirá (fm_produtos).

Obs3: "const sNewDocumentName", na segunda linha, é uma constante que recebe o nome do objeto que será acionado (formulário, relatório, etc). Ex: fm_produtos

Obs4: o que diferencia a ação das macros é o comando no final da terceira linha, após o ponto (.). Ex: "open" para abrir e ... (plus)

editar assinalar como ofensivo Excluir Link mais

Comentários

REM Abre o formulário fm_produtos

Sub Abrir_fm_produtos

const sNewDocumentName="fm_produtos"

oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).open

End Sub

REM Fecha o formulário fm_produtos

Sub Fechar_fm_produtos

const sNewDocumentName="fm_produtos"

oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).close

End Sub

REM Abre o relatório rl_estoque_produtos

Sub Abrir_rl_estoque_produtos

const sNewDocumentName="rl_estoque_produtos"

oNewReportDocument=ThisDatabaseDocument.ReportDocuments.getbyname(sNewDocumentName).open

End Sub

Na postagem anterior, os códigos não ficaram em linhas separadas para facilitar o entendimento..

imagem do gravatar de EnoqueEnoque ( 2020-06-23 19:32:04 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2020-05-22 12:56:24 +0200

Lidas: 176 vezes

Última atualização: Jun 23 '20