quinta-feira, 20 de fevereiro de 2014

Um jeito de fazer formulário com banco de dados em Calc


Um pouco de: Colar especial, Gravação de macro, formatação condicional, Função CONTESE e Função SE



Uma maneira que inventei para fazer um cadastro de pessoas com um formulário no Calc do Libreoffice.



1. duas planilhas, ou seja Planilha1 e Planilha2.



Na Planilha1

Use a coluna A, clicando em sua cabeça (para selecioná-la todinha) e depois clique em: Menu, Dados, Definir intervalo e dê o nome de lista.

Na Planilha2

Faça assim:
célula A1 número, célula A2 nome, A3 idade.
célula B1 para digitar o número;
célula B2 para digitar o nome;
célula B3 para digitar a idade.
Na célula C1, coloque a seguinte fórmula: =SE(CONT.SE(lista;B1)>0;"Ops, número existente";"OK")
Que tal uma cereja nesse bolo?


Clique sobre a foto para visualizar melhor

Use a na célula C1 a Formatação condicional. Clique em Menu, Formatar, Formatação condicional, Condição, no valor da célula digite o que está entre parênteses(“OK”), ao lado de aplicar estilo, escolha novo estilo e use a cor de fundo verde e clique em OK, ainda sem sair clique no botão Adicionar para colocar mais uma condição e no valor da célula digite o que está entre parênteses(“Ops, número existente”), ao lado de aplicar estilo, escolha novo estilo e use a cor de fundo vermelho e clique em OK.



 

O pulo do gato é fazer uma macro... você não sabe fazer? Nem eu! Mas o Libreoffice sim.





Digite os dados e deixe o cursor numa célula qualquer da Planilha2 não sendo as que tem dados. Clique em Menu, Ferramentas, Macros, Gravar macro.



Assim, clique na Célula B1 e arraste até a célula B3 selecionando-as, Segure a tecla Ctrl e ao mesmo tempo clique na tecla “x” recortando o conteúdo.



Clique na aba da Planilha1 e clique na célula A1. Em seguida use o colar especial: Ctrl+Shift+V ou Menu, Editar, Colar especial.



Na janela do colar especial deixe somente marcado os itens: Textos, números, datas e horas, Transpor, Nenhum e Para baixo, clique em ok.

Obs: Deveria ainda ter clicado novamente na aba da Planilha2 para ter retornado ao cadastramento. (isso você pode fazer), Mas no caso, quero mostrar para onde os dados irão. Logicamente no momento de inserir dados em maior quantidade o ideal e fazer este procedimento ao gravar a macro. Fica mais ágil depois.

Depois, logicamente, pare a macro e dê um nome para ela, claro que no meu caso, tive o cuidado de escolher para que a macro ficasse no documento e não no computador, para isso basta antes de salvar clicar no ícone que tem o nome do documento (o ícone na cor verde normalmente) clicar no sinal de “+” ao lado e clicar em Standard e nomear. Assim a macro acompanhará o arquivo quando ele for salvo.



Em todos os casos, vai também um arquivo para download dessa experiência.:baixe o arquivo com o exemplo

(Aqui, neste artigo. Um evolução deste artigo: banco de dados com foto ou imagem
Veja este vídeo como fazer formatação condicional: 

3 comentários:

  1. Ora viva,

    Uso a última versão do LibreOffice no Ubuntu e estou com o seguinte problema:

    Quero criar um formulário com um banco de dados.

    Para isso sei que tenho de usar a macro e duas folhas no mesmo documento. O formulário é fácil e também sei criar o botão para gravar os dados o problema é sincronizar tudo.

    1º Problema: O banco de dados é para ser usado em rede por pelo menos 3 computadores. A Viviane já me indicou um artigo que explica muito bem como o fazer usando o windows, o problema é que uso o Linux Ubuntu, esqueci-me de lhe dizer isso. Mas vamos primeiro à criação do banco de dados que é o meu principal problema neste momento.

    O formulário, além do nome do cliente também terá de gravar o número desse cliente. Falei do facto do ficheiro estar em rede por esta mesma razão, se eu tenho mais de um computador a registar clientes, não posso registar o número do cliente manualmente. Imaginem que 2 pc's estão a criar um registo de cliente ao mesmo tempo, e quando vão ao banco de dados, o ultimo número é 5 e ambos colocam o cliente 6. Então teríamos uma repetição. O número de cliente tem de ser adicionado automaticamente ou se alguma outra forma mais dinâmica.

    2º Problema: Não estou a conseguir, usando a macro, criar os registos no banco de dados. Coloco inserir linha ou mover linha para baixo, no banco de dados, para gravar a macro. Mas quando testo, aparece mal.

    Desde mais agradeço a ajuda.

    ResponderExcluir
    Respostas
    1. Percebi que o Calc no linux não executa esse cria nova linha em cima. Por isso também, que pedi ajuda ao nosso mestre em macros do libreoffice: Grafeno:https://ask.libreoffice.org/pt-br/question/58248/definir-o-endereco-de-colagem-na-macro/

      Excluir
    2. O arquivo banco de dados no calc com fotos, eu criei a partir dessa resposta, pois percebi que não adianta colar os dados corretamente, mas eu teria que saber buscar esses dados no mesmo local, corrigi-los e devolver no mesmo local e não somente em cima da tabela, pois isso iria criar duplicações ou buracos na minha planilha, por isso vá no link acima no ask do libre office olhe a pergunta e analise principalmente, é claro a resposta do GRafeno. Abraços e bom estudos. :)

      Excluir

Matéria em destaque pelo editor.

Gere formulários PySimpleGui rapidamente para planilhas Excel, Libreoffice Calc e outros

CRUD  em BD e MENU - Gere programas completos rapidamente Vou te apresentar uma forma incrível de gerar aplicativos python em minutos a part...