Pular para o conteúdo principal

Processamento de Formulário com LibreOffice Calc Macro - Parte 2

LibreOffice Macro TutorialsEste tutorial foi retirado do site Debugpoint, não mudei nada nenhuma linha de comando, apenas traduzir a explicação do tutorial e espero que ajudem a todos.

 Esta é a segunda parte da série de tutoriais de "Trabalhando com controles de formulários em LibreOffice / OpenOffice Calc '. Primeira parte pode ser encontrada aqui. Na primeira parte, uma caixa de texto simples e um botão é coberto. Este tutorial irá cobrir todos os outros controles básicos - Editora, Check Box, caixa de combinação caixa, caixa de lista - como acessar os valores desses controles e como reconhecer os valores selecionados de usuários sobre esses controles. 

Abra LibreOffice e criar um diálogo. Adicione um rótulo, três caixas de seleção, duas caixas de opção, uma caixa de lista, uma caixa de combinação e um botão. Todos estes controlos podem ser adicionados por meio de caixas de ferramentas (ver abaixo). Você pode acessar o caixa de ferramentas a partir do menu:

View --> Toolbars --> ToolBox (Exibir --> Barra de Ferramentas --> TooBox)

https://i0.wp.com/www.debugpoint.com/blog/wp-content/uploads/2015/05/Toolbox-in-LibreOffice.png
Toolbox do LibreOffice
Uma vez que você adicionou, selecionar e arrastar-los de acordo com sua necessidade dentro do formulário. Neste tutorial, vamos acessar os valores / opções selecionadas nesses controles e colocá-los em células do Calc. Lendo os valores é o mais básico como estes são necessários para as tarefas mais complexas.

O formulário concebido para este tutorial

Designed Form

Caixa de seleção 

As caixas de seleção são uma maneira do usuário fazer múltiplas escolhas. Para obter se a caixa de seleção está marcada ou não, pode-se utilizar o método getState. Se for verificado que retorna 1, caso contrário 0. Ao projetar, você pode mudar o texto exibido cada caixa de seleção ao lado usando campo 'Etiqueta' na guia Geral da janela de propriedades. 

chkBox1 = oDialog1.GetControl("CheckBox1")
    chkBox2 = oDialog1.GetControl("CheckBox2")
    chkBox3 = oDialog1.GetControl("CheckBox3")

    if chkBox1.State = 1 then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,1)
        oCell.String = "Debian"
    end if

    if chkBox2.State = 1 then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,2)
        oCell.String = "Ubuntu"
    end if

    if chkBox3.State = 1 then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,3)
        oCell.String = "elementary"
    end if 

Caixa de listagem e caixa de combinação

Caixa de listagem e caixa de combinação dando aos usuários a capacidade de selecionar a partir de uma lista de itens. A única diferença entre estes dois são do jeito que exibir os itens. Caixa de combinação tem uma lista suspensa e caixa de listagem tem uma lista de itens exibidos.

Para obter a seleção de uma lista, a função getSelectedItem () pode ser usado.

 Para obter o item selecionado na caixa de combinação, o SelectedText function () pode ser usado.

Para pré-preencher a lista e de combinação, vamos usar a função addItem (,)  ao carregar o formulário pela primeira vez. 

 lstBox1 = oDialog1.GetControl("ListBox1")
    if lstBox1.getItemCount = 0 then
        lstBox1.addItem("Mango",1)
        lstBox1.addItem("Apple",2)
        lstBox1.addItem("Orange",3)
    end if

    cmbBox1 = oDialog1.GetControl("ComboBox1")
    if cmbBox1.getItemCount = 0 then
        cmbBox1.addItem("500",1)
        cmbBox1.addItem("1000",2)
        cmbBox1.addItem("10000",3)
    end if

    oCell = ThisComponent.Sheets(0).getCellByPosition(1,5)
    oCell.String = lstBox1.getSelectedItem()               

    oCell = ThisComponent.Sheets(0).getCellByPosition(1,6)
    oCell.String = cmbBox1.SelectedText() 

Option Box (Caixa de Opção)

Caixa Opção são aqueles opções apresentadas ao utilizador e só um deles pode ser selecionado. Ao contrário de outras aplicações, em LO, todas as caixas de opção são agrupados por padrão que é adicionado na forma. 

O property State () (estado proprietário) de uma caixa de opção retorna True (Verdadeiro) é a opção for selecionada, caso contrário, retorna False (Falso).

