Sisve - ETEC Irmã Agostina

Transcrição

Sisve - ETEC Irmã Agostina
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
ESCOLA TÉCNICA ESTADUAL IRMÃ AGOSTINA
ADEILDO JOSÉ DE OLIVEIRA
ANDERSON NASCIMENTO DOS SANTOS
CLAYTON RAFAEL DOS SANTOS SOUZA
NELSON MANUEL DE AZEVEDO
SISVE - SISTEMA DE CONTROLE DE VENDA E ESTOQUE
TÉCNICO EM INFORMÁTICA
São Paulo, SP
2012
ADEILDO JOSÉ DE OLIVEIRA
ANDERSON NASCIMENTO DOS SANTOS
CLAYTON RAFAEL DOS SANTOS SOUZA
NELSON MANUEL DE AZEVEDO
SISVE - SISTEMA DE CONTROLE DE VENDA E ESTOQUE
Trabalho de Conclusão do curso de Nível Médio
Técnico de Informática sob a
orientação do Professor Renato Carvalho
São Paulo - SP
2012
Dedicamos este trabalho às nossas famílias e a todos aqueles que direta ou indiretamente nos ajudaram na sua criação...
“Uma longa viagem começa com um único passo.” (Lao Tsé)
Banca Examinadora
____________________________________________
____________________________________________
____________________________________________
RESUMO
Este trabalho foi direcionado à criação de um software de computador para controle de
produtos em estoque e também para auxiliar no momento da venda. No qual os usuários não
levam muito tempo para a realização de consultas e vendas.
Como em qualquer outro programa do gênero, os produtos são cadastrados em tabelas
gerenciadas pelo software SQL Server Express 2008, que tem como objetivo gravar informações que lhe são fornecidas de maneira segura e rápida, durante a venda e na integridade dos
seus dados comerciais.
O sistema conta com uma interface muito intuitiva, construída na linguagem de programação Visual Basic através do software Microsoft Visual Studio 2010 e, através dela, o
proprietário pode fazer suas consultas, seus cadastros, exclusões e alterações. Este software
tem uma aplicação que permite informar ao usuário em tempo real a quantidade dos produtos
no estoque, os itens vendidos e os que necessitam serem reposto imediatamente.
ABSTRACT
This work focused on the creation of computer software for control of products
in stock and also to assist in the sale. Where users do not take much time for consultations and sales.
Like any other program of its kind, the products are registered in tables managed by SQL Server Express 2008 software, which aims to record informa-tion
supplied to it in a safe and fast during the sale and integrity of your business data .
The system has a very intuitive interface, built in Visual Basic programming
language using the software Microsoft Visual Studio 2010 and through it, the owner
can make your queries, your entries, deletions and changes. This software has an
application to inform the user in real time the amount of products in stock, and sold
the items that need to be replaced immediately.
LISTA DE ILUSTRAÇÕES
Gráfico 1.1 – Percentual por tamanho de empresas no Brasil .................................................. 8
Gráfico 1.2 – Média de gastos e investimentos em T.I. ........................................................... 8
Figura 1.1 – Entrada da loja ................................................................................................. 11
Figura 1.2 – Área de venda .................................................................................................. 12
Figura 1.3 – Porta de acesso para o estoque e o sanitário ...................................................... 12
Figura 1.4 – Uma das prateleiras da loja ............................................................................... 12
Figura 1.5 – Gôndola ........................................................................................................... 13
Figura 1.6 - Painel canaletado .............................................................................................. 13
Figura 1.7 - Balcão para venda e recebimento ...................................................................... 13
Figura 3.1 – W.B.S.. ............................................................................................................ 22
Figura 3.2 – Cronograma ..................................................................................................... 23
Figura 3.3 – D.E.R. .............................................................................................................. 24
Figura 3.4 – M.E.R. ............................................................................................................. 25
Figura 3.5 – Diagrama de classe ........................................................................................... 26
Figura 3.6 – Diagrama de casos de uso ................................................................................. 28
Figura 4.1 – Tela de login .................................................................................................... 30
Figura 4.2 – Tela de alteração de senha ................................................................................ 31
Figura 4.3 – Tela principal ................................................................................................... 32
Figura 4.4 – Tela de cadastro de produtos ............................................................................ 32
Figura 4.5 – Aba cadastrar da tela principal .......................................................................... 33
Figura 4.6 – Cadastro de categoria de produtos .................................................................... 34
Figura 4.7 – Cadastro da linha de produtos ........................................................................... 34
Figura 4.8 – Cadastro da marca do produto .......................................................................... 34
Figura 4.9 – Cadastro de usuários......................................................................................... 35
Figura 4.10 – Opção de acesso ao sistema de estoque através da janela principal.................. 36
Figura 4.11 – Janela de configurações de acesso do sistema de estoque ................................ 36
Figura 4.12 – Aba das consultas de estoque da tela principal ................................................ 37
Figura 4.13 – Consulta de categoria ..................................................................................... 38
Figura 4.14 – Consulta de linha ............................................................................................ 39
Figura 4.15 – Consulta de marca .......................................................................................... 39
Figura 4.16 – Consulta geral de produtos ............................................................................. 40
Figura 4.17 – Consulta de usuário (um administrador) ......................................................... 41
Figura 4.18 – Consulta de usuário (dois administradores) ..................................................... 41
Figura 4.19. – Consulta de vendas ........................................................................................ 42
Figura 4.20 – Aba de manutenção de estoque da tela principal (alteração) ............................ 43
Figura 4.21 – Alteração de categoria .................................................................................... 43
Figura 4.22 – Alteração de linha........................................................................................... 43
Figura 4.23 – Alteração de marca ......................................................................................... 44
Figura 4.24 – Alteração de produto ...................................................................................... 44
Figura 4.25 – Alteração de usuário ....................................................................................... 45
Figura 4.26 – Alteração de venda ......................................................................................... 45
Figura 4.27 – Menu de manutenção de estoque da tela principal (exclusão) .......................... 46
Figura 4.28 – Exclusão de categoria ..................................................................................... 46
Figura 4.29 – Exclusão de linha ........................................................................................... 46
Figura 4.30 – Exclusão de marca .......................................................................................... 47
Figura 4.31 – Exclusão de produto ....................................................................................... 47
Figura 4.32 – Exclusão de itens de venda ............................................................................. 47
Figura 4.33 – Aba de manutenção de estoque da tela principal (atualização) ........................ 48
Figura 4.34 – Janela de atualização do estoque ..................................................................... 48
Figura 4.35 – Aba relatório no menu principal ..................................................................... 49
Figura 4.36 – Tela de relatório de produtos .......................................................................... 49
Figura 4.37 – Tela de relatório de vendas. ............................................................................ 50
Figura 4.38 – Barra de ferramenta dos relatórios .................................................................. 50
Figura 4.39 – Menu principal, tela de acesso ao suporte e ajuda do sistema .......................... 51
Figura 4.40 – Tela de suporte técnico ................................................................................... 52
Figura 4.41 – Tela de login .................................................................................................. 53
Figura 4.42 – Tela de venda ................................................................................................. 53
Figura 4.43 – Tela de consultar produto ............................................................................... 54
Figura 4.44 – Tela de desconto ............................................................................................. 55
Figura 6.1 – Página inicial do SISVE na internet ................................................................ 256
SUMÁRIO
Capítulo I - A empresa ......................................................................................................... 11
1.1 Estrutura física da empresa ................................................................................ 11
1.2 Equipe ............................................................................................................... 14
1.3 Generalização de venda de produtos .................................................................. 14
Capítulo II – Funcionamento de softwares lojista de produtos avulsos .................................. 15
2.1 Software C-Plus ................................................................................................. 15
2.2 Software Systronic Office Comercial ................................................................. 16
2.3 Software PDV-Master.......................................................................................... 17
2.4 Software TagComércio......................................................................................... 17
2.5 Software SisAdvenPDV..................................................................................... 18
2.6 Características similares dos softwares pesquisados com o SISVE ..................... 18
Capítulo III – Escopo do projeto .......................................................................................... 20
3.1 Work breakdown structure (WBS) ..................................................................... 20
3.2 Cronograma ....................................................................................................... 23
3 3 Diagrama de Entidade e Relacionamento (DER) ................................................ 24
3.4 Modelo de Entidade e Relacionamento (MER) .................................................. 25
3.5 Diagrama de classe ............................................................................................ 26
3.6 Diagrama de casos de uso .................................................................................. 28
CAPÍTULO IV – Desenvolvimento do projeto ..................................................................... 30
4.1 Principais telas ................................................................................................... 30
4.1.1 Telas de controle de estoque ........................................................................ 30
4.1.2 Telas de controle de vendas ......................................................................... 52
4.2 Banco de dados.................................................................................................. 55
4.2.1 Código de criação do banco de dados e das tabelas ...................................... 56
4.3 Código da aplicação ........................................................................................... 58
4.3.1 Código do controle de estoque..................................................................... 58
4.3.2 Código de controle de vendas .................................................................... 242
CAPÍTULO V – Requisitos mínimos ................................................................................. 255
CAPÍTULO VI – Site do projeto ........................................................................................ 256
CONCLUSÃO ................................................................................................................... 257
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................ 258
8
Introdução
O Brasil possui 5,1 milhões de empresas e estima-se que até 2015 teremos 8,8 milhões,
98% destas são micro e pequenas empresas, conforme se demonstra no gráfico 1.1. Onde concentram mais de dois terços das ocupações do setor privado (SEBRAE-SC, 2011).
Gráfico 1.1 – Percentual por tamanho de empresas no Brasil
Para o pequeno empreendedor se manter no mercado necessita focar na qualidade de
seus produtos e serviços. E uma das formas é investindo na informatização do negócio.
Pesquisa mostra que os gastos investidos em tecnologia da informação nas médias e
grandes empresas em 2010 chegaram a quase 8% do faturamento líquido (MEIRELLES,
2011, p. 15). Veja gráfico abaixo:
Gráfico 1.2 – Média de gastos e investimentos em T.I. (MEIRELLES, 2011, p. 15)
9
Essas duas pesquisas demonstraram basicamente a importância da micro e pequena empresa para o Brasil e a importância dada por estas à informatização.
Este trabalho teve como objetivo informatizar a venda e o estoque de uma micro empresa. Foi criado um banco de dados para o controle de estoque dos produtos e um software de
venda. Tornando-a mais eficiente, rápida e organizada.
Em caso de dúvida com relação à alguma venda e ao estoque, apenas consultando o
banco de dados, através do software, tem-se suas dúvidas sanadas.
Os clientes não querem demora no atendimento, o lojista não quer sofrer na hora de administrar o seu estoque de produtos.
Foi aplicado ao lojista um questionário (Apêndice A e B) para se ter as primeiras impressões sobre ele e sobre os problemas do seu negócio, sendo esses problemas depois relatados no WBS. Neste documento foi apontado de forma mais sucinta os problemas da empresa.
Em um primeiro momento, ele queria um controle melhor de seus produtos, informava
que possuía grande dificuldade em controlar tudo o que se vendia na loja e também em manter um relatório geral de reposição dos produtos de forma atualizado. Normalmente consultava item por item, anotando manualmente o que precisava ser reposto.
No momento da venda, passava por outro problema, que era saber se haviam produtos
de uma determinada linha e quanto custava. Consultava os preços e as quantidades em um
pequeno caderno de anotações. O que tornava sofrível a administração de seu negócio.
A loja tem uma grande diversidade de produtos avulsos para venda, como pentes, pilhas, lixas de unhas, grampo, entre outros. Cada dia mais se aumenta a quantidade de itens,
tornando-se ainda mais necessário ter o controle eficiente do estoque.
A grande preocupação evidencia-se que é manter o controle de estoque. Antes de propor
a ele uma solução, o mesmo já havia procurado um dos membros do grupo, para criar uma
planilha com sua lista de produtos.
Com base em seus problemas, o grupo decidiu fazer o trabalho de conclusão de curso
em cima desta sua necessidade e foi apresentado como solução um software de banco de dados relacionado à venda com baixa automática de estoque e uso de leitores ópticos, possuindo
campos como nome do produto, descrição do produto, quantidade do produto, data da compra
e entre outros.
Todos os produtos estarão catalogados e disponíveis no momento da venda. Haverá a liberdade de fazer consulta, cadastros, inserção e remoção de registros, atualização de todos os
seus produtos, impressão de relatórios, etc.
10
O lojista poderá identificar os itens que mais vende, e os que menos vendem, se será necessário fazer descontos, definir melhor qual produto precisará ser reposto imediatamente, a
quantidade de cada tipo de produtos que há em estoque.
A principal ideia é dar-lhe um controle dos produtos a venda de maneira simples e robusta. Com o programa pronto, o único trabalho será cadastrar (inserir) e depois controlar os
dados dos produtos no sistema. Gerenciando assim, uma parte deficiente do negócio.
11
Capítulo I - A empresa
“Perfumaria da Praça”, empresa fundada em 21 de novembro de 2011, situa-se na Rua
Eugênio Guidugli, número 295, no bairro Jardim Castro Alves, em São Paulo, Capital.
A empresa possui como ramo principal de negócio a venda de cosméticos. Atualmente
sua estrutura é de pequeno porte.
Trabalha com os principais tipos e marcas de cosméticos existentes no mercado.
O projeto foi desenvolvido com ajuda e autorização do presidente da empresa, o Sr.
Valdinei Cruz de Lima, ao qual nos relatou que, apesar do pouco tempo de mercado, pretende
expandir e sabe que a tecnologia da informação vai ajudá-lo, embora hoje ele não disponha de
nenhuma tecnologia para este fim.
1.1 Estrutura física da empresa
Na entrada (figura 1.1) há uma vaga para estacionamento de veículos. As paredes e pisos internos são revestidos com cerâmicas na cor branca.
A empresa possui uma área de venda com trinta e seis metros quadrados (figura 1.2),
um quarto de estoque medindo cinco metros quadrados (Figura 1.3) e um sanitário com três
metros quadrados, possuindo uma área útil total de quarenta e quatro metros quadrados. De
mobiliário, a empresa possui três prateleiras com 14 divisões cada (figura 1.4), três gôndolas
de produtos (figura 1.5), um painel canaletado (figura 1.6) também de exposição de produtos
e com 1 metro de altura por 3 metros de comprimento, além de um balcão utilizado tanto para
exposição de mercadorias, como para fins de guichê de recebimento (figura 1.7).
.
Figura 1.1 – Entrada da loja
12
Figura 1.2 – Área de venda
Figura 1.3 – Porta de acesso para o estoque e o sanitário
Figura 1.4 – Uma das prateleiras da loja
13
Figura 1.5 – Gôndola
Figura 1.6 - Painel canaletado
Figura 1.7 - Balcão para venda e recebimento
14
1.2 Equipe
A empresa é composta por dois funcionários, o Sr. Valdinei Cruz de Lima, que exerce a
função de administrador e vendedor ao mesmo tempo, e por sua esposa que fica no caixa, mas
que às vezes anda pela loja auxiliando nas vendas.
1.3 Generalização de venda de produtos
Diversos são os produtos comercializados pela empresa, somando-se por tipos e marcas, são aproximadamente 600 itens. Os tipos de produtos são:
 Para os cabelos: xampus, condicionadores, tinturas, tonalizantes, cremes de tratamentos, modeladores, alisantes, escovas e pentes;
 Para o corpo: depiladores, desodorantes, hidratantes, massageadores, óleos corporais,
sabonetes e sais de banho;
 Para o rosto: barbeadores, cremes e protetores solares;
 Para as mãos: cremes, esmaltes, acetonas, decoração das unhas e acessórios para manicure;
 Para a higiene bucal: escovas, fios, cremes e enxaguadores;
 Maquiagens: máscaras, corretivos, batons, brilhos, sombras, lápis para os olhos, bases
facial, removedores de maquiagem, kits e estojos;
 Além de perfumes, sabonetes íntimos, talcos para os pés, algodão, espelhos, esparadrapos, preservativos, absorventes, fraldas descartáveis e lenços umedecidos.
15
Capítulo II – Funcionamento de softwares lojista de produtos avulsos
Para a decisão sobre quais os softwares iriam ser incluídos na pesquisa, utilizou-se o site
especializado em downloads Baixaki que “segundo o Ibope, é o maior site de tecnologia brasileiro, com 10 milhões de usuários” (TECMUNDO, 2012). Na busca interna deste site buscouse pelas palavras chaves “pdv” (ou ponto de venda) e “estoque”, depois disso classificou-se
pela maior quantidade de vezes que cada software foi baixado e selecionou-se os cinco primeiros colocados.
A partir daí, acessou-se a página de internet do desenvolvedor de cada software, consultando os seus manuais e catálogos. Através das informações de suas principais características,
pode-se descobrir o que está sendo oferecido atualmente no mercado relacionado a softwares
lojista de venda avulsa.
O primeiro colocado entre os mais baixados foi o C-Plus- Sistema de Gestão Comercial
Integrado versão 2.1.7.13 com 105.735 downloads. O segundo foi Systronic Office Comercial
versão 9.0 com 65.720 downloads. O terceiro foi o Sistema Programa Automação Comercial
Estoque PDV-Master versão 4.5 com 61.240 downloads. O quarto foi o TagComércio Plus
versão 2008 com 32.010 downloads.E o quinto foi o SisAdvenPDV versão 1.7 com 11.463
downloads.
Todos esses cinco softwares são disponibilizados para baixar em versões Shareware e
ou Trial, isto é, são gratuitos apenas para testes. Possuem limitações de uso e ou tempo de
expiração. Devendo posteriormente, caso o usuário goste, comprar a licença.
2.1 Software C-Plus
De acordo com o site do desenvolvedor VVS (2012), o software C-plus é um sistema
que, tem por finalidade o controle total de um comércio varejista, cuidando da venda e estoque, setor financeiro e de expedição.
As principais características são: administração das contas de e-mail para usuários; controle de consignação; emissão de cupom fiscal; ordem de serviço; cadastro de clientes, fornecedores e funcionários; contas a pagar e a receber; fluxo de caixa; cobrança bancária; curva
ABC de produtos, clientes e fornecedores; impressão de etiquetas em vários formatos; controle de caixas; controle de cheques; controle de compras; controle de entrega em romaneio e
etiquetagem; mala-direta para clientes e fornecedores; emissão de orçamentos e envio via email; relatórios e gráficos sintéticos e analíticos; controle de atendimento a clientes; comissão
16
de vendedores; gerenciamento de recado e envio de mensagens; controle de recibos; backup
automático; fotos para produtos, cliente, fabricante; controle de estoque e controle de equipamentos dos clientes; níveis de status para orçamentos, vendas e ordem de serviços; plano de
contas, forma de pagamento e seção por hierarquia; fluxo de caixa com gráficos, por período
ou plano de contas; produtos compostos, associados e informações de aplicação; cálculo automático para determinar estoque mínimo; análise do produto por gráfico de vendas, curva
ABC, etc.; criação de classificações para clientes, produtos e fornecedores; layout de relatório
editável por você de forma simplificada; vários filtros para pesquisa de produtos e clientes;
envio de orçamentos, boletos e relatórios por e-mail; ranking de vendedores, clientes, filiais,
produtos, etc.; pedidos de venda por ordem de localização no estoque; gerador de arquivo
para Sintegra e MFD; regras de cálculo de ICMS, IPI e substituição tributária; impressão de
requisição de peças no estoque; reserva de produto no estoque e aviso na tela de venda.
2.2 Software Systronic Office Comercial
De acordo com o site do desenvolvedor Systronic (2012), o software Systronic Office
Comercial, é um software para o gerenciamento e controle da sua empresa, com ferramentas
de produção, gráficos e de lucratividade. Destaca-se pela facilidade de uso e pelos poderosos
recursos que possui, principalmente para usuários leigos, ideal para todo tipo de loja de varejo
e para o comércio em geral. Ainda de acordo com o site do desenvolvedor, o Systronic é um
produto prático e funcional, podendo ser incrementados com a compra de outros módulos de
funções. Por possuir muitos recursos explanaremos apenas os relacionados à venda e estoque,
que são o que efetivamente interessam ao nosso projeto.
As principais características são: emissor de cupom fiscal (ECF); TEF discado (Módulo
Adicional); TEF dedicado (módulo Adicional); geração de parcelas para crediário; controle de
cartões de crédito; controle de cheques a prazo e a vista; controle de comissões de vendedores; busca incremental de produto por qualquer parte do nome; leitura de etiquetas de pesagem de balanças; leitura de código de barras do produto; alteração do preço na hora da venda
configurável; descontos e acréscimos em percentuais e valores no fechamento da venda; calcula o troco automaticamente; desconto além do limite exige senha do gerente ou supervisor;
cancelamento somente com digitação de campo motivo; cancela o último cupom, porém o
valor da venda cancelada permanece para consulta do gerente; calculadora com fita detalhe no
PDV; importação de pedidos para a venda; consulta de preços sem sair do PDV; recebimento
de crediário sem sair do PDV; cliente novo pode ser cadastrado na hora da venda; emite nota
17
fiscal eletrônica de vendas e serviços (módulo adicional); geração de controle de vendas consignadas; impressão de comprovante de entrega; impressão de carnês pré-impresso ou no cupom; impressão de fatura mercantil da venda; remissão do carnê; retiradas do caixa; códigos
de barras que pode ser o do fabricante ou gerado automaticamente pelo sistema para uso interno; número do lote; validade da mercadoria; alíquota de ICMS de compra e de venda, redução de base de cálculo em percentual, alíquotas para outros estados e PIS, COFINS e ISS;
departamentos, grupos e subgrupos de produtos; cálculo do custo médio; cálculo do preço de
venda; preço promocional até data específica, ao término da promoção e volta ao preço normal; etiquetas de códigos de barras em impressoras laser, jato de tinta e térmica; composição
de kits de produtos; ranking de produtos mais vendidos relatório onde você escolhe os “dez
mais” ou “vinte mais”. Além do controle de todo o setor financeiro e de compras da empresa.
2.3 Software PDV-Master
De acordo com o site do desenvolvedor Giovane informática (2012), o software Sistema
Programa Automação Comercial Estoque PDV-Master é um programa para automação comercial de pequenos estabelecimentos com controle de caixa, estoque e venda rápida.
As principais características são: controle de caixa; controle de estoque; controle de usuário; aceita venda por código simples; código de barras ou descrição; cadastro de clientes;
aceita leitor de código de barras; aceita qualquer impressora não fiscal; imprime direto para
porta LPT1, COM1, rede ou arquivo de texto; emissor de cupom fiscal (impressora fiscal opcional); pode trabalhar em rede; configura logomarca na tela principal; faz backup e recupera
backup e gerencia tele-entrega; realiza pagamento parcial e pode ser executado direto de um
pendrive.
2.4 Software TagComércio
De acordo com o site do desenvolvedor Tagsoft (2012), o software TagComércio é um
software para empresas ou profissionais liberais que pode realizar todo o controle e gestão
comercial de um negócio, destacando-se por sua interface amigável, intuitiva e pela total integração de módulos. Ainda, de acordo com o desenvolvedor, diferentemente do mercado atual,
a empresa Tagsoft, optou por agregar em um só produto os principais sistemas necessários
para uma melhor administração comercial. Com isso, os clientes ganharão em economia, pois
18
com a aquisição do TagComércio não será necessária a aquisição de "subsistemas" ou aplicativos extras para completar funcionalidades de um sistema principal.
As principais características são: controle de estoque e de vendas; cadastros de clientes
e produtos com foto; cadastros de fornecedores, categoria de produtos, grades e kits de produtos; lançamentos de pedidos de vendas, orçamentos, locações, contas a pagar e a receber; fluxo de caixa, com gráficos e relatórios financeiros e gerenciais; geração de etiquetas com código de barras para produtos e envio de mala-direta para clientes e fornecedores.
2.5 Software SisAdvenPDV
De acordo com o site do desenvolvedor Novavia (2012), “o software SisAdvenPDV é
um sistema para automação comercial completo, [...] parametrizado, podendo se adaptar aos
mais diversos ramos de atividades comerciais.”
As principais características são: cadastro de usuários com nível de acesso limitado controlado pelo administrador do sistema; emissão de vendas e orçamentos, na mesma tela; venda
através de leitor de código barras ou pesquisa rápida por descrição via teclado; emissão de
cupom fiscal configurável; impressão de pedidos em cupom não fiscal ou em formulário continuo; cadastro de clientes com opção de bloqueio de clientes inadimplentes; cadastro de produtos; controle de estoque; fornecedores; controle de vendas; entrada de mercadorias; fluxo
de caixa; contas a receber, pagar e pendentes; relatório sobre quanto sua loja realmente está
lucrando por período; listagem de produtos mais vendidos; tabela de preços; total do patrimônio em estoque; gráficos de estatísticas de vendas e crescimento por período; parametrização
de diversas operações; completo sistema de segurança com senhas, que proporciona um controle dos acessos a todos aos módulos do sistema;backup; funcional em um único computador
independente ou em rede e funções de uso rápido via teclado ou mouse.
2.6 Características similares dos softwares pesquisados com o SISVE
Dentre as características de cada um dos cinco programas acima descritos, as que possuem parecidas no SISVE - Sistema de Controle e Estoque são:
No Software C-Plus: emissão de cupom; fluxo de caixa; clientes e fornecedores; controle de caixas; relatórios; controle de estoque; forma de pagamento e seção por hierarquia; cálculo automático para determinar estoque mínimo; criação de classificações para produtos;
19
layout de relatório editável por você de forma simplificada; vários filtros para pesquisa de
produtos; ranking produtos; reserva de produto no estoque e aviso na tela de venda.
No Software Systronic Office Comercial: busca incremental de produto por qualquer
parte do nome; leitura de código de barras do produto; alteração do preço na hora da venda
configurável; descontos e acréscimos em percentuais e valores no fechamento da venda; calcula o troco automaticamente; cancelar o último cupom, porém o valor da venda consulta de
preços sem sair do PDV; impressão de comprovante de entrega e ranking de produtos mais
vendidos relatório onde você escolhe os “dez mais” ou “vinte mais”.
No Software PDV-Master: controle de caixa; controle de estoque; controle de usuário;
aceita venda por código simples; código de barras ou descrição; cadastro de clientes; aceita
leitor de código de barras; aceita qualquer impressora não fiscal; imprime direto para porta
LPT1, COM1, rede ou arquivo de texto.
No Software TagComércio: controle de estoque e de vendas; cadastro de produtos; categoria de produtos e fluxo de caixa com relatórios financeiros.
No Software SisAdvenPDV: cadastro de usuários com nível de acesso limitado controlado pelo administrador do sistema; venda através de leitor de código barras ou pesquisa rápida por descrição via teclado; impressão de pedidos em cupom não fiscal ou em formulário
continuo; cadastro de produtos; controle de estoque; controle de vendas; entrada de mercadorias; fluxo de caixa; tabela de preços; total do patrimônio em estoque; completo sistema de
segurança com senhas, que proporciona um controle dos acessos a todos aos módulos do sistema.
20
Capítulo III – Escopo do projeto
Neste capítulo será descrito o modelo de dados, além da análise de acordo com a pesquisa realizada, identificando as problemáticas e a real necessidade que se encaixaram no projeto final.
3.1 Work breakdown structure (WBS)
No projeto do WBS (Figura 3.1) foram definidas quatro etapas principais: Visão, Planejamento, Desenvolvimento e Estabilização.
Na Visão há:
 Pesquisa: feita no estabelecimento comercial, com a intenção de verificar a necessidade de um software e seus requisitos funcionais. Ela foi importante para um desenvolvimento
com foco nas soluções dos problemas que se apresentaram. Aplicamos um questionário ao
lojista, disponível nos Apêndices A e B.
O Planejamento é composto por:
 Cronograma: Na figura 3.2 ficam demonstradas as tarefas e os tempos para as suas execuções.
 Diagrama de entidade e relacionamento - Representa-se na figura 3.3 a estrutura do
banco de dados que seria construído para o projeto.
 Diagrama de caso de uso: Mostra os atores e suas funções dentro do sistema. Disponível na figura 3.6.
 Diagrama de classes: A figura 3.5 exibe a estrutura das relações das classes.
 Modelo de entidade e relacionamento: Na figura 3.4 verifica-se as ações de um usuário
no sistema por este tipo de modelo.
Já o Desenvolvimento é composto por:
21
 Banco de Dados: Elaborado a partir do Diagrama de Entidade e Relacionamento
(DER).
 Interface gráfica: Foi desenvolvida pelo software Visual Studio 2010.
 Testes: Foram ocorrendo ao longo de todo o desenvolvimento.
E a Estabilização composta por:
 Implementação: instalação do sistema na loja.
 Treinamento: Explicação detalhada do uso e acompanhamento in loco ou via suporte
