segunda-feira, 16 de janeiro de 2017

Controle de estoque com o LibreOffice Base - parte 4: consultas

Nesta postagem daremos continuidade ao nosso programa de banco de dados gerenciador de estoques no Base, tratando agora de como configurar o programa para efetuar consultas de dados e assim obter informações.

As Consultas

Como vimos até agora, o LibreOffice Base trabalha com tabelas que servem para o agrupamento de dados, que são relacionados entre si para gerar dados lógicos e por meio destes, os relatórios. No entanto, ainda antes dos relatórios temos que ordenar as informações extraídas das relações de dados. Para isso usamos as consultas.
Para facilitar a visualização dos dados que nos interessam, dentre todos os cadastrados e assim obter informações úteis para o controle de estoque utilizaremos as consultas. As consultas permitem agrupar dados de várias tabelas (anteriormente relacionadas) para extrair as informações de que precisamos e mais tarde fixaremos nos relatórios para serem impressos, até porque não é sempre que se tem um computador com o programa nele.
Para efeito de usabilidade e praticidade, não exploraremos todas as possibilidades de criação de consultas. Vamos criar aqui apenas duas consultas: uma para obter dados sobre os pedidos e outra para obter a situação do estoque físico, em unidades disponíveis e valores (inventário). Para criar as consultas utilizaremos o mais uma vez um editor do Base, desta vez, o de consultas.
Para prosseguir, clique em Consultas > Criar consulta no editor e ao abrir o editor de consultas a janela Adicionar tabela ou consulta estará disponível. Podemos ver aqui que o processo para adicionar as tabelas é muito semelhante ao utilizado na criação das relações. Temos a opção de instalar qualquer um destes dois tipos de objetos, mas nunca os dois tipos na mesma consulta.
Para continuar, deve-se clicar no Nome da tabela ou consulta (que nós ainda não temos) e em seguida em clicar no botão Adicionar para inserir o objeto no editor de consultas. Se preferir, no entanto, um clique duplo no nome da tabela também vai adicioná-la no editor.
Há de se notar que a lógica empregada aqui é a mesma que fizemos na criação de relações entre dados de tabelas, tendo como diferença apenas a adicção de um campo para configuração dos campos, a parte de baixo. Então não teremos muita dificuldade pelo menos, nesta parte de inserção de objetos. Vemos na imagem a seguir as cinco tabelas que nós criamos prontas para uso:
Para o nosso programa, a primeira consulta a ser criada será a de pedidos, pois é por meio dela que poderemos unir informações para a alimentação do estoque. Então vamos precisar adicionar as tabelas Produto (que contém os dados dos produtos a serem comprados / pedidos), a de Pedidos (pois consta o cadastro de orçamentos de compras feitos por nós para o suprimento do estoque) e DetalhePedido (que funciona como junção das tabelas anteriores, aderindo ainda o cadastro de fornecedores, que não consta nas tabelas selecionadas aqui neste momento).
Após adicionar as tabelas já dá para fechar a janela Adicionar tabela ou consulta, assim como fizemos quando inserimos relações. Com a inserção das três tabelas o seu editor deve ficar semelhante ao da figura nossa a seguir, com Pedidos, detalhe do pedido e de pedido:
Como podemos ver, as tabelas já são inseridas mantendo as relações que foram criadas , o que ajuda nosso trabalho em definir o que deverá ser usado para que a consulta busque os dados corretos e assim possa gerar as informações que queremos.
O que faremos agora é dizer ao editor de consultas quais campos vamos utilizar e a que tabelas pertencem. Para isso, preste atenção na parte inferior do editor. Há que antecipar que aqui usaremos algumas fórmulas para poder determinar ao LibreOffice Base para que efetue alguns cálculos para a definição do custo dos estoques com base nos valores unitários e quantidades.
Observe as linhas Campo, Alias e Tabela. Utilizaremos essas linhas para definir quais dados servirão de busca para a consulta.
● Na primeira coluna em frente ao rótulo Tabela clique uma vez e veja a lista de tabelas adicionadas no passo anterior e adicione a tabela Pedidos. Isso será repetido para as próximas colunas, alterando o nome para as próximas tabelas.
● Na sequência, em frente ao rótulo Campo selecione o campo codigo_pedido, que só aparece por ser um campo de uma tabela que adicionamos, isto é, a de Pedidos.
O resultado deve ser algo igual ao que temos na figura a seguir:
Temos até aqui uma coluna com dados preenchida e nela usamos a chave primária da tabela de pedidos. E como sabemos, como a chave primária é única para cada pedido cadastrado, esta servirá para buscar qualquer outros dados relacionados à ela por meio das relações entre os campos adicionados e correlatos nas tabelas de produtos e detalhe do pedido. E para prolongar, mesmo não estando selecionada, isso envolverá outra tabela, a saber, a de fornecedores.
E prosseguindo, na segunda coluna deve-se selecionar a tabela DetalhePedido e isso habilitará os seus campos, sendo que destes deverá ser escolhido o codigo_do_produto para o campo.
● Na terceira coluna selecione a tabela Produto e o campo nome. Isso trará para a consulta os dados referentes às descrições dos produtos, que até o momento são dispõem de números.
● Na quarta coluna selecione a tabela DetalhePedido e o campo quantidade, pois isso permitirá a inserção de uma fórmula, que usaremos multiplicando quantidades por preços.
● Na quinta e última coluna deve-se selecionar a tabela Produto e o campo preço_venda. Assim teremos dados de quantidades de unidades de cada produto a ser adquirido ou orçado e o seu respectivo preço unitário de aquisição.
Na sexta coluna utilizaremos, como já vimos avisando, um recurso interessante do editor de consultas do LibreOffice Base: a inserção de fórmulas envolvendo os campos de diferentes tabelas. Para tanto, na linha de campo nós criaremos uma fórmula para multiplicar a quantidade desejada no pedido pelo preço de venda deste produto no pedido. O calculo será efetuado para todos os produtos adicionados no pedido assim que a fórmula for criada uma única vez.
Na sexta coluna, na linha campo digite a seguinte fórmula:
"DetalhePedido"."quantidade" * "Produto"."preço_venda"
Ainda nesta coluna, na linha intitulada Alias (ou pseudônimo) digite Total, que será um nome ou apelido para a nossa fórmula. No entanto, como não se trata de um campo que pertença a uma tabela (mas sim foi inserido manualmente por nós) não tem um rótulo próprio. Se o campo Alias não for preenchido toda vez que for chamada a consulta ela entenderá que o nome do campo é toda a fórmula digitada, o que deixa a nossa consulta com ar não muito profissional.
Após concluída, a sua consulta deve se parecer com a imagem a seguir.
Clique no ícone Salvar e altere seu nome para ConsultaPedidos. Agora vamos entender melhor o que fizemos aqui: a nossa consulta buscará e exibirá os resultados que são os dados de número de pedidos cadastrados, sendo que para cada número de pedido será puxado no seu cadastro (da tabela Pedidos) os dados dos produtos solicitados extraídos pelo código dos produtos e isso, retornará ainda toda a lista de dados de cada produto.
Mas o nosso trabalho não terminou, pois precisamos fazer uma consulta só dos produtos. Para tanto, repita o processo para criar outra consulta, só que agora adicione apenas a tabela Produto e certifique-se que a configuração dos campos fique como a figura a seguir. Todos os demais procedimentos são os mesmos, mudando apenas a fórmula, que na verdade é apenas atualizada para os seus campos existentes. A fórmula utilizada na quinta coluna é:
"Produto"."quantidade" * "Produto"."preço_custo"
Salve esta consulta com o nome TotalEstoque. Ao final a sua consulta deverá ficar com esse aspecto, que mantém o mesmo padrão da consulta anterior.
Com isso já temos duas consultas para poder criar nossos relatórios de controle de estoque. O próximo passo será a configuração dos relatórios, que ficará para o tópico a seguir.