if optBtn1.State = True then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,7)
        oCell.String = "No"
    end if

    if optBtn2.State = True then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,8)
        oCell.String = "Yes"
    end if 

Juntando tudo - Executando a macro

Uma vez que o design de formulário está completo, vamos mostrar os valores escolhidos pelo usuário na forma nas células do Calc.

Para executar o formulário, executar a função StartDialog1 (). Esta é a mesma função que temos usado em tutoriais anteriores e como pontapé de saída / atribuir esta função para evento de clique de um botão - leia aqui a primeira parte desta série de tutoriais.

Selecione algumas opções dos componentes na forma e clique no botão do LO Calc que já está aberto, você verá os valores escritos e colocar nas células do Calc.
 

Form with Values Selected
 
  Output
  
Função Referências - usado neste artigo 
Macro completo 

Para executar, copiar e colar todo este bloco de código a seguir no Editor de Macro no LibreOffice. 

Dim oDialog1 As Object

Sub StartDialog1()
    BasicLibraries.LoadLibrary("Tools")
    oDialog1 = LoadDialog("Standard", "Dialog1")

    lstBox1 = oDialog1.GetControl("ListBox1")
    if lstBox1.getItemCount = 0 then
        lstBox1.addItem("Mango",1)
        lstBox1.addItem("Apple",2)
        lstBox1.addItem("Orange",3)
    end if

    cmbBox1 = oDialog1.GetControl("ComboBox1")
    if cmbBox1.getItemCount = 0 then
        cmbBox1.addItem("500",1)
        cmbBox1.addItem("1000",2)
        cmbBox1.addItem("10000",3)
    end if

    oDialog1.Execute()

End Sub

Sub readDialog1()
    Dim oCell
    chkBox1 = oDialog1.GetControl("CheckBox1")
    chkBox2 = oDialog1.GetControl("CheckBox2")
    chkBox3 = oDialog1.GetControl("CheckBox3")

    optBtn1 = oDialog1.GetControl("OptionButton1")
    optBtn2 = oDialog1.GetControl("OptionButton2")

    lstBox1 = oDialog1.GetControl("ListBox1")

    cmbBox1 = oDialog1.GetControl("ComboBox1")

    if chkBox1.State = 1 then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,1)
        oCell.String = "Debian"
    end if

    if chkBox2.State = 1 then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,2)
        oCell.String = "Ubuntu"
    end if

    if chkBox3.State = 1 then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,3)
        oCell.String = "elementary"
    end if

    oCell = ThisComponent.Sheets(0).getCellByPosition(1,5)
    oCell.String = lstBox1.getSelectedItem()               

    oCell = ThisComponent.Sheets(0).getCellByPosition(1,6)
    oCell.String = cmbBox1.SelectedText()           

    if optBtn1.State = True then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,7)
        oCell.String = "No"
    end if

    if optBtn2.State = True then
        oCell = ThisComponent.Sheets(0).getCellByPosition(1,8)
        oCell.String = "Yes"
    end if

End Sub 


Fonte: Debugpoint 

Leia também os outros tutoriais sobre Macro clique nos títulos abaixo:

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Feliz 2013!!!

Gostaria de agradecer a todos que este ano acompanharam as matérias postadas e as mais de  7000 visitas ao blog , muito obrigado. Este ano tivemos grandes conquistas e inúmeras novidades como por exemplo o fim do MSN no início de 2013, a criação da União Livre e o desenvolvimento do Kaiana que será lançada em 2013, distro nacional , a descontinução do BigLinux do DreanLinux entre outr as distro, o lançamento do liv ro da S B P - Software Publico Brasileiro, os dois anos do LibreOffice, o prime iro Hackday do LibreOffice , o IX Latinoware, a Microsoft boicotando o Linux (como sempre), o lançamento do Windows 8 e a sua baixa taxa de adesão pelos usuários, entre out ros. Gostaria de desejar a todos Boas Festas e que em 2013 possamos estar juntos novamente. Feliz Natal!!!! F eli z 2013 a todos!!!

Como Instalar a Fonte ttf-mscorefonts (Times New Roman, Arial, etc) no Ubuntu, Linux Mint e Derivados

