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!!!

O MSN tem Data Marcada para seu Fim

Imagem Retirado do Google 15 de Março Agora sim, o Windows Live Messenger está com os dias contatos, a Microsoft anunciou que o MSN deixará de funcionar no dia 15 de Março deste ano, menos na China. A empresa aconselha a todos os usuários a usarem o Skype que foi integrado com o serviço do MSN, segundo a empresa, os usuários estão sendo notificados por e-mail sobre como proceder para fazer esta mudança de plataforma (eu não recebi até agora tal notificação). Acho o Skype melhor que o Windows Live (assim como muitos profissionais de TI) , mesmo na versão para Linux, claro, sempre existem outras opções e o Pidgin, que se mostra como opção.

Feliz Dia das Mães!!!!

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

QElectroTech (Software Livre para Criar Diagramas Elétricos)

ElectroTech, ou QET, abreviadamente, é um software livre para criar diagramas elétricos industriais complexos. Mas você também pode criar diagramas de encanamento, geotermia, ar condicionado, layout, hidráulica, pneumática, domótica, PID, fotovoltaica, encanamento de piscinas, etc.! Na última versão 0.100, a coleção contém mais de 8.000 símbolos... Mais informações clique aqui . Para baixar clique no link: https://qelectrotech.org/download.php  

Boot USB Samsung Series 5 Ultra

A linha de Ultrabooks "Series 5 Ultra" da Samsung vem com o Windows 8 instalado e amarrado. Não é possível instalar um sistema decente (ou seja, Linux), antes de mudar várias opções da BIOS. Assim, seguem abaixo conforme as abas, a configuração da BIOS necessária para conseguir fazer boot. Na inicialização aperte F2 para acessar a BIOS e então faça as seguintes alterações: Advanced : Fast BIOS Mode -> Disabled AHCI Mode Control -> Manual ( Atenção: Se você não for usar exclusivamente Linux, mas sim fazer dual boot com Win, deixe essa opção no Auto ) Set AHCI Mode -> Disabled USB S3 Wake-up -> Enabled Boot: Secure Boot -> Disabled OS Mode Selection -> UEFI and CSM OS (Essa opção garante boot com Win e Linux) Boot > Boot Priority Order USB HDD: SATA CD: SATA HDD: Essa ordem de boot vai garantir que ele tente primeiro o boot pela USB, depois pelo CD e por último no HD. Apenas as opções acima são as necessá...

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*

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...