sexta-feira, 30 de dezembro de 2016

BANCO DE DADOS com foto ou imagem direto no Calc - CRUD NO CALC

CRUD (em Inglês = Create, Read, Update e Delete), significa Criar, ler, modificar e apagar dados de um banco de dados. Aqui, a ideia foi simular um banco de dados usando uma planilha do Calc em conjunto a outras planilhas, que funcionam como formulários: uma para inserir dados, outra para visualizar os dados inseridos, inclusive figuras ou fotos, uma quarta para modificar os dados, como se fossem formulários do BASE.

Foram usados vários recursos, como macros (aqui adaptando macros do colega Grafeno do ASK do Libreoffice), objetos de formulários e um pouco de criatividade.

Cheguei a pensar em fazer um tutorial para ensinar a modificá-lo, quem sabe mais a frente. Um usuário médio logo consegue "pegar" como adaptá-lo, caso considere útil.

É um documento modificável e bom para quem quer ver as possibilidades do Calc (brincar um pouco), nesse quesito de armazenar registros com imagem sem usar tanta memória, já que as imagens ficam numa pasta à parte.

Vou publicar os arquivos ainda, para quem quiser fazer o download e deixarei aqui o link para baixá-los:

são dois. Este para cadastro de pessoas , no caso usar este aconselho a colocar logo uma imagem com o nome sem_foto.jpg dentro da pasta que for usar para guardar as fotos/imagens para que o libreoffice não feche (aqui temos um pequeno bugzinho) pois se uma foto for "chamada" e não existir, dá um erro no Libreoffice e ele fecha sem dó e fica naquela coisa de ir recuperar arquivo, pois fechou sem salvar.... O outro arquivo é para financeiro com recibos (este último sem necessidade de fotos embora possa, Vamos que alguém queira fotografar as notas fiscais...
para recibos e contábil,

Caso vc ainda não tenha seu dropbox pode pegar este convite meu https://db.tt/ik9anJ5J, isto me ajuda a ter mais espaço por lá.

Os vídeos não são nada profissionais, mas para que quiser dar uma olhadinha neste para Recibos:

 

Este para pessoas e com foto é basicamente omesmo arquivo com algumas modificações:

 

quinta-feira, 12 de maio de 2016

FORA TEMER!!

FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER!

FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER!

FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER!

FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER! FORA TEMER!

domingo, 1 de maio de 2016

FORA CUNHA!

Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha!

Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha!

 Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha!

 Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha!

 Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha! Fora Cunha!

Obs: autorizado a copiar o post

sexta-feira, 15 de abril de 2016

Listas suspensas em cascatas com validação

Ou... Tem que ter categoria 2!

É isso, a gente sempre vai aprendendo na medida que ensina.
Fui brincar com este negócio de categorizar ... No artigo tem que ter categoria! Ensinei do jeito mais difícil… isto ajuda a brincar um pouco com a criatividade e recursos do Libreoffice como a função PROCV(). Mas, vamos simplificar mais esse trabalho. Acredita que dá de fazer de maneira mais simples ainda que no Excel?


Vejamos: primeiro reservamos uma planilha para colocar as categorias que podem se tornar em subcategorias. Aqui cada coluna é um espaço de categoria. Na coluna A iniciamos com Brasil e nas linhas abaixo a lista dos Estados do Brasil, aqui coloquei três para ser mais rápido. Dentro dos Estados três cidades.

Depois disso: Nomeamos cada coluna dessas para o libreoffice saber das delimitações desses dados:

Clicamos na cabeça da coluna e em dados, definir intervalo nomeamos o intervalo como “Brasil”.


Depois na planilha onde vai estar a seleção de categorias e subcategorias, vamos aplicar a Validação clicando em Dados e “validação” e digita o nome do espaço nomeado nesse caso “Brasil”.


Ato seguido selecione a outra célula (onde estarão as subcategorias) e repita a mesma operação, dessa vez digite: a Função INDIRETO(A1) e como pode ver o endereço da célula referência (A1).
Pronto!

E como sempre um arquivo de exemplo, E um vídeo para ficar mais fácil.

quinta-feira, 14 de abril de 2016

Tem que ter categoria!

Para quem já acompanhou umas dicas anteriores, onde escrevi como usar o Calc como um banco de dados, está no meu blog pode conferir neste link: http://betobyte.blogspot.com.br/2014/02/a-necessidade-e-mae-da-invencao-quem.html . Agora vai poder incrementar e dar sequência vendo: como colocar categorias e suas respectivas subcategorias em um formulário, e para aqueles que querem se aprofundar nesse quesito, basta conferir também no Ask do libreoffice: https://ask.libreoffice.org/pt-br/question/58248/definir-o-endereco-de-colagem-na-macro/ . Vai ajudar a dar mais precisão no quesito da macro para transportar os dados de uma planilha para outra pois caso resolva fazer um banco de dados, não importa o tamanho, sempre é uma tarefa meticulosa.

Voltando ao nosso assunto: quando resolvemos categorizar algo, nos damos contas das inúmeras categorias a que pertencem nossos objetos ou itens… imagina então categorizar coisas de um supermercado, por exemplo. Cada categoria terá inúmeras subcategorias com isso rapidamente passamos de cem ou de mil… O que fazer para agilizar este processo sem ter que decorar números e nomes ou ainda percorrer uma lista sem fim para selecionar um item?

Vou dar um pontapé inicial e o resto fica por conta da criatividade de cada um. Em programação existem diversas maneiras de fazer e nenhuma é errada apenas mais ou menos dispendiosa de tempo e memória. No final das contas, a melhor maneira de fazer é aquela que sabemos, não é mesmo?

Vamos imaginar a seguinte situação temos 11 categorias e cada uma dessas 11 categorias tem 50 subcategorias, ou seja 550 itens de uma lista para clicar e escolher. Como cadastrar num formulário sem que isso fique muito complexo? E se aumentarmos o número de categorias? Confesso que eu tinha feito de um jeito que não foi muito prático a primeira vez, usando a função SE(), mas a linha de código ficava muito extensa e fácil de se perder. Mas resolvi utilizando PROCV() e um pouquinho de criatividade.

Vamos aproveitar e deixar previsto a possibilidade de chegarmos a 50 categorias por 50 subcategorias, ou seja, uma um total de 2500 subcategorias.


Vamos imaginar que na planilha2 tenhamos nosso formulário mais ou menos assim como esta figura abaixo:


comentário: *Como ficou fácil recortar figura no Libreoffice versão 5, me dei conta ao fazer este tutorial*.

Mas e agora, como puxar as subcategorias para que fiquem assim?


Na planilha1 vamos deixar a primeira coluna (A) para usarmos a função =PROCV()
Na coluna (B) Vamos preencher com as categorias e em linha, no lado direito de cada categoria, vamos colocando as subcategorias até o limite de 50.































Agora, voltamos a Planilha2 e vamos na célula (B5) onde serão selecionadas as categorias, clicamos nela para ficar selecionada e no menu escolhemos “validação”:



E no intem “permitir” escolhemos “Intervalo de Células” e em “Origem” inserimos o seguinte código: $Planilha1.$B$1:$B$50 e clicamos em “OK”









Agora vamos fazer que as opções de subcategoria apareçam de acordo com categoria escolhida. Para isso selecionamos a célula (B6) e repetimos a validação só que dessa vez colocamos o seguinte código: $Planilha1.$A$1:$A$50

Nada demais né? Mas como esse intervalo de células vai capturar as subcategorias? Ai é que entra a Função PROCV().

Entendendo o funcionamento da Função: Na célula A1 da Planilha1 inserimos a Função PROCV(), nela fazemos referência a célula do formulário (Planilha2, célula B5) onde será selecionada a Categoria (o critério da função), ou Seja: Planilha2.B5. Depois do critério da função (que separamos por “;”) devemos informar a Matriz, ou seja: de onde até onde se deve buscar estes dados. No caso de B1 a AZ da atual planilha. E em seguida informamos de qual coluna queremos os dados a ser mostrado e o zero no final é a ordem de classificação. Os cifrões em frente ao código é para facilitar a cópia por arrasto que não deixará mudar os valores.

  
Uma vez feita a primeira fórmula, copiamos a mesma arrastando para baixo atá a célula (A50), depois é só ir mudando na fórmula copiada o número da coluna que queremos capturar, para que ela possa transpor o dado. Baixe o arquivo aqui e estude-o, logo vai entender o processo. Aqui vídeo ainda explicando novamente este processo.


domingo, 24 de janeiro de 2016

Poderoso Calc 2 -Quantas vezes o nome aparece?

Qual nome aparece mais vezes?

Vamos supor que temos uma lista onde os nomes são lançados quantas vezes necessário, como num caso de clientes que venham X vezes no estabelecimento e a cada vez que vem, registra-se com o nome. No fim do mês quero saber quem veio mais vezes ao meu estabelecimento fazer compras.

Podemos usar uma planilha para isto.

No tutorial “ Poderoso Calc” de meu blog ensinei da maneira mais difícil utilizando três funções, de qualquer maneira foi válido por ser uma demonstração prática de como usar as mesmas No entanto, você pode de uma só tacada resolver a situação usando o recurso “tabela dinâmica”. A mesma permite apresentar o mesmo nome lançados várias num só, sem repetição com a quantidade de vezes em que foi lançado à lista somada ao lado.

Mãos à obra então.
Primeiro vamos fazer uma lista de nomes e em seguida, na coluna ao lado colocar o número um para cada nome acrescentado, conforme a figura abaixo: (Obs: clique nas figuras para ampliar, e aqui um arquivo de exemplo)




Depois, selecionamos as duas colunas preenchidas. Caso ainda precise inserir mais dados devemos lembrar de acrescentar as linhas em branco que serão preenchidas, ou reconfigurar manualmente mais tarde a tabela dinâmica. Uma vez selecionadas as colunas clicamos em “Dados”, tabela dinâmica e “criar”, clique em ok , conforme a figura abaixo:





Vai aparecer uma tela com a montagem da tabela dinâmica, conforme a figura a seguir:


Arraste o botão “Nomes” para a coluna 'Campos de linha' e o botão “Contar” para 'Campo de dados'

Sua tela deverá ficar assim:



Clique em “OK” e deverá ser criada uma nova planilha em seu documento.




Perceba que os nomes ficaram “Sumarizados” e foram somadas as vezes que o mesmo se repete na lista original. Mas, temos alguns detalhes para arrumar. Como queremos saber qual nome aparece mais vezes na lista, vamos organizar os números pela ordem decrescente, para isso vamos reconfigurar a tabela dinâmica manualmente.

Clique na tabela dinâmica com o botão direito do mouse e escolha “Editar layout”, clique no botão mais para que ele estenda a janela de configuração. Não vamos mexer em todas, aqui é mais para mostrar a possibilidade de ampliar a abrangência da planilha. Enfim, clique com o botão do mouse em cima da coluna nomes que está no “Campo de linha” isto fará que no lado direito seja habilitado
o botão “opções” relativo a essa escolha que deverá ser clicado, aparecerá uma nova janela com o nome de campo de dados e deverá novamente ser clicado nessa janela “opções”:





Escolha a opção somar – Contar, marque 'Descendente':



Pronto, o resultado!


terça-feira, 19 de janeiro de 2016

Poderoso CALC - Qual nome repete mais?

Saber a quantidade de vezes que um nome aparece na lista e exibir o nome que mais vezes aparece numa lista no Calc do Libreoffice.

Usando as Funções SOMASE(), MAIOR() e PROCV() elaborei  o arquivo o qual anexo a este artigo. Pode ser a solução de um problema assim. Antes vamos mostrar como o arquivo foi construído.

FUNÇÃO =SOMASE($B$1:$B$8;B1;$C$1:$C$8) Arraste esta fórmula para baixo, quantas linhas precisar. Obs: o símbolo dólar na fórmula é para manter a mesma fórmula ao arrastar  para baixo. Já a célula B1, vai mudando o endereço das linhas ficando B2, B3, B4... conforme vai se copiando a fórmula para baixo.

Aqui, pode-se ainda substituir a função SOMASE() pela CONT.SE,() economizando uma coluna.

=SOMASE(B1:B8;B1;C1:C8) Note que na Célula A1 fica a função SOMASE() e que nas células B1 ao B8 estão os nomes (interválo a ser analisado), na Célula B1 está o nome (critério) e ainda que na célula C1 (valor a ser somado de acordo com o critério) está o valor 1 a ser somado.



















 Insira a Função maior onde quer que saia o número (quantidade) do total de vezes repetidas.. 














Coloque a função abaixo na primeira coluna do lado direito, onde foi aplicada a Função maior e sairá o nome que teve X vezes repetido.


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