Quando instalamos uma distribuição GNU/Linuxmsabemos que vem o LibreOffice por padrão porém geralmente não vem instalado a fonte ttf-mscorefonts que contém as fontes Times New Roman, Arial, etc, como essas fontes são muito útil para os universitários, pelo mundo corporativo e a Associação Brasileira de Normas Técnicas (ABNT), exige que os trabalhos sejam entregues nas fontes Times New Roman e Arial, por meio desta postagem espero pode ajudar a todos com a instalação da fonte ttf-mscorefonts que contém essas fontes. Ao instalar o GNU/Linux abra o terminal e execute o comando: $ sudo apt-get install ttf-mscorefonts-installer Leia os termos de uso e avance clicando em “Ok” Agora aceite os termos de uso clicando em “Sim” Pronto agora abra o LibreOffice e veja se as fontes Times New Roman, Arial estão instaladas. Caso ocorra algum erro ou precisa reinstalar, execute: $ sudo apt-get install --reinstall ttf-mscorefonts-installer

Comandos Úteis para o Linux Mint, Ubuntu e Derivados

Alguns dias sugeriram que eu postasse alguns comandos uteis  utilizados no Linux Mint e para o Ubuntu, mas com tantas distros baseadas no Ubuntu esses comandos também podem ser utilizados nas distros como: Ubuntu 15.04, Ubuntu 14.10, Ubuntu 14.04 , Linux Mint 17.2, Linux Mint 17.1, Linux Mint 17, Pinguy OS 14.04, Elementary OS 0.3, Deepin 2014, Peppermint Five, LXLE 14.04 and Linux Lite 2 2 , DuZeru, Kaiana e derivados . Segue alguns comandos importantes para manutenção do sistema, principalmente para usuários iniciantes... 1- Atualizar a lista de pacotes:  $ sudo apt-get update 2- Atualizar toda a distro:  $ sudo apt-get -f dist-upgrade ou update-manager -d -c 3- Instalar pacotes:  $ sudo apt-get install [nome do pacote] 4- Procurar arquivos corrompidos:  $ sudo apt-get check 5- Corrigir problemas de dependências, concluir instalação de pacotes pendentes e outros erros: $ sudo apt-get -f install 6- Se o comando sudo apt-get -f install nã...

Como Instalar a Fonte ttf-mscorefonts (Times New Roman, Arial, etc) no Ubuntu, Linux Mint e Derivados

Quando instalamos uma distribuição GNU/Linuxmsabemos que vem o LibreOffice por padrão porém geralmente não vem instalado a fonte ttf-mscorefonts que contém as fontes Times New Roman, Arial, etc, como essas fontes são muito útil para os universitários, pelo mundo corporativo e a Associação Brasileira de Normas Técnicas (ABNT), exige que os trabalhos sejam entregues nas fontes Times New Roman e Arial, por meio desta postagem espero pode ajudar a todos com a instalação da fonte ttf-mscorefonts que contém essas fontes. Ao instalar o GNU/Linux abra o terminal e execute o comando: $ sudo apt-get install ttf-mscorefonts-installer Leia os termos de uso e avance clicando em “Ok” Agora aceite os termos de uso clicando em “Sim” Pronto agora abra o LibreOffice e veja se as fontes Times New Roman, Arial estão instaladas. Caso ocorra algum erro ou precisa reinstalar, execute: $ sudo apt-get install --reinstall ttf-mscorefonts-installer

Famelix/BRLix

Continuando falando dos Sistemas Operacionais Linux apresento a vocês o Falemix/BRLix. O Famelix, foi criado em 2003 em um projeto da Faculdade Metropolitana de Guaramirim (FAMEG) de Santa Catarina. Famelix GNU/Linux é uma distribuição criada com a finalidade de oferecer um ambiente similar ao Windows XP e Vista, de tal maneira que facilite a migração de usuários do sistema operacional proprietário a um sistema livre, e que se possa aproveitar os conhecimentos já adquiridos pelos usuários. As versões até a 2.0 utilizam elementos presentes em outras distribuições como Debian, Knoppix e Kurumin. Segundo as pesquisas feitas a versão 2.1, utiliza em seu todo apenas a base do Sistema Operacional Debian GNU/Linux, e é suportado por uma empresa que assumiu o desenvolvimento e mudo o nome para BRLix. O BRLix é mantido pela Epidemus ltda, em Jaraguá do Sul - Santa Catarina.   C reio que as telas abaixo da uma ideia de como o sistema é, imagens essas retiradas do go...

Como Instalar o Kodi 19.5 "Matrix"