por e-mail ou telefone.
22
Figura 3.1 – W.B.S..
23
3.2 Cronograma
Figura 3.2 – Cronograma
24
3 3 Diagrama de Entidade e Relacionamento (DER)
Figura 3.3 – D.E.R.
25
3.4 Modelo de Entidade e Relacionamento (MER)
n, n
POSSUI
ATENDENTE
(usuario)
ITENS
VENDA
n, n
POSSUI
1, n
1, n
FAZ
n, n
n, n
1, n
VENDA
n, n
TEM
1, 1
1, n
POSSUI
1, 1 1, 1
PODE
SER
POSSUI
n, n
FORMA
PAGAMENTO
PRODUTOS
POSSUI
1, 1
MARCA
Figura 3.4 – M.E.R.
1, 1
1, n
LINHA
CATEGORIA
26
3.5 Diagrama de classe
categoria
+cod_categoria integer
+categoria varchar
forma_pagamento
*
+cod_pagamento integer
+pagamento_cartao float
+pagamento_cheque float
+pagamento_dinheiro float
+informar()
+atualizar()
+incluir()
+excluir()
*
marcas
+informar()
+descontar()
+cobrar()
+cod_marcas integer
+nome_marcas varchar
*
+informar()
+atualizar()
+incluir()
+excluir()
*
linha
*
*
+cod_linha integer
+nome_linha varchar
+informar()
+atualizar()
+incluir()
+excluir()
vendas
+cod_vendas integer
+data-venda date
itens_venda
+informar()
+descontar()
+cod_itens_venda integer
+qtde_venda integer
+vlr_total float
1
produtos
login
+cod_login_adm integer
+nome_login_adm varchar(15)
+senha_login_adm varchar(8)
+alt_categoria int
+alt_linha int
+alt_marca int
+alt_itens_venda int
+alt_usuario int
+alt_venda int
+exc_categoria int
+exc_linha int
+exc_marca int
+exc_itens_venda int
+exc_usuario int
+exc_venda int
+cad_categoria int
+cad_linha int
+cad_marca int
+cad_itens_venda int
+cad_usuario int
+cad_venda int
+atualizar int
+relatorio int
1..*
atendente
+cod_atendente integer
+nome_atendente vachar
+cpf_atendente integer
+rg_atendente integer
*
1..*
+cadastrar()
+acessar_banco()
+alterar_banco()
+incluir()
+excluir()
+cadastrar()
+atualiza()
+consulta()
+cadastra_venda()
+cancela_venda()
+exclui_venda()
Figura 3.5 – Diagrama de classe
+cod_produtos integer
+cod_barras integer
+nome_produtos varchar
+descrição_produtos varchar
+vlr_unitario float
+qtde_estoque integer
+informar()
+incluir()
+excluir()
+atualizar()
27
No diagrama de classe, representaram-se as entidades do sistema. Suas operações e seus
atributos. Cada uma das entidades deve obedecer às operações construídas neste diagrama,
seus atributos são a forma que identificaram a entidade no sistema. Com base no diagrama as
operações ficaram limitadas para o usuário, mas para o administrador não. Estas ações estão
definidas de acordo com o ilustrado no diagrama acima.
Essa construção foi feita com base no diagrama de caso de uso. Esse diagrama traz a ideia de como se trabalha com os atributos, suas codificações e onde cada atributo deverá depender de sua entidade.
28
3.6 Diagrama de casos de uso
Figura 3.6 – Diagrama de casos de uso
29
O diagrama da loja de cosmético, criado através do programa Diagram Design versão
1.23, mostra como se comporta o sistema no momento da venda, o seu sistema contará com
apenas dois atores: o gerente e a forma de pagamento.
Conforme se informa no diagrama de casos de uso, o sistema conta com forma de pagamento dando-lhe opções de pagamento em dinheiro, cartão ou cheque, além de opção de
desconto. Há informações dos produtos, cadastro, atualização, exclusão, inclusão, entre outras.
O que se retrata no caso de uso acima é como o sistema deverá se comportar diante dos
usuários.
30
CAPÍTULO IV – Desenvolvimento do projeto
Neste capítulo será ilustrado todo o desenvolvimento do projeto, telas e funcionamento,
além dos códigos aplicados.
4.1 Principais telas
Serão apresentadas a seguir as telas do SISVE divididas em duas parte: Estoque e Vendas.
4.1.1 Telas de controle de estoque
Na Tela Login o usuário poderá usar a opção Alterar senha, que está disponível só antes
de se logar no sistema, mas para isto precisará saber a senha antiga para modificá-la.
Figura 4.1 – Tela de login
No momento em que “Cadastro ADM” estiver desabilitado é porque já existe um login
cadastrado e este usuário já cadastrado é o administrador do sistema. Caso não haja nenhum
login cadastrado, o sistema libera o “Cadastro ADM”. A senha do usuário pode ser alterada
de acordo com o login informado e senha antiga. É de fundamental importância que apenas o
administrador utilize a sua senha e o seu nome de usuário, pois é com tal recurso que o administrador controla todo o software. Nenhum outro usuário pode consultar a senha dos demais,
apenas o administrador do sistema. Caso o administrador esqueça a sua própria senha, ele terá
de entrar em contato com a equipe de suporte técnico para fazer a recuperação.
31
Nesta tela qualquer um dos usuários poderá alterar a sua senha. Ele digitará o nome do
usuário e a senha antiga, digita a nova senha e clica em alterar. Depois que alterar, clique em
cancelar e a tela de login será exibida novamente.
Figura 4.2 – Tela de alteração de senha
Na Tela Principal, o usuário pode, clicando em:
 Botão Cadastrar: abrir a tela de cadastro de produtos.
 Botão Excluir: abrir a tela de exclusão de produtos.
 Botão Consulta: abrir a tela de consulta de produtos. A consulta é de forma geral, onde
todos os itens poderão ser consultados.
 Botão Relatório: abrir a tela de relatório. O usuário poderá imprimir relatórios de produtos.
 Botão Sair: encerrar o programa. Antes de sair o usuário ainda terá a opção de cancelar o encerramento se clicar no botão Sair.
32
Figura 4.3 – Tela principal
As informações contidas no rodapé do software são meramente demonstrativas: mostram o nome do usuário que está logado naquele momento, a data e a hora.
A Tela de cadastro é carregada no momento em que o usuário escolhe a opção Cadastro. Ela possui os seguintes recursos:
Figura 4.4 – Tela de cadastro de produtos
 Botão Consultar: para abrir a tela de Consulta de Geral de Produtos, caso houver a
necessidade em consultar algum item.
 Os campos Marca, Linha e Categoria: cadastra em outra tela do software, mas se o
usuário digitar as teclas de atalho Ctrl+A, abrirá a tela de cadastro da Marca, Ctrl+T abrirá a
33
tela de cadastro da Categoria e Ctrl+L abrirá a tela de cadastro da Linha. Esses três campos
ficam desabilitados, porém o usuário poderá selecionar os dados que ali estão para efetuar o
cadastro.
 Botão Limpar: apaga todos os dados dos campos. Já os campos que estiverem no momento bloqueados, não serão apagados. A utilidade desta função no software é a de que o
usuário não precise apagar os dados de cada um dos campos, mas nada o impede de fazer essa
ação. O intuito é melhorar o cadastro, evitado que o usuário precise ir a cada campo e para
apagar determinada informação.
 Botão Retornar ao Menu Principal: é um recurso intuitivo, quando clicado, a tela de
cadastro é fechada e o menu principal fica a disposição para se efetuar algo pertinente aos
módulos disponibilizados na tela principal.
 Botão Cadastrar: após preencher todos os campos, o usuário pode clicá-lo, com isso o
item em questão será cadastrado.
 Produto Sem Cod. Barras: para os itens sem código de barras o usuário pode selecionar essa opção, com isso o software gerará um número automático para o item que for cadastrado. Esse número gerado automaticamente não terá repetição.
No momento do cadastro o usuário digitava as teclas de atalho para cadastrar a linha, a
marca e a categoria. No menu principal isso pode ser feito para a maioria dos módulos do
sistema com o Menu Cadastro, Menu Configurações, Menu Consulta e Menu Relatório. Mais
adiante serão demonstradas essas teclas bem como suas serão exibidas as imagens.
Figura 4.5 – Aba cadastrar da tela principal
34
Nesse menu Cadastrar, há opções como mostrada na figura abaixo. Os itens deste menu
estão habilitados de acordo com as configurações de sistema que o administrador previamente
já havia escolhido. As opções são:
 Nova Categoria, Nova Linha e Nova Marca: o menu de cadastro de ambas opções é
carregada de acordo com a escolha do usuário.
Figura 4.6 – Cadastro de categoria de produtos
Figura 4.7 – Cadastro da linha de produtos
Figura 4.8 – Cadastro da marca do produto

Produto: é equivalente ao clique no botão Cadastrar. O formulário de cadastro de produtos será carregado. Conforme Figura 4.4.

Usuário: o administrador poderá cadastrar usuários para o sistema, bem como suas configurações de acordo com a figura 4.10 e 4.11.
35
Figura 4.9 – Cadastro de usuários
Os cadastramentos estão disponíveis através do menu principal na aba Cadastrar (Figura 4.5), clicando na opção desejada ou usando teclas de atalho, são elas:
 Cadastro de Categoria (Figura 4.9): teclas de atalho CTRL+T;
 Cadastro da Linha de Produtos (Figura 4.7): teclas de atalho CTRL+L;
 Cadastro da Marca do Produto (Figura 4.8): teclas de atalho CTRL+A;
 Cadastro de Produtos (Figura 4.4): teclas de atalho CTRL+D;
 Cadastro de Usuários (Figura 4.9): teclas de atalho CTRL+U.
O campo Código Usuário e o botão Consultar estão desabilitados porque esta ação será feita nas opções Alteração e Exclusão. As telas acima são executas de acordo com a escolha do usuário (Figura 4.5).
Na tela a seguir, aparece a aba de Acesso do Sistema, é nela que são configurados os
tipos de acesso ao sistema. Lembrando que o usuário administrador não é consultado em nenhum módulo do sistema.
36
Figura 4.10 – Opção de acesso ao sistema de estoque através da janela principal
Na Figura 4.10 o usuário administrador, assim configurado, clicando na opção ou digitando CRLT+S entra na janela de Configurações de Acesso do Sistema de Estoque (Figura
4.11).
Figura 4.11 – Janela de configurações de acesso do sistema de estoque
37
Nesta janela, o administrador consulta o usuário e logo depois configura os acessos do
sistema, salvando as suas configurações.
O botão Salvar só poderá ser desabilitado quando todos os campos forem preenchidos
com a consulta. Sendo assim, o responsável por essa configuração deverá antes consultar o
usuário que necessita alterar os acessos para depois salvar. Deve-se resaltar que caso o responsável deixar os campos dos acessos em branco, o usuário poderá fazer apenas consultas.
Na tela abaixo (Figura 4.12). A aba Consulta demonstra os itens que poderão ser consultados.
Figura 4.12 – Aba das consultas de estoque da tela principal
Na Figura 4.12 os formulários podem ser carregados de acordo de acordo com a escolha, ou seja, eles poderão ser carregados clicando ou digitando determinadas teclas de atalho e
que são exibidas no menu suspenso.
 Consultar Categoria (Figura 4.13): teclas de atalho CTRL+C;
 Consultar Linha (Figura 4.14): teclas de atalho CTRL+L;
 Consultar Marca (Figura 4.15): teclas de atalho CTRL+M;
 Consultar Produto (Figura 4.16): teclas de atalho CTRL+D;
 Consultar Usuário (figuras 4.17 e 4.18): teclas de atalho CTRL+U;
 Consultar Vendas (Figura 4.19): teclas de atalho CTRL+V;
Essas teclas auxiliam no momento que se necessita consultar um determinado item, evitando que o usuário tenha que clicar no menu e em seguida clicar no tipo de consulta que de-
38
seja fazer. Salientando que a consulta de usuário só poderá ser feito pelo administrador ou por
um usuário assim configurado.
As telas de consultas do sistema SISVE são as seguintes:
Figura 4.13 – Consulta de categoria
A Figura 4.13 traz os itens disposto na tela para visualização. O usuário poderá fazer
as suas consultas digitando no campo superior em cor branca, e o item requerido será exibido
na parte inferior da tela.
Se consulta pelo código ou pelo nome da categoria do produto. Caso queira saber o último produto cadastrado é só marcar a opção Ordem Decrescente e o último registro será exibido primeiro, bem como os demais itens dispostos do menor para o maior. Já em Ordem Alfabética, como o próprio nome já diz, organiza em ordem alfabética. Lembrando que estas
ações modificam a forma como serão exibidas, com isso a pesquisa que havia sido feita, não
será levada em consideração, no entanto não é necessário apagar a informação digitada, caso
desmarque o tipo de ordenação a consulta se manterá como já havia sido feita.
Importante: Nenhuma das duas opções de ordenação fica marcadas por igual, ou seja,
não poderá ser feita duas ordenações ao mesmo tempo.
Ao clicar no botão Sair à tela é fechada e o menu principal se mantém em execução. O
sistema não é fechado direto.
39
A informação acima discriminada para a tela Consulta de categoria (Figura 4.13) são
as mesmas para estas telas denominadas Consulta de linha (Figura 4.14), Consulta de marca
(Figura 4.15) e também para as outras que a seguir serão demonstradas.
Figura 4.14 – Consulta de linha
Figura 4.15 – Consulta de marca
40
Os critérios de pesquisa e ordenação são válidos para as todas as telas de pesquisa, exceto para a de Consulta geral (Consulta de geral de produtos).
Clicando na aba Consulta de Produtos ou no botão Consultar, ambos disponíveis na tela principal, haverá o acesso a consulta geral de produtos, assim como demonstrado na tela
abaixo.
Figura 4.16 – Consulta geral de produtos
Nesta figura 4.16 os campos em branco são para pesquisa. A regra para a ordenação se
mantém, apenas para enfatizar, esta regra é válida para todas as telas.
Neste formulário, assim como nos outros, os itens são exibidos conforme cadastrado no
banco de dados. As opções aqui presentes são as de Produto, Categoria, Marca, Linha, Data,
Descrição, Código de barras, Código do produto, Valor unitário e Quantidade em estoque.
Caso alguma informação não esteja presente conforme mostrado acima, você pode mover a
barra de rolagem no rodapé da janela para a direita ou dependendo da quantidade de registro
tanto para direita quanto para baixo.
Em Data, deve digitar a data sem que seja preciso inserir a barra (/) ou o traço (-), mas o
usuário poderá digitar sem problema algum, já que o sistema conta com autopreenchimento
de data, ou seja, apenas é preciso digitar o número da data. Caso os dados pesquisados fiquem
em branco, significa que não há registros com o critério de pesquisa.
41
Antes de explicar detalhadamente sobre a próxima tela, observe que há uma caixa de
verificação de senha, porém a senha não aparece. Esta ação é de exclusiva visualização do
usuário administrador.
Figura 4.17 – Consulta de usuário (um administrador)
Nenhum outro usuário poderá visualizar este campo, mesmo que seja configurado um
segundo usuário administrador, este campo não ficará visível para ele.
Observação: para as caixas de verificação, apenas os tipos de ordenação podem ficar
uma por vez. A caixa de Senhas pode e deve ficar habilitada para que seja possível a visualização da senha. Caso não queira, deixe-a desabilitada como demonstra a tela 17, e o campo
senha não aparecerá.
Observe que na Figura 4.18 a opção Senhas não aparece.
Figura 4.18 – Consulta de usuário (dois administradores)
42
Para que a senha seja exibida, o usuário administrador terá que habilitar o campo Senhas. Lembrando que a senha ou o login do administrador não aparecem nesta tela.
Continuando neste módulo de consulta, será agora explicada a tela Consulta de venda.
Seguindo sempre as mesmas configurações das caixas de verificação, já explicadas anteriormente. Há uma barra de rolagem na imagem, ou seja, ainda tem campos para ser exibidos,
neste caso, o usuário pode rola a esta barra para a direita para visualizar os demais campo.
Figura 4.19. – Consulta de vendas
Como já explicado, as ordenações se aplicam a esta tela também. Os campos que poderá
ser feito as pesquisas no formulário são: Produto, Cód.barras, Pagamento, Vendedor,
Val.Total, Quant.Venda, Hora, Data, Quant.Item, Total_Venda.
A tela abaixo demonstra os itens de alterações, dentro da aba Manutenção. Neste menu,
o usuário clicando em um dos itens para alteração terá uma tela carregada com a opção escolhida.
43
Figura 4.20 – Aba de manutenção de estoque da tela principal (alteração)
Figura 4.21 – Alteração de categoria
A tela 21 existe dois campos, o código da categoria e o seu nome. A consulta pode ser
feita pelos dois campos. No Código categoria informe o número a ser pesquisado e no Nome
da Categoria informe o nome da categoria ou alguma letra que seja referente a ela. O botão
Alterar só será habilitado quando houver a consulta e o botão Limpar apaga os dados dos
campos e habilita o campo código e desabilita o botão Alterar. Quando é consultado, o primeiro campo fica desabilitado, mas poderá prosseguir com a sua consulta no segundo campo.
Ao fazer outra consulta, o primeiro campo é substituído com o código do item pesquisado.
O primeiro campo (Código Categoria) fica desabilitado depois que consultado porque
o código não pode ser alterado.
Quando clicado em Limpar, o botão Alterar é desabilitado por motivo de segurança para
não haver alterações inválidas, ou seja, campos nulos. Embora o software não permita este
tipo de alteração, é um recurso a mais que lhe assegura as informações de seu produto.
As explicações aqui abordadas são mantidas para as figuras 4.22, 4.23, 4.24, 4.25 e
4.26.
Figura 4.22 – Alteração de linha
44
Figura 4.23 – Alteração de marca
Figura 4.24 – Alteração de produto
Na Figura 4.25, o campo Senha e Confirmação de senha ficam desabilitados porque esta ação pode ser feita apenas na Figura 4.1, onde o usuário pode clicar em Alteração de senha.
45
Figura 4.25 – Alteração de usuário
Figura 4.26, as caixas de verificação ficarão habilitadas assim que for feita uma pesquisa. Neste formulário podem-se habilitar as três caixas de verificação ao mesmo tempo. Para
efetuar a alteração e para executar uma segunda consulta deve clicar em Limpar e os campos
ficarão habilitados.
Figura 4.26 – Alteração de venda
46
Figura 4.27 – Menu de manutenção de estoque da tela principal (exclusão)
A tela acima demonstra os itens de exclusão. Nela, como na anterior, o usuário ao clicar
em um dos itens, uma tela será carregada com a opção que devidamente se relacionam ao item
escolhido. Como na figura 4.21, as configurações se mantêm para as telas de exclusão e atualização, com algumas características que serão abordadas na tela de atualização.
Figura 4.28 – Exclusão de categoria
Figura 4.29 – Exclusão de linha
47
Figura 4.30 – Exclusão de marca
Figura 4.31 – Exclusão de produto
Nesta tela denominada de Exclusão de itens de venda há campos com nome do produto, quantidade em estoque e valor do produto. No momento em que for excluir os campos ao
lado não será excluída do banco, pois é meramente informativo.
Figura 4.32 – Exclusão de itens de venda
48
A tela abaixo demonstra o item Atualizar produto. Esta função permite que atualize-se a
quantidade de um determinado produto.
Figura 4.33 – Aba de manutenção de estoque da tela principal (atualização)
Clicando, abre-se uma janela, como demonstrado abaixo, onde o usuário poderá fazer
as atualizações, quando necessária, das quantidades de produtos no estoque. Esta opção apenas realiza a soma do estoque antigo com a nova quantidade informada.
Figura 4.34 – Janela de atualização do estoque
49
Figura 4.35 – Aba relatório no menu principal
Conforme o que se ver na figura 4.35, localizada no Menu Principal possui a aba Relatório, onde se apresenta o sub-menu de acesso ao relatório de Estoque (Produto) e o de Venda. Eles também possuem tecla de atalho: Ctrl+R, acessa o relatório de Estoque e Ctrl+N
acessa o relatório de Vendas. Clicando em um dos itens dos relatórios ou digitando as teclas
de atalho você terá acesso aos relatórios já informados aqui e conforme está demonstrado nas
figuras 4.36 e 4.37.
Figura 4.36 – Tela de relatório de produtos
50
Figura 4.37 – Tela de relatório de vendas.
Figura 4.38 – Barra de ferramenta dos relatórios
Na barra de ferramenta ilustrada na figura 4.38, há os botões:





Usado para consultar itens no relatório;
Para aumentar a resolução;
Imprimir;
Atualizar;
Importar (para qualquer outro tipo de arquivo mudando apenas a sua extensão);

E há o campo de número de páginas, o usuário
poderá digitar o número das páginas ou usar as setas de navegação. Atenção o usuário deverá
ter quando no campo de número de páginas estiver /1+, isto significará que haverá mais páginas a serem visualizadas ou impressas. Caso não tiverem as setas de navegação, ficarão desabilitadas e o número de página /1+ ficará como /1, o sinal de + aparece porque não haveria
mais de uma página para ser impressa.
51
Figura 4.39 – Menu principal, tela de acesso ao suporte e ajuda do sistema
No item mostrado na figura 4.39, o usuário poderá acessar o suporte técnico enviando
um e-mail para sanar dúvidas sobre o uso do sistema.
Na figura 4.40 exibe-se a tela de solicitação de suporte. Nela, o usuário deverá informar no campo determinado os seguintes itens:
 Nome: O usuário deve inserir seu nome para que o suporte possa entrar em contato diretamente com a pessoa que estava com a dúvida ou problema.
 E-mail: O usuário deve inserir seu e-mail para que o suporte possa entrar em contato
diretamente com a pessoa que estava com a dúvida ou problema.
 Assunto: O usuário deverá inserir um assunto para mensagem agilizando assim o entendimento e o atendimento do suporte. Poderá informar sobre o módulo do sistema ao qual
ele tem dúvida, como por exemplo: cadastro de categoria, linha, marca, produto, consultas,
etc.
 Mensagem: O usuário deve inserir a mensagem com a sua dúvida ou problema, descrevendo o máximo de informações possíveis para um melhor entendimento agilizando assim
o atendimento do suporte.
 Barra de Progresso: Demonstrativo gráfico do progresso de envio da mensagem.
 Botão Enviar: Envia a mensagem com todos os dados para o suporte SISVE.
52
Figura 4.40 – Tela de suporte técnico
Com base nisso o suporte entrará em contato com o usuário e sanará as suas dúvidas de
acordo com a sua solicitação. A opção de envio de suporte também está disponível no controle de venda do SISVE.
4.1.2 Telas de controle de vendas
Na tela de login do controle de vendas, há:
 Campo de Login: O usuário deverá informar o seu login previamente cadastrado no
sistema.
 Campo de Senha: O usuário deverá informar o sua senha previamente cadastrada no
sistema.
 Botão Entrar: Após preencher os campos acima, o usuário deverá clicar em entrar para ter acesso ao sistema. Note que se ele não preencher algum dos campos de login ou senha,
o sistema irá avisá-lo.
53
Figura 4.41 – Tela de login
Figura 4.42 – Tela de venda
Na tela de vendas, possuem as seguintes opções:
 Aba suporte: Acessa a tela de suporte caso o usuário tenha algum problema ou dificuldade com o sistema, conforme já explicado.
 Barra de Produtos: Exibe informações dos produtos que estão sendo adicionadas à
compra.
54
 Cupom de Venda: Demonstrativo das informações dos produtos e da venda em tempo
real que é impresso ao final da transação.
 Botão Consultar Produto: Para ocasiões em que o usuário desejar saber o valor ou a
quantidade disponível em estoque de um determinado produto.
 Botão Abrir Venda: O usuário deverá sempre clicar neste botão ao início de cada venda.
 Botão Excluir Item: Caso o usuário desejar excluir algum item da venda após ter incluído o item no cupom, basta selecioná-lo e clicar em excluir item.
 Botão Cancelar Venda: Caso o usuário desejar excluir algum item da venda após ter
incluído no cupom de venda, basta selecioná-lo no cupom de venda e clicar em excluir item.
 Botão Desconto: Caso o usuário desejar dar um desconto no valor final da venda.
 Botão Fechar Venda: Finaliza a venda e imprime o cupom.
Figura 4.43 – Tela de consultar produto
A tela para consultar produtos, tem:
 Campo Cod. de Barras: O usuário deve inserir o código de barra e clicar em consultar
(ou apertar enter) para consultar as informações do produto.
 Campo Produto: Exibe o nome do produto de acordo com a consulta pelo código de
barras.
 Campo Preço: Exibe o preço do produto de acordo com a consulta pelo código de barras.
 Campo Quantidade: Exibe a quantidade restante no estoque do produto de acordo com
a consulta pelo código de barras.
55
 Botão Consultar: Realiza consulta do produto pelo código de barras e exibe as informações nos respectivos campos.
 Botão Limpar: Limpa todos os campos.
Figura 4.44 – Tela de desconto
A tela para conceder desconto ao clientes, possui:
 Campo Porcentagem: O usuário deve inserir a porcentagem do desconto que deseja e
clicar em calcular (ou dar enter) para atualiza o valor total.
 Campo Valor Total: Aqui o usuário pode alterar o valor final da compra manualmente,
efetuando assim o desconto desejado.
 Botão Alterar: Quando o usuário já tiver calculado ou inserido o valor do desconto deve clicar em alterar para que o sistema retorne ao tela de venda com o valor alterado.
4.2 Banco de dados
Para o gerenciamento do banco de dados do SISVE foi utilizado a ferramenta SQL 2008
Server Express versão 10 desenvolvida pela empresa Microsoft. De acordo com o site oficial,
“ela é um sistema de gerenciamento de dados avançado, que oferece um rico conjunto de recursos, proteção de dados e desempenho para clientes de aplicativos incorporados” (MICROSOFT, 2009). Além disso, possui distribuição gratuita, podendo ser disponível juntamente
com aplicativos.
56
4.2.1 Código de criação do banco de dados e das tabelas
Abaixo está o script em SQL do banco de dados do SISVE devidamente comentado, onde demonstram-se a criação do banco de dados e de suas tabelas:
--Criação do banco de dados lojacosmeticos
create database lojacosmeticos;
--Criação da tabela marcas
create table marcas
(cod_marca int primary key not null auto_increment,
nome_marca varchar(255) not null);
--Criação da tabela linha
create table linha
(cod_linha int primary key not null auto_increment,
nome_linha varchar (255) not null);
--Criação da tabela categoria
create table categoria
(cod_categoria int primary key not null auto_increment,
nome_categoria varchar (255) not null);
--Criação da tabela produtos
create table produtos
(cod_produto int primary key not null auto_increment,
cod_barras int not null,
nome_produto varchar (255) not null,
descricao_produto varchar (255),
vlr_unitario float not null,
qtde_produto int not null,
cod_marca int not null,
cod_linha int not null,
cod_categoria int not null,
foreign key (cod_marca) references marcas(cod_marca),
foreign key(cod_linha) references linha(cod_linha),
foreign key(cod_categoria)references categoria(cod_categoria));
--Criação da tabela login
57
create table login
(cod_login int not null primary key auto_increment,
nome_login varchar (20) not null,
senha varchar (8) not null,
alt_categoria int,
alt_linha int,
alt_marca int,
alt_itens_venda int,
alt_usuario int,
alt_venda int,
exc_categoria int,
exc_linha int,
exc_marca int,
exc_itens_venda int,
exc_usuario int,
exc_venda int,
cad_categoria int,
cad_linha int,
cad_marca int,
cad_itens_venda int,
cad_usuario int,
cad_venda int,
atualizar int,
relatorio int);
--Criação da tabela usuario
create table usuario
(cod_usuario int null primary key auto_increment,
nome_usuario varchar (50),
cpf_usuario varchar(14),
rg_usuario varchar (14),
cod_login int not null,
foreign key(cod_login)references login(cod_login));
--Criação da tabela venda
create table venda
58
(cod_venda int primary key not null auto_increment,
data_venda date not null,
hora_venda time not null,
cod_usuario int not null,
vlr_total_venda float,
foreign key (cod_usuario) references usuario(cod_usuario));
--Criação da tabela itens_venda
create table itens_venda
(cod_item int not null primary key auto_increment,
cod_venda int not null,
cod_produto int not null,
qtde_item int not null,
vlr_total_item float not null,
foreign key (cod_venda) references venda(cod_venda),
foreign key (cod_produto) references produtos (cod_produto));
--Criação da tabela forma_pagamento
create table forma_pagamento
(cod_pagamento int primary key not null auto_increment,
tipo_pagamento varchar (30) not null,
cod_venda int not null);
4.3 Código da aplicação
No código de criação estão os códigos devidamente comentados e desenvolvidos na linguagem Visual Basic pelo Visual Studio versão 2010 dos dois módulos da aplicação: Estoque
e Venda.
4.3.1 Código do controle de estoque
**********************************************************************
'TELA DE LOGIN
'**********************************************************************
‟
LOGIN.VB
59
'
Public Class login
Dim nomeuser, senha, nome_do_login As Object
Dim contadoru, contadors As Integer
Public Function tabela_login_vazia() 'função para verificar se há login cadastro na tabela login
Try ' tratativa de erro do formulário
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'variavel de conexão
con.Open() 'abri o banco
cmd.CommandText = "select * from login" 'consulta do banco de dados
reader = cmd.ExecuteReader() 'comando para executar a reader
If reader.Read Then 'condição, se houver cadastro de login a linklabel é dasabilitada
LinkLabel2.Enabled = False
LinkLabel1.Enabled = True
Else
LinkLabel2.Enabled = True 'se não houver nenhum cadastro a link label é habilitada.
LinkLabel1.Enabled = False
End If
reader.Close() 'fecha a reader
con.Close() 'fecha a conexão
Catch ex As Exception
End Try
Return 1
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try ' trataviva de erro do formulário
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'variavel de conexão
60
con.Open() 'abri o banco
cmd.CommandText = "select * from login where nome_login = '" & TextBox1.Text & "'" 'consulta do banco de dados
reader = cmd.ExecuteReader() 'comando para executar a reader
reader.Read() 'variável reader para ler os dados selecionado na select
nomeuser = reader("nome_login")
senha = reader("senha")
nome_do_login = reader("nome_login")
If TextBox1.Text = nomeuser Then 'confere o login
If MaskedTextBox1.Text = senha Then 'confere a senha
acrescenta_campo = reader("cod_login")
'campos alteração
dados(0, 0) = reader("alt_categoria")
dados(0, 1) = reader("alt_linha")
dados(0, 2) = reader("alt_marca")
dados(0, 3) = reader("alt_produto")
dados(0, 4) = reader("alt_venda")
dados(0, 5) = reader("alt_usuario")
'campos exclusão
dados(0, 6) = reader("exc_categoria")
dados(0, 7) = reader("exc_linha")
dados(0, 8) = reader("exc_marca")
dados(0, 9) = reader("exc_produto")
dados(0, 10) = reader("exc_itens_venda")
dados(0, 11) = reader("exc_venda")
dados(0, 12) = reader("exc_usuario")
'campos cadastros
dados(0, 13) = reader("cad_categoria")
dados(0, 14) = reader("cad_linha")
dados(0, 15) = reader("cad_marca")
dados(0, 16) = reader("cad_produto")
dados(0, 17) = reader("cad_usuario")
'campo atualizar
dados(0, 18) = reader("atualizar")
61
'campo relatório
dados(0, 19) = reader("relatorio")
reader.Close() 'fechando a reader
con.Close() 'fechando o banco de dados
Me.Hide()
principal.Label1.Text = nome_do_login
principal.Show()
TextBox1.Clear()
MaskedTextBox1.Clear()
Else
MsgBox("Senha não confere.", vbCritical) 'mensagem para senha errada
contadors = contadors + 1 'contador de erro de senha, se passar de três tentativas o sistema automaciamente fecha
MaskedTextBox1.Focus()
End If
Else
MsgBox("Login não cadastrado!", vbCritical) 'mensagem para login errada
TextBox1.Focus()
End If
Catch ex As Exception
MsgBox("Usuário inválido.", vbCritical) 'mensagem quando não há login no
banco de dados
contadoru = contadoru + 1 'contador de erro de usuario, se passar de três tentatavias o sistema automaciamente fecha
TextBox1.Focus()
End Try
If contadoru = 3 Or contadors = 3 Then 'condição para fechar o sistema. Se passar
de três tentativas o sistema fecha.
MsgBox("Sistema encerrado.")
Application.Exit()
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
62
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
MaskedTextBox1.Focus()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
sair() 'botão sair
Me.Close()
End Sub
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Hide()
AlterarSenha.Show()
End Sub
Private Sub MaskedTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
End If
End Sub
Private Sub LinkLabel2_LinkClicked(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
Try ' trataviva de erro do formulário
CadastroUsuario.Button3.Text = "Cancelar" 'adicionar o text para o botão no
formulário cadastro usuário
CadastroUsuario.Button1.Enabled = False 'desabilita o botão
CadastroUsuario.Label6.Enabled = False
CadastroUsuario.TextBox3.Enabled = False 'desabilita a textbox
CadastroUsuario.Show()
Catch ex As Exception
End Try
End Sub
63
Private Sub login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
tabela_login_vazia() 'Executa a função de verificação da tabela login, caso não tenha nenhum login o linklabel é abiitado
End Sub
End Class
„**********************************************************************
'CADASTRO DE CATEGORIA
'**********************************************************************
‟
NOVACATEGORIA.VB
'
Imports MySql.Data.MySqlClient
Public Class NovaCategoria
Public Sub conferir_categoria() 'Função objeto. Confere se o item já esta cadastrado.
Try 'Tratando erro
If Label1.Text = "Nome da Categoria:" Then 'condição para o conferir a categoria
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If TextBox2.Text > " " Then 'Segunda condição para pequisa no banco de dados
cmd.CommandText = "SELECT * FROM categoria where nome_categoria
like '%" & Trim(TextBox2.Text) & "%'" 'Função trim romove espaços iniciais e finais da
textbox
End If
reader = cmd.ExecuteReader()
reader.Read()
confere = reader("nome_categoria")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
ElseIf Label1.Text = "Nome da Marca:" Then 'condição para conferir a marca
64
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If TextBox2.Text > " " Then 'Segunda condição para pequisa no banco de dados
cmd.CommandText = "SELECT * FROM marcas where nome_marca like
'%" & Trim(TextBox2.Text) & "%'" 'Função trim romove espaços iniciais e finais da textbox
End If
reader = cmd.ExecuteReader()
reader.Read()
confere = reader("nome_marca")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
ElseIf Label1.Text = "Nome da Linha:" Then 'condição para conferir a linha
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If TextBox2.Text > " " Then 'Segunda condição para pequisa no banco de dados
cmd.CommandText = "SELECT * FROM linha where nome_linha like '%"
& Trim(TextBox2.Text) & "%'" 'Função trim romove espaços iniciais e finais da textbox
End If
reader = cmd.ExecuteReader()
reader.Read()
confere = reader("nome_linha")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
End If
Catch ex As Exception
End Try
End Sub
65
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Try
If Label1.Text = "Nome da Categoria:" Then 'condição para o cadastrar a categoria
If TextBox2.Text > " " Then 'se a textbox não for nula ela executa as instruções abaixo.
'Conferir se o item em questão já esta cadastrado.
conferir_categoria() 'objeto para conferir se já há cadastro.
If confere <> TextBox2.Text Then 'condição para inserir uma nova categoria
If MsgBox("Deseja cadastrar esta categoria?", vbYesNo, "confirmação")
= vbYes Then
'Tabela produtos - CADASTRO
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con 'conecta ao banco de dados
con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "INSERT into categoria (nome_categoria) VALUES (?)"
.Parameters.Add("nome_categoria", OleDb.OleDbType.VarChar)
.Parameters("nome_categoria").Value = Trim(TextBox2.Text) 'função trim remove espaços finais e iniciais.
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão
TextBox2.Clear() 'limpa a textbox
MsgBox("Cadastro efetuado com sucesso!", vbInformation)
Else
MsgBox("Cadastro não efetuado.", vbCritical)
End If
Else 'se for igual ele executa as intruções abaixo.
66
MsgBox("Item já cadastrado.", vbExclamation) 'mensagem a se exibida
para o usuário quando o item for o mesmo
End If 'fim da condição para conferir o cadastro
Else
MsgBox("Campo nulo!", vbCritical)
TextBox2.Focus() 'move o cursor para a textbox
End If
ElseIf Label1.Text = "Nome da Marca:" Then 'condição para o cadastro da marca
If TextBox2.Text > " " Then
'Conferir se o item em questão já esta cadastrado.
conferir_categoria() 'objeto para conferir se já há cadastro.
If confere <> TextBox2.Text Then 'condição para inserir uma nova categoria
If MsgBox("Deseja cadastrar esta Marca?", vbYesNo, "confirmação") =
vbYes Then
'Tabela marcas - CADASTRO MARCAS
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "INSERT into marcas (nome_marca) VALUES
(?)" 'Comando para inserir dados no MySQL
.Parameters.Add("nome_marca", OleDb.OleDbType.VarChar)
.Parameters("nome_marca").Value = Trim(TextBox2.Text) 'função
trim. Remover os espaços iniciais e finais
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
TextBox2.Clear() 'limpa a textbox
MsgBox("Cadastro efetuado com sucesso!", vbInformation)
Else
MsgBox("Cadastro não efetuado.", vbCritical)
67
End If
Else 'se for igual ele executa as intruções abaixo.
MsgBox("Item já cadastrado.", vbExclamation) 'mensagem a se exibida
para o usuário quando o item for o mesmo
End If 'fim da condição para conferir o cadastro
Else
MsgBox("Campo nulo!", vbCritical)
TextBox2.Focus() 'move o cursor para a textbox
End If
ElseIf Label1.Text = "Nome da Linha:" Then 'condição para o cadastro da linha
If TextBox2.Text > " " Then
'Conferir se o item em questão já esta cadastrado.
conferir_categoria() 'objeto para conferir se já há cadastro.
If confere <> TextBox2.Text Then 'condição para inserir uma nova categoria
If MsgBox("Deseja cadastrar esta Linha?", vbYesNo, "confirmação") =
vbYes Then
'Tabela marcas - CADASTRO MARCAS
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "INSERT into linha (nome_linha) VALUES (?)"
'Comando para inserir dados no MySQL
.Parameters.Add("nome_linha", OleDb.OleDbType.VarChar)
.Parameters("nome_linha").Value = Trim(TextBox2.Text) 'função
trim. Remover os espaços iniciais e finais
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
TextBox2.Clear() 'limpa a textbox
MsgBox("Cadastro efetuado com sucesso!", vbInformation)
Else
68
MsgBox("Cadastro não efetuado.", vbCritical)
End If
Else 'se for igual ele esxecuta as intruções abaixo.
MsgBox("Item já cadastrado.", vbExclamation) 'mensagem a se exibida
para o usuário quando o item for o mesmo
End If 'fim da condição para conferir o cadastro
Else
MsgBox("Campo nulo!", vbCritical)
TextBox2.Focus() 'move o cursor para a textbox
End If
Else
MsgBox("Erro! Contate seu administrador.", vbCritical)
TextBox2.Focus() 'move o cursor para o campo especificado
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
If Button3.Text = "Menu Principal" Then 'Ação para o objeto button 3 quando o
texto dele for "Retornar ao meu principal
Close() 'Fecha o formulário
principal.Show() 'executa o menu princípal
ElseIf Button3.Text = "VOLTAR" Then 'Condição para voltar a tela de cadastro
Close() 'fecha o formulário
CadastroProduto.sele_cambobox() 'executa a select da função combobox1
CadastroProduto.sele_cambobox2() 'executa a select da segunda função combobox2
CadastroProduto.sele_combobox3() 'executa a select da terceira função combobox3
Close() 'fecha o formulário
CadastroProduto.Show() 'executa a tela de cadastro
End If
69
End Sub
Private
Sub
TextBox2_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
Button2_Click(Me, EventArgs.Empty) 'ação para o botão, quando o usuário ditigitar enter.
TextBox2.Focus()
End If
End Sub
Private
Sub
NovaCategoria_KeyDown(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub TextBox2_TextChanged(sender
As System.Object, e As Sys-
tem.EventArgs) Handles TextBox2.TextChanged
If Len(TextBox2.Text) = 36 Then
MsgBox("Abrevie o registro. Carcateres Máximos 36")
End If
End Sub
End Class
„**********************************************************************
'TELA DE VENDAS
'*****************************************************************‟
VENDA.VB
'
Imports MySql.Data.MySqlClient
Public Class Venda
Dim cod_pagamento As Integer
Private Function limpar_dados() 'Função apagar
'Instrução para o botão apagar
70
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
MaskedTextBox1.Clear()
MaskedTextBox2.Clear()
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos no formulário
Button1.Enabled = False
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
CheckBox1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False
TextBox1.Focus() 'função focus, quando o botão apagar e clickado o cursor irá para a textbox1
Return TextBox1.Text()
End Function
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If Button1.Text = "Alterar" Then 'ação para o botão quando for Alterar
Try
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " And TextBox3.Text > "
" And MaskedTextBox1.Text > " " And MaskedTextBox2.Text > " " Then
If MsgBox("Deseja alterar esta venda?", vbYesNo, "confirmação") = vbYes Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText
cod_pagamento=?,
data_venda=?,
=
"UPDATE
hora_venda=?
venda
WHERE
SET
cod_usuario=?,
cod_venda
=
"
&
71
CInt(Trim(TextBox1.Text)) 'O tipo de dados dever ser integer e a função trim romove os espaços iniciais e finais da textbox
.Parameters.Add("cod_usuario", OleDb.OleDbType.Integer)
.Parameters("cod_usuario").Value = cod 'variavel para mudar o usuário
.Parameters.Add("cod_pagamento", OleDb.OleDbType.Integer)
.Parameters("cod_pagamento").Value = cod_pagamento 'Função trim.
Remove espaços iniciais e finais da textbox. Cint aceita apenas valor inteiro.
.Parameters.Add("data_venda", OleDb.OleDbType.Date)
.Parameters("data_venda").Value
=
CDate(MaskedTextBox1.Text)
'Função trim. Remove espaços iniciais e finais da textbox. Cint aceita apenas valor inteiro.
.Parameters.Add("hora_venda", OleDb.OleDbType.DBTimeStamp)
.Parameters("hora_venda").Value
=
CStr(MaskedTextBox2.Text)
'Função trim. Remove espaços iniciais e finais da textbox.
.ExecuteNonQuery()
End With
con.Close() 'Fecha a conexão com o banco de dados
limpar_dados() 'função limpar. Apaga os dados pesquisado após alterar
os dados e não ocorrer nenhum erro.
MsgBox("Item alterado com sucesso!", vbInformation)
Else
MsgBox("Alteração cancelada!", vbExclamation)
TextBox1.Focus() 'função focus, usado para mover o cursor para o campo requerido.
End If
Else
MsgBox("Campo invalido.", vbCritical)
TextBox1.Focus() 'função focus, usado para mover o cursor para o campo
requerido.
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'função focus, usado para mover o cursor para o campo requerido.
72
End Try
ElseIf Button1.Text = "Excluir" Then 'quando o botão estiver com o nome excluir
exeuta a instrução abaixo
Try 'Tratando erro
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " Then
If MsgBox("Deseja excluir esta venda?", vbYesNo, "confirma") = vbYes
Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "Delete FROM venda where cod_venda = " &
CInt(Trim(TextBox1.Text)) 'O tipo de dados dever ser integer e a função trim romove os espaços iniciais e finais da textbox
.Parameters.Add("venda", OleDb.OleDbType.VarChar)
.Parameters("venda").Value = CInt(TextBox1.Text) 'Função trim.
Romove espaços iniciais e finsais da textbox
.ExecuteNonQuery()
End With
con.Close() 'Fecha a conexão com o banco de dados
MsgBox("Registro excluído com êxito!", vbInformation)
limpar_dados() 'função para limpar os dados após a exclusão de um item.
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox1.Focus() 'função focus, quando a exclusão é cancelada o cursor
volta para a textbox1
End If
Else
MsgBox("Informação para exclusão inválida!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum dado incorreto para pesquisa o cursor volta para a textbox1
End If
Catch ex As Exception
73
MsgBox(ex.Message)
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos no
formulário
Button2.Enabled = False
TextBox1.Focus() 'função focus, quando a mensagem de erro é exibida na tela
o cursor volta para a textbox1
End Try
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Try 'Tratando erro
Dim data As Date
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If Val(TextBox1.Text) > 0 Then 'Condição para a pesquisa no banco de dados
cmd.CommandText = "select A.*, B.cod_usuario, B.nome_usuario, C.* from
venda A inner join usuario B on (A.cod_usuario=B.cod_usuario) inner join forma_pagamento
C
on
(A.cod_pagamento
=
C.cod_pagamento)
where
cod_venda
=
"
&
CInt(Trim(TextBox1.Text)) 'Só pode haver valores inteiros(número). Função trim romove
espaços iniciais e finais da textbox
Else
MsgBox("Dados inválidos para pesquisa!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum campo de pesquisa inválido
o cursor é movido para a testbox1
End If
reader = cmd.ExecuteReader()
reader.Read()
TextBox1.Text = reader("cod_venda")
cod = reader("cod_usuario")
TextBox2.Text = reader("nome_usuario")
cod_pagamento = reader("cod_pagamento")
74
TextBox3.Text = reader("tipo_pagamento")
data = reader("data_venda")
MaskedTextBox1.Text = data
MaskedTextBox2.Text = reader("hora_venda")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
If Button1.Text = "Alterar" Then
CheckBox1.Enabled = True
CheckBox2.Enabled = True
CheckBox3.Enabled = True
End If
TextBox1.Enabled = False 'Função abilitar, abilita determinados objetos no formulário
Button1.Enabled = True
TextBox2.Focus() 'quando a select é executado com sucesso o cursor irá para a
textbox2 por que a textbox1 fica desabilitada
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'função focus, move o cursor quando tem algum erro para a
textbox1
End Try
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
limpar_dados() 'função limpar textbox
End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
Me.Close() 'fecha o fomuário
principal.Show() 'executa o formulário principal
End Sub
Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
75
MaskedTextBox1.Enabled = True
Else
MaskedTextBox1.Enabled = False
End If
End Sub
Private
Sub
TextBox1_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button2_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
TextBox2.Focus() 'após pesquisar o cursor é movido para a textbox 2
End If
End Sub
Private
Sub
TextBox2_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox3.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private
Sub
TextBox3_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
Button1.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox2_TextChanged(sender
As System.Object, e As Sys-
tem.EventArgs) Handles TextBox2.TextChanged
Try
If Val(TextBox1.Text) > 0 And TextBox3.Text > " " And MaskedTextBox1.Text > " " Then
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
76
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "select cod_usuario, nome_usuario from usuario where
nome_usuario like '%" & TextBox2.Text & "%'"
reader = cmd.ExecuteReader()
reader.Read()
TextBox2.Text = reader("nome_usuario")
cod = reader("cod_usuario")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
End If
Catch ex As Exception
End Try
End Sub
Private Sub CheckBox3_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox3.CheckedChanged
If CheckBox3.Checked = True Then
TextBox2.Enabled = True
Else
TextBox2.Enabled = False
End If
End Sub
Private Sub CheckBox2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
TextBox3.Enabled = True
Else
TextBox3.Enabled = False
End If
End Sub
Private Sub TextBox3_TextChanged(sender
tem.EventArgs) Handles TextBox3.TextChanged
If CheckBox3.Checked = True Then
Try
As System.Object, e As Sys-
77
If TextBox2.Text > " " And TextBox1.Text > " " Then
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "select cod_pagamento from usuario where tipo_pagamento like '%" & TextBox3.Text & "%'"
reader = cmd.ExecuteReader()
reader.Read()
cod_pagamento = reader("cod_pagamento")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
End If
Catch ex As Exception
End Try
End If
End Sub
Private
Sub
Venda_KeyDown(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button4.PerformClick()
End If
End Sub
Private Sub Venda_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Label1.Text = Date.Today
End Sub
End Class
„**********************************************************************
'SUPORTE TÉCNICO - CONTROLE DE ESTOQUE
'**********************************************************************
‟
SUPORTE_TECNICO.VB
'
78
Imports System.Net.Mail
Public Class Suporte_tecnico
Dim smtpServer As New SmtpClient()
Dim mail As New MailMessage
Private Sub btn_enviar_Click(sender As System.Object, e As System.EventArgs)
Handles btn_enviar.Click
' Try
If txt_assunto.Text > " " And txt_mensagem.Text > " " And txt_nome.Text > " "
Then
smtpServer.Credentials
=
New
Net.NetworkCredential("[email protected]", "etec@etec")
ProgressBar1.Value = ProgressBar1.Value + 1
smtpServer.Port = 25
ProgressBar1.Value = ProgressBar1.Value + 1
smtpServer.Host = "smtp.live.com"
ProgressBar1.Value = ProgressBar1.Value + 1
smtpServer.EnableSsl = True
mail.From = New MailAddress("[email protected]")
mail.To.Add("[email protected]")
mail.Subject = txt_assunto.Text
mail.Body = txt_nome.Text & Chr(13) & txt_email.Text & Chr(13) &
txt_mensagem.Text
smtpServer.Send(mail)
MsgBox("Mensagem enviada com sucesso!", MsgBoxStyle.OkOnly, "Solicitação de suporte")
txt_assunto.Clear()
txt_email.Clear()
txt_mensagem.Clear()
txt_nome.Clear()
Else
MsgBox("Verifique os campos e tente novamente.", vbExclamation)
End If
' Catch ex As Exception
'
MsgBox(ex.Message)
79
' End Try
End Sub
Private Sub btn_fechar_Click(sender As System.Object, e As System.EventArgs)
Handles btn_fechar.Click
Me.Close()
principal.Show()
End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
End Sub
End Class
„**********************************************************************
'RELATÓRIO DE VENDAS
'**********************************************************************
‟
RELATORIO_VENDAS.VB
'
Public Class Relatorio_Venda
Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles SairToolStripMenuItem.Click
Me.Close()
principal.Show()
End Sub
End Class
„**********************************************************************
'RELATÓRIO DE PRODUTOS
'**********************************************************************
‟
RELATORIO_PRODUTO.VB
'
Public Class Relatorio_Produto
Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles SairToolStripMenuItem.Click
80
Me.Close()
principal.Show()
End Sub
End Class
„**********************************************************************
'PRODUTO SEM CODIGO DE BARRAS
'**********************************************************************
‟
PRODUTO_SEM_CODBARRAS.VB
'
Module produto_sem_codBarras
Public dimi As Integer
Public Sub cod_barras()
Try
Dim cod_b As String
conexao_mysql()
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open()
cmd.CommandText = "select cod_barras from produtos where LEN(cod_barras)
<> 14 and LEN(cod_barras) <> 13"
reader = cmd.ExecuteReader()
While reader.Read()
cod_b = reader("cod_barras")
dimi = cod_b + 1
End While
con.Close()
Catch ex As Exception
MsgBox(ex.Message & "Contate seu administrador")
End Try
End Sub
End Module
„**********************************************************************
'TELA PRINCIPAL
81
'**********************************************************************
‟
PRINCIPAL.VB
'
Public Class principal
Private Sub SairToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles SairToolStripMenuItem1.Click
Application.Exit()
End Sub
Private Sub LogoffToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LogoffToolStripMenuItem.Click
Me.Close()
login.Show()
login.TextBox1.Focus()
End Sub
Private Sub btnconsult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnconsult.Click
CadastroProduto.Show()
End Sub
Private Sub CategoriasToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles CategoriasToolStripMenuItem.Click
NovaCategoria.Show()
End Sub
Private Sub ProdutoToolStripMenuItem4_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ProdutoToolStripMenuItem4.Click
CadastroProduto.Show()
End Sub
Private Sub UsuárioToolStripMenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles UsuárioToolStripMenuItem2.Click
CadastroUsuario.Button1.Enabled = False
CadastroUsuario.Label6.Enabled = False
CadastroUsuario.TextBox3.Enabled = False
CadastroUsuario.Show()
End Sub
82
Private Sub ProdutoToolStripMenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ProdutoToolStripMenuItem2.Click
Consulta_categoria.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ProdutoToolStripMenuItem1.PerformClick()
End Sub
Private Sub CategoriaToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles CategoriaToolStripMenuItem1.Click
AlterarCategoria.Text = "EXCLUIR CATEGORIA"
AlterarCategoria.Button2.Text = "Excluir"
AlterarCategoria.Show()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
sair()
End Sub
Private Sub LinhaToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LinhaToolStripMenuItem1.Click
AlterarLinha.Text = "EXCLUIR LINHA"
AlterarLinha.Button2.Text = "Excluir"
AlterarLinha.Show()
End Sub
Private Sub MarcaToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MarcaToolStripMenuItem1.Click
AlterarMarca.Text = "Excluir Marca"
AlterarMarca.Button2.Text = "Excluir"
AlterarMarca.Show()
End Sub
Private Sub UsuárioToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles UsuárioToolStripMenuItem1.Click
CadastroUsuario.Text = "EXCLUSÃO DE USUÁRIO"
CadastroUsuario.Button5.Text = "Excluir"
83
CadastroUsuario.Button5.Enabled = False
CadastroUsuario.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Consulta.Show()
End Sub
Private Sub LinhaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles LinhaToolStripMenuItem.Click
AlterarLinha.Show()
End Sub
Private Sub MarcaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MarcaToolStripMenuItem.Click
AlterarMarca.Show()
End Sub
Private Sub ProdutoToolStripMenuItem_Click_1(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ProdutoToolStripMenuItem.Click
AlterarProduto.Show()
End Sub
Private Sub ProdutoToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ProdutoToolStripMenuItem1.Click
AlterarProduto.Text = "EXCLUSÃO DE PRODUTO"
AlterarProduto.Button5.Text = "Excluir"
AlterarProduto.Show()
End Sub
Private Sub ProdutoToolStripMenuItem3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ProdutoToolStripMenuItem3.Click
Consulta.Show()
End Sub
Private Sub UsuárioToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles UsuárioToolStripMenuItem.Click
CadastroUsuario.Text = "ALTERAÇÃO DE USUÁRIO"
CadastroUsuario.Button5.Text = "Alterar"
CadastroUsuario.Button5.Enabled = False
84
CadastroUsuario.Show()
End Sub
Private Sub LinhaToolStripMenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LinhaToolStripMenuItem2.Click
Consulta_linha.Show()
End Sub
Private Sub MarcaToolStripMenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MarcaToolStripMenuItem2.Click
Consulta_Marca.Show()
End Sub
Private Sub EstoqueToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles EstoqueToolStripMenuItem.Click
Relatorio_Produto.Show()
End Sub
Private Sub VendaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VendaToolStripMenuItem.Click
Relatorio_Venda.Show()
End Sub
Private Sub NovaMarcaToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles NovaMarcaToolStripMenuItem.Click
NovaCategoria.Text = "CADASTRO DA MARCA"
NovaCategoria.Label1.Text = "Nome da Marca:"
NovaCategoria.Show()
End Sub
Private Sub VendaToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles VendaToolStripMenuItem1.Click
Venda.Show() 'executa o fumulário venda
End Sub
Private Sub VendaToolStripMenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles VendaToolStripMenuItem2.Click
Venda.Button1.Text = "Excluir"
Venda.Show()
End Sub
85
Private Sub NovaLinhaToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles NovaLinhaToolStripMenuItem.Click
NovaCategoria.Text = "CADASTRO DA LINHA"
NovaCategoria.Label1.Text = "Nome da Linha:"
NovaCategoria.Show()
End Sub
Private Sub UsuárioToolStripMenuItem3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles UsuárioToolStripMenuItem3.Click
Consulta_Usuario.Show()
End Sub
Private Sub FunçõesDeUsuarioToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FunçõesDeUsuarioToolStripMenuItem.Click
Acessos.Text = "Configuções do Sistema"
Acessos.Show()
End Sub
'fechar a aplicação ao clicar no botão fechar (X)
Private Sub principal_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
End Sub
Private Sub principal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If dados(0, 0) = 1 Then 'condição para habilitar alteração de categoria
CategoriaToolStripMenuItem.Enabled = True
Else
CategoriaToolStripMenuItem.Enabled = False
End If
If dados(0, 1) = 1 Then 'condição para habilitar a alteração de linha
LinhaToolStripMenuItem.Enabled = True
Else
LinhaToolStripMenuItem.Enabled = False
End If
If dados(0, 2) = 1 Then 'condição para habilitar a alteração de marca
MarcaToolStripMenuItem.Enabled = True
86
Else
MarcaToolStripMenuItem.Enabled = False
End If
If dados(0, 3) = 1 Then 'condição para habilitar a alteração de produto
ProdutoToolStripMenuItem.Enabled = True
Else
ProdutoToolStripMenuItem.Enabled = False
End If
If dados(0, 4) = 1 Then 'condição para habilitar a alteração de venda
VendaToolStripMenuItem1.Enabled = True
Else
VendaToolStripMenuItem1.Enabled = False
End If
If dados(0, 5) = 1 Then 'condição para habilitar a alteração de usuário
UsuárioToolStripMenuItem.Enabled = True
Else
UsuárioToolStripMenuItem.Enabled = False
End If
'exclusão
If dados(0, 6) = 1 Then 'condição para habilitar a exclusão de categoria
CategoriaToolStripMenuItem1.Enabled = True
Else
CategoriaToolStripMenuItem1.Enabled = False
End If
If dados(0, 7) = 1 Then 'condição para habilitar a exclusão de linha
LinhaToolStripMenuItem1.Enabled = True
Else
LinhaToolStripMenuItem1.Enabled = False
End If
If dados(0, 8) = 1 Then 'condição para habilitar a exclusão de marca
MarcaToolStripMenuItem1.Enabled = True
Else
MarcaToolStripMenuItem1.Enabled = False
End If
87
If dados(0, 9) = 1 Then 'condição para habilitar a exclusão de produto
ProdutoToolStripMenuItem1.Enabled = True
Button2.Enabled = True
Else
ProdutoToolStripMenuItem1.Enabled = False
Button2.Enabled = False
End If
If dados(0, 10) = 1 Then 'condição para habilitar a exclusão de Itens venda
ItensVendaToolStripMenuItem1.Enabled = True
Else
ItensVendaToolStripMenuItem1.Enabled = False
End If
If dados(0, 11) = 1 Then 'condição para habilitar a exclusão de venda
VendaToolStripMenuItem2.Enabled = True
Else
VendaToolStripMenuItem2.Enabled = False
End If
If dados(0, 12) = 1 Then 'condição para habilitar a exclusão de usuario
UsuárioToolStripMenuItem1.Enabled = True
Else
UsuárioToolStripMenuItem1.Enabled = False
End If
'cadastro
If dados(0, 13) = 1 Then 'condição para habilitar o cadastro de nova categoria
CategoriasToolStripMenuItem.Enabled = True
Else
CategoriasToolStripMenuItem.Enabled = False
End If
If dados(0, 14) = 1 Then 'condição para habilitar o cadastro de nova categoria
NovaLinhaToolStripMenuItem.Enabled = True
Else
NovaLinhaToolStripMenuItem.Enabled = False
End If
If dados(0, 15) = 1 Then 'condição para habilitar o cadastro de nova marca
88
NovaMarcaToolStripMenuItem.Enabled = True
Else
NovaMarcaToolStripMenuItem.Enabled = False
End If
If dados(0, 16) = 1 Then 'condição para habilitar o cadastro de produto
ProdutoToolStripMenuItem4.Enabled = True
btnconsult.Enabled = True
Else
ProdutoToolStripMenuItem4.Enabled = False
btnconsult.Enabled = False
End If
If dados(0, 17) = 1 Then 'condição para habilitar o cadastro de usuário
UsuárioToolStripMenuItem2.Enabled = True
Else
UsuárioToolStripMenuItem2.Enabled = False
End If
'habilitar configuração de sistema
If dados(0, 0) = 1 And dados(0, 1) = 1 And dados(0, 2) = 1 And dados(0, 3) = 1
And dados(0, 4) = 1 And dados(0, 5) = 1 And dados(0, 6) = 1 And dados(0, 7) = 1 And dados(0, 8) = 1 And dados(0, 9) = 1 And dados(0, 10) = 1 And dados(0, 11) = 1 And dados(0,
12) = 1 And dados(0, 13) = 1 And dados(0, 14) = 1 And dados(0, 15) = 1 And dados(0, 16) =
1 And dados(0, 17) = 1 And dados(0, 18) = 1 Then
FunçõesDeUsuarioToolStripMenuItem.Enabled = True
Else
FunçõesDeUsuarioToolStripMenuItem.Enabled = False
End If
'habilitar consulta de usuário
If dados(0, 5) = 1 Or dados(0, 12) = 1 And dados(0, 17) = 1 Then
UsuárioToolStripMenuItem3.Enabled = True
Else
UsuárioToolStripMenuItem3.Enabled = False
End If
'habilitar a função atualizar
If dados(0, 18) = 1 Then
89
AtualizarToolStripMenuItem.Enabled = True
Else
AtualizarToolStripMenuItem.Enabled = False
End If
'habilitar a função relatório
If dados(0, 19) = 1 Then
Button3.Enabled = True
EstoqueToolStripMenuItem.Enabled = True
VendaToolStripMenuItem.Enabled = True
Else
Button3.Enabled = False
EstoqueToolStripMenuItem.Enabled = False
VendaToolStripMenuItem.Enabled = False
End If
Label4.Text = Date.Today
End Sub
Private Sub CategoriaToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles CategoriaToolStripMenuItem.Click
AlterarCategoria.Show()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label3.Text = TimeString
End Sub
Private Sub VendasToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles VendasToolStripMenuItem.Click
Consulta_venda.Show()
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
confere_qtde() 'método que confere a contida no banco de dados
End Sub
Private Sub ItensVendaToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ItensVendaToolStripMenuItem1.Click
90
Itens_Venda.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Relatorio_Produto.Show()
End Sub
Private Sub AtualizarToolStripMenuItem_Click_1(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AtualizarToolStripMenuItem.Click
AtualizarProduto.Show()
End Sub
Private Sub ContatarOSuporteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContatarOSuporteToolStripMenuItem.Click
Suporte_tecnico.ShowDialog()
End Sub
Private Sub AjudaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles AjudaToolStripMenuItem.Click
System.Diagnostics.Process.Start("C:\Users\Adeildo\Desktop\Perfumaria
1.0(Beta)
sql_server\Perfumaria
-
1.0(Beta)\Perfumaria
-
1.0(Beta)\Resources\ajuda_estoque.htm")
End Sub
End Class
„**********************************************************************
'CONSULTA GERAL
'**********************************************************************
‟
CONSULTA.VB
'
Public Class Consulta
Dim dacad, data_froma As Date
Dim tabcategoria, tablinha, tabmarca, prod, codigop, descricao, VLR_UNITARIO,
BARRAS As String
Dim qtde As Integer
Private Sub consulta_grid() 'método para para preencher o datagrid
91
reader = cmd.ExecuteReader()
While (reader.Read)
codigop = reader("cod_produto")
BARRAS = reader("cod_barras")
prod = reader("nome_produto")
descricao = reader("descricao_produto")
qtde = reader("qtde_produto")
VLR_UNITARIO = Format(reader("vlr_unitario"), "Currency")
tabcategoria = reader("nome_categoria")
tabmarca = reader("nome_marca")
tablinha = reader("nome_linha")
dacad = reader("data_cads_prod")
DataGridView1.Rows.Add(New String() {codigop, BARRAS, prod, descricao,
qtde, VLR_UNITARIO, tabcategoria, tabmarca, tablinha, dacad})
End While
con.Close()
End Sub
Private Sub limpar_campos() 'método para limpar os campos.
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox9.Clear()
TextBox10.Clear()
End Sub 'fim do método limpar
Private Sub desabilitar_checbox() 'método apra desabailitar a checagem da checkbox
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
End Sub 'fim do método check
92
Private Sub instrucao_checbox() 'método para checbox. será executa as instrções abaixo quando o checar for verdadeiro
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquida feita pela data de cadastro do produto
If CheckBox1.Checked = True Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha) inner
join categoria D on(A.cod_categoria=D.cod_categoria) order by nome_produto"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
limpar_campos() 'método para limpar as textbox. No momento em que é habilitado o objeto checkbox3 os campos são limpos.
ElseIf CheckBox2.Checked = True Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha) inner
join categoria D on(A.cod_categoria=D.cod_categoria) order by cod_produto desc"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
limpar_campos() 'método para limpar as textbox. No momento em que é habilitado o objeto checkbox3 os campos são limpos.
ElseIf CheckBox3.Checked = True Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha) inner
join categoria D on(A.cod_categoria=D.cod_categoria) order by data_cads_prod desc"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
limpar_campos() 'método para limpar as textbox. No momento em que é habilitado o objeto checkbox3 os campos são limpos.
Else
grid_default() 'método defaul para datagrid
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
93
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
End If
End Sub 'fim do método para as checbox - ordenação.
Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox1.Focus()
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
94
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox3.Focus()
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox2.Focus()
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox9.Focus()
End If
End Sub
Private Sub TextBox9_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox9.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox7.Focus()
End If
End Sub
Private Sub TextBox7_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox7.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox8.Focus()
End If
95
End Sub
Private Sub TextBox8_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox8.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox6.Focus()
End If
End Sub
Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox4.Focus()
End If
End Sub
Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If KeyAscii = 0 Then
96
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox10.Focus()
End If
If e.KeyChar = "/" Or e.KeyChar = "-" Then
e.Handled = True
SendKeys.Send("")
End If
If Len(TextBox4.Text) = 2 Then
TextBox4.Text = "-" + TextBox4.Text
Else
TextBox1.Clear()
End If
If Len(TextBox4.Text) = 5 Then
TextBox4.Text = "-" + TextBox4.Text
End If
End Sub
Private Sub Consulta_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub Consulta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
97
'campos do datagrid
.Columns.Add("1", "Código")
.Columns.Add("2", "Cod.Barras")
.Columns.Add("3", "Produto")
.Columns.Add("4", "Descrição")
.Columns.Add("5", "Quantidade")
.Columns.Add("6", "Valor Unit.")
.Columns.Add("7", "Categoria")
.Columns.Add("8", "Marca")
.Columns.Add("9", "Linha")
.Columns.Add("10", "Data Cadastro")
'cor de fundo
.BackgroundColor = Color.White
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font = New Font("Bookman Old Style", 14,
FontStyle.Bold)
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
.AlternatingRowsDefaultCellStyle.Font = New Font("Bookman Old Style",
12, FontStyle.Regular)
.AlternatingRowsDefaultCellStyle.Alignment
=
DataGridViewContentA-
lignment.MiddleLeft
'colunha
.DefaultCellStyle.Font
=
New
Font("Bookman
FontStyle.Regular)
.DefaultCellStyle.ForeColor = Color.Black
Old
Style",
12,
98
.DefaultCellStyle.BackColor = Color.DarkCyan
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
End With
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha) inner
join categoria D on(A.cod_categoria=D.cod_categoria)"
consulta_grid() 'método para enviar as informações do banco de dados para o
datagrid
Catch erro As Exception
MsgBox(erro.Message & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox2.TextChanged
Try
If TextBox2.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquida feita pelo nome do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where nome_produto like '%" &
Trim(TextBox2.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'método para enviar as informações do banco de dados para o
datagrid
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
99
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub TextBox9_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox9.TextChanged
Try 'Tratando erro
If TextBox9.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
' Pesquisa feita pela marca do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from marcas A inner join produtos B on(B.cod_marca=A.cod_marca)inner join linha C on(B.cod_linha=C.cod_linha) inner
join categoria D on(B.cod_categoria=D.cod_categoria) where nome_marca like '%" &
Trim(TextBox9.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adicionar dados pesquisa ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub TextBox8_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox8.TextChanged
Try 'Tratando erro
If TextBox8.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquida feita pela linha do produto
100
cmd.CommandText = "select A.*,B.*,C.*, D.* from linha A inner join produtos B on(B.cod_linha=A.cod_linha) inner join marcas C on(B.cod_marca=C.cod_marca) inner join categoria D on(B.cod_categoria=D.cod_categoria) where nome_linha like '%" &
Trim(TextBox8.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pequisa no grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub TextBox7_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox7.TextChanged
Try 'Tratando erro
If TextBox7.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquis feita categoria do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from categoria A inner join
produtos
B
on(B.cod_categoria=A.cod_categoria)
inner
join
marcas
C
on(B.cod_marca=C.cod_marca) inner join linha D on(B.cod_linha=D.cod_linha) where
nome_categoria like '%" & Trim(TextBox7.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona os dados pesquisa ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
101
Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox3.TextChanged
Try 'Tratando erro
If TextBox3.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquida feita pela descrição do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where descricao_produto like
'%" & Trim(TextBox3.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Try 'Tratando erro
If TextBox1.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquisa feita pelo código de barras
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where cod_barras like '%" &
Trim(TextBox1.Text) & "%'"
102
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox4.TextChanged
Try
If TextBox4.Text <> " " Then
'TextBox4.Text = Format(TextBox4.Text, " - -
")
'inverte_data = Format(CType(TextBox4.Text, Date), "yyyy-MM-dd")
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquida feita pela data de cadastro do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where data_cads_prod like '%"
& Trim(TextBox4.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
'MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub TextBox10_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox10.TextChanged
Try 'Tratando erro
103
If TextBox10.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquisa feita pelo código do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where cod_produto like '%" &
Trim(TextBox10.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox6.TextChanged
Try 'Tratando erro
If TextBox6.Text <> " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquisa feita pela quantidade produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where qtde_produto like '%" &
Trim(TextBox6.Text) & "%'"
DataGridView1.Rows.Clear() 'limpa os dados e carrega o grid novamente
consulta_grid() 'Método consulta, adiciona dados da pesquia ao grid.
desabilitar_checbox() 'método para desabilitar as checkbox.
104
End If
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close() 'fecha o formuário
principal.Show() 'executa o formulário principal
End Sub
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox3.CheckedChanged
Try
'ordena por data
instrucao_checbox() 'método para ordenar em ordem alfabética, descrecente e
por data
Catch ex As Exception
MsgBox(ex.Message) 'mesagem de trativa de erro
End Try 'fim da trativa de erros.
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
Try
'ordena por ordem descrecente
instrucao_checbox() 'método para ordenar em ordem alfabética, descrecente e
por data
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
Try
'ordena alfabeticamente
105
instrucao_checbox() 'método para ordenar em ordem alfabética, descrecente e
por data
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
CheckBox1.Checked = False
CheckBox3.Checked = False
End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
CheckBox2.Checked = False
CheckBox3.Checked = False
End Sub
Private Sub CheckBox3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox3.Click
CheckBox1.Checked = False
CheckBox2.Checked = False
End Sub
End Class
„**********************************************************************
'EXCLUSÃO DE ÍTENS DE VENDAS
'**********************************************************************
‟
ITENS_VENDAS.VB
'
Public Class Itens_Venda
Dim total As Double
Dim quantidade, qtde2, venda As Integer
Private Function limpar_dados() 'Função apagar
'Instrução para o botão apagar
TextBox1.Clear()
106
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos no formulário
TextBox3.Enabled = True
Button1.Enabled = False
TextBox1.Focus() 'função focus, quando o botão apagar e clickado o cursor irá para a textbox1
Return TextBox1.Text()
End Function
Private Function consulta_banco() 'função executa para a atulização da quantidade e
valor na textbox 6 e 7 deste fórmulário.
conexao_mysql() 'procedure para a de conexção com o banco de dados e variaveis
cmd e con
cmd.Connection = con
con.Open()
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "select qtde_produto, vlr_unitario from produtos where
cod_produto = " & cod
reader = cmd.ExecuteReader()
reader.Read()
TextBox6.Text = reader("qtde_produto")
TextBox7.Text = reader("vlr_unitario")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
Return 1
End Function
Private Sub excluir()
TextBox1.Enabled = False
107
TextBox2.Enabled = False
TextBox3.Enabled = False
TextBox5.Enabled = False
Button1.Enabled = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try 'Tratando erro
If CInt(TextBox1.Text) > 0 And CInt(TextBox2.Text) > 0 Then
If MsgBox("Deseja excluir esta categoria?", vbYesNo, "confirma") = vbYes
Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "Delete FROM itens_venda where cod_item = " &
CInt(Trim(TextBox1.Text)) 'O tipo de dados dever ser integer e a função trim romove os espaços iniciais e finais da textbox
.Parameters.Add("itens_venda", OleDb.OleDbType.VarChar)
.Parameters("itens_venda").Value = CInt(TextBox1.Text) 'Função trim.
Romove espaços iniciais e finsais da textbox
.ExecuteNonQuery()
End With
con.Close() 'Fecha a conexão com o banco de dados
MsgBox("Registro excluído com êxito!", vbInformation)
limpar_dados() 'função para limpar os dados após a exclusão de um item.
TextBox6.Clear() 'limpa a textbox
TextBox7.Clear() 'limpa as textbox
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox1.Focus() 'função focus, quando a exclusão é cancelada o cursor
volta para a textbox1
End If
108
Else
MsgBox("Informação para exclusão inválida!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum dado incorreto para pesquisa o cursor volta para a textbox1
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos no formulário
Button2.Enabled = False
TextBox1.Focus() 'função focus, quando a mensagem de erro é exibida na tela o
cursor volta para a textbox1
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try 'Tratando erro
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If Val(TextBox1.Text) > 0 Then 'Condição para a pesquisa no banco de dados
cmd.CommandText
B.nome_produto
from
=
itens_venda
"select
A
A.*,
inner
B.qtde_produto,
join
B.vlr_unitario,
produtos
B
on
(A.cod_produto=B.cod_produto) where cod_item = " & CInt(Trim(TextBox1.Text)) 'Só pode
haver valores inteiros(número). Função trim romove espaços iniciais e finais da textbox
ElseIf Val(TextBox3.Text) > 0 Then
cmd.CommandText
B.nome_produto
from
=
itens_venda
"select
A
A.*,
inner
B.qtde_produto,
join
B.vlr_unitario,
produtos
B
on
(A.cod_produto=B.cod_produto) where qtde_item = " & CInt(Trim(TextBox3.Text))
Else
MsgBox("Dados inválidos para pesquisa!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum campo de pesquisa inválido
o cursor é movido para a testbox1
109
End If
reader = cmd.ExecuteReader()
reader.Read()
TextBox1.Text = reader("cod_item")
TextBox2.Text = reader("cod_venda")
TextBox5.Text = reader("cod_produto")
cod = reader("cod_produto")
TextBox3.Text = reader("qtde_item")
TextBox4.Text = reader("vlr_total_item")
TextBox6.Text = reader("qtde_produto")
quantidade = reader("qtde_item")
TextBox7.Text = reader("vlr_unitario")
TextBox8.Text = reader("nome_produto")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
excluir() 'objeto para desabilitar os campos e habilitar o botão exluir
TextBox2.Focus() 'quando a select é executado com sucesso o cursor irá para a
textbox2 por que a textbox1 fica desabilitada
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'função focus, move o cursor quando tem algum erro para a
textbox1
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
limpar_dados() 'Função limpar. apaga todos os dados pequisado nas textboxs
TextBox8.Clear()
TextBox6.Clear()
TextBox7.Clear()
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
110
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button2_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
TextBox2.Focus() 'após pesquisar o cursor é movido para a textbox 2
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox5.Focus() 'função focus, move o cursor para o campo especificado.
111
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button2_Click(Me, EventArgs.Empty)
TextBox4.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
112
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox3.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
Button1.Focus()
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Close() 'fecha o formulário
principal.Show() 'executa o formulário príncipal
End Sub
Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox4.TextChanged
TextBox4.Text = Format(TextBox4.Text, "Currency")
End Sub
113
Private Sub TextBox7_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox7.TextChanged
TextBox7.Text = Format(TextBox7.Text, "Currency")
End Sub
Private Sub Itens_Venda_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button4.PerformClick()
End If
End Sub
End Class
„**********************************************************************
'CONSULTA DE VENDAS
'**********************************************************************
‟
CONSULTA_VENDAS.VB
'
Public Class Consulta_venda
Dim codigo_item, qtde_item, COD_VENDA, QTDE_VENDA As Integer
Dim DATA_VENDA, HORA_VENDA As DateTime
Dim NOME_USUARIO, PAGAMENTO, VLR_TOTAL, VLR_T_VENDA, CODIGO_PRODUTO, BARRAS, NOME_PRODUTO As String
Private Sub consulta_grid() 'método para consultar os dados no banco de dados, não
há condição para esta consulta.
reader = cmd.ExecuteReader()
While (reader.Read)
'TABELA ITENS VENDA
codigo_item = reader("cod_item")
qtde_item = reader("qtde_item")
VLR_TOTAL = Format(reader("vlr_total_item"), "Currency")
CODIGO_PRODUTO = reader("cod_produto")
BARRAS = reader("cod_barras")
NOME_PRODUTO = reader("nome_produto")
'TABELA VENDA
114
COD_VENDA = reader("cod_venda")
NOME_USUARIO = reader("nome_usuario")
PAGAMENTO = reader("tipo_pagamento")
DATA_VENDA = reader("data_venda")
HORA_VENDA = reader("hora_venda")
QTDE_VENDA = reader("qtde_venda")
VLR_T_VENDA = Format(reader("vlr_total_venda"), "Currency")
DataGridView1.Rows.Add(New
String()
{codigo_item,
qtde_item,
VLR_TOTAL, NOME_PRODUTO, CODIGO_PRODUTO, BARRAS, COD_VENDA,
NOME_USUARIO, PAGAMENTO, DATA_VENDA, HORA_VENDA, QTDE_VENDA,
VLR_T_VENDA})
End While
con.Close()
End Sub
'método para consulta com condição
Private Sub consulta_com_condicao()
Try
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If TextBox1.Text <> " " Then
cmd.CommandText = "select A.*, B.*, C.nome_usuario, D.tipo_pagamento,
E.nome_produto, E.cod_barras, E.cod_produto from itens_venda A inner join venda B on
(A.cod_venda = B.cod_venda) inner join usuario C on (B.cod_usuario = C.cod_usuario) inner
join forma_pagamento D on (B.cod_pagamento=D.cod_pagamento) inner join produtos E on
(A.cod_produto=E.cod_produto) where cod_item like '%" & Trim(TextBox1.Text) & "%'" &
"or nome_produto like '%" & Trim(TextBox1.Text) & "%'" & "or cod_barras like '%" &
Trim(TextBox1.Text) & "%'" & "or tipo_pagamento like '%" & Trim(TextBox1.Text) & "%'"
& "or nome_usuario like '%" & Trim(TextBox1.Text) & "%'" & "or vlr_total_venda like '%"
& Trim(TextBox1.Text) & "%'" & "or qtde_venda like '%" & Trim(TextBox1.Text) & "%'"
115
& "or hora_venda like '%" & Trim(TextBox1.Text) & "%'" & "or data_venda like '%" &
Trim(TextBox1.Text) & "%'" & "or cod_item like '%" & Trim(TextBox1.Text) & "%'" & "or
qtde_item like '%" & Trim(TextBox1.Text) & "%'" & "or vlr_total_item like '%" &
Trim(TextBox1.Text) & "%'" 'finalizar a select de vendas
Else
MsgBox("Campo vazio!", vbExclamation)
End If
DataGridView1.Rows.Clear()
consulta_grid() 'método para preencher o data grid através da pesquisa.
Catch erro As Exception
MsgBox(erro.Message, vbCritical)
End Try
End Sub
Private Sub ordenacao() 'método para ordenação dos dados no datagrid
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If CheckBox1.Checked = True Then
cmd.CommandText = "select A.*, B.*, C.nome_usuario, D.tipo_pagamento,
E.nome_produto, E.cod_barras, E.cod_produto from itens_venda A inner join venda B on
(A.cod_venda = B.cod_venda) inner join usuario C on (B.cod_usuario = C.cod_usuario) inner
join forma_pagamento D on (B.cod_pagamento=D.cod_pagamento) inner join produtos E on
(A.cod_produto=E.cod_produto) order by nome_produto" 'ordena por ordem alfabética. Pode
ordenada com o que esta sendo pesquisado ou não.
DataGridView1.Rows.Clear()
consulta_grid() 'método para preencher o datagrid
ElseIf CheckBox2.Checked = True Then
cmd.CommandText = "select A.*, B.*, C.nome_usuario, D.tipo_pagamento,
E.nome_produto, E.cod_barras, E.cod_produto from itens_venda A inner join venda B on
(A.cod_venda = B.cod_venda) inner join usuario C on (B.cod_usuario = C.cod_usuario) inner
join forma_pagamento D on (B.cod_pagamento=D.cod_pagamento) inner join produtos E on
(A.cod_produto=E.cod_produto) order by cod_item desc" 'Ordena por ordem descrencente.
Ordena pelo o que já foi pesquisa ou não.
116
DataGridView1.Rows.Clear()
consulta_grid() 'método para preencher o datagrid
ElseIf CheckBox3.Checked = True Then
cmd.CommandText = "select A.*, B.*, C.nome_usuario, D.tipo_pagamento,
E.nome_produto, E.cod_barras, E.cod_produto from itens_venda A inner join venda B on
(A.cod_venda = B.cod_venda) inner join usuario C on (B.cod_usuario = C.cod_usuario) inner
join forma_pagamento D on (B.cod_pagamento=D.cod_pagamento) inner join produtos E on
(A.cod_produto=E.cod_produto) order by data_venda desc" 'ordena por data. Pode ser ordenada por dados digitados ou não.
DataGridView1.Rows.Clear()
consulta_grid() 'método para preencher o datagrid
Else
consulta_com_condicao() 'método para consultar os dados na textbox.
End If
End Sub
Private Sub Consulta_venda_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub Consulta_venda_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
'colunas do datagrid. Campos do datagrid
'tabela itens_venda
.Columns.Add("1", "Cód.Item")
.Columns.Add("2", "Quant.Item")
.Columns.Add("3", "Val.Total")
.Columns.Add("4", "Produto")
.Columns.Add("5", "Cod.Produto")
.Columns.Add("6", "cod.Barras")
'tabela venda
117
.Columns.Add("7", "Cód.Venda")
.Columns.Add("8", "Vendedor")
.Columns.Add("9", "Pagamento")
.Columns.Add("10", "Data")
.Columns.Add("11", "Hora")
.Columns.Add("12", "Quant.Vend.")
.Columns.Add("13", "Total_Venda")
'cor de fundo
.BackgroundColor = Color.White
'tamanho da coluna codigo venda
.Columns(0).Width = 90
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font
=
New
Font("Arial",
14,
FontStyle.Bold)
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
.AlternatingRowsDefaultCellStyle.Font
=
New
Font("Arial",
12,
FontStyle.Regular)
'colunha
.DefaultCellStyle.Font = New Font("Arial", 12, FontStyle.Bold)
.DefaultCellStyle.ForeColor = Color.Black
.DefaultCellStyle.BackColor = Color.DarkCyan
'.DefaultCellStyle.WrapMode = DataGridViewTriState.False 'evita a quebra
de linha
End With
conexao_mysql() 'procedure de conexão e comando (cmd e con)
118
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select A.*, B.*, C.nome_usuario, D.tipo_pagamento,
E.nome_produto, E.cod_barras, E.cod_produto from itens_venda A inner join venda B on
(A.cod_venda = B.cod_venda) inner join usuario C on (B.cod_usuario = C.cod_usuario) inner
join forma_pagamento D on (B.cod_pagamento=D.cod_pagamento) inner join produtos E on
(A.cod_produto=E.cod_produto)"
consulta_grid() 'método para preencher o datagrid. Tudo que há no banco de dados será enviado para este método.
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = ","c Then
e.Handled = True
SendKeys.Send(".") 'converte o ponto para virgula
ElseIf e.KeyChar = "/"c Or e.KeyChar = "-"c Then
e.Handled = True
SendKeys.Send("") 'converte / para If Len(TextBox1.Text) = 2 Then
TextBox1.Text = "-" + TextBox1.Text
End If
If Len(TextBox1.Text) = 5 Then
TextBox1.Text = "-" + TextBox1.Text
End If
End If
119
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
consulta_com_condicao() 'realiza a consulta de acordo com o que há na textbox.
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
Try
ordenacao() 'método para ordenar os dados no datagrid. Ordena alfabeticamente.
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
Try
ordenacao() 'método para ordenar os dados no datagrid. Ordem descrencente.
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox3.CheckedChanged
Try
ordenacao() 'método para ordenar os dados na datagrid. Ordena por data.
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
If CheckBox2.Checked = True Or CheckBox3.Checked = True Then
CheckBox2.Checked = False
CheckBox3.Checked = False
120
CheckBox1.Checked = True
End If
End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
If CheckBox1.Checked = True Or CheckBox3.Checked = True Then
CheckBox1.Checked = False
CheckBox3.Checked = False
CheckBox2.Checked = True
End If
End Sub
Private Sub CheckBox3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox3.Click
If CheckBox1.Checked = True Or CheckBox2.Checked = True Then
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = True
End If
End Sub
End Class
„**********************************************************************
'CONSULTA DE USUÁRIOS
'**********************************************************************
‟
CONSULTA_USUARIO.VB
'
Public Class Consulta_Usuario
Dim codigo_user As Integer
Dim nome_user, cpf_user, rg_user, nome_lg, SENHA As String
Private Sub consulta_usuario_grid() 'método para preencher o datagrid
reader = cmd.ExecuteReader()
While (reader.Read)
codigo_user = reader("cod_usuario")
nome_user = reader("nome_usuario")
121
cpf_user = reader("cpf_usuario")
rg_user = reader("rg_usuario")
nome_lg = reader("nome_login")
SENHA = reader("senha")
If CheckBox3.Checked = False Then
DataGridView1.Rows.Add(New String() {codigo_user, nome_user, cpf_user,
rg_user, nome_lg})
Else
DataGridView1.Rows.Add(New String() {codigo_user, nome_user, cpf_user,
rg_user, nome_lg, SENHA})
End If
End While
con.Close()
End Sub
Private Sub consulta_condicao() 'método para consultar conforme informações fornecidas pelo o usuário.
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If TextBox1.Text <> " " Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cod_usuario > 1 and (cod_usuario like '%" &
Trim(TextBox1.Text) & "%'" & "or nome_usuario like'%" & Trim(TextBox1.Text) & "%'" &
"or cpf_usuario like'%" & Trim(TextBox1.Text) & "%'" & "or rg_usuario like '%" &
Trim(TextBox1.Text) & "%')" 'Esta selec realiza a consulta no banco de dados pelo nome da
categoria ou pelo código da categoria
Else
MsgBox("Campo vazio!", vbExclamation)
End If
DataGridView1.Rows.Clear()
consulta_usuario_grid() 'método para preencher o datagrd através da pesquida realizada na textbox
End Sub
122
Private Sub ordenacao() 'método para ordenar as informações presente no datagrid
Try
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If CheckBox1.Checked = True Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cod_usuario > 1 order by nome_usuario"
DataGridView1.Rows.Clear()
consulta_usuario_grid() 'método para preencher o datagrid
ElseIf CheckBox2.Checked = True Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cod_usuario > 1 order by cod_usuario desc"
DataGridView1.Rows.Clear()
consulta_usuario_grid() 'método para preencher o datagrid
Else
consulta_condicao() 'método apra consultar os dado "se houver" na textbox
End If
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador", vbCritical)
End Try
End Sub
Private Sub Consulta_Usuario_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub Consulta_Usuario_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
.Columns.Add("1", "Codigo")
123
.Columns.Add("2", "Nome do Usuário")
.Columns.Add("3", "CPF Usuário")
.Columns.Add("4", "RG Usuário")
.Columns.Add("5", "Nome do Login")
.Columns.Add("6", "Senha")
'cor de fundo
.BackgroundColor = Color.White
'tamanho da coluna codigo linha
.Columns(0).Width = 90
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font
=
New
Font("Arial",
14,
FontStyle.Bold)
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
.AlternatingRowsDefaultCellStyle.Font
=
New
Font("Arial",
12,
FontStyle.Regular)
.AlternatingRowsDefaultCellStyle.Alignment
=
DataGridViewContentA-
lignment.MiddleLeft
'colunha
.DefaultCellStyle.Font = New Font("Arial", 12, FontStyle.Bold)
.DefaultCellStyle.ForeColor = Color.Black
.DefaultCellStyle.BackColor = Color.DarkCyan
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
'.RowHeadersVisible = False 'retira a coluna da esquerda
End With
conexao_mysql() 'procedure de conexão e comando (cmd e con)
124
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cod_usuario > 1"
consulta_usuario_grid() 'método para preecher o data grid através da select realizada na tabela login e usuário.
If acrescenta_campo = 1 Then 'conidção para definir o campo senha. Se for administrador a checkbox senha fica visivel.
If CheckBox3.Checked = True Then
DataGridView1.Columns("6").Visible = True 'a coluna fica visivel quendo
o usuário administrador clica na checkbox.
Else
DataGridView1.Columns("6").Visible = False 'a coluna fica invisivel
quando usuário administrador clica novamente a checkbox3.
End If
Else
CheckBox3.Visible = False 'condição, se o usário segundo usuário administrdor. A checkbox senha e a colunha senha não ficam visiveis.
DataGridView1.Columns("6").Visible = False
End If
Catch erro As Exception
MsgBox(erro.Message & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Try
consulta_condicao() 'método qued exeuta a consulta na textbox.
125
CheckBox1.Checked = False
CheckBox2.Checked = False
Catch erro As Exception
MsgBox(erro.Message, vbCritical)
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
ordenacao() 'método para ordenar os dados do datagrid. Ordenação alfabética
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
ordenacao() 'método apra ordenar os dados do datagrid. Ordenação descrecente
End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
CheckBox2.Checked = False
End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
CheckBox1.Checked = False
End Sub
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox3.CheckedChanged
If CheckBox3.Checked = True Then
If acrescenta_campo = 1 Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cod_usuario > 1"
DataGridView1.Rows.Clear()
126
consulta_usuario_grid() 'método para preecher o data grid através da select
realizada na tabela login e usuário.
DataGridView1.Columns("6").Visible = True
Else
DataGridView1.Columns("6").Visible = False
End If
Else
DataGridView1.Columns("6").Visible = False
End If
End Sub
End Class
„**********************************************************************
'CONSULTA DE MARCAS
'**********************************************************************
‟
CONSULTA_MARCA.VB
'
Public Class Consulta_Marca
'variaveis que serão preenchidas na consulta para preencher o data grid.
Dim codigo_marca As Integer
Dim nome_marca As String
Private Sub consulta_marca_grid() 'método para preencher o datagrid
reader = cmd.ExecuteReader()
While (reader.Read)
codigo_marca = reader("cod_marca")
nome_marca = reader("nome_marca")
DataGridView1.Rows.Add(New String() {codigo_marca, nome_marca})
End While
con.Close()
End Sub
Private Sub consulta_condicao() 'método para consultar dados conforme dados no
textbox
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
127
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If TextBox1.Text <> " " Then
cmd.CommandText = "select * from marcas where nome_marca like'%" &
TextBox1.Text & "%'" & "or cod_marca = " & Val(TextBox1.Text) 'Esta selec realiza a consulta no banco de dados pelo nome da marca ou pelo código da marca
Else
MsgBox("Campo vazio!", vbExclamation)
End If
DataGridView1.Rows.Clear()
consulta_marca_grid() 'métod para preencher o datagrid através da consulta realizada na textbox.
End Sub
Private Sub ordenacao() 'método para ordenar os dados no datagrid
Try
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If CheckBox1.Checked = True Then
cmd.CommandText = "select * from marcas order by nome_marca" 'Esta selec realiza a consulta no banco de dados pelo nome da marca ou pelo código da marca
DataGridView1.Rows.Clear()
consulta_marca_grid() 'método para preencher o datagrid através da consulta
realizada na textbox.
ElseIf CheckBox2.Checked = True Then
cmd.CommandText = "select * from marcas order by cod_marca desc" 'Esta
selec realiza a consulta no banco de dados pelo nome da marca ou pelo código da marca
DataGridView1.Rows.Clear()
consulta_marca_grid() 'métod para preencher o datagrid através da consulta
realizada na textbox.
Else
consulta_condicao() 'método para consulta conforme dados na textbox
End If
128
Catch pesquisa As Exception
MsgBox(pesquisa.Message & " " & "Contate seu administrador", vbCritical)
End Try
End Sub
Private Sub Consulta_Marca_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub Consulta_Marca_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
'colunas do datagrid
.Columns.Add("1", "Codigo")
.Columns.Add("2", "Marca")
'cor de fundo
.BackgroundColor = Color.White
'tamanho da coluna codigo linha
.Columns(0).Width = 90
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font
=
New
Font("Arial",
14,
FontStyle.Bold)
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
129
.AlternatingRowsDefaultCellStyle.Font
=
New
Font("Arial",
12,
FontStyle.Regular)
.AlternatingRowsDefaultCellStyle.Alignment
=
DataGridViewContentA-
lignment.MiddleLeft
'colunha
.DefaultCellStyle.Font = New Font("Arial", 12, FontStyle.Bold)
.DefaultCellStyle.ForeColor = Color.Black
.DefaultCellStyle.BackColor = Color.DarkCyan
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
End With
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select * from marcas"
consulta_marca_grid() 'método para preencher o data grid atraves da select realizada na tabela marcas
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Try
consulta_condicao() 'consulta os dados digitados na textbox
CheckBox1.Checked = False
CheckBox2.Checked = False
Catch pesquisa As Exception
MsgBox(pesquisa.Message, vbCritical)
130
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
ordenacao() 'método para ordenar os dados no datagrid. Ordenação alfabética.
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
ordenacao() 'método para ordenar os dados no datagrid. Ordenação descrencente
End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
CheckBox2.Checked = False
End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
CheckBox1.Checked = False
End Sub
End Class
„**********************************************************************
'CONSULTA DE MARCAS
'**********************************************************************
‟
CONSULTA_MARCA.VB
'
Public Class Consulta_Marca
'variaveis que serão preenchidas na consulta para preencher o data grid.
Dim codigo_marca As Integer
Dim nome_marca As String
Private Sub consulta_marca_grid() 'método para preencher o datagrid
reader = cmd.ExecuteReader()
While (reader.Read)
codigo_marca = reader("cod_marca")
nome_marca = reader("nome_marca")
131
DataGridView1.Rows.Add(New String() {codigo_marca, nome_marca})
End While
con.Close()
End Sub
Private Sub consulta_condicao() 'método para consultar dados conforme dados no
textbox
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If TextBox1.Text <> " " Then
cmd.CommandText = "select * from marcas where nome_marca like'%" &
TextBox1.Text & "%'" & "or cod_marca = " & Val(TextBox1.Text) 'Esta selec realiza a consulta no banco de dados pelo nome da marca ou pelo código da marca
Else
MsgBox("Campo vazio!", vbExclamation)
End If
DataGridView1.Rows.Clear()
consulta_marca_grid() 'métod para preencher o datagrid através da consulta realizada na textbox.
End Sub
Private Sub ordenacao() 'método para ordenar os dados no datagrid
Try
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If CheckBox1.Checked = True Then
cmd.CommandText = "select * from marcas order by nome_marca" 'Esta selec realiza a consulta no banco de dados pelo nome da marca ou pelo código da marca
DataGridView1.Rows.Clear()
consulta_marca_grid() 'método para preencher o datagrid através da consulta
realizada na textbox.
ElseIf CheckBox2.Checked = True Then
132
cmd.CommandText = "select * from marcas order by cod_marca desc" 'Esta
selec realiza a consulta no banco de dados pelo nome da marca ou pelo código da marca
DataGridView1.Rows.Clear()
consulta_marca_grid() 'métod para preencher o datagrid através da consulta
realizada na textbox.
Else
consulta_condicao() 'método para consulta conforme dados na textbox
End If
Catch pesquisa As Exception
MsgBox(pesquisa.Message & " " & "Contate seu administrador", vbCritical)
End Try
End Sub
Private Sub Consulta_Marca_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub Consulta_Marca_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
'colunas do datagrid
.Columns.Add("1", "Codigo")
.Columns.Add("2", "Marca")
'cor de fundo
.BackgroundColor = Color.White
'tamanho da coluna codigo linha
.Columns(0).Width = 90
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font
FontStyle.Bold)
=
New
Font("Arial",
14,
133
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
.AlternatingRowsDefaultCellStyle.Font
=
New
Font("Arial",
12,
FontStyle.Regular)
.AlternatingRowsDefaultCellStyle.Alignment
=
DataGridViewContentA-
lignment.MiddleLeft
'colunha
.DefaultCellStyle.Font = New Font("Arial", 12, FontStyle.Bold)
.DefaultCellStyle.ForeColor = Color.Black
.DefaultCellStyle.BackColor = Color.DarkCyan
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
End With
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select * from marcas"
consulta_marca_grid() 'método para preencher o data grid atraves da select realizada na tabela marcas
Catch erro As Exception
MsgBox(erro.Message & " " & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
134
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Try
consulta_condicao() 'consulta os dados digitados na textbox
CheckBox1.Checked = False
CheckBox2.Checked = False
Catch pesquisa As Exception
MsgBox(pesquisa.Message, vbCritical)
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
ordenacao() 'método para ordenar os dados no datagrid. Ordenação alfabética.
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
ordenacao() 'método para ordenar os dados no datagrid. Ordenação descrencente
End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
CheckBox2.Checked = False
End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
CheckBox1.Checked = False
End Sub
End Class
„**********************************************************************
'CONSULTA DE LINHA
'**********************************************************************
‟
CONSULTA_LINHA.VB
'
135
Public Class Consulta_linha
'variaveis que serão preenchidas na consulta para preencher o data grid.
Dim codigo_linha As Integer
Dim nome_linha As String
Private Sub consulta_linha_grid() 'método para preencher o datagrid
reader = cmd.ExecuteReader()
While (reader.Read)
codigo_linha = reader("cod_linha")
nome_linha = reader("nome_linha")
DataGridView1.Rows.Add(New String() {codigo_linha, nome_linha})
End While
con.Close()
End Sub 'fim do método
Private Sub consulta_com_condicao() 'método para consultar dados na textbox
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If TextBox1.Text <> " " Then
cmd.CommandText = "select * from linha where nome_linha like'%" & TextBox1.Text & "%'" & "or cod_linha = " & Val(TextBox1.Text) 'Esta selec realiza a consulta
no banco de dados pelo nome da linh ou pelo código da linha
Else
MsgBox("Campo vazio!", vbExclamation)
End If
DataGridView1.Rows.Clear()
consulta_linha_grid() 'método para preenhcer o datagrid através da select com
condição de pesquisa realizada na tabela linha
End Sub
Private Sub ordenacao()
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abre a conexão.
136
If CheckBox1.Checked = True Then
cmd.CommandText = "select * from linha order by nome_linha"
DataGridView1.Rows.Clear()
consulta_linha_grid() 'método para preencher o datagrid
ElseIf CheckBox2.Checked = True Then
cmd.CommandText = "select * from linha order by cod_linha desc"
DataGridView1.Rows.Clear()
consulta_linha_grid() 'método para preencher o datagrid
Else
consulta_com_condicao() 'método consultar no textbox
End If
End Sub
Private Sub Consulta_linha_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub Consulta_linha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
'colunas do datagrid
.Columns.Add("1", "Codigo")
.Columns.Add("2", "Linha")
'cor de fundo
.BackgroundColor = Color.White
'tamanho da coluna codigo linha
.Columns(0).Width = 90
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font
FontStyle.Bold)
=
New
Font("Arial",
14,
137
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
.AlternatingRowsDefaultCellStyle.Font
=
New
Font("Arial",
12,
FontStyle.Regular)
.AlternatingRowsDefaultCellStyle.Alignment
=
DataGridViewContentA-
lignment.MiddleLeft
'colunha
.DefaultCellStyle.Font = New Font("Arial", 12, FontStyle.Regular)
.DefaultCellStyle.ForeColor = Color.Black
.DefaultCellStyle.BackColor = Color.DarkCyan
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
End With
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select * from linha"
consulta_linha_grid() 'método para preencher o datagrid através da select realiza
na tabela linha
Catch erro As Exception
MsgBox(erro.Message & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
138
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
Try
consulta_com_condicao() 'método para a consulta na textbox
CheckBox1.Checked = False
CheckBox2.Checked = False
Catch pesquisa As Exception
MsgBox(pesquisa.Message, vbCritical)
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
ordenacao() 'método para ordenar alfabeticamente.
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
ordenacao() 'método para ordenação descrecente.
End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
CheckBox2.Checked = False
End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
CheckBox1.Checked = False
End Sub
End Class
„**********************************************************************
'CONSULTA DE CATEGORIA
'**********************************************************************
‟
CONSULTA_CATEGORIA.VB
'
139
Imports MySql.Data.MySqlClient
Public Class Consulta_categoria
'variaveis que serão preenchidas na consulta para preencher o data grid.
Dim codigo_categoria As Integer
Dim nome_categoria As String
Private Sub consulta_categoria_grid() 'método para preencher o datagrid.
reader = cmd.ExecuteReader()
While (reader.Read)
codigo_categoria = reader("cod_categoria")
nome_categoria = reader("nome_categoria")
DataGridView1.Rows.Add(New String() {codigo_categoria, nome_categoria})
End While
con.Close()
End Sub
Private Sub preencher_datagrid_padrao() 'método para preencher o datagrid assim
que o fomulário é executado.
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
cmd.CommandText = "select * from categoria"
consulta_categoria_grid() 'método que preenchera o datagrid através da select realizada na tabela categoria
End Sub
Private Sub ordenacao_checkbox() 'ordena por ordem alfabética
Try
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abre a conexão.
If CheckBox1.Checked = True Then
cmd.CommandText = "select * from categoria order by nome_categoria"
'ordena em ordem alfabética
DataGridView1.Rows.Clear()
140
consulta_categoria_grid() 'método que preenche o datagrid
ElseIf CheckBox2.Checked = True Then
cmd.CommandText = "select * from categoria order by cod_categoria desc"
'ordena em ordem descrecente.
DataGridView1.Rows.Clear()
consulta_categoria_grid() 'método que preenche o datagrid
Else
consulta_com_condicao() 'método que será exetudado quando as condições
não forem correspondida
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub consulta_com_condicao() 'método para consultar os dados no datagrid
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecata ao banco de dados
con.Open() 'abrre a conexão
If TextBox1.Text <> " " Then
cmd.CommandText = "select * from categoria where nome_categoria like'%" &
Trim(TextBox1.Text) & "%'" & "or cod_categoria = " & Val(Trim(TextBox1.Text)) 'Esta
selec realiza a consulta no banco de dados pelo nome da categoria ou pelo código da categoria
Else
MsgBox("Campo vazio!", vbExclamation)
End If
DataGridView1.Rows.Clear() 'limpa os dodos
consulta_categoria_grid() 'método que preenchera o datagrid através da pesquisa
com condição na tabela categoria
End Sub
Private
Sub
Consulta_categoria_KeyDown(sender
As
Object,
tem.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick() 'tecla de atalho para sair do formulário
e
As
Sys-
141
End If
End Sub
Private Sub Consulta_categoria_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Try
With DataGridView1
'colunas do datagrid
.Columns.Add("1", "Codigo")
.Columns.Add("2", "Categoria")
'cor de fundo
.BackgroundColor = Color.White
'tamanho da coluna codigo linha
.Columns(0).Width = 90
'Cabeçalho
.EnableHeadersVisualStyles = False
.ColumnHeadersDefaultCellStyle.Font
=
New
Font("Arial",
14,
FontStyle.Bold)
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersWidthSizeMode
=
DataGridViewRowHeadersWidthSize-
Mode.AutoSizeToAllHeaders 'auto dimensiona o cabeçalho
.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
'linha
.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray
.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple
.AlternatingRowsDefaultCellStyle.Font
=
New
Font("Arial",
FontStyle.Regular)
'colunha
.DefaultCellStyle.Font = New Font("Arial", 12, FontStyle.Bold)
.DefaultCellStyle.ForeColor = Color.Black
.DefaultCellStyle.BackColor = Color.DarkCyan
End With
12,
142
preencher_datagrid_padrao() 'executa o método para preencher o datagrid como
forma padrão.
Catch erro As Exception
MsgBox(erro.Message & "Contate seu administrador.", vbCritical)
End Try
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
End Sub
Private Sub TextBox1_TextChanged(sender
As System.Object, e As Sys-
tem.EventArgs) Handles TextBox1.TextChanged
Try
consulta_com_condicao()
CheckBox1.Checked = False
CheckBox2.Checked = False
Catch pesquisa As Exception
MsgBox(pesquisa.Message)
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
ordenacao_checkbox() 'método para ordenar os itens no datagrid
End Sub
Private Sub CheckBox2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox2.CheckedChanged
ordenacao_checkbox() 'método para ordenar os itens no datagrid
End Sub
Private Sub CheckBox1_Click(sender As Object, e As System.EventArgs) Handles
CheckBox1.Click
CheckBox2.Checked = False
End Sub
143
Private Sub CheckBox2_Click(sender As Object, e As System.EventArgs) Handles
CheckBox2.Click
CheckBox1.Checked = False
End Sub
End Class
„**********************************************************************
'ALTERAR SENHA
'**********************************************************************
‟
ALTERARSENHA.VB
'
Imports MySql.Data.MySqlClient
Public Class AlterarSenha
Dim NOME_LOGIN, SENHA_LOGIN As String
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Try ' trataviva de erro do banco e do formulário
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'variavel de conexão
con.Open() 'abri a conexão com o banco de dados
cmd.CommandText = "select * from login where nome_login = '" &
Trim(TextBox4.Text) & "'" 'Função trim, remove os espaços iniciais e finais.
reader = cmd.ExecuteReader() 'comando para executar a reader
reader.Read() 'variável reader para ler os dados selecionado na select
NOME_LOGIN = reader("nome_login")
SENHA_LOGIN = reader("senha")
reader.Close() 'fechando a reader
con.Close() 'fecha a conexão com o banco de dados
Catch ex As Exception
MsgBox("Usuario incorreto.", vbCritical)
TextBox4.Focus() 'função focus, quando acontece algum erro o cursor volta para
o campo especificado.
End Try
144
If MaskedTextBox1.Text = SENHA_LOGIN Then 'condição para a alteração de
senha. A maskedtextbox tem de ser igual a variavel em questão.
Try
If MaskedTextBox2.Text = MaskedTextBox3.Text Then 'segunda condição, a
senha que estiver igual na primeira condição irá fazer estas instruções. A nova senha da MaskedTextBox2 tem de ser igual a MaskedTextBox3
If MsgBox("Deseja alterar sua senha?", vbYesNo, "confirmação") = vbYes
Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE login SET senha = ? WHERE
nome_login = '" & NOME_LOGIN & "'"
.Parameters.Add("senha", OleDb.OleDbType.VarChar)
.Parameters("senha").Value = MaskedTextBox3.Text
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco de dados
TextBox4.Clear() 'função clear, limpa os campos após a alteração
MaskedTextBox1.Clear()
MaskedTextBox2.Clear()
MaskedTextBox3.Clear()
MsgBox("Senha alterada com sucesso.", vbInformation)
Button2.Focus() 'função focus, após efetuar a alteração o botão cancelar
fica selecionado.
Else
MsgBox("Alteração cancelada!", vbCritical)
TextBox4.Focus() 'função focus, quando a alteração e cancelada o cursor
volta para a textbox4 (campo login).
End If
Else
MsgBox("Senha não confere!", vbCritical)
145
MaskedTextBox2.Focus() 'função focus, quando a senha não confere o cursor volta para o campo especificado (campo nova senha)
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox4.Focus() 'quando acontece algum erro o cursor volta para a textbox4
(campo login)
End Try
Else
MsgBox("Senha antiga incorreta.", vbCritical)
MaskedTextBox1.Focus()
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Me.Close() 'Fecha o formulário
login.Show() 'executa o formuário login
login.TextBox1.Focus()
End Sub
Private
Sub
TextBox4_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then 'condição, quando o usuário
digitar enter o curso irá para o próximo campo
e.Handled = True
MaskedTextBox1.Focus()
End If
End Sub
Private
Sub
MaskedTextBox1_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox1.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then 'condição, quando o usuário
digitar enter o curso irá para o próximo campo
e.Handled = True
MaskedTextBox2.Focus()
End If
146
End Sub
Private
Sub
MaskedTextBox2_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then 'condição, quando o usuário
digitar enter o curso irá para o próximo campo
e.Handled = True
MaskedTextBox3.Focus()
End If
End Sub
Private
Sub
MaskedTextBox3_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox3.KeyPress
If e.KeyChar = Chr(13) Then 'condição, quando o usuário digitar enter o button1 e
clickado automaticamente
Button1_Click(Me, EventArgs.Empty)
End If
End Sub
Private
Sub
AlterarSenha_KeyDown(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button2.PerformClick()
End If
End Sub
End Class
„**********************************************************************
'CONEXÃO DE METODOS E VARIÁVEIS
'**********************************************************************
‟
CONEXAO_METODOS_VARIAVEIS.VB
'
Module conexao_metodos_variaveis
'método para o botão sair
Public Sub sair()
Dim confirmar As MsgBoxResult
147
confirmar = (MsgBox("Deseja realmente sair?", MsgBoxStyle.YesNo, "Confirmar"))
If confirmar = vbYes Then
Application.Exit()
End If
End Sub
'variveis do banco de dados
Public cmd As OleDb.OleDbCommand
Public con As OleDb.OleDbConnection
Public reader As OleDb.OleDbDataReader
'variaveis publicas do sistema
Public teste, cod, qtde, codproduto, codlogin, codiloginfk, codlinha, dados(0, 19), acrescenta_campo, cont As Integer
Public produto, descricao, linha, marca, categoria, codigo_categoria, confere, arquivo_banco, usu_sgbd As String
Public barras As Char
'cod variavel usada em itens_venda, venda e consulta. Dados(0,19), variavel usada no
form login e principal. Quando o usuário se loga é feito uma select da qual será defino os tipo
de acesso ao sistema.
Public Sub conexao_mysql() 'procedure de conexão do banco de dados
If
(System.IO.File.Exists("C:\Acesso_Banco\conectar\acesso\acesso_banco.txt")
<> True) Then
MsgBox("Conexão não configurada.!", MsgBoxStyle.Critical, "Configuração de
conexão")
Application.Exit()
Else
Dim
filereader
As
New
O.StreamReader("C:\Acesso_Banco\conectar\acesso\acesso_banco.txt")
While (filereader.Peek > -1)
linha = filereader.ReadLine
'condição para ler as linhas do arquivo de acesso ao banco
If cont = 3 Then 'linha 3
arquivo_banco = linha
usu_sgbd = arquivo_banco.Substring(0)
I-
148
End If
cont += 1
End While
End If
con = New OleDb.OleDbConnection 'instanciando a variavel con (conexão)
cmd = New OleDb.OleDbCommand 'instacinando a variavel cmd (comandos)
'con.ConnectionString
=
"Provider=SQLOLEDB;Data
Source=ADEILDO-
PC\ADEILDO;Integrated Security=SSPI;Initial Catalog=lojacosmeticos"
con.ConnectionString = usu_sgbd
End Sub
Public Sub selecao() 'select utilizada na tabela produtos.
Try
If barras > " " Then 'cada condição representa um tipo de pesquisa no banco de
dados de acordo com o que é digitado no fórmulario, no caso as textbox.
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where cod_barras = '" &
Trim(barras) & "'"
ElseIf codproduto > 0 Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where cod_produto = " &
Trim(codproduto)
ElseIf produto <> " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where nome_produto like '%" &
Trim(produto) & "%'"
ElseIf descricao > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where descricao_produto like
'%" & Trim(descricao) & "%'"
ElseIf marca <> " " Then
149
cmd.CommandText = "select A.*,B.*,C.*, D.* from marcas A inner join produtos B on(B.cod_marca=A.cod_marca)inner join linha C on(B.cod_linha=C.cod_linha) inner
join categoria D on(B.cod_categoria=D.cod_categoria) where nome_marca like '%" &
Trim(marca) & "%'"
ElseIf linha > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from linha A inner join produtos B on(B.cod_linha=A.cod_linha) inner join marcas C on(B.cod_marca=C.cod_marca) inner join categoria D on(B.cod_categoria=D.cod_categoria) where nome_linha like '%" &
Trim(linha) & "%'"
ElseIf categoria > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from categoria A inner join
produtos
B
on(B.cod_categoria=A.cod_categoria)
inner
join
marcas
C
on(B.cod_marca=C.cod_marca) inner join linha D on(B.cod_linha=D.cod_linha) where
nome_categoria like '%" & Trim(categoria) & "%'"
Else
MsgBox("Dados inválidos para pesquisa!") 'caso o usuario não digite nada
nas condições de pesquisa será exibida esta mensagem
End If
Catch mensagem As Exception
MsgBox(mensagem.Message) 'mensagem de erro.
End Try
End Sub
Public Sub foregn_key_usuario() 'esta procedure será utilizada no formulário cadastro
de usuario. Obs: apenas cadastro.
Try ' tratando o erro na conexão, no formulário e na select
conexao_mysql() 'procidure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open()
cmd.CommandText = "select MAX(cod_login) as cod_login from login" 'selecionar o maior valor da coluna cod_atendente no banco de dados
reader = cmd.ExecuteReader()
If reader.Read() Then
150
codlogin = reader.GetValue(0) 'registro que será lido, no caso cod_atenden da
qual se trata de uma coluna na tabela atendente
codiloginfk = codlogin + 1
reader.Close() 'fecha a leitura no banco
con.Close() 'fecha o banco
Else
codiloginfk = codlogin + 1
End If
Catch selecao_atendente As Exception
MsgBox(selecao_atendente.Message & " " & "Contate o suporte técnico", vbInformation)
End Try
End Sub
'confere o a quantidade e exibe na tela para o usuário
Public Sub confere_qtde()
Dim produto_conf, barras_conf, qtde_conf As String
Try
conexao_mysql()
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open()
cmd.CommandText = "select nome_produto, cod_barras, qtde_produto from
produtos where qtde_produto <=5"
reader = cmd.ExecuteReader()
While reader.Read()
barras_conf = reader("cod_barras")
produto_conf = reader("nome_produto")
qtde_conf = reader("qtde_produto")
MsgBox("PRODUTO: " & produto_conf & vbCrLf & "CÓDIGO BARRAS:
" & barras_conf & vbCrLf & "QUANTIDADE: " & qtde_conf & vbCrLf & "Quantidade baixa!", vbExclamation)
End While
con.Close()
Catch ex As Exception
151
MsgBox(ex.Message)
End Try
End Sub
'método para apresentar os dados no datagrid com default
Public Sub grid_default()
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abrre a conexão
'Pesquida feita pela data de cadastro do produto
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join marcas
B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha) inner join
categoria D on(A.cod_categoria=D.cod_categoria)"
End Sub
'função para manipulação de números na textbox. Está função habilita apenas números.
Function SoNumeros(ByVal Keyascii As Short) As Short
If InStr("1234567890", Chr(Keyascii)) = 0 Then 'condição para definir o que será
aceito. 0 significa número
SoNumeros = 0
Else
SoNumeros = Keyascii
End If
Select Case Keyascii
Case 8
SoNumeros = Keyascii '8 bits
Case 13
SoNumeros = Keyascii '13 bits
Case 32
SoNumeros = Keyascii '32 bits
Case 64
SoNumeros = Keyascii '64 bist
End Select
End Function
152
'função para manipulação de números na textbox. Está função abilita números e virgula. Forma decimal.
Function Sodecimal(ByVal Keyascii As Short) As Short
If InStr("1234567890,", Chr(Keyascii)) = 0 Then 'condição para definir o que será
aceito. 0 significa número
Sodecimal = 0
Else
Sodecimal = Keyascii
End If
Select Case Keyascii
Case 8
Sodecimal = Keyascii '8 bits
Case 13
Sodecimal = Keyascii '13 bits
Case 32
Sodecimal = Keyascii '32 bits
Case 64
Sodecimal = Keyascii '64 bits
End Select
End Function
End Module
„**********************************************************************
'CADASTRO DE USUÁRIOS
'**********************************************************************
‟
CADASTROUSUARIO.VB
'
Public Class CadastroUsuario
Dim codigologin As Integer
Dim matriz(0, 3) As Object
'Matriz: armazena os dados pesquisado pela função conferir login
'tacesso: armazeno valores númericos 0 e 1 para definir os tipos de acesso do sistema.
Private Function conferir_login() 'função para conferir se o cadastro de usuário já existe.
153
Try
conexao_mysql() 'peocedure de conexão com o mysql
cmd.Connection = con 'conecta ao banco de dados
con.Open() 'abre a conexão.
If TextBox1.Text > " " Then 'select que é executado no banco quando o botão 1
e acionado.
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where nome_usuario = '" & Trim(TextBox1.Text) & "'" 'primeira condição para a pesquisa no banco de dados
ElseIf Val(MaskedTextBox1.Text) > 0 Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where rg_usuario = '" & Trim(MaskedTextBox1.Text) & "'"
'segunda condição para a pesquisa no banco de dados
ElseIf Val(MaskedTextBox2.Text) > 0 Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cpf_usuario = '" & Trim(MaskedTextBox2.Text) & "'"
'terceira condição de
ElseIf TextBox2.Text > " " Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where nome_login = '" & Trim(TextBox2.Text) & "'"
End If
reader = cmd.ExecuteReader() 'comando para executar a reader
reader.Read() 'variável reader para ler os dados selecionado na select
matriz(0, 0) = reader("nome_usuario")
matriz(0, 1) = reader("rg_usuario")
matriz(0, 2) = reader("cpf_usuario")
matriz(0, 3) = reader("nome_login")
con.Close()
Catch ex As Exception
End Try
Return 1
End Function
Private Function apagar() 'função para limpara as textbox
TextBox1.Clear()
154
MaskedTextBox1.Clear()
MaskedTextBox2.Clear()
TextBox2.Clear()
MaskedTextBox3.Clear()
MaskedTextBox4.Clear()
TextBox3.Clear()
TextBox3.Focus() 'move o cursor para o campo requerido
matriz(0, 0) = " "
matriz(0, 1) = " "
matriz(0, 2) = " "
matriz(0, 3) = " "
Return TextBox1.Text()
End Function
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If Button3.Text = "Cancelar" Then
Close()
login.TextBox1.Focus()
login.tabela_login_vazia()
login.Show()
Else
Close()
principal.Show()
End If
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If Button5.Text = "Cadastrar" Then 'condição para ação do botão cadastrar. Obs:
esta condição é para (cadastro, alteração e exlcusão).
Try 'trativa de erro para a função cadastro administrador e cadastro de login
normal.
'condição para não haver campos nulos
If TextBox1.Text > " " And TextBox2.Text > " " And MaskedTextBox3.Text
> " " And MaskedTextBox4.Text > " " Then
155
'condição para conferir senha.
If MaskedTextBox4.Text = MaskedTextBox3.Text Then
'função conferir login
conferir_login()
'Condição para cadastrp de login, verifica se há login já cadastrado
If matriz(0, 0) = TextBox1.Text Or matriz(0, 1) = MaskedTextBox1.Text
Or matriz(0, 2) = MaskedTextBox2.Text Or matriz(0, 3) = TextBox2.Text Then
MsgBox("Cadastro existente.", vbCritical)
Else 'caso não tenha um administrador cadastro as instruções abaixo
serma compiladas
'condição para o cadastro do login administrador
If Button3.Text = "Cancelar" Then
If MsgBox("Deseja cadastrar este usuario?", vbYesNo, "confirmação") = vbYes Then 'Pergunta que será exibida quando o susuario vai cadastrar-se ou vai cadastrar um usuário.
'Tabela login - Cadastro de LOGIN - CADASTRO DE ADMINSTRADOR
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con 'variavel de conexão
con.Open() 'abre o banco
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "INSERT into login (cod_login, nome_login, senha, alt_categoria, alt_linha, alt_marca, alt_produto, alt_venda, alt_usuario,
exc_categoria, exc_linha, exc_marca, exc_produto, exc_itens_venda, exc_venda, exc_usuario,
cad_categoria, cad_linha, cad_marca, cad_produto, cad_usuario, atualizar, relatorio) VALUES (?, ?,?, ?, ?, ?,?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)" 'comando para inserção de dados no
banco de dados. Tabela usuario
.Parameters.Add("cod_login", OleDb.OleDbType.Integer)
.Parameters("cod_login").Value = codiloginfk
.Parameters.Add("nome_login", OleDb.OleDbType.VarChar)
.Parameters("nome_login").Value
=
Trim(TextBox2.Text)
'Campo onde será incluso o nome do login
.Parameters.Add("senha", OleDb.OleDbType.VarChar)
156
.Parameters("senha").Value = Trim(MaskedTextBox3.Text)
'Campo onde será incluso a senha do login
'variaveis para alteração
.Parameters.Add("alt_categoria", OleDb.OleDbType.Integer)
.Parameters("alt_categoria").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_linha", OleDb.OleDbType.Integer)
.Parameters("alt_linha").Value = 1 'Vairavel que será incluso o
número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_marca", OleDb.OleDbType.Integer)
.Parameters("alt_marca").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_produto", OleDb.OleDbType.Integer)
.Parameters("alt_produto").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_venda", OleDb.OleDbType.Integer)
.Parameters("alt_venda").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_usuario", OleDb.OleDbType.Integer)
.Parameters("alt_usuario").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
'variaveis para exclusão.
.Parameters.Add("exc_categoria", OleDb.OleDbType.Integer)
.Parameters("exc_categoria").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_linha", OleDb.OleDbType.Integer)
.Parameters("exc_linha").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_marca", OleDb.OleDbType.Integer)
.Parameters("exc_marca").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_produto", OleDb.OleDbType.Integer)
.Parameters("exc_produto").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
157
.Parameters.Add("exc_itens_venda",
O-
leDb.OleDbType.Integer)
.Parameters("exc_itens_venda").Value = 1 'Vairavel que será
incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_venda", OleDb.OleDbType.Integer)
.Parameters("exc_venda").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_usuario", OleDb.OleDbType.Integer)
.Parameters("exc_usuario").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
'variaveis para cadastro
.Parameters.Add("cad_categoria", OleDb.OleDbType.Integer)
.Parameters("cad_categoria").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_linha", OleDb.OleDbType.Integer)
.Parameters("cad_linha").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_marca", OleDb.OleDbType.Integer)
.Parameters("cad_marca").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_produto", OleDb.OleDbType.Integer)
.Parameters("cad_produto").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_usuario", OleDb.OleDbType.Integer)
.Parameters("cad_usuario").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("atualizar", OleDb.OleDbType.Integer)
.Parameters("atualizar").Value = 1 'Vairavel que será incluso o
número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("relatorio", OleDb.OleDbType.Integer)
.Parameters("relatorio").Value = 1 'Vairavel que será incluso o
número 0 para falso e 1 para verdaeiro na checkbox
.ExecuteNonQuery()
End With
158
con.Close() 'fecha a conexão com o banco
'tabela usuário - CADASTRO DE USUÁRIO
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con 'variavel de conexão
con.Open() 'abre o banco
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText
=
"insert
into
usuario
(nome_usuario,
cpf_usuario, rg_usuario, cod_login) values (?, ?, ?, ?)" 'comando para inserção de dados no
banco de dados. Tabela usuario
.Parameters.Add("nome_usuario",
O-
leDb.OleDbType.VarChar)
.Parameters("nome_usuario").Value = Trim(TextBox1.Text)
.Parameters.Add("cpf_usuario", OleDb.OleDbType.VarChar)
.Parameters("cpf_usuario").Value
=
Trim(MaskedTextBox2.Text) 'Campo onde será incluso o cpf
.Parameters.Add("rg_usuario", OleDb.OleDbType.VarChar)
.Parameters("rg_usuario").Value
=
Trim(MaskedTextBox1.Text) 'Campo onde será incluso o rg
.Parameters.Add("cod_login", OleDb.OleDbType.Integer)
.Parameters("cod_login").Value = codiloginfk
.ExecuteNonQuery()
End With
con.Close() ' fecha a conexão com o banco de dados
foregn_key_usuario() 'Nesta procedure ocorre uma select para a
preecher a variavel codigoat com um outro número, ou seja, _ela pesquisa cod_atenden e soma mais um ex: 5 + 1 = 6. Caso tenha um outro cadastro de usário aforeign key será 6.
apagar() 'função para limpara as textbox
MsgBox("Cadastro efetuado com sucesso.", vbInformation)
'mensagem que aparece quando não ocorre nenhum erro.
Button3.PerformClick() 'executa os códigos do botão5
Else
MsgBox("Cadastro cancelado.", vbCritical) 'mensagem exibida
quando a inclusão é cancelada.
159
TextBox3.Focus() 'move o cursor para o campo código.
End If 'fim da condição se o usuaário quer cadastradrar outro usuário
'quando houver um login administrador já cadastro, os códigos seram copilados de acordo com esta condição.
ElseIf Button3.Text = "Retornar ao Menu Principal" Then
If MsgBox("Deseja cadastrar este usuario?", vbYesNo, "confirmação") = vbYes Then 'Pergunta que será exibida quando o susuario vai cadastrar-se ou vai cadastrar um usuário.
'Tabela login - cadastro login comum
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con 'variavel de conexão
con.Open() 'abri o banco
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "INSERT into login (cod_login, nome_login, senha, alt_categoria, alt_linha, alt_marca, alt_produto, alt_venda, alt_usuario,
exc_categoria, exc_linha, exc_marca, exc_produto, exc_itens_venda, exc_venda, exc_usuario,
cad_categoria, cad_linha, cad_marca, cad_produto, cad_usuario, atualizar, relatorio) VALUES (?, ?, ?, ?,?, ?, ?, ?,?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" 'comando para inserção de dados no
banco de dados. Tabela usuario
.Parameters.Add("cod_login", OleDb.OleDbType.Integer)
.Parameters("cod_login").Value = codiloginfk
.Parameters.Add("nome_login", OleDb.OleDbType.VarChar)
.Parameters("nome_login").Value
=
Trim(TextBox2.Text)
'Campo onde será incluso o nome do login
.Parameters.Add("senha", OleDb.OleDbType.VarChar)
.Parameters("senha").Value = Trim(MaskedTextBox3.Text)
'Campo onde será incluso a senha do login
'Itens de acesso no sistema - ALTERAÇÃO
.Parameters.Add("alt_categoria", OleDb.OleDbType.Integer)
.Parameters("alt_categoria").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_linha", OleDb.OleDbType.Integer)
160
.Parameters("alt_linha").Value = 1 'Vairavel que será incluso o
número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_marca", OleDb.OleDbType.Integer)
.Parameters("alt_marca").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_produto", OleDb.OleDbType.Integer)
.Parameters("alt_produto").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_venda", OleDb.OleDbType.Integer)
.Parameters("alt_venda").Value = 0 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("alt_usuario", OleDb.OleDbType.Integer)
.Parameters("alt_usuario").Value = 0 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
'Itens de acesso no sistema - EXCLUSÃO.
.Parameters.Add("exc_categoria", OleDb.OleDbType.Integer)
.Parameters("exc_categoria").Value = 0 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_linha", OleDb.OleDbType.Integer)
.Parameters("exc_linha").Value = 0 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_marca", OleDb.OleDbType.Integer)
.Parameters("exc_marca").Value = 0 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_produto", OleDb.OleDbType.Integer)
.Parameters("exc_produto").Value = 0 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("
exc_itens_venda",
O-
leDb.OleDbType.Integer)
.Parameters(" exc_itens_venda").Value = 0 'Vairavel que será
incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("exc_venda", OleDb.OleDbType.Integer)
.Parameters("exc_venda").Value = 0 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
161
.Parameters.Add("exc_usuario", OleDb.OleDbType.Integer)
.Parameters("exc_usuario").Value = 0 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
'Itens de acesso no sistema - CADASTRO
.Parameters.Add("cad_categoria", OleDb.OleDbType.Integer)
.Parameters("cad_categoria").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_linha", OleDb.OleDbType.Integer)
.Parameters("cad_linha").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_marca", OleDb.OleDbType.Integer)
.Parameters("cad_marca").Value = 1 'Vairavel que será incluso
o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_produto", OleDb.OleDbType.Integer)
.Parameters("cad_produto").Value = 1 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
.Parameters.Add("cad_usuario", OleDb.OleDbType.Integer)
.Parameters("cad_usuario").Value = 0 'Vairavel que será incluso o número 0 para falso e 1 para verdaeiro na checkbox
'atualziar
.Parameters.Add("atualizar", OleDb.OleDbType.Integer)
.Parameters("atualizar").Value = 0 'Vairavel que será incluso o
número 0 para falso e 1 para verdaeiro na checkbox
'relatório
.Parameters.Add("relatorio", OleDb.OleDbType.Integer)
.Parameters("relatorio").Value = 0 'Vairavel que será incluso o
número 0 para falso e 1 para verdaeiro na checkbox
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
'tabela usuário - cadastro de usuario comum
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con 'variavel de conexão
con.Open() 'abre o banco
162
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText
=
"insert
into
usuario
(nome_usuario,
cpf_usuario, rg_usuario, cod_login) values (?, ?, ?, ?)" 'comando para inserção de dados no
banco de dados. Tabela usuario
.Parameters.Add("nome_usuario",
O-
leDb.OleDbType.VarChar)
.Parameters("nome_usuario").Value = Trim(TextBox1.Text)
'codiloginfk
.Parameters.Add("cpf_usuario", OleDb.OleDbType.VarChar)
.Parameters("cpf_usuario").Value
=
Trim(MaskedTextBox2.Text) 'Campo onde será incluso o cpf
.Parameters.Add("rg_usuario", OleDb.OleDbType.VarChar)
.Parameters("rg_usuario").Value
=
Trim(MaskedTextBox1.Text) 'Campo onde será incluso o rg
.Parameters.Add("cod_login", OleDb.OleDbType.Integer)
.Parameters("cod_login").Value = codiloginfk
.ExecuteNonQuery()
End With
con.Close() ' fecha a conexão com o banco de dados
apagar() 'função para limpara as textbox
MsgBox("Cadastro efetuado com sucesso.", vbInformation)
'mensagem que aparece quando não ocorre nenhum erro.
TextBox1.Focus() 'Move o cursor para a textox3 após o cadastro.
foregn_key_usuario() 'Nesta procedure ocorre uma select para a
preecher a variavel codigoat com um outro número, ou seja, _ela pesquisa cod_usuário e soma mais um ex: 5 + 1 = 6. Caso tenha um outro cadastro de usário aforeign key será 6.
Else
MsgBox("Cadastro cancelado.", vbCritical) 'mensagem exibida
quando a inclusão é cancelada.
TextBox3.Focus() 'move o cursor para o campo código.
End If 'fim da condição do cancelamento da inclusão de usuário
End If 'fim da condição do cadastro do login administrdor e do login
comum
163
End If 'fim da condição para verificar se a cadastro a ser inserido já existe.
Else 'mensagem a se exibida para quando a senha for diferente.
MsgBox("Senha não confere!", MsgBoxStyle.Critical)
End If
Else 'mensagem a ser exibida para dados nulos no formulário, exceto para rg e
cp usuário.
MsgBox("Atenção, existem campos nulos!", vbExclamation)
TextBox1.Focus() 'move o cursor para o campo nome do usuário.
End If 'fim da condição que veririca os campos nulos.
Catch ex2 As Exception
MsgBox(ex2.Message) 'mensagem de tratativa de erro.
TextBox3.Focus() 'move o cursor para o campo código.
End Try
ElseIf Button5.Text = "Alterar" Then 'Alteração de usuario. Neste ponto será utilizaod o mesmo formulario tanto para cadastro quanto para alteração.
Try
If TextBox1.Text > " " And TextBox2.Text > " " And MaskedTextBox1.Text
> " " And MaskedTextBox2.Text > " " Then 'condição dos campos. Não pode ser nulo
If MsgBox("Deseja alterar este usuario?", vbYesNo, "confirmação") = vbYes Then 'pergunta a ser exibida no momento da alteração
'Tabela login - Alterar
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con 'variavel de conexão
con.Open() 'abri o banco
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE login SET nome_login = ? WHERE
cod_login = " & codigologin 'comando para alteração de dados da tabela login
.Parameters.Add("nome_login", OleDb.OleDbType.VarChar)
.Parameters("nome_login").Value = Trim(TextBox2.Text) 'dados digitado que será alterado no banco
.ExecuteNonQuery()
End With
164
con.Close() 'fecha o banco
'Tabela usuario - Alterar
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'abri o banco
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE usuario SET nome_usuario = ?,
rg_usuario = ?, cpf_usuario = ? WHERE cod_usuario = " & Val(Trim(TextBox3.Text)) 'comando para inserir dados no banco de datos. Tabela usuario
.Parameters.Add("nome_usuario", OleDb.OleDbType.VarChar)
.Parameters("nome_usuario").Value = Trim(TextBox1.Text) 'dados
digitado que será alterado no banco
.Parameters.Add("rg_usuario", OleDb.OleDbType.VarChar)
.Parameters("rg_usuario").Value = Trim(MaskedTextBox1.Text) 'dados digitado que será alterado no banco
.Parameters.Add("cpf_usuario", OleDb.OleDbType.VarChar)
.Parameters("cpf_usuario").Value = Trim(MaskedTextBox2.Text) 'dados digitado que será alterado no banco
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
apagar() 'função para limpara os campos digitados
TextBox3.Enabled = True
TextBox3.Focus() 'move o cursor para o campo código.
MsgBox("Cadastro alterado com sucesso.", vbInformation)
Else
MsgBox("Alteração cancelada.", vbCritical) 'mensagem que aparece para
o usuario quando ele cancela a alteração
TextBox3.Focus() 'move o cursor para o campo código.
End If
Else
MsgBox("Campo invalido!", vbCritical) 'mensagem que aparece para o usuario quando a campos nulos.
165
TextBox1.Focus() 'move o cursor para o campo código.
End If
Catch ex3 As Exception
MsgBox(ex3.Message) 'mensagem da tratativa de erro. Verifica toto o formulário.
TextBox3.Focus() 'move o cursor para o campo código.
End Try
ElseIf Button5.Text = "Excluir" Then
If TextBox1.Text > " " And TextBox2.Text > " " And MaskedTextBox1.Text >
" " And MaskedTextBox2.Text > " " And codigologin > 0 Then
If MsgBox("Deseja excluir este usuário?", vbYesNo, "confirma") = vbYes
Then
Try 'Tratando erro
'Tabela atendente - Excluir
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "Delete FROM usuario where cod_usuario = " &
Val(Trim(TextBox3.Text)) 'comando para exclusão do usuário
.Parameters.Add("usuario", OleDb.OleDbType.VarChar)
.Parameters("usuario").Value = Trim(TextBox3.Text)
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
'Tabela usuario - Excluir
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "Delete FROM login where cod_login = " & codigologin 'comando para exclusão do login.
166
.Parameters.Add("login", OleDb.OleDbType.VarChar)
.Parameters("login").Value = Trim(TextBox3.Text)
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
apagar() 'função para limpara as textbox
TextBox3.Enabled = True
Button5.Enabled = False
TextBox3.Focus() 'move o cursor para o campo código.
MsgBox("Registro excluído com êxito!", vbExclamation) 'mensagem
que aparece no momento em que nenhum erro ocorre.
Catch ex4 As Exception
MsgBox(ex4.Message)
TextBox3.Focus() 'move o cursor para o campo código.
End Try
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox3.Focus() 'move o cursor para o campo código.
End If
Else
MsgBox("Valor informado inválido!", vbCritical)
TextBox3.Focus() 'move o cursor para o campo código.
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try ' trataviva de erro do banco e do formulário
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'variavel de conexão
con.Open() 'abri o banco
If TextBox1.Text > " " Then
167
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where nome_usuario like '%" & Trim(TextBox1.Text) & "%'"
ElseIf Val(TextBox3.Text) > 0 Then 'select que é executado no banco quando o
botão 1 e acionado.
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cod_usuario = " & Trim(TextBox3.Text)
ElseIf Val(MaskedTextBox1.Text) > 0 Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where rg_usuario = '" & Trim(MaskedTextBox1.Text) & "'"
ElseIf Val(MaskedTextBox2.Text) > 0 Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cpf_usuario = '" & Trim(MaskedTextBox2.Text) & "'"
ElseIf TextBox2.Text > " " Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where nome_login like '%" & Trim(TextBox2.Text) & "%'"
Else
MsgBox("Dados inocrreto para pesquisa!", vbCritical) 'quando os campos estã nulos e o usuário tenta fazer pequisa.
TextBox3.Focus()
End If
reader = cmd.ExecuteReader() 'comando para executar a reader
reader.Read() 'variável reader para ler os dados selecionado na select
cod = reader("cod_login")
If cod > 1 Then 'confere o login. Se for igual a 1 ele não traz a pesquisa. Login
adimnitrador não pode ser editado, excluído ou consultado
TextBox2.Text = reader("nome_login")
TextBox1.Text = reader("nome_usuario")
MaskedTextBox1.Text = reader("rg_usuario")
MaskedTextBox2.Text = reader("cpf_usuario")
TextBox3.Text = reader("cod_usuario")
codigologin = reader("cod_login") 'codigo atendente. será usado na alteração
do usuario
reader.Close() 'fechando a reader
con.Close() 'fechando o banco de dados
168
If Val(TextBox3.Text) > 0 And TextBox1.Text > " " And MaskedTextBox1.Text > " " And MaskedTextBox2.Text > " " And TextBox2.Text > " " Then
TextBox3.Enabled = False
Button5.Enabled = True
Else
TextBox3.Enabled = True
Button5.Enabled = False
End If
TextBox1.Focus()
Else
MsgBox("Consulta inválida", MsgBoxStyle.Critical)
TextBox3.Focus()
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus()
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
apagar() 'função limpar
If Button5.Text = "Alterar" And Button1.Text = "Consultar" Then 'condição para o
botão alterar.
TextBox3.Enabled = True 'abilita a textbox
Button5.Enabled = False 'deabilita o botão quando ocorre o evento de click.
TextBox3.Focus()
ElseIf Button5.Text = "Excluir" And Button1.Text = "Consultar" Then 'instruções
para o botão excluir.
TextBox3.Enabled = True 'abilita a textbox
Button5.Enabled = False 'deabilita o botão quando ocorre o evento de click.
TextBox3.Focus()
ElseIf Button5.Text = "Cadastrar" And Button1.Text = "Consultar" Then 'condição
para o botão cadastrar, instuções adicionais para a função cadastar
TextBox3.Enabled = False 'abilita a textbox
169
Button5.Enabled = True 'abilita o button no formulário quando ocorre o evento
de click.
TextBox1.Focus() 'move o cursor para o campo requerido
ElseIf Button3.Text = "Cancelar" Then
Label6.Enabled = False
Button1.Enabled = False
TextBox3.Enabled = False
End If
End Sub
Private Sub CadastroUsuario_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub CadastroUsuario_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
foregn_key_usuario() 'procedure para preechimento da foreign key da tabela
usuário.
If Button5.Text = "Alterar" Then
Button5.Enabled = False
Label9.Enabled = False
Label8.Enabled = False
MaskedTextBox4.Enabled = False
MaskedTextBox3.Enabled = False 'desabilitando os dados que não seram alterados, esta ação é feita em outro formulário.
ElseIf Button5.Text = "Excluir" Then
Button5.Enabled = False
Label9.Enabled = False
Label8.Enabled = False
MaskedTextBox4.Enabled = False
MaskedTextBox3.Enabled = False 'desabili os campos que não serão utilizado
na exclusão, mas seram excluso.
Else
170
Label9.Enabled = True
Label8.Enabled = True
MaskedTextBox4.Enabled = True
MaskedTextBox3.Enabled = True 'desabilitando os dados que não seram alterados, esta ação é feita em outro formulário.
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
MaskedTextBox1.Focus()
End If
End Sub
Private Sub MaskedTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox1.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
MaskedTextBox2.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub MaskedTextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox2.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
171
MaskedTextBox4.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub MaskedTextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox4.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
MaskedTextBox3.Focus()
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
If KeyAscii = 32 Then
e.Handled = True
End If
End Sub
Private Sub MaskedTextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox3.KeyPress
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
If KeyAscii = 32 Then
e.Handled = True
End If
'condição para quando o usuário digitar enter cadastrar e mover o cursor para a
textbox1
If e.KeyChar = Chr(13) Then
Button5_Click(Me, EventArgs.Empty)
TextBox1.Focus()
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
172
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
'condição para quando o usuário digitar enter pesquisar
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
TextBox3.Focus()
End If
End Sub
End Class
„**********************************************************************
'CADASTRAR PRODUTOS
'**********************************************************************
‟
CADASTROPRODUTO.VB
'
Public Class CadastroProduto
Dim CodigoCategoria, CodigoMarca, CodigoLinha, CodigoProduto As Integer 'variaveis para uso exclusivo da ação do botão excluir
Public Function sele_cambobox() 'função para seleionar o dados da tabela linha
Try
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open()
173
cmd.CommandText = "select * from categoria order by nome_categoria" 'Seleção feita para a combobox.
reader = cmd.ExecuteReader()
ComboBox1.Items.Clear() 'limpa a pesquisa
While reader.Read()
ComboBox1.Items.Add(UCase(reader("nome_categoria"))) 'Adiciona as categoria a combobox
End While
reader.Close() 'fecha a leitura com o banco de dados
con.Close() 'fecha a conexão
Catch ex As Exception
End Try
Return ComboBox1.Text() 'retorna o valor da combobox
End Function
Public Function sele_cambobox2() 'função para seleionar o dados da tabela marcas
Try
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open()
cmd.CommandText = "select * from marcas order by nome_marca" 'Seleção feita para a combobox.
reader = cmd.ExecuteReader()
ComboBox2.Items.Clear() 'limpa a pesquisa
While reader.Read()
ComboBox2.Items.Add(UCase(reader("nome_marca"))) 'Adiciona as categoria a combobox
End While
reader.Close() 'fecha a leitura com o banco de dados
con.Close() 'fecha a conexão
Catch ex As Exception
End Try
Return ComboBox2.Text() 'retorna o valor da combobox
End Function
174
Public Function sele_combobox3() 'função para seleionar o dados da tabela linha
Try
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open()
cmd.CommandText = "select * from linha order by nome_linha" 'Seleção feita
para a combobox.
reader = cmd.ExecuteReader()
ComboBox3.Items.Clear() 'limpa a pesquisa
While reader.Read()
ComboBox3.Items.Add(UCase(reader("nome_linha"))) 'Adiciona as categoria
a combobox
End While
reader.Close() 'fecha a leitura com o banco de dados
con.Close() 'fecha a conexão
Catch combo_sele As Exception
End Try
Return ComboBox3.Text()
End Function
Private Function limpar() 'método limpar
TextBox1.Clear() 'função clear, limpa as textbox
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox6.Clear()
TextBox1.Focus() 'função focus, move o cursor para o campo especificado.
Return TextBox1.Text()
End Function
Private Sub confere_produto() 'métod para verificar se o produto já esta cadastrado.
Try
conexao_mysql() 'procedure de conexão com mysql e variavel cmd e con
cmd.Connection = con
con.Open()
175
cmd.CommandType = System.Data.CommandType.Text
If TextBox1.Text > " " Then
cmd.CommandText = "select * from produtos where cod_barras = '" &
Trim(TextBox1.Text) & "'"
ElseIf TextBox2.Text > " " Then
cmd.CommandText = "select * from produtos where nome_produto = '" &
Trim(TextBox2.Text) & "'"
End If
reader = cmd.ExecuteReader()
reader.Read()
barras = reader("cod_barras")
confere = reader("nome_produto")
reader.Close()
con.Close()
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
If Val(TextBox1.Text) > 0 And TextBox2.Text > " " And ComboBox2.Text > "
" And ComboBox3.Text > " " And ComboBox1.Text > " " And Val(TextBox4.Text) > -1 And
Val(TextBox6.Text) > 0 Then 'conidção para que haja o cadastro do produto, marca, linha e
categoria
confere_produto() 'objeto para conferir se o item em questão já esta cadastrado.
If barras <> TextBox1.Text And confere <> TextBox2.Text Then
If MsgBox("Deseja cadastrar este produto?", vbYesNo, "confirmação") =
vbYes Then
'Tabela produtos - CADASTRO DE PRODUTOS
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
176
If CodigoCategoria > 0 And CodigoLinha > 0 And CodigoMarca > 0
Then
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "INSERT into produtos (cod_barras, nome_produto,
descricao_produto,
vlr_unitario,
qtde_produto,
cod_marca,
cod_linha,
cod_categoria, data_cads_prod) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" 'Comando para inserir dados no MySQL
.Parameters.Add("cod_barras", OleDb.OleDbType.Char)
.Parameters("cod_barras").Value = Trim(TextBox1.Text) 'Função
trim e cint, um reomve dos epaços finais e iniciais e a outra só permite valores inteiros
.Parameters.Add("nome_produto", OleDb.OleDbType.VarChar)
.Parameters("nome_produto").Value = Trim(TextBox2.Text) 'função trim. Remove os epaçsos iniciais e finais
.Parameters.Add("descricao_produto", OleDb.OleDbType.VarChar)
.Parameters("descricao_produto").Value = Trim(TextBox3.Text)
'função trim. Remove os epaçsos iniciais e finais
.Parameters.Add("vlr_unitario", OleDb.OleDbType.Decimal)
.Parameters("vlr_unitario").Value = Trim(Replace(TextBox4.Text,
".", ",")) 'Função trim e cdec, um reomve dos epaços finais e iniciais e a outra permite valores
inteiros e quebrados
.Parameters.Add("qtde_produto", OleDb.OleDbType.Integer)
.Parameters("qtde_produto").Value = CInt(Trim(TextBox6.Text))
'Função trim e cint, um reomve dos epaços finais e iniciais e a outra só permite valores inteiros
.Parameters.Add("cod_marca", OleDb.OleDbType.Integer)
.Parameters("cod_marca").Value = Trim(CodigoMarca) 'função
trim. Remove os epaçsos iniciais e finais
.Parameters.Add("cod_linha", OleDb.OleDbType.Integer)
.Parameters("cod_linha").Value = Trim(CodigoLinha) 'função trim.
Remove os epaçsos iniciais e finais
.Parameters.Add("cod_categoria", OleDb.OleDbType.Integer)
.Parameters("cod_categoria").Value = Trim(CodigoCategoria) 'função trim. Remove os epaçsos iniciais e finais
177
.Parameters.Add("data_cads_prod", OleDb.OleDbType.DBDate)
.Parameters("data_cads_prod").Value = Trim(Label11.Text) 'função
trim. Remove os epaçsos iniciais e finais
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco
End If
limpar() 'função limpar
MsgBox("Cadastro efetuado com sucesso.", vbInformation)
CheckBox1.Checked = False
Else
MsgBox("Cadastro cancelado!", vbExclamation)
End If
Else
MsgBox("Item já cadastrado.", vbExclamation)
End If
Else
MsgBox("Erro! Verifique os campos.", vbCritical)
TextBox1.Focus() 'função focus
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'função focus
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Close()
principal.Show()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
limpar() 'função limpar
TextBox1.Focus()
178
End Sub
Private Sub CadastroProduto_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If Button1.Text = "Cadastrar" Then
If e.Control AndAlso e.KeyCode = Keys.T Then 'tecla de atalho para cadastrar
uma nova categoria
principal.CategoriasToolStripMenuItem.PerformClick() 'executa o objeto nova categoria no menu principal
NovaCategoria.Button3.Text = "VOLTAR" 'nome para o botão 3(quando o
usuário quiser voltar para a tela de cadastro e não o menu principal)
ElseIf e.Control AndAlso e.KeyCode = Keys.A Then 'tecla de atalho para cadastrar uma nova marca
principal.NovaMarcaToolStripMenuItem.PerformClick() 'executa o objeto
nova marca no menu principal
NovaCategoria.Button3.Text = "VOLTAR"
'nome para o botão 3(quando
o usuário quiser voltar para a tela de cadastro e não o menu principal)
ElseIf e.Control AndAlso e.KeyCode = Keys.L Then
'tecla de atalho para ca-
dastrar uma nova marca
principal.NovaLinhaToolStripMenuItem.PerformClick() 'executa o objeto nova marca no menu principal
NovaCategoria.Button3.Text = "VOLTAR" 'nome para o botão 3(quando o
usuário quiser voltar para a tela de cadastro e não o menu principal)
ElseIf e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End If
End Sub
Private Sub CadastroProduto_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Label11.Text = Date.Today
If Button1.Text = "Cadastrar" Then
CheckBox1.Enabled = True
Label12.Visible = True
Label13.Visible = True
179
Label14.Visible = True
sele_cambobox() 'função combobox (seleciona os dados no banco antes de entrar cadastro)
sele_cambobox2() 'função combobox2 (seleciona os dados no banco antes de
entrar no cadastro)
sele_combobox3() 'função combobox2 (seleciona os dados no banco antes de
entrar no cadastro)
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
'função focus, move o cursor para o campo especificado.
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox2.Focus()
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox3.Focus() 'função focus, move o cursor para o campo especificado.
180
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox4.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
'função focus, move o cursor para o campo especificado.
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox6.Focus()
End If
'condição para limitar a vírgula. Só é aceito uma vírgula no campo valor do produto.
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not
e.KeyChar = "," Then e.Handled = True
If e.KeyChar = "," And (InStr(TextBox4.Text, ",")) > 0 Then e.Handled = True
End Sub
Private Sub Combobox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox2.KeyPress
181
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
ComboBox3.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço para a textbox (quantidade de produto)
If KeyAscii = 32 Then
e.Handled = True
End If
'função focus, move o cursor para o campo especificado.
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
ComboBox2.Focus()
End If
End Sub
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
TextBox1.Focus() 'função focus, move o cursor para o campo especificado
End If
End Sub
Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
182
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button2_Click(Me, EventArgs.Empty) 'ação para o botão, quando o usuário ditigitar enter.
End If
End Sub
Private Sub ComboBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox3.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
ComboBox1.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Consulta.Show()
End Sub
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
Try 'Tratando erro
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If ComboBox2.Text > " " Then 'Condição para a pesquisa no banco de dados
183
cmd.CommandText = "SELECT * FROM marcas where nome_marca = '" &
ComboBox2.Text & "'" 'condição para buscar o código do item selecionado
Else
MsgBox("Dados inválidos para pesquisa!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum campo de pesquisa for inválido o cursor é movido para a testbox1
End If
reader = cmd.ExecuteReader()
reader.Read()
CodigoMarca = reader("cod_marca")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
Catch ex As Exception
MsgBox(ex.Message)
Button1.Focus() 'função focus
End Try
End Sub
Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged
Try
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If ComboBox3.Text > " " Then 'Condição para a pesquisa no banco de dados
cmd.CommandText = "SELECT * FROM linha where nome_linha = '" &
ComboBox3.Text & "'" 'condição para buscar o código do item selecionado
Else
MsgBox("Dados inválidos para pesquisa!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum campo de pesquisa for inválido o cursor é movido para a testbox1
End If
reader = cmd.ExecuteReader()
reader.Read()
184
CodigoLinha = reader("cod_linha")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
Catch ex As Exception
MsgBox(ex.Message)
ComboBox2.Focus() 'função focus
End Try
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Try 'Tratando erro
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If ComboBox1.Text <> " " Then 'Condição para a pesquisa no banco de dados
cmd.CommandText = "SELECT * FROM categoria where nome_categoria =
'" & ComboBox1.Text & "'" 'condição para buscar o código do item selecionado
Else
MsgBox("Dados inválidos para pesquisa!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum campo de pesquisa for inválido o cursor é movido para a testbox1
End If
reader = cmd.ExecuteReader()
reader.Read()
CodigoCategoria = reader("cod_categoria")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
Catch ex As Exception
MsgBox(ex.Message)
Button1.Focus() 'função focus
End Try
End Sub
185
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
cod_barras()
TextBox1.Text = dimi
Else
TextBox1.Clear()
End If
End Sub
End Class
„**********************************************************************
'ATUALIZAÇÃO DE PRODUTOS
'**********************************************************************
‟
ATUALIZARPRODUTO.VB
'
Imports MySql.Data.MySqlClient
Public Class AtualizarProduto
Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
'Botão atualizar
Try
If Val(TextBox6.Text) > 0 And Val(TextBox7.Text) > 0 Then
If MsgBox("Deseja atualizar este produto?", vbYesNo, "confirmação") = vbYes Then ' Atualização
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE produtos SET qtde_produto = ? WHERE
cod_produto = " & CInt(Trim(TextBox5.Text)) 'condição para alteração. Função trim (para
remover espaços iniciais e finais), função cint (o número digitado deve sempre ser inteiro.
.Parameters.Add("qtde_produto", OleDb.OleDbType.Integer)
186
.Parameters("qtde_produto").Value = +CInt(Trim(TextBox7.Text)) +
CInt(Trim(TextBox6.Text)) 'a nova quantidade será somada com a quantidade antiga e assim
atualizanda a quantidade
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco de dados
MsgBox("Cadastro atualizado com sucesso!", vbInformation)
'função clear, limpa os dados digitados na textbox
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox9.Clear()
TextBox10.Clear()
'Função enabled.
TextBox1.Enabled = True
TextBox2.Enabled = True
TextBox3.Enabled = True
TextBox4.Enabled = True
TextBox5.Enabled = True
TextBox6.Enabled = True
TextBox8.Enabled = True
TextBox9.Enabled = True
TextBox10.Enabled = True
Button5.Enabled = False
'função focus
TextBox5.Focus()
Else
MsgBox("Atualização cancelada.", vbCritical)
TextBox5.Focus()
187
End If
Else
MsgBox("Campo invalido. Existem campos nulos!", vbCritical)
TextBox6.Focus()
End If
Catch erro As Exception
MsgBox(erro.Message)
TextBox6.Focus()
End Try
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'botão consultar
Try 'Tratando erro
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open() 'Abri o banco de dados
'SELEÇÃO de dados no banco
If Val(TextBox1.Text) > 0 Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where cod_barras = " &
CInt(Trim(TextBox1.Text)) 'segunda condição de pesquisa. Função trim (remove espaços
iniciais e finais), função cint(valor inteiro)
ElseIf TextBox5.Text > " " Then 'cada condição representa um tipo de pesquisa
no banco de dados de acordo com o que é digitado no fórmulario, no caso as textbox.
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where cod_produto = '" &
Trim(TextBox5.Text) & "'" 'condição de pesquisa. Função trim (remove espaços iniciais e
finais), função cint(valor inteiro)
ElseIf TextBox2.Text > " " Then
188
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where nome_produto like '%"
& Trim(TextBox2.Text) & "%'" 'terceira condição de pesquisa. Função trim (remove espaços
iniciais e finais)
ElseIf TextBox3.Text > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from produtos A inner join
marcas B on(A.cod_marca=B.cod_marca)inner join linha C on(A.cod_linha=C.cod_linha)
inner join categoria D on(A.cod_categoria=D.cod_categoria) where descricao_produto like
'%" & Trim(TextBox3.Text) & "%'" 'quarta condição de pesquisa. Função trim (remove espaços iniciais e finais)
ElseIf TextBox9.Text > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from marcas A inner join produtos B on(B.cod_marca=A.cod_marca)inner join linha C on(B.cod_linha=C.cod_linha) inner
join categoria D on(B.cod_categoria=D.cod_categoria) where nome_marca like '%" &
Trim(TextBox9.Text) & "%'" 'quinta condição de pesquisa. Função trim (remove espaços
iniciais e finais)
ElseIf TextBox8.Text > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from linha A inner join produtos B on(B.cod_linha=A.cod_linha) inner join marcas C on(B.cod_marca=C.cod_marca) inner join categoria D on(B.cod_categoria=D.cod_categoria) where nome_linha like '%" &
Trim(TextBox8.Text) & "%'" 'sexta condição de pesquisa. Função trim (remove espaços iniciais e finais)
ElseIf TextBox10.Text > " " Then
cmd.CommandText = "select A.*,B.*,C.*, D.* from categoria A inner join
produtos
B
on(B.cod_categoria=A.cod_categoria)
inner
join
marcas
C
on(B.cod_marca=C.cod_marca) inner join linha D on(B.cod_linha=D.cod_linha) where nome_categoria like '%" & Trim(TextBox10.Text) & "%'" 'sétima condição de pesquisa. Função
trim (remove espaços iniciais e finais)
Else
MsgBox("Dados inválidos para pesquisa!") 'caso o usuario não digite nada
nas condições de pesquisa será exibida esta mensagem
TextBox5.Focus() 'função focus move o cursor para a textbox5
End If
189
reader = cmd.ExecuteReader()
reader.Read()
TextBox1.Text = reader("cod_barras")
TextBox2.Text = reader("nome_produto")
TextBox3.Text = reader("descricao_produto")
TextBox4.Text = reader("vlr_unitario")
TextBox5.Text = reader("cod_produto")
TextBox6.Text = reader("qtde_produto")
TextBox9.Text = reader("nome_marca")
TextBox8.Text = reader("nome_linha")
TextBox10.Text = reader("nome_categoria")
reader.Close() 'fecha a leitura com o banco de dados
con.Close() 'fecha a conexão com o banco de dados
'função enabled
TextBox1.Enabled = False
TextBox2.Enabled = False
TextBox3.Enabled = False
TextBox4.Enabled = False
TextBox5.Enabled = False
TextBox6.Enabled = False
TextBox8.Enabled = False
TextBox9.Enabled = False
TextBox10.Enabled = False
Button5.Enabled = True
'função focus. Move o curso para a textbox7
TextBox7.Focus()
Catch mensagem As Exception
MsgBox(mensagem.Message) 'mensagem de erro.
TextBox5.Focus() 'função focus move o cursor para a textbox5
End Try
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
'botão retornar
190
Close() 'fecha o formulário
principal.Show() 'executa o menu principal
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
'Função para o botão limpar
TextBox1.Enabled = True 'função enabled
TextBox2.Enabled = True
TextBox3.Enabled = True
TextBox4.Enabled = True
TextBox5.Enabled = True
TextBox6.Enabled = True
TextBox8.Enabled = True
TextBox9.Enabled = True
TextBox10.Enabled = True
Button5.Enabled = False
TextBox1.Clear() 'função clear limpa as textbox
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox9.Clear()
TextBox10.Clear()
TextBox5.Focus() 'função focus move o cursor para a textbox5
End Sub
Private
Sub
TextBox5_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(SoNumeros(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
191
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private
Sub
TextBox1_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(SoNumeros(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private
Sub
TextBox2_KeyPress(sender
As
Object,
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then
e
As
Sys-
192
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private
Sub
TextBox3_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private
Sub
TextBox4_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
'condição para limitar a vírgula. Só é aceito uma vírgula no campo valor do produto.
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not
e.KeyChar = "," Then e.Handled = True
If e.KeyChar = "," And (InStr(TextBox4.Text, ",")) > 0 Then e.Handled = True
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox6.Focus() 'função focus, quando o usuário digita enter o cursor irá para
a textbox6
End If
End Sub
193
Private
Sub
TextBox6_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox7.Focus() 'função focus, quando o usuário digita enter o cursor irá para
a textbox7
End If
End Sub
Private
Sub
TextBox7_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox7.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço para a textbox (quantidade de produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button5_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
194
End If
End Sub
Private
Sub
TextBox8_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox8.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private
Sub
TextBox9_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox9.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private
Sub
TextBox10_KeyPress(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
195
Private
Sub
AtualizarProduto_KeyDown(sender
As
Object,
e
As
Sys-
tem.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
End If
End Sub
End Class
„**********************************************************************
'ALTERAÇÃO DE PRODUTO
'**********************************************************************
‟
ALTERARPRODUTO.VB
'
Public Class AlterarProduto
Dim moeda As String
Private Function limpar() 'função para limpar os campos.
'função para o botão apagar
TextBox1.Clear() 'função clear, apaga os dados na textbox
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
MaskedTextBox1.Clear()
CheckBox1.Checked = False
TextBox5.Enabled = True 'função enabled. Abilita determiados objetos
Button5.Enabled = False
TextBox5.Focus() 'função focus, move o cursor para o campo informado
Return TextBox1.Text()
End Function
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If Button5.Text = "Alterar" Then
Try
196
If
Val(TextBox1.Text)
>
0
And
TextBox2.Text
>
"
"
And
Val(TextBox4.Text) > -1 And Val(TextBox6.Text) > 0 Then 'condição para que seja feita a
alteração. Não pode aver valores nulos
If MsgBox("Deseja alterar este produto?", vbYesNo, "confirmação") = vbYes Then ' ALTERAÇÃO
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE produtos SET cod_barras = ?, nome_produto = ?, descricao_produto = ?, vlr_unitario = ?, qtde_produto = ?, data_cads_prod =
? WHERE cod_produto = " & CInt(Trim(TextBox5.Text)) 'Função trim para tirar os epaços
finais e iniciais e cint para o valor ser apenas inteiro
.Parameters.Add("cod_barras", OleDb.OleDbType.Char)
.Parameters("cod_barras").Value = Trim(TextBox1.Text) 'função trim
e cint para remover espaços iniciais e finais. Cint para que o valor seja apenas inteiro
.Parameters.Add("nome_produto", OleDb.OleDbType.VarChar)
.Parameters("nome_produto").Value = Trim(TextBox2.Text) 'função
trim para remover espaços
.Parameters.Add("descricao_produto", OleDb.OleDbType.VarChar)
.Parameters("descricao_produto").Value = Trim(TextBox3.Text) 'função trim, remove espaços
.Parameters.Add("vlr_unitario", OleDb.OleDbType.Decimal)
.Parameters("vlr_unitario").Value = Trim(Replace(TextBox4.Text, ".",
",")) 'função trim, remove epaços finais e iniciais.
.Parameters.Add("qtde_produto", OleDb.OleDbType.Integer)
.Parameters("qtde_produto").Value = Trim(TextBox6.Text) 'função
trim e cint para remover espaços iniciais e finais. Cint para que o valor seja apenas inteiro
.Parameters.Add("data_cads_prod", OleDb.OleDbType.Date)
.Parameters("data_cads_prod").Value
CDate(MaskedTextBox1.Text)
.ExecuteNonQuery()
End With
=
197
con.Close()
MsgBox("Cadastro alterado com sucesso!", vbInformation)
limpar() 'fução para limpar as textbox e abilitar determinado obejto após
a lateração.
Else
MsgBox("Alteração cancelada!", vbExclamation)
TextBox5.Focus() 'função focus. Sempre que a alteração é cancelada o
curso volta para a textbox5
End If
Else
MsgBox("Campo inválido.", vbCritical)
TextBox5.Focus() 'função focus. Sempre que da algum campo inválido o
curso volta para a textbox5
End If
Catch ex1 As Exception
MsgBox(ex1.Message)
TextBox5.Focus() 'função focus. Sempre que da erro o curso volta para a
textbox5
End Try
ElseIf Button5.Text = "Excluir" Then 'condição para quando o botão for excluir.
Executa as instruções abaixo
Try 'FUNÇÃO EXCLUÍR
If
Val(TextBox1.Text)
>
0
And
TextBox2.Text
>
"
"
And
Val(TextBox4.Text) > 0 And Val(TextBox6.Text) > 0 Then 'condição para exclusão do produto. Não pode haver valores nulos execeto a descrição do produto
If MsgBox("Deseja excluir este produto?", vbYesNo, "Confirmação") =
vbYes Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
198
.CommandText = "Delete FROM produtos where cod_produto = " &
CInt(Trim(TextBox5.Text)) 'a função cint permite apenas valores interiros na textbox. A função trim remove os espaçosfinais e iniciais
.Parameters.Add("produtos", OleDb.OleDbType.VarChar)
.Parameters("produtos").Value = TextBox5.Text
.ExecuteNonQuery()
End With
MsgBox("Registro excluído com êxito!", vbInformation)
con.Close() 'fecha a conexão com o banco de dados
limpar() 'função limpar, o comando é executa após a exclusão do produto.
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox5.Focus() 'função focus. Sempre que uma operação é cancelada
o curso volta para a textbox5
End If
Else
MsgBox("Dados inválido!", vbCritical)
TextBox5.Focus() 'função focus. Sempre que há um campo inválido o curso volta para a textbox5
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox5.Focus() 'função focus. Sempre que da erro o curso volta para a
textbox5
End Try
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Close() 'fecha o formulário
principal.Show() 'executa o formulário prinpical
End Sub
199
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try 'Tratando erros
Dim data As Date
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
If CChar(TextBox1.Text) > " " Then
cmd.CommandText = "SELECT * FROM produtos where cod_barras = '" &
Trim(TextBox1.Text) & "'" 'a função cint permite apenas valores interiros na textbox. A função trim remove os espaçosfinais e iniciais
ElseIf Val(TextBox5.Text) > 0 Then
cmd.CommandText = "SELECT * FROM produtos where cod_produto = " &
CInt(Trim(TextBox5.Text)) 'a função cint permite apenas valores interiros na textbox. A função trim remove os espaçosfinais e iniciais
ElseIf TextBox2.Text > " " Then
cmd.CommandText = "SELECT * FROM produtos where nome_produto like
'%" & Trim(TextBox2.Text) & "%'" 'Função trim, remove os epaços iniciais e finais
ElseIf TextBox3.Text > " " Then
cmd.CommandText = "SELECT * FROM produtos where descricao_produto
like '%" & Trim(TextBox3.Text) & "%'" 'Função trim, remove os epaços iniciais e finais
Else
MsgBox("Dados inválido para pesquisa!", vbCritical)
TextBox5.Focus() 'função focus. Sempre que é feito uma consulta e algum
campo está inválido o curso volta para a textbox5
End If
reader = cmd.ExecuteReader()
reader.Read()
TextBox1.Text = reader("cod_barras")
TextBox2.Text = reader("nome_produto")
TextBox3.Text = reader("descricao_produto")
TextBox4.Text = reader("vlr_unitario")
TextBox5.Text = reader("cod_produto")
200
TextBox6.Text = reader("qtde_produto")
data = reader("data_cads_prod")
MaskedTextBox1.Text = data
con.Close() 'fecha o conexão com o banco de dados
Button5.Enabled = True 'função enabled
TextBox5.Enabled = False
TextBox5.Focus() ' função focus, move o cursor para o campo especificado
Catch ex As Exception
MsgBox(ex.Message)
TextBox5.Focus() ' função focus. Sempre que ocorre um erro quando cultado
um produto o curso volta para a textbox5
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
limpar() 'Função limpar. Instruções executada para limpar as textbox
End Sub
Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
'condição para limitar a vírgula. Só é aceito uma vírgula no campo valor do produto.
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not
e.KeyChar = "," Then e.Handled = True
If e.KeyChar = "," And (InStr(TextBox4.Text, ",")) > 0 Then e.Handled = True
201
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox6.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Ação executada no momente em que o
usuário digita enter
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
202
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox2.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox3.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
TextBox4.Focus() 'função focus, move o cursor para o campo especificado.
End If
End Sub
Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
203
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
If MaskedTextBox1.Enabled = True Then
MaskedTextBox1.Focus() 'função focus, move o cursor para o campo especificado.
Else
e.KeyChar = Chr(13)
Button5_Click(Me, EventArgs.Empty)
End If
End If
End Sub
Private Sub MaskedTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button5_Click(Me, EventArgs.Empty) 'Ação executada no momente em que o
usuário digita enter
End If
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
MaskedTextBox1.Enabled = True
TextBox6.Focus()
Else
MaskedTextBox1.Enabled = False
TextBox6.Focus()
End If
End Sub
204
Private Sub AlterarProduto_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
Private Sub AlterarProduto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Button5.Text = "Excluir" Then
CheckBox1.Enabled = False
End If
End Sub
Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox4.TextChanged
End Sub
End Class
„**********************************************************************
'ALTERAR MARCA
'**********************************************************************
‟
ALTERARMARCA.VB
'
Public Class AlterarMarca
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Button2.Text = "Alterar" Then
Try
conexao_mysql() 'procedure de conexão e comando (cmd e con)
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " Then '
If MsgBox("Deseja alterar esta marca?", vbYesNo, "confirmação") = vbYes Then
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
205
.CommandType = CommandType.Text
.CommandText = "UPDATE marcas SET nome_marca = ? WHERE
cod_marca = " & CInt(Trim(TextBox1.Text)) 'Só pode haver valores inteiros(número). Função trim romove espaços iniciais e finais da textbox
.Parameters.Add("nome_marca", OleDb.OleDbType.VarChar)
.Parameters("nome_marca").Value = Trim(TextBox2.Text) 'Função
trim romove espaços iniciais e finais da textbox
.ExecuteNonQuery()
End With
con.Close() 'Fecha a conexão com o banco de dados
MsgBox("Cadastro alterado com sucesso!", vbInformation)
TextBox1.Clear() 'função clear, limpa as textbox após a alteração
TextBox2.Clear()
TextBox1.Enabled = True 'função enabled para determinar o campo que
fica desabilitado ou o botãõ que recebe a ação.
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
Else
MsgBox("Alteração cancelada!", vbExclamation)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Else
MsgBox("Campo inválido.", vbCritical)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Catch ex1 As Exception
MsgBox(ex1.Message)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Try
ElseIf Button2.Text = "Excluir" Then 'Condição para quando o botão for excluir.
Executa as instruções abaixo
Try 'Tratando erro
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " Then 'condição para exclusão. Nenhum valor pode ser nulo
206
If MsgBox("Deseja excluir esta marca?", vbYesNo, "confirma") = vbYes
Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "Delete FROM marcas where cod_marca = " &
CInt(Trim(TextBox1.Text))
.Parameters.Add("nome_marca", OleDb.OleDbType.VarChar)
.Parameters("nome_marca").Value = TextBox1.Text
.ExecuteNonQuery()
End With
con.Close() 'Feha a conexão com o banco de dados
MsgBox("Registro excluído com êxito!", vbInformation)
TextBox1.Clear() 'função clear
TextBox2.Clear()
TextBox1.Enabled = True 'função enabled
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Else
MsgBox("Valor informado inválido!", vbCritical)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Catch ex2 As Exception
MsgBox(ex2.Message)
MsgBox("A marca não foi excluída. Exclua o produto desta marca antes!",
vbCritical)
TextBox1.Enabled = True 'função enabled
Button2.Enabled = False
207
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Try
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Close() 'fecha o formulário
principal.Show() 'executa o menu principal
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try 'Tratando erro de conexão
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
If TextBox2.Text > " " Then
cmd.CommandText = "SELECT * FROM marcas where nome_marca like
'%" & Trim(TextBox2.Text) & "%'" 'Função trim romove espaços iniciais e finais da textbox
ElseIf Val(TextBox1.Text) > 0 Then
cmd.CommandText = "SELECT * FROM marcas where cod_marca = " &
CInt(Trim(TextBox1.Text)) 'Só pode haver valores inteiros(número). Função trim romove
espaços iniciais e finais da textbox
Else
MsgBox("Valor inválido!", vbCritical)
TextBox1.Focus()
End If
reader = cmd.ExecuteReader()
reader.Read()
TextBox1.Text = reader("cod_marca")
TextBox2.Text = reader("nome_marca")
reader.Close() 'fecha a leitura do no banco
con.Close() 'fecha a conexão com o banco de dados
TextBox1.Enabled = False
208
Button2.Enabled = True
TextBox2.Focus() 'Função focus, move o cursor para o campo informado
Catch ex3 As Exception
MsgBox(ex3.Message)
TextBox1.Enabled = True
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Try
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'Instrução para o botão apagar
TextBox1.Clear()
TextBox2.Clear()
TextBox1.Enabled = True
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
209
Button1_Click(Me, EventArgs.Empty) 'ação para quando uma das textbox é digitado enter.
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'ação para quando uma das textbox é digitado enter.
End If
End Sub
Private Sub AlterarMarca_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
End Class
„**********************************************************************
'ALTERAR LINHA
'**********************************************************************
‟
ALTERARLINHA.VB
'
Public Class AlterarLinha
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Button2.Text = "Alterar" Then 'instução para quando o botão for Alterar
Try
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " Then
If MsgBox("Deseja alterar esta linha?", vbYesNo, "confirmação") = vbYes
Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
210
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE linha SET nome_linha = ? WHERE
cod_linha = " & CInt(Trim(TextBox1.Text)) 'Condição para a primeira pesquisa. Os dados
digitados tem de ser do tipo integer. A função trim remove espaços iniciais e finais
.Parameters.Add("nome_linha", OleDb.OleDbType.VarChar)
.Parameters("nome_linha").Value = Trim(TextBox2.Text) 'Condição
para a segunda pesquisa. Os dados digitados tem de ser do tipo texto. A função trim remove
espaços iniciais e fianis
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco de dados
MsgBox("Cadastro alterado com sucesso!", vbInformation)
TextBox1.Clear() 'limpa a textbox após o cadastro
TextBox2.Clear()
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos
no formulário
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
Else
MsgBox("Alteração cancelada!", vbExclamation)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Else
MsgBox("Campo invalido.", vbCritical)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Catch ex1 As Exception
MsgBox(ex1.Message)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Try
ElseIf Button2.Text = "Excluir" Then 'instrução para quando o botão for Excluir
Try
211
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " Then
If MsgBox("Deseja excluir esta linha?", vbYesNo, "confirma") = vbYes
Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "Delete FROM linha where cod_linha = " &
CInt(Trim(TextBox1.Text)) 'função trim: remove espaços iniciais e finais. Cint: os valores
númericos devem ser do tipo integer
.Parameters.Add("linha", OleDb.OleDbType.VarChar)
.Parameters("linha").Value = TextBox1.Text
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexão com o banco de dados
MsgBox("Registro excluído com êxito!", vbInformation)
TextBox1.Clear() 'função clear, limpa as textbox
TextBox2.Clear()
TextBox1.Enabled = True ''Função abilitar, abilita determinados objetos
no formulário
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Else
MsgBox("Informação para exclusão inválida!", vbCritical)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
Catch ex2 As Exception
MsgBox(ex2.Message)
212
MsgBox("A linha não foi excluída. Exclua o produto desta linha antes!", vbCritical)
TextBox1.Enabled = True 'função enabled
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Try
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Close() 'fecha o formulário
principal.Show() 'executa o menu principal
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try 'Tratando no formulario e na conexão
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con
con.Open() 'abri a conexão com o banco de dados
If TextBox2.Text > " " Then
cmd.CommandText = "SELECT * FROM linha where nome_linha like '%" &
Trim(TextBox2.Text) & "%'" 'Condição para a segunda pesquisa. Os dados digitados tem de
ser do tipo texto. A função trim remove espaços iniciais e fianis
ElseIf Val(TextBox1.Text) > 0 Then
cmd.CommandText = "SELECT * FROM linha where cod_linha = " &
CInt(Trim(TextBox1.Text)) 'Condição para a primeira pesquisa. Os dados digitados tem de
ser do tipo integer. A função trim remove espaços iniciais e finais
Else
MsgBox("Valor inválido!", vbCritical)
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End If
reader = cmd.ExecuteReader()
reader.Read()
213
TextBox1.Text = reader("cod_linha")
TextBox2.Text = reader("nome_linha")
reader.Close() 'fecha a leitura do banco de dados
con.Close() 'fecha a conexão com o banco de dados
'Função abilitar
Button2.Enabled = True
TextBox1.Enabled = False
TextBox2.Focus() 'Função focus, move o cursor para o campo informado
Catch ex3 As Exception
MsgBox(ex3.Message)
TextBox1.Enabled = True ''Função abilitar, abilita determinados objetos no formulário
Button2.Enabled = False
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Try
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'Instrução para o botão apagar
TextBox1.Clear() 'função clear
TextBox2.Clear()
Button2.Enabled = False 'Função abilitar, abilita determinados objetos no formulário
TextBox1.Enabled = True
TextBox1.Focus() 'Função focus, move o cursor para o campo informado
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os número. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
214
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'ação quando o usuário digita enter em
uma das textbox
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'ação quando o usuário digita enter em
uma das textbox
End If
End Sub
Private Sub AlterarLinha_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
End Class
„**********************************************************************
'ALTERAR CATEGORIA
'**********************************************************************
‟
ALTERARCATEGORIA.VB
'
Public Class AlterarCategoria
Private Sub seta_navegator(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
215
If e.KeyCode = Keys.Up Then
If
Not
Me.GetNextControl(sender,
False)
Is
Nothing
Then
Me.GetNextControl(sender, False).Focus()
ElseIf e.KeyCode = Keys.Down Then 'Or e.KeyCode = Keys.Enter Then
If
Not
Me.GetNextControl(sender,
True)
Is
Nothing
Then
Me.GetNextControl(sender, True).Focus()
End If
End Sub
Private Function limpar_dados()
'Instrução para o botão apagar
TextBox1.Clear()
TextBox2.Clear()
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos no formulário
Button2.Enabled = False
TextBox1.Focus() 'função focus, quando o botão apagar e clickado o cursor irá para a textbox1
Return TextBox1.Text()
End Function
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Button2.Text = "Alterar" Then 'ação para o botão quando for Alterar
Try
If Val(TextBox1.Text) > 0 And TextBox2.Text > " " Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
If MsgBox("Deseja alterar esta categoria?", vbYesNo, "confirmação") =
vbYes Then
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE categoria SET nome_categoria = ?
WHERE cod_categoria = " & CInt(Trim(TextBox1.Text)) 'O tipo de dados dever ser integer e
a função trim romove os espaços iniciais e finais da textbox
216
.Parameters.Add("nome_categoria", OleDb.OleDbType.VarChar)
.Parameters("nome_categoria").Value = Trim(TextBox2.Text) 'Função
trim. Romove espaços iniciais e finais da textbox
.ExecuteNonQuery()
End With
con.Close() 'Fecha a conexão com o banco de dados
limpar_dados() 'função limpar, limpa as textbox após a alteração
MsgBox("Cadastro alterado com sucesso!", vbInformation)
Else
MsgBox("Alteração cancelada!", vbExclamation)
TextBox1.Focus() 'função focus, usado para mover o cursor para o campo requerido.
End If
Else
MsgBox("Campo invalido.", vbCritical)
TextBox1.Focus() 'função focus, usado para mover o cursor para o campo
requerido.
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'função focus, usado para mover o cursor para o campo requerido.
End Try
ElseIf Button2.Text = "Excluir" Then 'quando o botão seja seja excluir
Try 'Tratando erro
If CInt(TextBox1.Text) > 0 And TextBox2.Text > " " Then
If MsgBox("Deseja excluir esta categoria?", vbYesNo, "confirma") = vbYes Then
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.Connection = con
con.Open() 'Abri a conexão com o banco de dados
With cmd
.CommandType = CommandType.Text
217
.CommandText = "Delete FROM categoria where cod_categoria = " &
CInt(Trim(TextBox1.Text)) 'O tipo de dados dever ser integer e a função trim romove os espaços iniciais e finais da textbox
.Parameters.Add("categoria", OleDb.OleDbType.VarChar)
.Parameters("categoria").Value = TextBox1.Text 'Função trim. Romove espaços iniciais e finsais da textbox
.ExecuteNonQuery()
End With
con.Close() 'Fecha a conexão com o banco de dados
limpar_dados() 'função limpar, limpa as textbox após a exclusão
MsgBox("Registro excluído com êxito!", vbInformation)
Else
MsgBox("Exclusão cancelada!", vbExclamation)
TextBox1.Focus() 'função focus, quando a exclusão é cancelada o cursor
volta para a textbox1
End If
Else
MsgBox("Informação para exclusão inválida!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum dado incorreto para pesquisa o cursor volta para a textbox1
End If
Catch ex As Exception
MsgBox(ex.Message)
MsgBox("A categoria não foi excluída. Exclua o produto desta categoria antes!", vbCritical)
TextBox1.Enabled = True 'Função abilitar, abilita determinados objetos no
formulário
Button2.Enabled = False
TextBox1.Focus() 'função focus, quando a mensagem de erro é exibida na tela
o cursor volta para a textbox1
End Try
End If
End Sub
218
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close() 'fecha o formulário
principal.Show() 'Executa o formulário principal
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try 'Tratando erro
conexao_mysql() 'procedure de conexão e comando (cmd, con)
cmd.Connection = con
con.Open() 'Abre a conexão com o banco de dados
cmd.CommandType = System.Data.CommandType.Text
If TextBox2.Text > " " Then 'Segunda condição para pequisa no banco de dados
cmd.CommandText = "SELECT * FROM categoria where nome_categoria
like '%" & Trim(TextBox2.Text) & "%'" 'Função trim romove espaços iniciais e finais da
textbox
ElseIf Val(TextBox1.Text) > 0 Then 'Condição para a pesquisa no banco de dados
cmd.CommandText = "SELECT * FROM categoria where cod_categoria = "
& CInt(Trim(TextBox1.Text)) 'Só pode haver valores inteiros(número). Função trim romove
espaços iniciais e finais da textbox
Else
MsgBox("Dados inválidos para pesquisa!", vbCritical)
TextBox1.Focus() 'função focus, quando a algum campo de pesquisa inválido
o cursor é movido para a testbox1
End If
reader = cmd.ExecuteReader()
reader.Read()
TextBox1.Text = reader("cod_categoria")
TextBox2.Text = reader("nome_categoria")
reader.Close() 'Fecha a leitura com o banco de dados
con.Close() 'Fecha a conexão com o banco de dados
TextBox1.Enabled = False 'Função abilitar, abilita determinados objetos no formulário
219
Button2.Enabled = True
TextBox2.Focus() 'quando a select é executado com sucesso o cursor irá para a
textbox2 por que a textbox1 fica desabilitada
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'função focus, move o cursor quando tem algum erro para a
textbox1
End Try
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
limpar_dados()
End Sub
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
seta_navegator(sender, e)
End Sub
Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
seta_navegator(sender, e)
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
220
End If
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o botão é clickado
End If
End Sub
Private Sub AlterarCategoria_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
End Class
„**********************************************************************
'ACESSOS
'**********************************************************************
‟
ACESSOS.VB
'
Public Class Acessos
Dim nome_login, nome_usuario As String
Private Function auto_checar()
CheckBox1.Checked = True
CheckBox2.Checked = True
CheckBox3.Checked = True
CheckBox4.Checked = True
CheckBox5.Checked = True
221
CheckBox6.Checked = True
CheckBox7.Checked = True
CheckBox8.Checked = True
CheckBox9.Checked = True
CheckBox10.Checked = True
CheckBox11.Checked = True
CheckBox12.Checked = True
CheckBox13.Checked = True
CheckBox16.Checked = True
CheckBox18.Checked = True
CheckBox19.Checked = True
CheckBox20.Checked = True
CheckBox21.Checked = True
CheckBox22.Checked = True
CheckBox23.Checked = True
Return CheckBox1.Checked()
End Function
Private Function desabilitar_checbox()
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
CheckBox4.Checked = False
CheckBox5.Checked = False
CheckBox6.Checked = False
CheckBox7.Checked = False
CheckBox8.Checked = False
CheckBox9.Checked = False
CheckBox10.Checked = False
CheckBox11.Checked = False
CheckBox12.Checked = False
CheckBox13.Checked = False
CheckBox16.Checked = False
CheckBox18.Checked = False
CheckBox19.Checked = False
222
CheckBox20.Checked = False
CheckBox21.Checked = False
CheckBox22.Checked = False
CheckBox23.Checked = False
Return CheckBox1.Checked()
End Function
Private Function apagar()
TextBox1.Clear()
TextBox2.Clear()
MaskedTextBox1.Clear()
MaskedTextBox2.Clear()
Button5.Enabled = False
Return TextBox1.Text()
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
conexao_mysql() 'procedure de conexão e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'variavel de conexão
con.Open() 'abri o banco
If TextBox1.Text > " " Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where nome_usuario like '%" & Trim(TextBox1.Text) & "%'"
ElseIf Val(MaskedTextBox1.Text) > 0 Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where rg_usuario = '" & Trim(MaskedTextBox1.Text) & "'"
ElseIf Val(MaskedTextBox2.Text) > 0 Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where cpf_usuario = '" & Trim(MaskedTextBox2.Text) & "'"
ElseIf TextBox2.Text > " " Then
cmd.CommandText = "select A.*, B.* from usuario A INNER JOIN login B
on(A.cod_login=B.cod_login) where nome_login = '" & Trim(TextBox2.Text) & "'"
Else
223
MsgBox("Dados inocrreto para pesquisa!", vbCritical) 'quando os campos estã nulos e o usuário tenta fazer pequisa.
TextBox1.Focus()
End If
reader = cmd.ExecuteReader() 'comando para executar a reader
reader.Read() 'variável reader para ler os dados selecionado na select
cod_login = reader("cod_login") 'codigo atendente. será usado na alteração do
usuario
If cod_login > 1 Then
TextBox2.Text = reader("nome_login")
nome_login = TextBox2.Text
TextBox1.Text = reader("nome_usuario")
nome_usuario = TextBox1.Text
MaskedTextBox1.Text = reader("rg_usuario")
MaskedTextBox2.Text = reader("cpf_usuario")
CheckBox1.Checked = reader("alt_categoria")
CheckBox2.Checked = reader("cad_categoria")
CheckBox3.Checked = reader("exc_categoria")
CheckBox4.Checked = reader("exc_linha")
CheckBox5.Checked = reader("cad_linha")
CheckBox6.Checked = reader("alt_linha")
CheckBox7.Checked = reader("exc_marca")
CheckBox8.Checked = reader("cad_marca")
CheckBox9.Checked = reader("alt_marca")
CheckBox10.Checked = reader("exc_produto")
CheckBox11.Checked = reader("cad_produto")
CheckBox12.Checked = reader("alt_produto")
CheckBox13.Checked = reader("exc_itens_venda")
CheckBox16.Checked = reader("exc_venda")
CheckBox18.Checked = reader("alt_venda")
CheckBox19.Checked = reader("exc_usuario")
CheckBox20.Checked = reader("cad_usuario")
CheckBox21.Checked = reader("alt_usuario")
CheckBox22.Checked = reader("relatorio")
224
CheckBox23.Checked = reader("atualizar")
Button5.Enabled = True
reader.Close() 'fechando a reader
con.Close() 'fechando o banco de dados
Else
MsgBox("Consulta inválida.", vbCritical)
End If
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & " Login não encontrado!", vbCritical)
Button5.Enabled = False
TextBox1.Focus()
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
apagar() 'função apagar.
desabilitar_checbox() 'função para desabilitar as checbox
TextBox1.Focus() 'move o cursor para a textbox1
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Try
If TextBox1.Text > " " And TextBox2.Text > " " Then
If nome_login = TextBox2.Text And nome_usuario = TextBox1.Text Then
If MsgBox("Deseja efetuar estas configurações?", vbYesNo, "confirmação") = vbYes Then
sisve_acessos() 'procedure de configuração de acesso ao sistema
TextBox1.Focus()
desabilitar_checbox() 'função de checkbox - deixa como 0 a chechbox,
ou seja, checbox=false
apagar() 'função apagar
Else
MsgBox("Configuração cancelada.", vbExclamation)
End If
225
Else
MsgBox("Alteração inválida! Cadastro diferente do consultado.", vbCritical)
End If
Else
MsgBox("Alteração invalida, verifique os campos e tente novamente!", vbCritical)
End If
Catch sal As Exception
MsgBox(sal.Message)
TextBox1.Focus()
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
principal.Show()
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
tacesso(0, 0) = 1 'alterar categoria
Else
tacesso(0, 0) = 0
End If
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
tacesso(0, 1) = 1 'cadastrar categoria
Else
tacesso(0, 1) = 0
End If
End Sub
226
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox3.CheckedChanged
If CheckBox3.Checked = True Then
tacesso(0, 2) = 1 'excluir categoria
Else
tacesso(0, 2) = 0
End If
End Sub
Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox6.CheckedChanged
If CheckBox6.Checked = True Then
tacesso(0, 3) = 1 'alterar linha
Else
tacesso(0, 3) = 0
End If
End Sub
Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox5.CheckedChanged
If CheckBox5.Checked = True Then
tacesso(0, 4) = 1 'cadastrar linha
Else
tacesso(0, 4) = 0
End If
End Sub
Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox4.CheckedChanged
If CheckBox4.Checked = True Then
tacesso(0, 5) = 1 'excluir linha
Else
tacesso(0, 5) = 0
End If
End Sub
Private Sub CheckBox9_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox9.CheckedChanged
227
If CheckBox9.Checked = True Then
tacesso(0, 6) = 1 'alteerar marca
Else
tacesso(0, 6) = 0
End If
End Sub
Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox8.CheckedChanged
If CheckBox8.Checked = True Then
tacesso(0, 7) = 1 'cadastrar marca
Else
tacesso(0, 7) = 0
End If
End Sub
Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles CheckBox7.CheckedChanged
If CheckBox7.Checked = True Then
tacesso(0, 8) = 1 'excluir marca
Else
tacesso(0, 8) = 0
End If
End Sub
Private Sub CheckBox12_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox12.CheckedChanged
If CheckBox12.Checked = True Then
tacesso(0, 9) = 1 'alterar produto
Else
tacesso(0, 9) = 0
End If
End Sub
Private Sub CheckBox11_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox11.CheckedChanged
If CheckBox11.Checked = True Then
tacesso(0, 10) = 1 'cadastrar produto
228
Else
tacesso(0, 10) = 0
End If
End Sub
Private Sub CheckBox10_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox10.CheckedChanged
If CheckBox10.Checked = True Then
tacesso(0, 11) = 1 'excluir produto
Else
tacesso(0, 11) = 0
End If
End Sub
Private Sub CheckBox13_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox13.CheckedChanged
If CheckBox13.Checked = True Then
tacesso(0, 12) = 1 'excluir itens venda
Else
tacesso(0, 12) = 0
End If
End Sub
Private Sub CheckBox18_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox18.CheckedChanged
If CheckBox18.Checked = True Then
tacesso(0, 13) = 1 'alterar venda
Else
tacesso(0, 13) = 0
End If
End Sub
Private Sub CheckBox16_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox16.CheckedChanged
If CheckBox16.Checked = True Then
tacesso(0, 14) = 1 'excluir venda
Else
tacesso(0, 14) = 0
229
End If
End Sub
Private Sub CheckBox21_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox21.CheckedChanged
If CheckBox21.Checked = True Then
tacesso(0, 15) = 1 'alterar usuário
Else
tacesso(0, 15) = 0
End If
End Sub
Private Sub CheckBox20_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox20.CheckedChanged
If CheckBox20.Checked = True Then
tacesso(0, 16) = 1 'cadastrar usuário
Else
tacesso(0, 16) = 0
End If
End Sub
Private Sub CheckBox19_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox19.CheckedChanged
If CheckBox19.Checked = True Then
tacesso(0, 17) = 1 'excluir usuário
Else
tacesso(0, 17) = 0
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
If Button4.Text = "Habilitar" Then
auto_checar()
Button4.Text = "Desabilitar"
Button5.Focus()
ElseIf Button4.Text = "Desabilitar" Then
desabilitar_checbox()
230
Button4.Text = "Habilitar"
TextBox1.Focus()
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
TextBox1.Focus() 'função focus, move o cursor para o campo especificado
End If
End Sub
Private Sub MaskedTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
TextBox1.Focus() 'função focus, move o cursor para o campo especificado
End If
End Sub
Private Sub MaskedTextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
TextBox1.Focus() 'função focus, move o cursor para o campo especificado
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty)
TextBox1.Focus() 'função focus, move o cursor para o campo especificado
End If
End Sub
Private Sub CheckBox23_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox23.CheckedChanged
231
If CheckBox23.Checked = True Then
tacesso(0, 18) = 1 'atualizar produtos
Else
tacesso(0, 18) = 0
End If
End Sub
Private Sub CheckBox22_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles CheckBox22.CheckedChanged
If CheckBox22.Checked = True Then
tacesso(0, 19) = 1 'relatório
Else
tacesso(0, 19) = 0
End If
End Sub
Private Sub Acessos_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Button3.PerformClick()
End If
End Sub
End Class
„**********************************************************************
'PRODUTOS
'**********************************************************************
‟
COSMETICOSDATASET1.VB
'
Partial Class cosmeticosDataSet1
End Class
„**********************************************************************
'REL_VENDAS
'**********************************************************************
‟
REL_VENDAS.VB
232
'
Partial Class lojacosmeticosDataSet
End Class
„**********************************************************************
'CRISTALREPORT1
'**********************************************************************
‟
CRISTALREPORT1.VB
'
Option Strict Off
Option Explicit On
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.Shared
Imports System
Imports System.ComponentModel
Public Class CrystalReport1
Inherits ReportClass
Public Sub New()
MyBase.New
End Sub
Public Overrides Property ResourceName() As String
Get
Return "CrystalReport1.rpt"
End Get
Set
'Do nothing
End Set
End Property
Public Overrides Property NewGenerator() As Boolean
Get
233
Return true
End Get
Set
'Do nothing
End Set
End Property
Public Overrides Property FullResourceName() As String
Get
Return "Perfumaria___1._0_Beta_.CrystalReport1.rpt"
End Get
Set
'Do nothing
End Set
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public
ReadOnly
Property
Section1()
As
CrystalDeci-
sions.CrystalReports.Engine.Section
Get
Return Me.ReportDefinition.Sections(0)
End Get
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public
ReadOnly
Property
sions.CrystalReports.Engine.Section
Get
Return Me.ReportDefinition.Sections(1)
End Get
Section2()
As
CrystalDeci-
234
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public
ReadOnly
Property
Section3()
As
CrystalDeci-
sions.CrystalReports.Engine.Section
Get
Return Me.ReportDefinition.Sections(2)
End Get
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public
ReadOnly
Property
Section4()
As
CrystalDeci-
sions.CrystalReports.Engine.Section
Get
Return Me.ReportDefinition.Sections(3)
End Get
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public
ReadOnly
Property
sions.CrystalReports.Engine.Section
Get
Return Me.ReportDefinition.Sections(4)
End Get
End Property
End Class
Section5()
As
CrystalDeci-
235
<System.Drawing.ToolboxBitmapAttribute(GetType(CrystalDecisions.[Shared].ExportOptions),
"report.bmp")> _
Public Class CachedCrystalReport1
Inherits Component
Implements ICachedReport
Public Sub New()
MyBase.New
End Sub
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Overridable Property IsCacheable() As Boolean Implements CrystalDecisions.ReportSource.ICachedReport.IsCacheable
Get
Return true
End Get
Set
'
End Set
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Overridable Property ShareDBLogonInfo() As Boolean Implements CrystalDecisions.ReportSource.ICachedReport.ShareDBLogonInfo
Get
Return false
End Get
Set
'
236
End Set
End Property
<Browsable(false), _
DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Overridable Property CacheTimeOut() As System.TimeSpan Implements
CrystalDecisions.ReportSource.ICachedReport.CacheTimeOut
Get
Return CachedReportConstants.DEFAULT_TIMEOUT
End Get
Set
'
End Set
End Property
Public
Overridable
Function
sions.CrystalReports.Engine.ReportDocument
CreateReport()
Implements
As
CrystalDeciCrystalDeci-
sions.ReportSource.ICachedReport.CreateReport
Dim rpt As CrystalReport1 = New CrystalReport1()
rpt.Site = Me.Site
Return rpt
End Function
Public Overridable Function GetCustomizedCacheKey(ByVal request As RequestContext)
As
String
Implements
sions.ReportSource.ICachedReport.GetCustomizedCacheKey
Dim key As [String] = Nothing
'// The following is the code used to generate the default
'// cache key for caching report jobs in the ASP.NET Cache.
'// Feel free to modify this code to suit your needs.
'// Returning key == null causes the default cache key to
'// be generated.
'
CrystalDeci-
237
'key = RequestContext.BuildCompleteCacheKey(
' request,
'
null,
// sReportFilename
' this.GetType(),
' this.ShareDBLogonInfo );
Return key
End Function
End Class
„**********************************************************************
'CONFIGURACAO DE ACESSO AO BANCO
'**********************************************************************
‟
CONFIGURACAO_ACESSO_BANCO.VB'
Public Class Configuracao_acesso_banco
'limpa os campos e move o curso para o primeiro campo
Private Sub limpar()
txt_usuarioPC.Clear()
txt_senha.Clear()
txt_usuario.Clear()
txt_usuarioPC.Focus()
End Sub
'desabilita os campos
Private Sub campos()
txt_senha.Enabled = False
txt_usuario.Enabled = False
txt_usuarioPC.Enabled = False
End Sub
'habilita os campos
Private Sub campos_habilitar()
txt_senha.Enabled = True
txt_usuario.Enabled = True
txt_usuarioPC.Enabled = True
End Sub
'desabilita botoes quando não há diretório
238
Private Sub botoes()
btn_salvar.Enabled = True
btn_editar.Enabled = False
btn_abrir.Enabled = False
End Sub
'verificando se há diretório
Private Sub verifica_diretorio()
Try
Dim
diretorio
As
New
Sys-
tem.IO.DirectoryInfo("C:\Acesso_Banco\conectar\acesso")
If diretorio.Exists Then
campos() 'desabilita compos se houver diretório
btn_salvar.Enabled = False
btn_editar.Enabled = False
btn_abrir.Enabled = True
Else
campos_habilitar() 'habilitar campos se não houver diretório
botoes()
System.IO.Directory.CreateDirectory("C:\Acesso_Banco\conectar\acesso")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btn_salvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salvar.Click
Try
If txt_usuario.Text > " " And txt_senha.Text > " " And txt_usuarioPC.Text > " "
Then
If MsgBox("Deseja configurar esta conexão?", MsgBoxStyle.YesNo, "Configuração de conexão") = vbYes Then
Dim
arquivo
As
New
O.FileStream("C:\Acesso_Banco\conectar\acesso\acesso_banco.txt",
O.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite, IO.FileShare.None)
II-
239
Dim sw As New IO.StreamWriter(arquivo)
sw.WriteLine(Label4.Text & " " & txt_usuarioPC.Text)
sw.WriteLine(Label3.Text & " " & txt_usuario.Text)
sw.WriteLine(Label2.Text & " " & txt_senha.Text)
sw.WriteLine("Provider=SQLOLEDB;Data
Source="
&
Trim(txt_usuarioPC.Text) & "-PC\" & Trim(txt_usuario.Text) & ";Integrated Security=" &
Trim(txt_senha.Text) & ";Initial Catalog=lojacosmeticos")
sw.Close()
arquivo.Close()
limpar() 'método limpar
verifica_diretorio() 'Método para verificar se há diretório
Else
MsgBox("Configuração cancelada.", MsgBoxStyle.Exclamation, "Configuração de conexão")
End If
Else
MsgBox("Campo nulo!", MsgBoxStyle.Critical, "Configuração de conexão")
txt_usuarioPC.Focus()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub txt_usuarioPC_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_usuarioPC.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
txt_usuario.Focus()
End If
End Sub
Private Sub txt_usuario_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_usuario.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Return) Then
e.Handled = True
240
txt_senha.Focus()
End If
End Sub
Private Sub txt_senha_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_senha.KeyPress
If e.KeyChar = Chr(13) Then
btn_salvar_Click(Me, EventArgs.Empty)
txt_usuarioPC.Focus() 'função focus, move o cursor para o campo especificado
End If
End Sub
Private Sub btn_abrir_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_abrir.Click
Try
Dim
diretorio
As
New
Sys-
tem.IO.DirectoryInfo("C:\Acesso_Banco\conectar\acesso")
If diretorio.Exists Then
If
(Sys-
tem.IO.File.Exists("C:\Acesso_Banco\conectar\acesso\acesso_banco.txt") <> True) Then
MsgBox("Arquivo não encontrado. Configure a conexão!", MsgBoxStyle.Critical, "Configuração de conexão")
campos_habilitar()
botoes()
txt_usuarioPC.Focus()
Else
Dim
filereader
As
New
O.StreamReader("C:\Acesso_Banco\conectar\acesso\acesso_banco.txt")
Dim arquivo_banco, linha As String
Dim cont As Integer
While (filereader.Peek > -1)
linha = filereader.ReadLine
'condição para ler as linhas do arquivo de acesso ao banco
If cont = 0 Then 'linha 1
arquivo_banco = linha
txt_usuarioPC.Text = arquivo_banco.Substring(12)
I-
241
End If
If cont = 1 Then 'linha 2
arquivo_banco = linha
txt_usuario.Text = arquivo_banco.Substring(14)
End If
If cont = 2 Then 'linha 3
arquivo_banco = linha
txt_senha.Text = arquivo_banco.Substring(12)
End If
cont += 1
End While
filereader.Close()
txt_usuarioPC.Focus()
btn_editar.Enabled = True
End If
Else
MsgBox("Diretório não encontrado.", MsgBoxStyle.Exclamation, "Configuração de conexão")
campos_habilitar()
botoes()
txt_usuarioPC.Focus()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btn_sair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_sair.Click
If MsgBox("Deseja encerrar a configuração?", MsgBoxStyle.YesNo, "Configuração de conexão") = vbYes Then
Me.Close()
End If
End Sub
242
Private Sub Configuracao_acesso_banco_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
verifica_diretorio() 'verifica se existe o dirétório
End Sub
Private Sub btn_editar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_editar.Click
If btn_editar.Text = "Editar" Then
'condição para a edição dos dados da conexão.
If txt_senha.Text > " " And txt_usuario.Text > " " And txt_usuarioPC.Text > " "
Then 'os campos devem estar preenchidos para a edição. Usuário deve abrir o arquivo
btn_editar.Text = "Cancelar"
btn_salvar.Enabled = True
campos_habilitar()
Else
MsgBox("Campos inválido para edição.", MsgBoxStyle.Critical, "Configuração de conexão")
End If
'Condição para o botão quando ele estiver com cancelar
ElseIf btn_editar.Text = "Cancelar" Then
btn_editar.Text = "Editar"
campos()
limpar()
btn_editar.Enabled = False
btn_salvar.Enabled = False
End If
txt_usuarioPC.Focus()
End Sub
End Class
4.3.2 Código de controle de vendas
**********************************************************************
‟MODULE
243
'**********************************************************************
‟
MODULE.VB
'
Module Module1
Public vlr_total As Double
Public cmd As OleDb.OleDbCommand
Public con As OleDb.OleDbConnection
Public reader As OleDb.OleDbDataReader
Public Sub conectar()
con = New OleDb.OleDbConnection 'instanciando a variavel con (conexão)
cmd = New OleDb.OleDbCommand 'instacinando a variavel cmd (comandos)
con.ConnectionString
=
"Provider=SQLOLEDB;Data
Source=ADEILDO-
PC\ADEILDO;Integrated Security=SSPI;Initial Catalog=lojacosmeticos"
End Sub
Public quant As Integer
Public cont As Integer = 0
Public produto As String
Public mostrar As String
Public cod_venda As Integer
Public items_venda As Integer
Public local As String
Public indice As Integer
Public vlr_item As Double
Public usuario As String
Public cod_login As Integer
Public cod_usuario As Integer
'função para manipulação de números na textbox. Esta função habilita apenas números.
Function SoNumeros(ByVal Keyascii As Short) As Short
If InStr("1234567890", Chr(Keyascii)) = 0 Then 'condição para definir o que será
aceito. 0 significa número
SoNumeros = 0
Else
244
SoNumeros = Keyascii
End If
Select Case Keyascii
Case 8
SoNumeros = Keyascii '8 bits
Case 13
SoNumeros = Keyascii '13 bits
Case 32
SoNumeros = Keyascii '32 bits
Case 64
SoNumeros = Keyascii '64 bist
End Select
End Function
'função para manipulação de números na textbox. Está função Habilita números e
vírgula. Forma decimal.
Function Sodecimal(ByVal Keyascii As Short) As Short
If InStr("1234567890,", Chr(Keyascii)) = 0 Then 'condição para definir o que será
aceito. 0 significa número
Sodecimal = 0
Else
Sodecimal = Keyascii
End If
Select Case Keyascii
Case 8
Sodecimal = Keyascii '8 bits
Case 13
Sodecimal = Keyascii '13 bits
Case 32
Sodecimal = Keyascii '32 bits
Case 64
Sodecimal = Keyascii '64 bits
End Select
End Function
End Module
245
„**********************************************************************
'CONSULTAR PRODUTOS
'**********************************************************************
‟
CONSULTAR_PRODUTOS.VB
'
Public Class Consultar_Produto
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
'condição para limitar a vírgula. Só é aceito uma vírgula no campo valor do produto.
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not
e.KeyChar = "," Then e.Handled = True
If e.KeyChar = "," And (InStr(TextBox3.Text, ",")) > 0 Then e.Handled = True
End Sub
Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox3.TextChanged
'Dim valor1 As Single
'If TextBox3.Text <> "" Then
' valor1 = TextBox3.Text
' TextBox3.Text = Format(valor1, "0.#0; $#.#0")
' End If
End Sub
246
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
If e.KeyChar = Chr(13) Then
Button1.PerformClick()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Buscar informações do Produto pelo Cod. de Barras
Try
conectar()
con.Open()
cmd = con.CreateCommand
cmd.CommandType = CommandType.Text
If TextBox1.Text > " " Then
cmd.CommandText = "SELECT * FROM produtos WHERE cod_barras = '"
& Trim(TextBox1.Text) & "'"
ElseIf TextBox2.Text > " " Then
cmd.CommandText = "SELECT * FROM produtos WHERE nome_produto =
'" & Trim(TextBox2.Text) & "'"
End If
reader = cmd.ExecuteReader()
247
reader.Read()
TextBox1.Text = Trim(reader("cod_barras"))
TextBox3.Text = reader("vlr_unitario")
TextBox2.Text = reader("nome_produto")
TextBox4.Text = reader("qtde_produto")
con.Close()
Catch ex As Exception
MsgBox("Produto não encontrado. Verifique o codigo de barras.", MsgBoxStyle.Information, "Falha na conexão")
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Sub Consultar_Produto_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox1.Focus()
End Sub
Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
KeyAscii = CShort(SoNumeros(KeyAscii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto.
If KeyAscii = 0 Then
e.Handled = True
248
End If
'condição para desabilitar a barra de espaço na textbox (código de barras do produto)
If KeyAscii = 32 Then
e.Handled = True
End If
End Sub
End Class
„**********************************************************************
'TELA DE SUPORTE
'**********************************************************************
‟
SUPORTE.VB
'
Imports System.Net.Mail
Public Class Suporte
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ProgressBar1.Maximum = 6 'Máximo de operações (que pode ser variável)
ProgressBar1.Value = 0
'cria objeto com dados do e-mail
Dim smtpServer As New SmtpClient()
ProgressBar1.Value = ProgressBar1.Value + 1
Dim mail As New MailMessage
smtpServer.Credentials = New Net.NetworkCredential("[email protected]",
"etec@etec")
ProgressBar1.Value = ProgressBar1.Value + 1
smtpServer.Port = 25
smtpServer.Host = "smtp.live.com"
ProgressBar1.Value = ProgressBar1.Value + 1
smtpServer.EnableSsl = True
mail.From = New MailAddress("[email protected]")
ProgressBar1.Value = ProgressBar1.Value + 1
mail.To.Add("[email protected]")
249
ProgressBar1.Value = ProgressBar1.Value + 1
mail.Subject = TextBox4.Text
mail.Body = TextBox2.Text & Chr(13) & TextBox3.Text & Chr(13) & TextBox1.Text
Try
smtpServer.Send(mail)
ProgressBar1.Value = ProgressBar1.Value + 1
MsgBox("Mensagem enviada com sucesso!", MsgBoxStyle.OkOnly, "Report")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
ProgressBar1.Value = 0
Catch ex As Exception
MsgBox(ex.Message())
End Try
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Tela_de_venda.Show()
Me.Close()
End Sub
End Class
„
„**********************************************************************
*****LOJACOSMETICOSDATASET
'**********************************************************************
‟
LOJACOSMETICOSDATASET.VB
'
Partial Class lojacosmeticosDataSet
End Class
„**********************************************************************
'LOGIN - PONTO DE VENDAS
250
'**********************************************************************
‟
LOGIN1.VB
'
Public Class Login
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox2.Text = "" Then
Label3.Visible = True
ElseIf MaskedTextBox1.Text = "" Then
Label4.Visible = True
ElseIf TextBox2.Text <> "" And MaskedTextBox1.Text <> "" Then
Dim senha As String
Try
conectar()
con.Open()
cmd = con.CreateCommand
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "SELECT * FROM login WHERE nome_login = ?"
cmd.Parameters.Add("login", OleDb.OleDbType.VarChar)
cmd.Parameters("login").Value = TextBox2.Text
reader = cmd.ExecuteReader()
reader.Read()
senha = reader("senha")
cod_login = reader("cod_login")
con.Close()
If senha = MaskedTextBox1.Text Then
conectar()
con.Open()
cmd = con.CreateCommand
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT * FROM usuario WHERE cod_login = ?"
cmd.Parameters.Add("@login", OleDb.OleDbType.VarChar)
cmd.Parameters("@login").Value = cod_login
251
reader = cmd.ExecuteReader()
reader.Read()
cod_usuario = reader("cod_usuario")
con.Close()
usuario = TextBox2.Text
Tela_de_venda.Show()
Me.Hide()
Else
MsgBox("Senha Incorreta", vbCritical, "Erro")
MaskedTextBox1.Text = ""
End If
Catch ex As Exception
MsgBox("Usuário Não Cadastrado", vbCritical, "Erro")
TextBox2.Text = ""
MaskedTextBox1.Text = ""
End Try
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Button1.PerformClick()
End If
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox2.TextChanged
Label3.Visible = False
End Sub
Private Sub MaskedTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button1.PerformClick()
End If
End Sub
252
Private Sub MaskedTextBox1_MaskInputRejected(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim result As MsgBoxResult
result = MsgBox("Deseja realmente sair ?", MsgBoxStyle.YesNo, "Confirmação")
If result = MsgBoxResult.Yes Then
Application.Exit()
End If
End Sub
Private Sub MaskedTextBox1_TextChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MaskedTextBox1.TextChanged
Label4.Visible = False
End Sub
Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click
End Sub
End Class
„**********************************************************************
'TELA DE DESCONTO
'**********************************************************************
‟
DESCONTO.VB
'
Public Class desconto
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Tela_de_venda.txt_valor_total_venda.Text = Vlr_total_venda.Text
vlr_total = Vlr_total_venda.Text
Me.Close()
Catch ex As Exception
253
MsgBox("Campo nulo!", vbCritical)
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
Dim porcentagem As Double
Dim total As Double
porcentagem = CDbl(TextBox1.Text)
porcentagem = porcentagem / 100
total = CDbl(Vlr_total_venda.Text)
total = total - (total * porcentagem)
Vlr_total_venda.Text = total
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & "Verifique os campos!", vbCritical + MsgBoxStyle.Critical, "Erro")
End Try
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
254
'condição para limitar a vírgula. Só é aceito uma vírgula no campo valor do produto.
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not
e.KeyChar = "," Then e.Handled = True
If e.KeyChar = "," And (InStr(TextBox1.Text, ",")) > 0 Then e.Handled = True
If e.KeyChar = Chr(13) Then
Button2.PerformClick()
End If
End Sub
Private Sub Vlr_total_venda_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Vlr_total_venda.KeyPress
Dim cod_askii As Short = CShort(Asc(e.KeyChar))
cod_askii = CShort(Sodecimal(cod_askii)) 'função para desabilitar texto na textbox
'condição para habilitar os números. zero número, 1 texto..
If cod_askii = 0 Then
e.Handled = True
End If
'condição para desabilitar a barra de espaço na textbox (valor unitário)
If cod_askii = 32 Then
e.Handled = True
End If
'condição para limitar a vírgula. Só é aceito uma vírgula no campo valor do produto.
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not
e.KeyChar = "," Then e.Handled = True
If e.KeyChar = "," And (InStr(Vlr_total_venda.Text, ",")) > 0 Then e.Handled =
True
End Sub
End Class‟
255
CAPÍTULO V – Requisitos mínimos
Para o SISVE( Sistema de Controle de venda e Estoque) funcionar de forma eficiente recomenda-se os seguintes requisitos mínimos:
 Sistema Operacional Microsoft Windows XP ou superior;
 Processador Intel Pentium IV de 2,33 GHz, AMD Athlon 64 2800 ou superior;
 Memória Ram: 512 megabytes DDR-I ou superior;
 Espaço livre no disco rígido de 3 gigabytes;
 Monitor com resolução esperada 1366 x 768 pixels;
 Microsoft SQL Server versão 2008;
 Adobe Acrobat Reader versão 5.05 ou superior;
 Navegador Internet Explorer 6.0 ou superior.
256
CAPÍTULO VI – Site do projeto
Houve a necessidade de possuir uma página na Internet com o objetivo de manter a documentação de ajuda SISVE sempre atualizada.
Além disto, essa página serve como forma de promover a divulgação do produto e para
fins educativos, pois toda a documentação de elaboração e desenvolvimento do projeto, como
o diário de bordo, diagramas, fotografias da empresa e código fonte estão disponíveis para
todos.
Há também uma apresentação da Escola Técnica Estadual “Irmã Agostina” com os cursos oferecidos e sua localização.
O endereço na internet é http://sisve.host.sk.
Figura 6.1 – Página inicial do SISVE na internet
257
CONCLUSÃO
É de extrema importância todas as empresas, desde as pequenas até as grandes, investirem na sua informatização.
Quando instalado o software na "Perfumaria da Praça”, o problema da loja relacionado
ao controle de estoque e vendas, através de banco de dados, terá sido solucionado.
Pela criação e implantação do software “SISVE - Controle de Vendas e Estoque”, a loja
passará a ter uma maior rapidez no seu processo de venda e eficiência na administração do
estoque.
Este trabalho trouxe muito aprendizado para a equipe, dentre os quais a necessidade do
planejamento, da divisão de tarefa, da colaboração mútua, de conhecer profundamente os anseios do cliente, buscar sempre a excelência na qualidade em toda a fase do desenvolvimento
do projeto e união, pois só assim é uma equipe e não tão somente um grupo de pessoas.
258
REFERÊNCIAS BIBLIOGRÁFICAS
MEIRELLES, F. S. 22ª Pesquisa Anual do Uso de TI. Artigo, Fundação Getúlio Vargas.
2011. 15 p.
SEBRAE-SC. Informatizar MPEs garante competitividade e produtividade nos negócios.
Disponível em: <http://www.sebrae-sc.com.br/newart/default.asp?materia=20279>. Acesso
em: 02 nov. 2011.
SILVA, João Carlos Lima. Manual de Elaboração de Relatório do TCC. 2011.
HALVORSON, Michael. Microsoft Visual Basic 2010 Passo a Passo. Porto Alegre: Editora
Bookman. 2011.
MACORATTI, José Carlos. Gerenciando os eventos de teclado no VB.NET. Disponível
em: <http://www.macoratti.net/vbn_keyp.htm>. Acesso em: 13 fev.. 2012.
VASCONCELOS, Laércio. Hardware na Prática – Construindo e Configurando Micros
de 32 e 64 Bits Single Core, Dual Core e Quad Core. Rio de Janeiro. Editora Laércio Vasconcelos Computação. 2009.
JONAZ.
Press
Enter
in
Textbox
to
Trigger
Click
Event.
Disponível
em:
<http://www.a1vbcode.com/snippet-4148.asp>. Acesso em: 08 mar. 2012.
VBMANIA.
Teclas
de
atalho
no
VB.
Disponível
em:
<http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID
=341797>. Acesso em: 15 mar. 2012.
______.
Trocar
vírgula
por
ponto
no
VB.
Disponível
em:
<http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID
=186981>. Acesso em: 22 fev. 2012.
BAIXAKI. Busca. Disponível em:
259
<http://www.baixaki.com.br/busca.asp?q=%93pdv%94+%93estoque%94&go=&ord=4>.
Acesso em 10 abr. 2012.
TECMUNDO. Sobre o Baixaki. Disponível em:
<http://www.tecmundo.com.br/institucional/284-sobre-o-baixaki.htm>. Acesso em 10 abr.
2012.
TAGSOFT. Conheça o TagComércio. Disponível em: <http://www.tagsoft.com.br> Acesso
em: 15 abril. 2012.
SYSTRONIC.
Apresentação
do
Systronic
Office
Comercial.
Disponível
em:
<http://www.systronic.com.br/portal/index.php/apresentacao/60-systronic-officecomercial.html> Acesso em: 15 abr. 2012.
GIOVANE,
Informática.
Apresentação
do
SisAdvenPDV.
Disponível
em:
<http://www.giovaneinformatica.com.br/detalhe-sgi.htm> Acesso em: 15 abr. 2012.
NOVAVIA.
Apresentação.
Disponível
em:
<http://www.novavia.com.br/sistemas/site2/produto.aspx?cod_prod=1> Acesso em: 15 abr.
2012.
VVS,
Sistemas.
Folder
de
produtos.
Disponível
em:
<http://www.vvssistemas.com.br/arquivos/marketing/FolderProdutos.zip>Acesso em: 15 abr.
2012. p. 2.
MICROSOFT.
Microsoft®
SQL
Server®
2008
Express.
Disponível
em:
<http://www.microsoft.com/downloads/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3118edd8e6fff&displaylang=pt-br>. Acesso em: 19 mai. 2012.
SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. Sistema de banco de
dados. Traduzido por Daniel Vieira. Rio de Janeiro: Elsevier;Campus, 2006.
BOOCH, Grady; RUMBAUGH, James; JACOBSON; Ivar. UML: Guia do Usuário. Rio de
Janeiro: Editora Campus, 2000.
260
APÊNDICE A – Questionário aplicado ao Sr. Valdinei Cruz de lima (1ª parte)
261
APÊNDICE B – Questionário aplicado ao Sr. Valdinei Cruz de lima (2ª parte)

Documentos relacionados