Kodi (anteriormente denominado XBMC) é um famoso hub de mídia de código aberto e home theater PC, sendo traduzido em mais de 30 idiomas. Além disso, suas características podem ser altamente estendido através de plugins de terceiros e extensões e tem suporte para PVR (personal video recorder).   A versão final do Kodi 19.5 “Matrix” foi lançado, chegando com alterações que podem ser vistas clicando aqui . Para instalar no Ubuntu,  Linux Mint, Elementary OS e derivados, execute:   $ sudo add-apt-repository ppa:team-xbmc/ppa $ sudo apt-get update $ sudo apt-get install kodi     Use o comando a seguir para instalar codecs de áudio e outros complementos, executando:     $ sudo apt-get install --install-suggests kodi     Para remover, execute:   $ sudo apt-get remove kodi*

AnduinOS 1.3.0

O AnduinOS é uma distribuição baseada no Ubuntu que oferece um ambiente de trabalho NOME com tema e estilo semelhantes aos do Windows 11. A versão mais recente do projeto, o AnduinOS 1.3.0, é baseada no Ubuntu 25.04 e vem com o GNOME 48.  "O AnduinOS 1.3 foi lançado. Esta versão é altamente recomendada porque adicionamos uma loja de aplicativos (baseada em Flatpak) a ela. Sistema básico atualizado - o sistema fundamental foi atualizado do Oracular (Ubuntu 24.10) para o Plucky (Ubuntu 25.04). Adicionado um novo atalho Super + V para alternar o histórico da área de transferência. Software GNOME pré-instalado para oferecer suporte à instalação de software da loja de software. Flatpak pré-instalado para oferecer suporte à instalação de software da loja de software. Problema de localização do Firefox corrigido. O GNOME foi atualizado para a versão 48 e o suporte a HDR adicionado. Agora está disponível para download para todos." Paraler a nota de lançamento clique aqui . Para baixa...

FLISOL-DF 2026

Estão abertas as inscrições para participantes, palestrante e colaborador (voluntário) para o Festival Latino-americano de Instalação de Software Livre (FLISOL-DF) que será realizado no dia 25 de abril . No momento não foi divulgado o  local do evento, mas em breve a organização deve divulgar em suas redes sociais. Caso queira realizar sua inscrição para participar do FLISOL-DF segue os links de inscrição: Participante: https://flisoldf.blog.br/inscreva-se/ Palestrante: https://flisoldf.blog.br/submissao-de-palestras/ Colaborador (Voluntário): https://flisoldf.blog.br/quero-colaborar/ Mais informações pelo e-mail:  contato@flisoldf.blog.br  

Linux Lite 6.4

O Linux Lite é uma distribuição Linux amigável para iniciantes, baseada no lançamento de suporte de longo prazo (LTS) do Ubuntu e apresentando o desktop Xfce. O projeto publicou uma atualização para sua série 6.x que melhora a compactação de pacotes para software personalizado, oferece uma nova ferramenta de relatório para diagnosticar problemas e atualiza o layout para o cliente de e-mail Thunderbird.   "Linux Lite 6.4 Final agora está disponível para download e instalação. Com base no lançamento do 6.2, adicionamos várias novas alterações. Alterações: Nossos aplicativos internos estão começando a ser reempacotados usando compactação ZSTD para velocidades de descompactação significativamente mais rápidas e taxas de compactação mais altas. Exemplo: Temas Lite - pacote compactado antigo: 91,2 MB; Temas Lite - novo pacote compactado: 76,8 MB. Isso beneficiará máquinas de uma faixa etária mais ampla. Ótimo para computadores mais lentos ao instalar atualizações, atualizações extrem...

Escrevendo uma Macro no LibreOffice Calc - Introdução

Este tutorial foi retirado do site Debugpoint, não mudei nada nenhuma linha de comando, apenas traduzir a explicação do tutorial e espero que ajudem a todos. O LibreOfice fornece uma maneira de escrever a sua própria macro para automatizar várias tarefas repetitivas em seu aplicativo de escritório. Você pode usar Python ou Basic para o desenvolvimento do macro. Este tutorial se concentra em escrever um macro básico 'Olá Mundo' usando básico do LibreOffice Calc .   Macro Objetivo   Nós iremos criar uma macro que iria colocar a string ' Olá Mundo' na primeira célula do LibreOffice Calc ou seja, a célula da linha 1 e col A. Criando o Macro   Abr a o LibreOffice Calc em Aplicativos = > Office/Escritório => LibreOffice Calc .   Ou pesquise " calc " na barra de pesquisa Vá para a opção no menu : Ferramentas ==> Macros == > Organizar Macros ==> LibreOffice Basic . Abai...