Transcript
Visual Basic
Autor: Marcelo de Oliveira Rodrigues
2
Software de gerenciamento Nilted Modas_Moda Infanto Juvenil
Aluno: Marcelo de Oliveira Rodrigues Colégio: EMEFEP “Prof. Virgulina Marcondes de Moura Fázzeri”
COTECA – APARECIDA/SP
3
Sumário Capítulo 1 Introdução.....................................................................................................................3
Capítulo 2 Objetivo........................................................................................................................5
Capítulo 3 Banco de Dados...........................................................................................................6 1.1 Estruturas das Tabelas................................................................................7
Capítulo 4 Linguagem de Programação utilizada........................................................................10 2.1 Design (Formulários).................................................................................11
Capítulo 5 Melhorias no Sistema...............................................................................................219
Capítulo 6 Conclusão.................................................................................................................220
Capítulo 7 Referência Bibliográfica............................................................................................221
4
Introdução a.ná.li.se (gr análysis) sf 1 Decomposição ou separação de um todo em seus elementos constituintes. 2 Exame ou estudo da natureza de uma coisa complexa ou determinação de suas feições essenciais, por esse método. 3 Psiq Psicanálise. Antôn (acepção 1): síntese.
sis.te.ma (gr sýstema) sm 1 Conjunto de coisas ou partes de modo a formarem um todo complexo ou unitário. 2 Qualquer conjunto ou série de membros ou elementos correlacionados. 3 Hábito ou costume peculiar de cada criatura. 4 Anat Conjunto de órgãos compostos dos mesmos tecidos destinados a idênticas funções fisiológicas. 5 Astr Grupo de corpos celestes associados e agindo em conjunto, segundo determinadas leis naturais. 6 Método, modo, forma, plano. 7 Conjunto das instituições políticas pelas quais é governado um Estado. 8 Inform Conjunto formado por um ou mais computadores, seus periféricos e os programas utilizados. Sistema Digestório (antes denominado aparelho digestivo), Anat: conjunto de órgãos que têm por função tornar os alimentos assimiláveis, aproveitar parte deles e expulsar a porção inútil. Sistema Nervoso, Anat: conjunto dos centros nervosos e de todos os nervos. Sistema Nervoso Autônomo: parte do sistema nervoso que inerva a musculatura cardíaca e controla secreções glandulares diversas. É dividido em dois grandes setores: o simpático e o parassimpático.
Análise de sistemas Análise de sistemas é a atividade que tem como finalidade realizar estudos de processos a fim de encontrar o melhor e mais racional caminho para que a informação possa ser processada. O analista de sistemas estuda os diversos sistemas existentes entre hardwares (equipamento), softwares (programas) e o usuário final, seus comportamentos e aplicações, desenvolvendo a partir de então soluções que serão padronizadas e transcritas da forma que o computador possa executar.
5
Os profissionais da área geram softwares (programas), que são executados em hardwares (equipamentos) operados por usuários (indivíduos), preparados e treinados em procedimentos operacionais padronizados, dotados de conhecimentos do software e hardware para seu trabalho. A partir de então a análise de sistemas é uma profissão, cujas responsabilidades concentram-se na análise do sistema e na administração de sistemas computacionais. Cabe a este profissional parte da organização, implantação e manutenção de aplicativos e redes de computadores, ou seja, o analista de sistemas é o responsável pelo levantamento de informações sobre uma empresa a fim de utilizá-las no desenvolvimento de um sistema para a mesma ou para o levantamento de uma necessidade específica do cliente para desenvolver este programa especifico com base nas informações colhidas. O profissional geralmente possui conhecimento adquirido em faculdades de Ciência da computação, Análise de sistemas, Processamento de dados e Programação, Informática, Sistemas de informação ou outras disciplinas similares mas, a ausência de restrições para o exercício do cargo permite que profissionais capacitados de outras áreas ou mesmo que não possuem educação superior cumprir este papel nas empresas. Como é uma ênfase, o foco e o núcleo de trabalho estão voltados para Administração, levando em conta a área tecnológica em que irá auxiliar. O analista de sistemas deve servir como um tradutor entre as necessidades do usuário e o programa a ser desenvolvido pelo programador. Para isto, deve ter conhecimento abrangente da área de negócio na qual o sistema será desenvolvido, a fim de que possa implementar corretamente as regras de negócio. Atualmente o curso de Análise de Sistemas foi substituído por Sistemas de Informação.
6
Objetivo Desenvolver um projeto de desenvolvimento de software para gerenciar uma loja, iniciando pela análise do sistema, projeto do sistema e programação, na execução e finalização do programa para possível implantação futura.
7
Banco de Dados Bancos de dados (ou bases de dados) são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGDB. O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por linhas e colunas.
Especificação do Banco de dados Utilizado: Microsoft Office Access; Ficha Técnica: Microsoft Office Access Desenvolvedor Microsoft Última versão: 12.0.4518.1014 (6 de novembro de 2006) Sistema Op. Microsoft Windows Gênero: SRABD Licença: Licença proprietária Website: Access Home Page - Microsoft Office Online
Ele permite o desenvolvimento rápido de aplicações que envolvem tanto a modelagem e estrutura de dados como também a interface a ser utilizada pelos usuários. O desenvolvimento da estrutura de dados se dá de forma muito intuitiva, bastando que o desenvolvedor possua conhecimentos básicos em modelagem de dados e lógica de programação. Programadores relativamente inexperientes e usuários determinados podem usá-lo para construir aplicações simples, sem a necessidade de utilizar ferramentas desconhecidas.
8
1.1 Forma que será armazenado os dados, formação das tabelas e seus
respectivos campos, onde armazenará os registros.
Clientes Nome do Campo Cod_Cli Nome_Cli Logradouro_Cli Endereco_Cli Bairro_Cli Compl_Cli Cidade_Cli Cep_Cli Estado_Cli DataNasc_Cli Sexo_Cli Cpf_Cli Fone1_Cli Fone2_Cli Ramal_Cli Renda_Cli Email_Cli
Tipo de dados Número Texto Texto Texto Texto Texto Texto Número Texto Data/Hora Texto Número Número Número Número Número Texto
Compras Nome do Campo Cod_Compra Nf_Compra CodPro_Compra Qtd_Compra CodFor_Compra Data_Compra
Tipo de dados Número Número Número Número Número Data/Hora
9
Fornecedores Nome do Campo Cod_For Razao_For NomeFantasia_For Logradouro_For Endereco_For Cidade_For Bairro_For Estado_For Cep_For Compl_For Fone1_For Fone2_For Ramal_For Fax_For Email_For Repre_For InscEstadual_For Cnpj_For
Tipo de dados Número Texto Texto Texto Texto Texto Texto Texto Número Texto Número Número Número Número Texto Texto Número Número
Funcionarios Nome do Campo Cod_Fun Nome_Fun Endereco_Fun Logradouro_Fun Bairro_Fun Cidade_Fun Compl_Fun Cep_Fun Estado_Fun Rg_Fun Cpf_Fun Sexo_Fun DataNasc_Fun Fone1_Fun Fone2_Fun DataAdm_Fun EMail_Fun Cargo_Fun Fotografia_Fun Nivel_Fun Senha_Fun
Tipo de dados Número Texto Texto Texto Texto Texto Texto Número Texto Número Número Texto Data/Hora Número Número Data/Hora Texto Texto Texto Texto Texto
10
Produtos Nome do Campo Cod_Pro Nome_Pro Desc_Pro Valor_Pro CodFor_Pro
Tipo de dados Número Texto Texto Unidade Monetária Número
User_Sistema Nome do Campo CodUser_Sist Usuario_Sist Senha_Sist Nivel_Sist
Número Texto Texto Texto
Vendas Nome do Campo Cod_Vend CodCli_Vend NomeCli_Vend Funcionario_Vend Data_Vend
Tipo de dados
Tipo de dados Número Número Texto Texto Data/Hora
Vendas_Detalhes Nome do Campo Cod_VendDet Item_VendDet CodVend_VendDet CodPro_VendDet DescPro_VendDet Qtd_VendDet Preco_VendDet SubTotal_VendDet FormaPag_Vend Total_VendDet
Tipo de dados Número Número Número Número Texto Número Unidade Monetária Unidade Monetária Texto Unidade Monetária
11
Especificação geral: Programa desenvolvido em Visual Basic;
Visual Basic O Visual Basic é uma linguagem de programação produzida pela empresa Microsoft, e é parte integrante do pacote Microsoft Visual Studio. Sua versão mais recente faz parte do pacote Visual Studio .NET, voltada para aplicações .Net. Sua versão anterior fez parte do Microsoft Visual Studio 6.0, ainda muito utilizado atualmente. Um aperfeiçoamento do BASIC, a linguagem é dirigida por eventos (event driven), e possui também um ambiente de desenvolvimento integrado (IDE Integrated Development Environment) totalmente gráfico, facilitanto enormemente a construção da interface das aplicações (GUI - Graphical User Interface), daí o nome "Visual". Em suas primeiras versões, o Visual Basic não permitia acesso a bancos de dados, sendo portanto, voltado apenas para iniciantes, mas devido ao sucesso entre as empresas - que faziam uso de componentes adicionais fabricados por terceiros para acesso a dados - a linguagem logo adotou tecnologias como DAO, RDO, e ADO, também da Microsoft, permitindo fácil acesso a bases de dados. Mais tarde foi adicionada também a possibilidade de criação de controles ActiveX, e, com a chegada do Visual Studio .NET, o Visual Basic se tornou uma linguagem totalmente orientada a objetos.
12
2.1 Design das telas utilizadas pelos usuários (Formulários)
Design (em alguns casos projeto ou projecto) é um esforço criativo relacionado à configuração, concepção, elaboração e especificação de um artefato. Esse esforço normalmente é orientado por uma intenção ou objetivo, ou para a solução de um problema. O termo deriva, originalmente, de designare, palavra em latim, sendo mais tarde adaptado para o inglês design. Houve uma série de tentativas de tradução do termo, mas os possíveis nomes como projética industrial que acabaram em desuso.
Segui a baixo as telas e seus respectivos códigos para o devido funcionamento.
Os Usuários do Sistema devem se logar, para iniciarem a utilização do
mesmo.
13
Public cnLoja As New ADODB.Connection Private rsLogon As New ADODB.Recordset Public Vnome As String
Private Sub cmdCancelar_Click() End End Sub
Private Sub cmdConfirmar_Click() Dim Vnivel, Vsenha As String
If txtUsuario.Text = Empty Then MsgBox "Digite o nome do Usuário!", vbOKOnly + vbInformation, "Aviso" txtUsuario.SetFocus Exit Sub End If
If txtSenha.Text = Empty Then MsgBox "Digite a Senha!", vbOKOnly + vbInformation, "Aviso" txtSenha.SetFocus Exit Sub End If
Vnome = Chr(39) & txtUsuario.Text & Chr(39) Vsenha = Chr(39) & txtSenha.Text & Chr(39) rsLogon.Open "Select * from User_Sistema where Usuario_Sist=" & Vnome & "and Senha_Sist=" & Vsenha, cnLoja, adOpenKeyset, adLockOptimistic, adCmdText
If rsLogon.RecordCount = 0 Then MsgBox "Usuário ou Senha Inválida!", vbOKOnly + vbInformation, "Aviso" txtUsuario.Text = "" txtSenha.Text = "" txtUsuario.SetFocus rsLogon.Close
14
Exit Sub Else frmSplashPrincipal.Show Vnivel = rsLogon("Nivel_Sist") Vnome = rsLogon("Usuario_Sist") mdiPrincipal.stbMostra.Panels(1).Text = "Operador: " & Vnome If Vnivel = "B" Then With mdiPrincipal .Gerenciar.Visible = False End With End If
If Vnivel = "C" Then With mdiPrincipal .Gerenciar.Visible = False .Cadastro.Visible = False End With End If
Unload Me End If End Sub
Private Sub Form_Load() cnLoja.ConnectionString = "Provider=microsoft.jet.oledb.4.0" cnLoja.Open "D:\MARCELO\Projeto VB Final2\Loja.mdb"
lblData.Caption = Date lblHora.Caption = Time End Sub
Private Sub Form_Unload(Cancel As Integer) If rsLogon.State = 1 Then rsLogon.Close
15
End If End Sub
Private Sub Timer1_Timer() lblHora.Caption = Time End Sub
Momento onde estão sendo carregadas todas as informações relacionadas
ao Banco de dados e permissões dos usuários.
Private Sub tmrSplash_Timer() pbbarra2.Value = pbbarra2.Value + 20
If pbbarra2.Value = 100 Then pbbarra1.Value = 25 pbbarra2.Value = 0 lblPross.Caption = "Preparando a Aplicação" End If
16
If pbbarra1.Value = 25 Then pbbarra2.Value = pbbarra2.Value + 20 End If
If pbbarra2.Value = 100 Then pbbarra1.Value = 50 pbbarra2.Value = 0 lblPross.Caption = "Carregando Banco de Bados" End If
If pbbarra1.Value = 50 Then pbbarra2.Value = pbbarra2.Value + 20 End If
If pbbarra2.Value = 100 Then pbbarra1.Value = 75 pbbarra2.Value = 0 lblPross.Caption = "Carregando a Aplicação" End If
If pbbarra1.Value = 75 Then pbbarra2.Value = pbbarra2.Value + 20 End If
If pbbarra2.Value = 100 Then pbbarra1.Value = 100 lblPross.Caption = "Processo Concluído" mdiPrincipal.Show Unload Me End If End Sub
17
Tela Principal, nela estão disponíveis todas as ferramentas para uso dos
usuários.
Public cnBiblioteca As New ADODB.Connection
Private Sub Ajuda_Click() With CommonDialog1 .HelpContext = "0001" .HelpCommand = cdlHelpContext .ShowHelp End With End Sub
18
Private Sub AlterarSenha_Click() frmAlterarSenha.Show frmAlterarSenha.Left = 5000 frmAlterarSenha.Top = 2000 End Sub
Private Sub CadClientes_Click() frmCadClientes.Show frmCadClientes.Left = 3000 frmCadClientes.Top = 800 End Sub
Private Sub CadCompras_Click() frmCadCompras.Show frmCadCompras.Left = 3000 frmCadCompras.Top = 1500 End Sub
Private Sub CadFornecedores_Click() frmCadFornecedores.Show frmCadFornecedores.Left = 2500 frmCadFornecedores.Top = 50 End Sub
Private Sub CadFuncionarios_Click() frmCadFuncionarios.Show frmCadFuncionarios.Left = 2000 frmCadFuncionarios.Top = 200 End Sub
Private Sub CadProdutos_Click() frmCadProdutos.Show frmCadProdutos.Left = 2500 frmCadProdutos.Top = 1500
19
End Sub
Private Sub CadUsuario_Click() frmUserSistema.Show frmUserSistema.Left = 4000 frmUserSistema.Top = 2000 End Sub
Private Sub ConClientes_Click() frmConClientes.Show frmConClientes.Top = 2000 frmConClientes.Left = 2000 End Sub
Private Sub ConCompras_Click() frmConCompras.Show frmConCompras.Top = 2000 frmConCompras.Left = 2000 End Sub
Private Sub ConFornecedores_Click() frmConFornecedores.Show frmConFornecedores.Top = 2000 frmConFornecedores.Left = 800 End Sub
Private Sub ConFuncionario_Click() frmConFuncionarios.Show frmConFuncionarios.Top = 2000 frmConFuncionarios.Left = 2000 End Sub
Private Sub ConProdutos_Click() frmConProdutos.Show
20
frmConProdutos.Top = 2000 frmConProdutos.Left = 2000 End Sub
Private Sub ConUsuario_Click() frmConUsuarios.Show frmConUsuarios.Left = 4000 frmConUsuarios.Top = 2000 End Sub
Private Sub FazerLogoff_Click() If MsgBox("Deseja realmente fazer Logoff?", vbYesNo + vbQuestion, "Logoff") = vbYes Then frmLogon.cnLoja.Close Unload Me frmLogon.Show End If End Sub
Private Sub Fim_Click() If MsgBox("Deseja realmente sair?", vbYesNo + vbQuestion, "Aviso") = vbYes Then End End If End Sub
Private Sub fundo_Click() frmPlanoFundo.Show frmPlanoFundo.Top = 2000 frmPlanoFundo.Left = 4000 End Sub
Private Sub MDIForm_Load() CommonDialog1.HelpFile = App.HelpFile stbMostra.Panels(5) = Time
21
cnBiblioteca.ConnectionString = "Provider=microsoft.jet.oledb.4.0" cnBiblioteca.Open "D:\MARCELO\Projeto VB Final2\Loja.mdb" End Sub
Private Sub MDIForm_Unload(Cancel As Integer) cnBiblioteca.Close End Sub
Private Sub SobreSist_Click() frmAbout.Show frmAbout.Top = 600 frmAbout.Left = 3000 End Sub
Private Sub Timer1_Timer() stbMostra.Panels(5) = Time End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Calendario" Then frmCalendario.Show frmCalendario.Top = 2000 frmCalendario.Left = 2000 ElseIf Button.Key = "Calculadora" Then frmCalculadora.Show frmCalculadora.Top = 2000 frmCalculadora.Left = 6000 ElseIf Button.Key = "Bloco" Then frmEditor.Show frmEditor.Top = 900 frmEditor.Left = 3000 ElseIf Button.Key = "Agenda" Then frmSplash.Show frmSplash.Top = 3000
22
frmSplash.Left = 5000 ElseIf Button.Key = "Sair" Then If MsgBox("Deseja realmente sair do sistema?", vbYesNo + vbQuestion, "Aviso") = vbYes Then End End If End If End Sub Private Sub UtiAgenda_Click() frmSplash.Show frmSplash.Top = 3000 frmSplash.Left = 5000 End Sub
Private Sub UtiBloco_Click() frmEditor.Show frmEditor.Top = 900 frmEditor.Left = 3000 End Sub
Private Sub Uticalc_Click() frmCalculadora.Show frmCalculadora.Top = 2500 frmCalculadora.Left = 2500 End Sub
Private Sub UtiCalendario_Click() frmCalendario.Show frmCalendario.Top = 2000 frmCalendario.Left = 2000 End Sub
Private Sub Venda_Click() frmTelaVenda.Show
23
frmTelaVenda.Left = 1500 frmTelaVenda.Top = 700 End Sub
Sub CentraImagem() Picture1.Cls Picture1.Visible = True Picture1.AutoRedraw = True Picture1.BackColor = &H8000000C Picture1.Height = Me.Height Image1.Stretch = False Image1.Top = Picture1.Height / 2 - Image1.Height / 2 Image1.Left = Picture1.Width / 2 - Image1.Width / 2 Picture1.PaintPicture Image1, Image1.Left, Image1.Top, Image1.Width, Image1.Height mdiPrincipal.Picture = Picture1.Image Picture1.Visible = False End Sub
Sub EstendeImagem() Picture1.Cls Picture1.Visible = True Picture1.AutoRedraw = True Picture1.BackColor = &H8000000C Picture1.Height = Me.Height Image1.Stretch = True Image1.Top = 0 Image1.Left = 0 Image1.Height = Picture1.Height Image1.Width = Picture1.Width Picture1.PaintPicture Image1, Image1.Left, Image1.Top, Image1.Width, Image1.Height mdiPrincipal.Picture = Picture1.Image Picture1.Visible = False
24
End Sub
Sub NormalImagem() Picture1.Visible = True Image1.Stretch = False mdiPrincipal.Picture = Image1.Picture Picture1.Visible = False End Sub
Sub LadoaLadoImagem() Dim wid As Single Dim hgt As Single Dim x As Single Dim y As Single Picture1.Visible = True Picture1.AutoRedraw = True Picture1.Height = Me.Height Image1.Stretch = False wid = Image1.Width hgt = Image1.Height y=0 Do While y < Picture1.ScaleHeight x=0 Do While x < Picture1.ScaleWidth Picture1.PaintPicture Image1, x, y, wid, hgt x = x + wid Loop y = y + hgt Loop Picture1.Visible = False mdiPrincipal.Picture = Picture1.Image End Sub
25
Tela onde é inserido dados cadastrais dos clientes, podendo também alterá-los
e excluir os devidos cadastros.
Private rsCadClientes As New ADODB.Recordset
Private Const CB_FINDSTRING As Long = &H14C Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As Long, Optional ByVal xUpperCase As Boolean = True) As Long Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String
26
With xCombo If xKeyAscii = 8 Then If .SelStart = 0 Then Exit Function
.SelStart = .SelStart - 1 .SelLength = Len(.Text) .SelText = vbNullString Else intPos = .SelStart tStr = .Text .SelText = (Chr$(xKeyAscii)) End If lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text) If lngFind = -1 Then .Text = tStr .SelStart = intPos .SelLength = (Len(.Text) - intPos) Combo_AutoCompletar = xKeyAscii Else intPos = .SelStart intLength = Len(.List(lngFind)) - Len(.Text) .SelText = .SelText & Right$(.List(lngFind), intLength) .SelStart = intPos .SelLength = intLength End If End With End Function
Private Sub cmbLogradouro_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) KeyAscii = Combo_AutoCompletar(cmbLogradouro, KeyAscii) End Sub
Private Sub cmbSexo_KeyPress(KeyAscii As Integer)
27
If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) KeyAscii = Combo_AutoCompletar(cmbSexo, KeyAscii) End Sub
Private Sub cmdAlterar_Click() HabilitaCampos txtNome.SetFocus cmdIncluir.Enabled = False cmdFechar.Enabled = False cmdCancelar.Enabled = True cmdAlterar.Enabled = False cmdGravar.Enabled = True cmdExcluir.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End Sub
Private Sub cmdAnterior_Click() rsCadClientes.MovePrevious If rsCadClientes.BOF Then rsCadClientes.MoveFirst End If MostraRegistro End Sub
Private Sub cmdCancelar_Click() rsCadClientes.CancelUpdate If rsCadClientes.RecordCount = 0 Then LimpaRegistro
28
cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdGravar.Enabled = False Else MostraRegistro cmdGravar.Enabled = False cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End If DesabilitaCampos End Sub
Private Sub cmdExcluir_Click() If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes Then
rsCadClientes.Delete
If rsCadClientes.RecordCount = 0 Then LimpaRegistro
29
cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False Else rsCadClientes.MoveNext If rsCadClientes.EOF Then rsCadClientes.MoveLast End If MostraRegistro End If End If End Sub
Private Sub cmdFechar_Click() Unload Me End Sub
Private Sub cmdGravar_Click() If txtNome.Text = "" Then MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtNome.SetFocus Exit Sub End If
If txtCEP.Text = "" Then MsgBox "O CEP é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCEP.SetFocus Exit Sub End If
If txtEndereco.Text = "" Then
30
MsgBox "O ENDEREÇO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtEndereco.SetFocus Exit Sub End If
If txtCidade.Text = "" Then MsgBox "A CIDADE é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCidade.SetFocus Exit Sub End If
If txtEstado.Text = "" Then MsgBox "O ESTADO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtEstado.SetFocus Exit Sub End If
rsCadClientes("Cod_Cli") = txtCodigo.Text rsCadClientes("Nome_Cli") = txtNome.Text rsCadClientes("Logradouro_Cli") = cmbLogradouro.Text rsCadClientes("Endereco_Cli") = txtEndereco.Text rsCadClientes("Bairro_Cli") = txtBairro.Text rsCadClientes("Compl_Cli") = txtComplemento.Text rsCadClientes("Cidade_Cli") = txtCidade.Text rsCadClientes("Cep_Cli") = txtCEP.Text rsCadClientes("Estado_Cli") = txtEstado.Text rsCadClientes("DataNasc_Cli") = txtData.Text rsCadClientes("Sexo_Cli") = cmbSexo.Text rsCadClientes("Cpf_Cli") = txtCPF.Text rsCadClientes("Fone1_Cli") = txtFone1.Text rsCadClientes("Fone2_Cli") = txtFone2.Text rsCadClientes("Ramal_Cli") = txtRamal.Text rsCadClientes("Renda_Cli") = txtRenda.Text rsCadClientes("Email_Cli") = txtEmail.Text
31
rsCadClientes.Update DesabilitaCampos MsgBox "Dados do Cliente salvos com sucesso!!!", vbOKOnly + vbInformation, "Aviso" cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdGravar.Enabled = False cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End Sub
Private Sub cmdIncluir_Click() Dim Vcodigo As Integer
If rsCadClientes.RecordCount = 0 Then rsCadClientes.AddNew Vcodigo = 1 txtCodigo.Text = Format(Vcodigo, "00000") Else rsCadClientes.MoveLast Vcodigo = rsCadClientes("Cod_Cli") Vcodigo = Vcodigo + 1 rsCadClientes.AddNew LimpaRegistro txtCodigo.Text = Format(Vcodigo, "00000") End If
HabilitaCampos
32
txtNome.SetFocus cmdCancelar.Enabled = True cmdFechar.Enabled = False cmdIncluir.Enabled = False cmdGravar.Enabled = True cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdExcluir.Enabled = False cmdAlterar.Enabled = False End Sub
Private Sub cmdPrimeiro_Click() rsCadClientes.MoveFirst MostraRegistro End Sub
Private Sub cmdProximo_Click() rsCadClientes.MoveNext If rsCadClientes.EOF Then rsCadClientes.MoveLast End If MostraRegistro End Sub
Private Sub cmdUltimo_Click() rsCadClientes.MoveLast MostraRegistro End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{tab}"
33
End If End Sub
Private Sub Form_Load()
rsCadClientes.Open "Clientes", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
If rsCadClientes.RecordCount > 0 Then MostraRegistro Else cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End If
DesabilitaCampos lblContador.Caption = "Clientes Cadastrados: " & rsCadClientes.RecordCount End Sub
Private Sub Form_Unload(Cancel As Integer) rsCadClientes.Close End Sub
Private Sub txtCPF_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
34
Private Sub txtEmail_KeyPress(KeyAscii As Integer) KeyAscii = Asc(LCase(Chr(KeyAscii))) End Sub
Private Sub DesabilitaCampos() txtNome.Enabled = False cmbLogradouro.Enabled = False txtCEP.Enabled = False txtEndereco.Enabled = False txtBairro.Enabled = False txtCidade.Enabled = False txtEstado.Enabled = False txtFone1.Enabled = False txtFone2.Enabled = False txtRamal.Enabled = False txtData.Enabled = False cmbSexo.Enabled = False txtRenda.Enabled = False txtEmail.Enabled = False txtCPF.Enabled = False txtComplemento.Enabled = False End Sub Private Sub MostraRegistro() If Not IsNull(rsCadClientes("Cod_Cli")) Then txtCodigo.Text = Format(rsCadClientes("Cod_Cli"), "00000") Else txtCodigo.Text = Empty End If
If Not IsNull(rsCadClientes("Nome_Cli")) Then txtNome.Text = rsCadClientes("Nome_Cli") Else txtNome.Text = Empty End If
35
If Not IsNull(rsCadClientes("Logradouro_Cli")) Then cmbLogradouro.Text = rsCadClientes("Logradouro_Cli") Else cmbLogradouro.Text = Empty End If
If Not IsNull(rsCadClientes("Endereco_Cli")) Then txtEndereco.Text = rsCadClientes("Endereco_Cli") Else txtEndereco.Text = Empty End If
If Not IsNull(rsCadClientes("Bairro_Cli")) Then txtBairro.Text = rsCadClientes("Bairro_Cli") Else txtBairro.Text = Empty End If
If Not IsNull(rsCadClientes("Compl_Cli")) Then txtComplemento.Text = rsCadClientes("Compl_Cli") Else txtComplemento.Text = Empty End If
If Not IsNull(rsCadClientes("Cidade_Cli")) Then txtCidade.Text = rsCadClientes("Cidade_Cli") Else txtCidade.Text = Empty End If
If Not IsNull(rsCadClientes("Cep_Cli")) Then txtCEP.Text = rsCadClientes("Cep_Cli") Else
36
txtCEP.Text = Empty End If
If Not IsNull(rsCadClientes("Estado_Cli")) Then txtEstado.Text = rsCadClientes("Estado_Cli") Else txtEstado.Text = Empty End If
If Not IsNull(rsCadClientes("DataNasc_Cli")) Then txtData.Text = rsCadClientes("DataNasc_Cli") Else txtData.Text = Empty End If
If Not IsNull(rsCadClientes("Sexo_Cli")) Then cmbSexo.Text = rsCadClientes("Sexo_Cli") Else cmbSexo.Text = Empty End If
If Not IsNull(rsCadClientes("Cpf_Cli")) Then txtCPF.Text = rsCadClientes("Cpf_Cli") Else txtCPF.Text = Empty End If
If Not IsNull(rsCadClientes("Fone1_Cli")) Then txtFone1.Text = rsCadClientes("Fone1_Cli") Else txtFone1.Text = Empty End If
If Not IsNull(rsCadClientes("Fone2_Cli")) Then
37
txtFone2.Text = rsCadClientes("Fone2_Cli") Else txtFone2.Text = Empty End If
If Not IsNull(rsCadClientes("Ramal_Cli")) Then txtRamal.Text = rsCadClientes("Ramal_Cli") Else txtRamal.Text = Empty End If
If Not IsNull(rsCadClientes("Renda_Cli")) Then txtRenda.Text = rsCadClientes("Renda_Cli") Else txtRenda.Text = Empty End If
If Not IsNull(rsCadClientes("Email_Cli")) Then txtEmail.Text = rsCadClientes("Email_Cli") Else txtEmail.Text = Empty End If End Sub
Private Sub HabilitaCampos() txtNome.Enabled = True cmbLogradouro.Enabled = True txtCEP.Enabled = True txtEndereco.Enabled = True txtBairro.Enabled = True txtCidade.Enabled = True txtEstado.Enabled = True txtFone1.Enabled = True txtFone2.Enabled = True
38
txtRamal.Enabled = True txtData.Enabled = True cmbSexo.Enabled = True txtRenda.Enabled = True txtEmail.Enabled = True txtCPF.Enabled = True txtComplemento.Enabled = True End Sub Private Sub LimpaRegistro() txtCodigo.Text = "" txtNome.Text = "" cmbLogradouro.Text = "" txtCEP.Text = "" txtEndereco.Text = "" txtBairro.Text = "" txtCidade.Text = "" txtEstado.Text = "" txtFone1.Text = "" txtFone2.Text = "" txtRamal.Text = "" txtData.Text = "" cmbSexo.Text = "" txtRenda.Text = "" txtEmail.Text = "" txtCPF.Text = "" txtComplemento.Text = "" End Sub
Private Sub txtBairro_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtCidade_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
39
End Sub
Private Sub txtComplemento_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtEndereco_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtEstado_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtNome_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End Sub
Private Sub txtRamal_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtRenda_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If
40
End Sub
Private Sub txtRenda_LostFocus() txtRenda.Text = Format(txtRenda.Text, "Currency") End Sub
Private rsCadCompras As New ADODB.Recordset
Private Sub cmdAlterar_Click() HabilitaCampos txtNF.SetFocus cmdIncluir.Enabled = False cmdFechar.Enabled = False cmdCancelar.Enabled = True cmdAlterar.Enabled = False cmdGravar.Enabled = True cmdExcluir.Enabled = False cmdPrimeiro.Enabled = False
41
cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End Sub
Private Sub cmdAnterior_Click() rsCadCompras.MovePrevious If rsCadCompras.BOF Then rsCadCompras.MoveFirst End If MostraRegistro End Sub
Private Sub cmdCancelar_Click() rsCadCompras.CancelUpdate If rsCadCompras.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdGravar.Enabled = False Else MostraRegistro cmdGravar.Enabled = False cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdPrimeiro.Enabled = True
42
cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End If DesabilitaCampos End Sub
Private Sub cmdExcluir_Click() If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes Then
rsCadCompras.Delete
If rsCadCompras.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False Else rsCadCompras.MoveNext If rsCadCompras.EOF Then rsCadCompras.MoveLast End If MostraRegistro End If End If End Sub
Private Sub cmdFechar_Click()
43
Unload Me End Sub
Private Sub cmdGravar_Click() If txtNF.Text = "" Then MsgBox "O Nº da Nota Fiscal é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtNF.SetFocus Exit Sub End If
If txtCodPro.Text = "" Then MsgBox "O Código do Produto é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCodPro.SetFocus Exit Sub End If
If txtQtd.Text = "" Then MsgBox "A Quantidade é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtQtd.SetFocus Exit Sub End If
If txtCodFor.Text = "" Then MsgBox "O Código do Fornecedor é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCodFor.SetFocus Exit Sub End If
rsCadCompras("Cod_Compra") = txtCodigo.Text rsCadCompras("Nf_Compra") = txtNF.Text rsCadCompras("CodPro_Compra") = txtCodPro.Text rsCadCompras("Qtd_Compra") = txtQtd.Text rsCadCompras("CodFor_Compra") = txtCodFor.Text
44
rsCadCompras("Data_Compra") = txtData.Text
rsCadCompras.Update DesabilitaCampos MsgBox "Dados da Compra salvos com sucesso!!!", vbOKOnly + vbInformation, "Aviso" cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdGravar.Enabled = False cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End Sub
Private Sub cmdIncluir_Click() Dim Vcodigo As Integer
If rsCadCompras.RecordCount = 0 Then rsCadCompras.AddNew Vcodigo = 1 txtCodigo.Text = Format(Vcodigo, "00000") Else rsCadCompras.MoveLast Vcodigo = rsCadCompras("Cod_Compra") Vcodigo = Vcodigo + 1 rsCadCompras.AddNew LimpaRegistro txtCodigo.Text = Format(Vcodigo, "00000") End If
45
HabilitaCampos txtNF.SetFocus cmdCancelar.Enabled = True cmdFechar.Enabled = False cmdIncluir.Enabled = False cmdGravar.Enabled = True cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdExcluir.Enabled = False cmdAlterar.Enabled = False
End Sub
Private Sub cmdPrimeiro_Click() rsCadCompras.MoveFirst MostraRegistro End Sub
Private Sub cmdProximo_Click() rsCadCompras.MoveNext If rsCadCompras.EOF Then rsCadCompras.MoveLast End If MostraRegistro End Sub
Private Sub cmdUltimo_Click() rsCadCompras.MoveLast MostraRegistro End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
46
If KeyAscii = 13 Then SendKeys "{tab}" End If End Sub
Private Sub Form_Load() rsCadCompras.Open "Compras", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
If rsCadCompras.RecordCount > 0 Then MostraRegistro Else cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End If
DesabilitaCampos End Sub
Private Sub Form_Unload(Cancel As Integer) rsCadCompras.Close End Sub
Private Sub DesabilitaCampos() txtNF.Enabled = False txtCodPro.Enabled = False txtQtd.Enabled = False txtCodFor.Enabled = False txtData.Enabled = False End Sub
47
Private Sub MostraRegistro() If Not IsNull(rsCadCompras("Cod_Compra")) Then txtCodigo.Text = Format(rsCadCompras("Cod_Compra"), "00000") Else txtCodigo.Text = Empty End If
If Not IsNull(rsCadCompras("Nf_Compra")) Then txtNF.Text = rsCadCompras("Nf_Compra") Else txtNF.Text = Empty End If
If Not IsNull(rsCadCompras("CodPro_Compra")) Then txtCodPro.Text = rsCadCompras("CodPro_Compra") Else txtCodPro.Text = Empty End If
If Not IsNull(rsCadCompras("Qtd_Compra")) Then txtQtd.Text = rsCadCompras("Qtd_Compra") Else txtQtd.Text = Empty End If
If Not IsNull(rsCadCompras("CodFor_Compra")) Then txtCodFor.Text = rsCadCompras("CodFor_Compra") Else txtCodFor.Text = Empty End If
If Not IsNull(rsCadCompras("Data_Compra")) Then txtData.Text = rsCadCompras("Data_Compra")
48
Else txtData.Text = Empty End If
End Sub Private Sub HabilitaCampos() txtNF.Enabled = True txtCodPro.Enabled = True txtQtd.Enabled = True txtCodFor.Enabled = True txtData.Enabled = True End Sub Private Sub LimpaRegistro() txtCodigo.Text = "" txtNF.Text = "" txtCodPro.Text = "" txtQtd.Text = "" txtCodFor.Text = "" txtData.Text = "" End Sub
Private Sub txtCodFor_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtCodPro_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtNF_KeyPress(KeyAscii As Integer)
49
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If
End Sub
Private Sub txtQtd_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
50
Private rsCadFornecedores As New ADODB.Recordset Option Explicit Private Const CB_FINDSTRING As Long = &H14C Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As Long, Optional ByVal xUpperCase As Boolean = True) As Long
51
Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String With xCombo If xKeyAscii = 8 Then If .SelStart = 0 Then Exit Function
.SelStart = .SelStart - 1 .SelLength = Len(.Text) .SelText = vbNullString Else intPos = .SelStart tStr = .Text .SelText = (Chr$(xKeyAscii)) '
.SelText = IIf(xUpperCase, _
'
UCase$(Chr$(xKeyAscii)), _
'
LCase$(Chr$(xKeyAscii))) End If lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text) If lngFind = -1 Then .Text = tStr .SelStart = intPos .SelLength = (Len(.Text) - intPos) Combo_AutoCompletar = xKeyAscii Else intPos = .SelStart intLength = Len(.List(lngFind)) - Len(.Text) .SelText = .SelText & Right$(.List(lngFind), intLength) .SelStart = intPos .SelLength = intLength End If End With
End Function
Private Sub cmbLogradouro_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
52
KeyAscii = Combo_AutoCompletar(cmbLogradouro, KeyAscii) End Sub
Private Sub cmdAlterar_Click() HabilitaCampos txtRazao.SetFocus cmdIncluir.Enabled = False cmdFechar.Enabled = False cmdCancelar.Enabled = True cmdAlterar.Enabled = False cmdGravar.Enabled = True cmdExcluir.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End Sub
Private Sub cmdAnterior_Click() rsCadFornecedores.MovePrevious If rsCadFornecedores.BOF Then rsCadFornecedores.MoveFirst End If MostraRegistro End Sub
Private Sub cmdCancelar_Click() rsCadFornecedores.CancelUpdate If rsCadFornecedores.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False
53
cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdGravar.Enabled = False Else MostraRegistro cmdGravar.Enabled = False cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End If DesabilitaCampos End Sub
Private Sub cmdExcluir_Click() If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes Then
rsCadFornecedores.Delete
If rsCadFornecedores.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False
54
cmdProximo.Enabled = False cmdUltimo.Enabled = False Else rsCadFornecedores.MoveNext If rsCadFornecedores.EOF Then rsCadFornecedores.MoveLast End If MostraRegistro End If End If End Sub
Private Sub cmdFechar_Click() Unload Me End Sub
Private Sub cmdGravar_Click() If txtRazao.Text = "" Then MsgBox "A RAZÃO SOCIAL é obrigatória!", vbOKOnly + vbInformation, "Aviso" txtRazao.SetFocus Exit Sub End If
If txtNome.Text = "" Then MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtNome.SetFocus Exit Sub End If
If txtCEP.Text = "" Then MsgBox "O CEP é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCEP.SetFocus Exit Sub End If
55
If txtEndereco.Text = "" Then MsgBox "O ENDEREÇO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtEndereco.SetFocus Exit Sub End If
If txtCidade.Text = "" Then MsgBox "A CIDADE é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCidade.SetFocus Exit Sub End If
If txtEstado.Text = "" Then MsgBox "O ESTADO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtEstado.SetFocus Exit Sub End If
rsCadFornecedores("Cod_For") = txtCodigo.Text rsCadFornecedores("Razao_For") = txtRazao.Text rsCadFornecedores("NomeFantasia_For") = txtNome.Text rsCadFornecedores("Logradouro_For") = cmbLogradouro.Text rsCadFornecedores("Endereco_For") = txtEndereco.Text rsCadFornecedores("Bairro_For") = txtBairro.Text rsCadFornecedores("Compl_For") = txtComplemento.Text rsCadFornecedores("Cidade_For") = txtCidade.Text rsCadFornecedores("Cep_For") = txtCEP.Text rsCadFornecedores("Estado_For") = txtEstado.Text rsCadFornecedores("Cnpj_For") = txtCNPJ.Text rsCadFornecedores("Fone1_For") = txtFone1.Text rsCadFornecedores("Fone2_For") = txtFone2.Text rsCadFornecedores("Ramal_For") = txtRamal.Text rsCadFornecedores("Fax_For") = txtFax.Text
56
rsCadFornecedores("Email_For") = txtEmail.Text rsCadFornecedores("Repre_For") = txtRepresentante.Text rsCadFornecedores("InscEstadual_For") = txtInsc.Text
rsCadFornecedores.Update DesabilitaCampos MsgBox "Informações do Fornecedor salvos com sucesso!!!", vbOKOnly + vbInformation, "Aviso" cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdGravar.Enabled = False cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End Sub
Private Sub cmdIncluir_Click() Dim Vcodigo As Integer
If rsCadFornecedores.RecordCount = 0 Then rsCadFornecedores.AddNew Vcodigo = 1 txtCodigo.Text = Format(Vcodigo, "00000") Else rsCadFornecedores.MoveLast Vcodigo = rsCadFornecedores("Cod_For") Vcodigo = Vcodigo + 1 rsCadFornecedores.AddNew LimpaRegistro txtCodigo.Text = Format(Vcodigo, "00000")
57
End If
HabilitaCampos txtRazao.SetFocus cmdCancelar.Enabled = True cmdFechar.Enabled = False cmdIncluir.Enabled = False cmdGravar.Enabled = True cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdExcluir.Enabled = False cmdAlterar.Enabled = False
End Sub
Private Sub cmdPrimeiro_Click() rsCadFornecedores.MoveFirst MostraRegistro End Sub
Private Sub cmdProximo_Click() rsCadFornecedores.MoveNext If rsCadFornecedores.EOF Then rsCadFornecedores.MoveLast End If MostraRegistro End Sub
Private Sub cmdUltimo_Click() rsCadFornecedores.MoveLast MostraRegistro End Sub
58
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{tab}" End If End Sub
Private Sub Form_Load() rsCadFornecedores.Open "Fornecedores", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
If rsCadFornecedores.RecordCount > 0 Then MostraRegistro Else cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End If
DesabilitaCampos End Sub
Private Sub Form_Unload(Cancel As Integer) rsCadFornecedores.Close End Sub
Private Sub txtCNPJ_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
59
Private Sub txtEmail_KeyPress(KeyAscii As Integer) KeyAscii = Asc(LCase(Chr(KeyAscii))) End Sub
Private Sub DesabilitaCampos() txtRazao.Enabled = False txtNome.Enabled = False cmbLogradouro.Enabled = False txtCEP.Enabled = False txtEndereco.Enabled = False txtBairro.Enabled = False txtCidade.Enabled = False txtEstado.Enabled = False txtFone1.Enabled = False txtFone2.Enabled = False txtRamal.Enabled = False txtFax.Enabled = False txtRepresentante.Enabled = False txtInsc.Enabled = False txtEmail.Enabled = False txtCNPJ.Enabled = False txtComplemento.Enabled = False End Sub Private Sub MostraRegistro() If Not IsNull(rsCadFornecedores("Cod_For")) Then txtCodigo.Text = Format(rsCadFornecedores("Cod_For"), "00000") Else txtCodigo.Text = Empty End If
If Not IsNull(rsCadFornecedores("Razao_For")) Then txtRazao.Text = rsCadFornecedores("Razao_For") Else
60
txtRazao.Text = Empty End If
If Not IsNull(rsCadFornecedores("NomeFantasia_For")) Then txtNome.Text = rsCadFornecedores("NomeFantasia_For") Else txtNome.Text = Empty End If
If Not IsNull(rsCadFornecedores("Logradouro_For")) Then cmbLogradouro.Text = rsCadFornecedores("Logradouro_For") Else cmbLogradouro.Text = Empty End If
If Not IsNull(rsCadFornecedores("Endereco_For")) Then txtEndereco.Text = rsCadFornecedores("Endereco_For") Else txtEndereco.Text = Empty End If
If Not IsNull(rsCadFornecedores("Bairro_For")) Then txtBairro.Text = rsCadFornecedores("Bairro_For") Else txtBairro.Text = Empty End If
If Not IsNull(rsCadFornecedores("Compl_For")) Then txtComplemento.Text = rsCadFornecedores("Compl_For") Else txtComplemento.Text = Empty End If
61
If Not IsNull(rsCadFornecedores("Cidade_For")) Then txtCidade.Text = rsCadFornecedores("Cidade_For") Else txtCidade.Text = Empty End If
If Not IsNull(rsCadFornecedores("Cep_For")) Then txtCEP.Text = rsCadFornecedores("Cep_For") Else txtCEP.Text = Empty End If
If Not IsNull(rsCadFornecedores("Estado_For")) Then txtEstado.Text = rsCadFornecedores("Estado_For") Else txtEstado.Text = Empty End If
If Not IsNull(rsCadFornecedores("Fax_For")) Then txtFax.Text = rsCadFornecedores("Fax_For") Else txtFax.Text = Empty End If
If Not IsNull(rsCadFornecedores("Repre_For")) Then txtRepresentante.Text = rsCadFornecedores("Repre_For") Else txtRepresentante.Text = Empty End If
If Not IsNull(rsCadFornecedores("Cnpj_For")) Then txtCNPJ.Text = rsCadFornecedores("Cnpj_For") Else txtCNPJ.Text = Empty
62
End If
If Not IsNull(rsCadFornecedores("Fone1_For")) Then txtFone1.Text = rsCadFornecedores("Fone1_For") Else txtFone1.Text = Empty End If
If Not IsNull(rsCadFornecedores("Fone2_For")) Then txtFone2.Text = rsCadFornecedores("Fone2_For") Else txtFone2.Text = Empty End If
If Not IsNull(rsCadFornecedores("Ramal_For")) Then txtRamal.Text = rsCadFornecedores("Ramal_For") Else txtRamal.Text = Empty End If
If Not IsNull(rsCadFornecedores("InscEstadual_For")) Then txtInsc.Text = rsCadFornecedores("InscEstadual_For") Else txtInsc.Text = Empty End If
If Not IsNull(rsCadFornecedores("Email_For")) Then txtEmail.Text = rsCadFornecedores("Email_For") Else txtEmail.Text = Empty End If End Sub Private Sub HabilitaCampos() txtRazao.Enabled = True
63
txtNome.Enabled = True cmbLogradouro.Enabled = True txtCEP.Enabled = True txtEndereco.Enabled = True txtBairro.Enabled = True txtCidade.Enabled = True txtEstado.Enabled = True txtFone1.Enabled = True txtFone2.Enabled = True txtRamal.Enabled = True txtFax.Enabled = True txtRepresentante.Enabled = True txtInsc.Enabled = True txtEmail.Enabled = True txtCNPJ.Enabled = True txtComplemento.Enabled = True End Sub Private Sub LimpaRegistro() txtCodigo.Text = "" txtRazao.Text = "" txtNome.Text = "" cmbLogradouro.Text = "" txtCEP.Text = "" txtEndereco.Text = "" txtBairro.Text = "" txtCidade.Text = "" txtEstado.Text = "" txtFone1.Text = "" txtFone2.Text = "" txtRamal.Text = "" txtFax.Text = "" txtRepresentante.Text = "" txtInsc.Text = "" txtEmail.Text = ""
64
txtCNPJ.Text = "" txtComplemento.Text = "" End Sub
Private Sub txtBairro_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtCidade_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtComplemento_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtEndereco_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtEstado_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtInsc_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
65
Private Sub txtNome_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtRamal_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtRazao_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtRepresentante_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
66
Private rsCadFuncionarios As New ADODB.Recordset Public Foto As String Private Const CB_FINDSTRING As Long = &H14C Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As Long, Optional ByVal xUpperCase As Boolean = True) As Long Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String With xCombo
67
If xKeyAscii = 8 Then If .SelStart = 0 Then Exit Function
.SelStart = .SelStart - 1 .SelLength = Len(.Text) .SelText = vbNullString Else intPos = .SelStart tStr = .Text .SelText = (Chr$(xKeyAscii)) '
.SelText = IIf(xUpperCase, _
'
UCase$(Chr$(xKeyAscii)), _
'
LCase$(Chr$(xKeyAscii))) End If lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text) If lngFind = -1 Then .Text = tStr .SelStart = intPos .SelLength = (Len(.Text) - intPos) Combo_AutoCompletar = xKeyAscii Else intPos = .SelStart intLength = Len(.List(lngFind)) - Len(.Text) .SelText = .SelText & Right$(.List(lngFind), intLength) .SelStart = intPos .SelLength = intLength End If End With
End Function
Private Sub cmbLogradouro_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) KeyAscii = Combo_AutoCompletar(cmbLogradouro, KeyAscii) End Sub
68
Private Sub cmbSexo_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) KeyAscii = Combo_AutoCompletar(cmbSexo, KeyAscii) End Sub
Private Sub cmdAlterar_Click() HabilitaCampos txtNome.SetFocus cmdIncluir.Enabled = False cmdFechar.Enabled = False cmdCancelar.Enabled = True cmdAlterar.Enabled = False cmdGravar.Enabled = True cmdExcluir.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluirFoto.Visible = True End Sub
Private Sub cmdAnterior_Click() rsCadFuncionarios.MovePrevious If rsCadFuncionarios.BOF Then rsCadFuncionarios.MoveFirst End If MostraRegistro End Sub
Private Sub cmdCancelar_Click() rsCadFuncionarios.CancelUpdate If rsCadFuncionarios.RecordCount = 0 Then LimpaRegistro
69
cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdGravar.Enabled = False cmdIncluirFoto.Visible = False Else MostraRegistro cmdGravar.Enabled = False cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True cmdIncluirFoto.Visible = False End If DesabilitaCampos End Sub
Private Sub cmdExcluir_Click() If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes Then
rsCadFuncionarios.Delete
70
If rsCadFuncionarios.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False Else rsCadFuncionarios.MoveNext If rsCadFuncionarios.EOF Then rsCadFuncionarios.MoveLast End If MostraRegistro End If End If End Sub
Private Sub cmdFechar_Click() Unload Me End Sub
Private Sub cmdGravar_Click() If txtNome.Text = "" Then MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtNome.SetFocus Exit Sub End If
If txtCEP.Text = "" Then MsgBox "O CEP é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCEP.SetFocus Exit Sub End If
71
If txtEndereco.Text = "" Then MsgBox "O ENDEREÇO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtEndereco.SetFocus Exit Sub End If
If txtCidade.Text = "" Then MsgBox "A CIDADE é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCidade.SetFocus Exit Sub End If
If txtEstado.Text = "" Then MsgBox "O ESTADO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtEstado.SetFocus Exit Sub End If
rsCadFuncionarios("Cod_Fun") = txtCodigo.Text rsCadFuncionarios("Nome_Fun") = txtNome.Text rsCadFuncionarios("Logradouro_Fun") = cmbLogradouro.Text rsCadFuncionarios("Endereco_Fun") = txtEndereco.Text rsCadFuncionarios("Bairro_Fun") = txtBairro.Text rsCadFuncionarios("Compl_Fun") = txtComplemento.Text rsCadFuncionarios("Cidade_Fun") = txtCidade.Text rsCadFuncionarios("Cep_Fun") = txtCEP.Text rsCadFuncionarios("Estado_Fun") = txtEstado.Text rsCadFuncionarios("RG_Fun") = txtRG.Text rsCadFuncionarios("DataNasc_Fun") = txtDataNasc.Text rsCadFuncionarios("Sexo_Fun") = cmbSexo.Text rsCadFuncionarios("Cpf_Fun") = txtCPF.Text rsCadFuncionarios("Fone1_Fun") = txtFone1.Text rsCadFuncionarios("Fone2_Fun") = txtFone2.Text
72
rsCadFuncionarios("DataAdm_Fun") = txtDataAdm.Text rsCadFuncionarios("Cargo_Fun") = txtCargo.Text rsCadFuncionarios("Email_Fun") = txtEmail.Text
If Not (Foto = "") Then rsCadFuncionarios("Fotografia_Fun") = Foto End If
rsCadFuncionarios.Update DesabilitaCampos MsgBox "Dados do Funcionário salvos com sucesso!!!", vbOKOnly + vbInformation, "Aviso" cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdGravar.Enabled = False cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True cmdIncluirFoto.Visible = False End Sub
Private Sub cmdIncluir_Click() Dim Vcodigo As Integer
If rsCadFuncionarios.RecordCount = 0 Then rsCadFuncionarios.AddNew Vcodigo = 1 txtCodigo.Text = Format(Vcodigo, "00000") Else rsCadFuncionarios.MoveLast
73
Vcodigo = rsCadFuncionarios("Cod_Fun") Vcodigo = Vcodigo + 1 rsCadFuncionarios.AddNew LimpaRegistro txtCodigo.Text = Format(Vcodigo, "00000") End If
HabilitaCampos txtNome.SetFocus cmdCancelar.Enabled = True cmdFechar.Enabled = False cmdIncluir.Enabled = False cmdGravar.Enabled = True cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdIncluirFoto.Visible = True imgFoto.Picture = LoadPicture("") End Sub
Private Sub cmdIncluirFoto_Click() Dim Vfiltro As String
Foto = "" Vfiltro = "Arquivos BMP (*.BMP) (*.bmp) Todos Arquivos /*.*" CommonDialog1.Filter = Vfiltro CommonDialog1.DefaultExt = "BMP" CommonDialog1.ShowOpen Foto = CommonDialog1.FileName
If Not Foto = Empty Then
74
imgFoto.Picture = LoadPicture(Foto) Else imgFoto.Picture = LoadPicture("") End If End Sub
Private Sub cmdPrimeiro_Click() rsCadFuncionarios.MoveFirst MostraRegistro End Sub
Private Sub cmdProximo_Click() rsCadFuncionarios.MoveNext If rsCadFuncionarios.EOF Then rsCadFuncionarios.MoveLast End If MostraRegistro End Sub
Private Sub cmdUltimo_Click() rsCadFuncionarios.MoveLast MostraRegistro End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{tab}" End If End Sub
Private Sub Form_Load() rsCadFuncionarios.Open "Funcionarios", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
75
If rsCadFuncionarios.RecordCount > 0 Then MostraRegistro Else cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End If
DesabilitaCampos End Sub
Private Sub Form_Unload(Cancel As Integer) rsCadFuncionarios.Close End Sub
Private Sub txtCargo_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtCPF_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtEmail_KeyPress(KeyAscii As Integer) KeyAscii = Asc(LCase(Chr(KeyAscii))) End Sub
76
Private Sub DesabilitaCampos() txtNome.Enabled = False cmbLogradouro.Enabled = False txtCEP.Enabled = False txtEndereco.Enabled = False txtBairro.Enabled = False txtCidade.Enabled = False txtEstado.Enabled = False txtFone1.Enabled = False txtFone2.Enabled = False txtRG.Enabled = False txtDataNasc.Enabled = False txtDataAdm.Enabled = False cmbSexo.Enabled = False txtEmail.Enabled = False txtCPF.Enabled = False txtComplemento.Enabled = False txtCargo.Enabled = False End Sub Private Sub MostraRegistro()
Dim NomeFoto As String
If Not IsNull(rsCadFuncionarios("Cod_Fun")) Then txtCodigo.Text = Format(rsCadFuncionarios("Cod_Fun"), "00000") Else txtCodigo.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Nome_Fun")) Then txtNome.Text = rsCadFuncionarios("Nome_Fun") Else txtNome.Text = Empty
77
End If
If Not IsNull(rsCadFuncionarios("Logradouro_Fun")) Then cmbLogradouro.Text = rsCadFuncionarios("Logradouro_Fun") Else cmbLogradouro.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Endereco_Fun")) Then txtEndereco.Text = rsCadFuncionarios("Endereco_Fun") Else txtEndereco.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Bairro_Fun")) Then txtBairro.Text = rsCadFuncionarios("Bairro_Fun") Else txtBairro.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Compl_Fun")) Then txtComplemento.Text = rsCadFuncionarios("Compl_Fun") Else txtComplemento.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Cidade_Fun")) Then txtCidade.Text = rsCadFuncionarios("Cidade_Fun") Else txtCidade.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Cep_Fun")) Then
78
txtCEP.Text = rsCadFuncionarios("Cep_Fun") Else txtCEP.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Estado_Fun")) Then txtEstado.Text = rsCadFuncionarios("Estado_Fun") Else txtEstado.Text = Empty End If
If Not IsNull(rsCadFuncionarios("DataNasc_Fun")) Then txtDataNasc.Text = rsCadFuncionarios("DataNasc_Fun") Else txtDataNasc.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Sexo_Fun")) Then cmbSexo.Text = rsCadFuncionarios("Sexo_Fun") Else cmbSexo.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Cpf_Fun")) Then txtCPF.Text = rsCadFuncionarios("Cpf_Fun") Else txtCPF.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Fone1_Fun")) Then txtFone1.Text = rsCadFuncionarios("Fone1_Fun") Else txtFone1.Text = Empty End If
79
If Not IsNull(rsCadFuncionarios("Fone2_Fun")) Then txtFone2.Text = rsCadFuncionarios("Fone2_Fun") Else txtFone2.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Rg_Fun")) Then txtRG.Text = rsCadFuncionarios("Rg_Fun") Else txtRG.Text = Empty End If
If Not IsNull(rsCadFuncionarios("DataAdm_Fun")) Then txtDataAdm.Text = rsCadFuncionarios("DataAdm_Fun") Else txtDataAdm.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Email_Fun")) Then txtEmail.Text = rsCadFuncionarios("Email_Fun") Else txtEmail.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Cargo_Fun")) Then txtCargo.Text = rsCadFuncionarios("Cargo_Fun") Else txtCargo.Text = Empty End If
If Not IsNull(rsCadFuncionarios("Fotografia_Fun")) Then NomeFoto = rsCadFuncionarios("Fotografia_Fun") imgFoto.Picture = LoadPicture(NomeFoto)
80
Else NomeFoto = Empty imgFoto.Picture = LoadPicture("") End If End Sub Private Sub HabilitaCampos() txtNome.Enabled = True cmbLogradouro.Enabled = True txtCEP.Enabled = True txtEndereco.Enabled = True txtBairro.Enabled = True txtCidade.Enabled = True txtEstado.Enabled = True txtFone1.Enabled = True txtFone2.Enabled = True txtRG.Enabled = True txtDataNasc.Enabled = True txtDataAdm.Enabled = True cmbSexo.Enabled = True txtEmail.Enabled = True txtCPF.Enabled = True txtComplemento.Enabled = True txtCargo.Enabled = True End Sub Private Sub LimpaRegistro() txtCodigo.Text = "" txtNome.Text = "" cmbLogradouro.Text = "" txtCEP.Text = "" txtEndereco.Text = "" txtBairro.Text = "" txtCidade.Text = "" txtEstado.Text = "" txtFone1.Text = ""
81
txtFone2.Text = "" txtRG.Text = "" txtDataNasc.Text = "" txtDataAdm.Text = "" cmbSexo.Text = "" txtEmail.Text = "" txtCPF.Text = "" txtComplemento.Text = "" txtCargo.Text = "" End Sub
Private Sub txtBairro_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtCidade_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtComplemento_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtEndereco_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtEstado_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
82
Private Sub txtNome_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private rsCadProdutos As New ADODB.Recordset
Private Sub cmdAlterar_Click() HabilitaCampos txtNome.SetFocus cmdIncluir.Enabled = False cmdFechar.Enabled = False cmdCancelar.Enabled = True cmdAlterar.Enabled = False cmdGravar.Enabled = True cmdExcluir.Enabled = False cmdPrimeiro.Enabled = False
83
cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End Sub
Private Sub cmdAnterior_Click() rsCadProdutos.MovePrevious If rsCadProdutos.BOF Then rsCadProdutos.MoveFirst End If MostraRegistro End Sub
Private Sub cmdCancelar_Click() rsCadProdutos.CancelUpdate If rsCadProdutos.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdGravar.Enabled = False Else MostraRegistro cmdGravar.Enabled = False cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdPrimeiro.Enabled = True
84
cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End If DesabilitaCampos End Sub
Private Sub cmdExcluir_Click() If MsgBox("Deseja excluir o cadastro?", vbYesNo + vbQuestion, "Atenção") = vbYes Then
rsCadProdutos.Delete
If rsCadProdutos.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False Else rsCadProdutos.MoveNext If rsCadProdutos.EOF Then rsCadProdutos.MoveLast End If MostraRegistro End If End If End Sub
Private Sub cmdFechar_Click()
85
Unload Me End Sub
Private Sub cmdGravar_Click() If txtNome.Text = "" Then MsgBox "O NOME é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtNome.SetFocus Exit Sub End If
If txtDescricao.Text = "" Then MsgBox "A DESCRIÇÃO é obrigatória!", vbOKOnly + vbInformation, "Aviso" txtDescricao.SetFocus Exit Sub End If
If txtValor.Text = "" Then MsgBox "O VALOR é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtValor.SetFocus Exit Sub End If
If txtCodFor.Text = "" Then MsgBox "O Código do Fornecedor é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtCodFor.SetFocus Exit Sub End If
rsCadProdutos("Cod_Pro") = txtCodigo.Text rsCadProdutos("Nome_Pro") = txtNome.Text rsCadProdutos("Desc_Pro") = txtDescricao.Text rsCadProdutos("Valor_Pro") = txtValor.Text rsCadProdutos("CodFor_Pro") = txtCodFor.Text
86
rsCadProdutos.Update DesabilitaCampos MsgBox "Dados do Produto salvos com sucesso!!!", vbOKOnly + vbInformation, "Aviso" cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdGravar.Enabled = False cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End Sub
Private Sub cmdIncluir_Click() Dim Vcodigo As Integer
If rsCadProdutos.RecordCount = 0 Then rsCadProdutos.AddNew Vcodigo = 1 txtCodigo.Text = Format(Vcodigo, "00000") Else rsCadProdutos.MoveLast Vcodigo = rsCadProdutos("Cod_Pro") Vcodigo = Vcodigo + 1 rsCadProdutos.AddNew LimpaRegistro txtCodigo.Text = Format(Vcodigo, "00000") End If
HabilitaCampos
87
txtNome.SetFocus cmdCancelar.Enabled = True cmdFechar.Enabled = False cmdIncluir.Enabled = False cmdGravar.Enabled = True cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdExcluir.Enabled = False cmdAlterar.Enabled = False
End Sub
Private Sub cmdPrimeiro_Click() rsCadProdutos.MoveFirst MostraRegistro End Sub
Private Sub cmdProximo_Click() rsCadProdutos.MoveNext If rsCadProdutos.EOF Then rsCadProdutos.MoveLast End If MostraRegistro End Sub
Private Sub cmdUltimo_Click() rsCadProdutos.MoveLast MostraRegistro End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
88
SendKeys "{tab}" End If End Sub
Private Sub Form_Load() rsCadProdutos.Open "Produtos", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
If rsCadProdutos.RecordCount > 0 Then MostraRegistro Else cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End If
DesabilitaCampos End Sub
Private Sub Form_Unload(Cancel As Integer) rsCadProdutos.Close End Sub
Private Sub DesabilitaCampos() txtNome.Enabled = False txtDescricao.Enabled = False txtValor.Enabled = False txtCodFor.Enabled = False End Sub Private Sub MostraRegistro() If Not IsNull(rsCadProdutos("Cod_Pro")) Then
89
txtCodigo.Text = Format(rsCadProdutos("Cod_Pro"), "00000") Else txtCodigo.Text = Empty End If
If Not IsNull(rsCadProdutos("Nome_Pro")) Then txtNome.Text = rsCadProdutos("Nome_Pro") Else txtNome.Text = Empty End If
If Not IsNull(rsCadProdutos("Desc_Pro")) Then txtDescricao.Text = rsCadProdutos("Desc_Pro") Else txtDescricao.Text = Empty End If
If Not IsNull(rsCadProdutos("Valor_Pro")) Then txtValor.Text = Format(rsCadProdutos("Valor_Pro"), "currency") Else txtValor.Text = Empty End If
If Not IsNull(rsCadProdutos("CodFor_Pro")) Then txtCodFor.Text = rsCadProdutos("CodFor_Pro") Else txtCodFor.Text = Empty End If
End Sub Private Sub HabilitaCampos() txtNome.Enabled = True txtDescricao.Enabled = True
90
txtValor.Enabled = True txtCodFor.Enabled = True End Sub Private Sub LimpaRegistro() txtCodigo.Text = "" txtNome.Text = "" txtDescricao.Text = "" txtValor.Text = "" txtCodFor.Text = "" End Sub
Private Sub txtCodFor_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtDescricao_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtNome_KeyPress(KeyAscii As Integer) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub
Private Sub txtValor_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
91
Private Sub txtValor_LostFocus() txtValor.Text = Format(txtValor.Text, "currency") End Sub
Private Vfrase As String Private rsConClientes As New ADODB.Recordset
Private Sub cboTipo_Click() txtParametro.Text = "" fgConsultaCli.Clear With fgConsultaCli .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome"
92
.TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With If cboTipo.Text = "Todos" Then txtParametro.Enabled = False Else txtParametro.Enabled = True End If End Sub
Private Sub fgConsultaCli_DblClick() If fgConsultaCli.Row = 0 Then Exit Sub End If frmCadClientes.Show frmCadClientes.Left = 3000 frmCadClientes.Top = 800 End Sub
Private Sub fgConsultaCli_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If fgConsultaCli.Rows > 1 Then
If fgConsultaCli.Row <> fgConsultaCli.MouseRow And fgConsultaCli.MouseRow > 0 Then fgConsultaCli.Col = 0 fgConsultaCli.Row = fgConsultaCli.MouseRow fgConsultaCli.ColSel = fgConsultaCli.Cols - 1 End If
End If End Sub
93
Private Sub Form_Load() Toolbar1.Left = 11055 With fgConsultaCli .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Sair" Then Unload Me
ElseIf Button.Key = "Pesquisar" Then If cboTipo.Text = "Escolha o tipo de Consulta" Then MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation, "Atenção" cboTipo.SetFocus Exit Sub End If
If cboTipo.Text = "Por Código" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus
94
Exit Sub End If
If Not IsNumeric(txtParametro.Text) Then MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = "" txtParametro.SetFocus Exit Sub End If
Dim VConCodigo As Integer VConCodigo = CInt(txtParametro.Text) fgConsultaCli.Clear Vfrase = "Select * from Clientes Where Cod_Cli=" & VConCodigo Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConClientes.BOF = True And rsConClientes.EOF = True Then 'cliente não cadastrado MsgBox "Cliente Não Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConClientes.Close End If
ElseIf cboTipo.Text = "Por Nome" Then Dim VConNome As String
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub
95
End If
VConNome = Chr(39) & CStr(txtParametro.Text) & "'" fgConsultaCli.Clear Vfrase = "Select * from Clientes Where Nome_Cli LIKE" & VConNome Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConClientes.BOF = True And rsConClientes.EOF = True Then 'cliente não cadastrado MsgBox "Cliente Não Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConClientes.Close End If
ElseIf cboTipo.Text = "Todos" Then Vfrase = "Select * from Clientes order by Nome_Cli" Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase) ' chama a funcao que preenche o grid EncheGrid
If rsConClientes.BOF = True And rsConClientes.EOF = True Then 'cliente não cadastrado MsgBox "Não há Cliente Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConClientes.Close End If End If
ElseIf Button.Key = "Nova" Then fgConsultaCli.Clear cboTipo.Text = "Escolha o tipo de Consulta"
96
txtParametro.Text = "" With fgConsultaCli .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With cboTipo.SetFocus End If
End Sub Private Sub EncheGrid()
' forma o cabeçalho do fexgrid With fgConsultaCli .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With
97
Do While Not rsConClientes.EOF fgConsultaCli.AddItem rsConClientes("Cod_Cli") & Chr(9) & rsConClientes("Nome_Cli") & Chr(9) & rsConClientes("Endereco_Cli") & Chr(9) & rsConClientes("Cidade_Cli") & Chr(9) & rsConClientes("Estado_Cli") rsConClientes.MoveNext Loop
End Sub
Private Sub txtParametro_KeyPress(KeyAscii As Integer) If cboTipo.Text = "Por Código" Then If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End If
If cboTipo.Text = "Por Nome" Then If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End If End Sub
98
Private Vfrase As String Private rsConCompras As New ADODB.Recordset
Private Sub cboTipo_Click() txtParametro.Text = "" fgConsultaCom.Clear With fgConsultaCom .ColWidth(0) = 800 .ColWidth(1) = 1500 .ColWidth(2) = 1500 .ColWidth(3) = 1000 .ColWidth(4) = 1800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nº da Nota Fiscal" .TextArray(2) = "Código do Produto" .TextArray(3) = "Quantidade" .TextArray(4) = "Código do Fornecedor"
99
End With If cboTipo.Text = "Todos" Then txtParametro.Enabled = False Else txtParametro.Enabled = True End If End Sub
Private Sub fgConsultaCom_DblClick() If fgConsultaCom.Row = 0 Then Exit Sub End If frmCadCompras.Show frmCadCompras.Left = 3000 frmCadCompras.Top = 1500 End Sub
Private Sub fgConsultaCom_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If fgConsultaCom.Rows > 1 Then
If fgConsultaCom.Row <> fgConsultaCom.MouseRow And fgConsultaCom.MouseRow > 0 Then fgConsultaCom.Col = 0 fgConsultaCom.Row = fgConsultaCom.MouseRow fgConsultaCom.ColSel = fgConsultaCom.Cols - 1 End If
End If End Sub
Private Sub Form_Load() Toolbar1.Left = 7245 With fgConsultaCom
100
.ColWidth(0) = 800 .ColWidth(1) = 1500 .ColWidth(2) = 1500 .ColWidth(3) = 1000 .ColWidth(4) = 1800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nº da Nota Fiscal" .TextArray(2) = "Código do Produto" .TextArray(3) = "Quantidade" .TextArray(4) = "Código do Fornecedor" End With End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Sair" Then Unload Me
ElseIf Button.Key = "Pesquisar" Then If cboTipo.Text = "Escolha o tipo de Consulta" Then MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation, "Atenção" cboTipo.SetFocus Exit Sub End If
If cboTipo.Text = "Por Código" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
101
If Not IsNumeric(txtParametro.Text) Then MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = "" txtParametro.SetFocus Exit Sub End If
Dim VConCodigo As Integer VConCodigo = CInt(txtParametro.Text) fgConsultaCom.Clear Vfrase = "Select * from Compras Where Cod_Compra=" & VConCodigo Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConCompras.BOF = True And rsConCompras.EOF = True Then 'cliente não cadastrado MsgBox "Compra Não Cadastrada!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConCompras.Close End If
ElseIf cboTipo.Text = "Por Nº da Nota Fiscal" Then Dim VConNota As Integer
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
VConNota = CInt(txtParametro.Text)
102
fgConsultaCom.Clear Vfrase = "Select * from Compras Where Nf_Compra=" & VConNota Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConCompras.BOF = True And rsConCompras.EOF = True Then 'cliente não cadastrado MsgBox "Compra Não Cadastrada!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConCompras.Close End If
ElseIf cboTipo.Text = "Por Código do Fornecedor" Then Dim VConForn As Integer
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
VConForn = CInt(txtParametro.Text) fgConsultaCom.Clear Vfrase = "Select * from Compras Where CodFor_Compra=" & VConForn Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConCompras.BOF = True And rsConCompras.EOF = True Then 'cliente não cadastrado MsgBox "Compra Não Cadastrada!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão
103
rsConCompras.Close End If
ElseIf cboTipo.Text = "Todos" Then Vfrase = "Select * from Compras order by Cod_Compra" Set rsConCompras = mdiPrincipal.cnBiblioteca.Execute(Vfrase) ' chama a funcao que preenche o grid EncheGrid
If rsConCompras.BOF = True And rsConCompras.EOF = True Then 'cliente não cadastrado MsgBox "Não há Compra Cadastrada!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConCompras.Close End If End If
ElseIf Button.Key = "Nova" Then fgConsultaCom.Clear cboTipo.Text = "Escolha o tipo de Consulta" txtParametro.Text = "" With fgConsultaCom .ColWidth(0) = 800 .ColWidth(1) = 1500 .ColWidth(2) = 1500 .ColWidth(3) = 1000 .ColWidth(4) = 1800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nº da Nota Fiscal" .TextArray(2) = "Código do Produto" .TextArray(3) = "Quantidade" .TextArray(4) = "Código do Fornecedor"
104
End With cboTipo.SetFocus End If End Sub Private Sub EncheGrid()
' forma o cabeçalho do fexgrid With fgConsultaCom .ColWidth(0) = 800 .ColWidth(1) = 1500 .ColWidth(2) = 1500 .ColWidth(3) = 1000 .ColWidth(4) = 1800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nº da Nota Fiscal" .TextArray(2) = "Código do Produto" .TextArray(3) = "Quantidade" .TextArray(4) = "Código do Fornecedor" End With Do While Not rsConCompras.EOF fgConsultaCom.AddItem rsConCompras("Cod_Compra") & Chr(9) & rsConCompras("Nf_Compra") & Chr(9) & rsConCompras("CodPro_Compra") & Chr(9) & rsConCompras("Qtd_Compra") & Chr(9) & rsConCompras("CodFor_Compra") rsConCompras.MoveNext Loop
End Sub
Private Sub txtParametro_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
105
Private Vfrase As String Private rsConFornecedores As New ADODB.Recordset
Private Sub cboTipo_Click() txtParametro.Text = "" fgConsultaFor.Clear With fgConsultaFor .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 3000 .ColWidth(4) = 2000 .ColWidth(5) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Razão Social" .TextArray(2) = "Nome Fantasia" .TextArray(3) = "Endereço"
106
.TextArray(4) = "Cidade" .TextArray(5) = "Estado" End With If cboTipo.Text = "Todos" Then txtParametro.Enabled = False Else txtParametro.Enabled = True End If End Sub
Private Sub fgConsultaFor_DblClick() If fgConsultaFor.Row = 0 Then Exit Sub End If frmCadFornecedores.Show frmCadFornecedores.Left = 2500 frmCadFornecedores.Top = 50 End Sub
Private Sub fgConsultaFor_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If fgConsultaFor.Rows > 1 Then
If fgConsultaFor.Row <> fgConsultaFor.MouseRow And fgConsultaFor.MouseRow > 0 Then fgConsultaFor.Col = 0 fgConsultaFor.Row = fgConsultaFor.MouseRow fgConsultaFor.ColSel = fgConsultaFor.Cols - 1 End If
End If End Sub
Private Sub Form_Load()
107
Toolbar1.Left = 12960 With fgConsultaFor .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 3000 .ColWidth(4) = 2000 .ColWidth(5) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Razão Social" .TextArray(2) = "Nome Fantasia" .TextArray(3) = "Endereço" .TextArray(4) = "Cidade" .TextArray(5) = "Estado" End With End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Sair" Then Unload Me
ElseIf Button.Key = "Pesquisar" Then If cboTipo.Text = "Escolha o tipo de Consulta" Then MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation, "Atenção" cboTipo.SetFocus Exit Sub End If
If cboTipo.Text = "Por Código" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção"
108
txtParametro.SetFocus Exit Sub End If
If Not IsNumeric(txtParametro.Text) Then MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = "" txtParametro.SetFocus Exit Sub End If
Dim VConCodigo As Integer VConCodigo = CInt(txtParametro.Text) fgConsultaFor.Clear Vfrase = "Select * from Fornecedores Where Cod_For=" & VConCodigo Set rsConFornecedores = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConFornecedores.BOF = True And rsConFornecedores.EOF = True Then 'cliente não cadastrado MsgBox "Fornecedor Não Cadastrada!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConFornecedores.Close End If
ElseIf cboTipo.Text = "Por Nome Fantasia" Then Dim VConNome As String
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus
109
Exit Sub End If
VConNome = Chr(39) & CStr(txtParametro.Text) & Chr(39) fgConsultaFor.Clear Vfrase = "Select * from Fornecedores Where NomeFantasia_For Like" & VConNome Set rsConFornecedores = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConFornecedores.BOF = True And rsConFornecedores.EOF = True Then 'cliente não cadastrado MsgBox "Fornecedor Não Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConFornecedores.Close End If
ElseIf cboTipo.Text = "Todos" Then Vfrase = "Select * from Fornecedores order by Cod_For" Set rsConFornecedores = mdiPrincipal.cnBiblioteca.Execute(Vfrase) ' chama a funcao que preenche o grid EncheGrid
If rsConFornecedores.BOF = True And rsConFornecedores.EOF = True Then 'cliente não cadastrado MsgBox "Não há Fornecedor Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConFornecedores.Close End If End If
ElseIf Button.Key = "Nova" Then
110
fgConsultaFor.Clear cboTipo.Text = "Escolha o tipo de Consulta" txtParametro.Text = "" With fgConsultaFor .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 3000 .ColWidth(4) = 2000 .ColWidth(5) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Razão Social" .TextArray(2) = "Nome Fantasia" .TextArray(3) = "Endereço" .TextArray(4) = "Cidade" .TextArray(5) = "Estado" End With cboTipo.SetFocus End If End Sub Private Sub EncheGrid()
' forma o cabeçalho do fexgrid With fgConsultaFor .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 3000 .ColWidth(4) = 2000 .ColWidth(5) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Razão Social"
111
.TextArray(2) = "Nome Fantasia" .TextArray(3) = "Endereço" .TextArray(4) = "Cidade" .TextArray(5) = "Estado" End With Do While Not rsConFornecedores.EOF fgConsultaFor.AddItem rsConFornecedores("Cod_For") & Chr(9) & rsConFornecedores("Razao_For") & Chr(9) & rsConFornecedores("NomeFantasia_For") & Chr(9) & rsConFornecedores("Endereco_For") & Chr(9) & rsConFornecedores("Cidade_For") & Chr(9) & rsConFornecedores("Estado_For") rsConFornecedores.MoveNext Loop
End Sub
Private Sub txtParametro_KeyPress(KeyAscii As Integer) If cboTipo.Text = "Por Código" Then If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End If
If cboTipo.Text = "Por Nome Fantasia" Then If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End If End Sub
112
Private Vfrase As String Private rsConFuncionarios As New ADODB.Recordset
Private Sub cboTipo_Click() txtParametro.Text = "" fgConsultaFun.Clear With fgConsultaFun .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With
113
If cboTipo.Text = "Todos" Then txtParametro.Enabled = False Else txtParametro.Enabled = True End If End Sub
Private Sub fgConsultaFun_DblClick() If fgConsultaFun.Row = 0 Then Exit Sub End If frmCadFuncionarios.Show frmCadFuncionarios.Left = 2000 frmCadFuncionarios.Top = 200 End Sub
Private Sub fgConsultaFun_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If fgConsultaFun.Rows > 1 Then
If fgConsultaFun.Row <> fgConsultaFun.MouseRow And fgConsultaFun.MouseRow > 0 Then fgConsultaFun.Col = 0 fgConsultaFun.Row = fgConsultaFun.MouseRow fgConsultaFun.ColSel = fgConsultaFun.Cols - 1 End If
End If End Sub
Private Sub Form_Load() Toolbar1.Left = 11190 With fgConsultaFun .ColWidth(0) = 800
114
.ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Sair" Then Unload Me
ElseIf Button.Key = "Pesquisar" Then If cboTipo.Text = "Escolha o tipo de Consulta" Then MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation, "Atenção" cboTipo.SetFocus Exit Sub End If
If cboTipo.Text = "Por Código" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
If Not IsNumeric(txtParametro.Text) Then
115
MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = "" txtParametro.SetFocus Exit Sub End If
Dim VConCodigo As Integer VConCodigo = CInt(txtParametro.Text) fgConsultaFun.Clear Vfrase = "Select * from Funcionarios Where Cod_Fun=" & VConCodigo Set rsConFuncionarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConFuncionarios.BOF = True And rsConFuncionarios.EOF = True Then 'cliente não cadastrado MsgBox "Funcionário Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConFuncionarios.Close End If
ElseIf cboTipo.Text = "Por Nome" Then Dim VConNome As String
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
VConNome = Chr(39) & CStr(txtParametro.Text) & Chr(39) fgConsultaFun.Clear
116
Vfrase = "Select * from Funcionarios Where Nome_Fun Like" & VConNome Set rsConFuncionarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConFuncionarios.BOF = True And rsConFuncionarios.EOF = True Then 'cliente não cadastrado MsgBox "Funcionário Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConFuncionarios.Close End If
ElseIf cboTipo.Text = "Todos" Then Vfrase = "Select * from Funcionarios order by Cod_Fun" Set rsConFuncionarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase) ' chama a funcao que preenche o grid EncheGrid
If rsConFuncionarios.BOF = True And rsConFuncionarios.EOF = True Then 'cliente não cadastrado MsgBox "Não há Funcionário Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConFuncionarios.Close End If End If
ElseIf Button.Key = "Nova" Then fgConsultaFun.Clear cboTipo.Text = "Escolha o tipo de Consulta" txtParametro.Text = "" With fgConsultaFun .ColWidth(0) = 800 .ColWidth(1) = 3500
117
.ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With cboTipo.SetFocus End If End Sub Private Sub EncheGrid()
' forma o cabeçalho do fexgrid With fgConsultaFun .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 2000 .ColWidth(4) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Endereço" .TextArray(3) = "Cidade" .TextArray(4) = "Estado" End With Do While Not rsConFuncionarios.EOF fgConsultaFun.AddItem rsConFuncionarios("Cod_Fun") & Chr(9) & rsConFuncionarios("Nome_Fun") & Chr(9) & rsConFuncionarios("Endereco_Fun") & Chr(9) & rsConFuncionarios("Cidade_Fun") & Chr(9) & rsConFuncionarios("Estado_Fun")
118
rsConFuncionarios.MoveNext Loop
End Sub
Private Sub txtParametro_KeyPress(KeyAscii As Integer) If cboTipo.Text = "Por Código" Then If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End If
If cboTipo.Text = "Por Nome" Then If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End If End Sub
119
Private Vfrase As String Private rsConProdutos As New ADODB.Recordset
Private Sub cboTipo_Click() txtParametro.Text = "" fgConsultaPro.Clear With fgConsultaPro .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 1500 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Descricão" .TextArray(3) = "Cod Fornecedor" End With If cboTipo.Text = "Todos" Then
120
txtParametro.Enabled = False Else txtParametro.Enabled = True End If End Sub
Private Sub fgConsultaPro_DblClick() If fgConsultaPro.Row = 0 Then Exit Sub End If frmCadProdutos.Show frmCadProdutos.Left = 2500 frmCadProdutos.Top = 1500 End Sub
Private Sub fgConsultaPro_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If fgConsultaPro.Rows > 1 Then
If fgConsultaPro.Row <> fgConsultaPro.MouseRow And fgConsultaPro.MouseRow > 0 Then fgConsultaPro.Col = 0 fgConsultaPro.Row = fgConsultaPro.MouseRow fgConsultaPro.ColSel = fgConsultaPro.Cols - 1 End If
End If End Sub
Private Sub Form_Load()
With fgConsultaPro .ColWidth(0) = 800 .ColWidth(1) = 3500
121
.ColWidth(2) = 3500 .ColWidth(3) = 1500 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Descricão" .TextArray(3) = "Cod Fornecedor" End With End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Sair" Then Unload Me
ElseIf Button.Key = "Pesquisar" Then If cboTipo.Text = "Escolha o tipo de Consulta" Then MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation, "Atenção" cboTipo.SetFocus Exit Sub End If
If cboTipo.Text = "Por Código" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
If Not IsNumeric(txtParametro.Text) Then MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = ""
122
txtParametro.SetFocus Exit Sub End If
Dim VConCodigo As Integer VConCodigo = CInt(txtParametro.Text) fgConsultaPro.Clear Vfrase = "Select * from Produtos Where Cod_Pro=" & VConCodigo Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then 'cliente não cadastrado MsgBox "Produto Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConProdutos.Close End If
ElseIf cboTipo.Text = "Por Código do Fornecedor" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
If Not IsNumeric(txtParametro.Text) Then MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = "" txtParametro.SetFocus Exit Sub End If
123
Dim VConCodFor As Integer VConCodFor = CInt(txtParametro.Text) fgConsultaPro.Clear Vfrase = "Select * from Produtos Where CodFor_Pro=" & VConCodFor Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then 'cliente não cadastrado MsgBox "Produto Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConProdutos.Close End If
ElseIf cboTipo.Text = "Por Nome" Then Dim VConNome As String
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
VConNome = Chr(39) & CStr(txtParametro.Text) & Chr(39) fgConsultaPro.Clear Vfrase = "Select * from Produtos Where Nome_Pro Like" & VConNome Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then 'cliente não cadastrado
124
MsgBox "Produto Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConProdutos.Close End If
ElseIf cboTipo.Text = "Todos" Then Vfrase = "Select * from Produtos order by Cod_Pro" Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase) ' chama a funcao que preenche o grid EncheGrid
If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then 'cliente não cadastrado MsgBox "Não há Produto Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConProdutos.Close End If End If ElseIf Button.Key = "Nova" Then fgConsultaPro.Clear cboTipo.Text = "Escolha o tipo de Consulta" txtParametro.Text = "" With fgConsultaPro .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 1500 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Descricão" .TextArray(3) = "Cod Fornecedor"
125
End With cboTipo.SetFocus End If
End Sub Private Sub EncheGrid()
' forma o cabeçalho do fexgrid With fgConsultaPro .ColWidth(0) = 800 .ColWidth(1) = 3500 .ColWidth(2) = 3500 .ColWidth(3) = 1500 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome" .TextArray(2) = "Descricão" .TextArray(3) = "Cod Fornecedor" End With Do While Not rsConProdutos.EOF fgConsultaPro.AddItem rsConProdutos("Cod_Pro") & Chr(9) & rsConProdutos("Nome_Pro") & Chr(9) & rsConProdutos("Desc_Pro") & Chr(9) & rsConProdutos("CodFor_Pro") rsConProdutos.MoveNext Loop
End Sub
Private Sub txtParametro_KeyPress(KeyAscii As Integer) If cboTipo.Text = "Por Código" Then If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End If
126
If cboTipo.Text = "Por Código do Fornecedor" Then If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End If
If cboTipo.Text = "Por Nome" Then If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End If End Sub
Private Sub cmdOK_Click() Unload Me End Sub
127
Dim Op1 As Double
' Primeiro operando.
Dim Op2 As Double
' Segundo operando.
Dim FlagDecimal As Integer
' Flag do Ponto Decimal.
Dim NumOps As Integer
' Numero de Operandos.
Dim UltimaEntrada As String
' Indica a ultima tecla pressionada.
Dim FlagOperacao As String
' Indica a operacao pendente
Const VERDADEIRO = -1 Const FALSO = 0
' Procedure para a tecla C (Cancela). ' Reseta o display e inicializa variaveis.
Private Sub Cancel_Click() Number(0).SetFocus 'Volta o Controle para matriz de Numeros Visor.Caption = "0." Form_Load End Sub
' Procedure para a tecla CE (Cancela Entrada).
Private Sub CancelEntry_Click() Number(0).SetFocus 'Volta o Controle para matriz de Numeros Visor.Caption = "0." FlagDecimal = FALSO
128
UltimaEntrada = "CE" End Sub
' Procedure para a tecla de ponto decimal (.) . ' Se a ultima tecla pressiona fou operador, initializa ' Visor com "0." Senao, adiciona um ponto decimal no display.
Private Sub Decimal_Click() If UltimaEntrada <> "NUMS" Then Visor.Caption = "0." ElseIf FlagDecimal = FALSO Then Visor.Caption = Visor.Caption + "." End If
FlagDecimal = VERDADEIRO UltimaEntrada = "NUMS" End Sub
' Rotina de Inicializacao para o formulario ' Inicia todas as variaveis
Private Sub Form_Load() CENTRALIZA_FORM Me FlagDecimal = FALSO NumOps = 0 UltimaEntrada = "NONE" FlagOperacao = " " ' me.left = 3720 ' me.top= 975 End Sub
Private Sub mnuSair_Click() End End Sub
129
' Procedure para as teclas de numeros (0-9). ' Adiciona o novo numero ao numero do display.
Private Sub Number_Click(Index As Integer) If UltimaEntrada <> "NUMS" Then Visor.Caption = "" FlagDecimal = FALSO End If If Len(Visor.Caption) <= 15 Then 'Limita entrada de valores a 15 digitos(inclusive ponto decimal) Visor.Caption = Visor.Caption + Number(Index).Caption End If UltimaEntrada = "NUMS" Operator(4).SetFocus 'Posiciona o Foco na operação de igual End Sub
Private Sub Number_KeyPress(Index As Integer, KeyAscii As Integer) '*** FAZ LEITURA DE TECLAS PRESSIONADAS *** If KeyAscii = 61 Then Operator_Click (4) 'Sinal de Igual ElseIf KeyAscii = 67 Or KeyAscii = 99 Then Cancel_Click
'Botao de Limpar
ElseIf KeyAscii = 37 Then Percent_Click
'Sinal de Porcentagem
ElseIf KeyAscii = 42 Or KeyAscii = 120 Or KeyAscii = 88 Then Operator_Click (2) 'Sinal de Multiplicação ElseIf KeyAscii = 43 Then Operator_Click (1) 'Sinal de Mais ElseIf KeyAscii = 45 Then Operator_Click (3) 'Sinal de Igual ElseIf KeyAscii = 46 Then Decimal_Click
'Ponto decimal
ElseIf KeyAscii = 47 Then
130
Operator_Click (0) 'Sinal de Divisao ElseIf KeyAscii = 48 Then Number_Click (0) ElseIf KeyAscii = 49 Then Number_Click (1) ElseIf KeyAscii = 50 Then Number_Click (2) ElseIf KeyAscii = 51 Then Number_Click (3) ElseIf KeyAscii = 52 Then Number_Click (4) ElseIf KeyAscii = 53 Then Number_Click (5) ElseIf KeyAscii = 54 Then Number_Click (6) ElseIf KeyAscii = 55 Then Number_Click (7) ElseIf KeyAscii = 56 Then Number_Click (8) ElseIf KeyAscii = 57 Then Number_Click (9) End If End Sub
' Procedure para os teclas de operadores (+, -, x, /, =). ' Se a tecla pressiona imediatamente foi parte de um ' numero, incrementa a variavel NumOps. Se um operando esta presente, ' "seta" Op1. Se dois operandos estao presentes, "seta" Op1 igual ao ' resultado da operacao em Op1 com a string entrada por ultimo e mostra ' o resultado.
Private Sub Operator_Click(Index As Integer) Operator(4).SetFocus 'Volta o Controle para matriz de Numeros If UltimaEntrada = "NUMS" Then
131
NumOps = NumOps + 1 End If If NumOps = 1 Then Op1 = Val(Visor.Caption) ElseIf NumOps = 2 Then Op2 = Val(Visor.Caption) Select Case FlagOperacao Case "+" Op1 = Op1 + Op2 Case "-" Op1 = Op1 - Op2 Case "X" Op1 = Op1 * Op2 Case "/" If Op2 = 0 Then MsgBox "Erro, Divisão por zero impossível", 48, "Spasso Calc" Else Op1 = Op1 / Op2 End If Case "=" Op1 = Op2 End Select Visor.Caption = Format$(Op1) NumOps = 1 End If
UltimaEntrada = "OPS" FlagOperacao = Operator(Index).Caption End Sub
Private Sub Operator_KeyPress(Index As Integer, KeyAscii As Integer) '*** FAZ LEITURA DE TECLAS PRESSIONADAS *** If KeyAscii = 61 Then Operator_Click (4) 'Sinal de Igual
132
ElseIf KeyAscii = 67 Or KeyAscii = 99 Then Cancel_Click
'Botao de Limpar
ElseIf KeyAscii = 37 Then Percent_Click
'Sinal de Porcentagem
ElseIf KeyAscii = 42 Or KeyAscii = 120 Or KeyAscii = 88 Then Operator_Click (2) 'Sinal de Multiplicação ElseIf KeyAscii = 43 Then Operator_Click (1) 'Sinal de Mais ElseIf KeyAscii = 45 Then Operator_Click (3) 'Sinal de Igual ElseIf KeyAscii = 46 Then Decimal_Click
'Ponto decimal
ElseIf KeyAscii = 47 Then Operator_Click (0) 'Sinal de Divisao ElseIf KeyAscii = 48 Then Number_Click (0) ElseIf KeyAscii = 49 Then Number_Click (1) ElseIf KeyAscii = 50 Then Number_Click (2) ElseIf KeyAscii = 51 Then Number_Click (3) ElseIf KeyAscii = 52 Then Number_Click (4) ElseIf KeyAscii = 53 Then Number_Click (5) ElseIf KeyAscii = 54 Then Number_Click (6) ElseIf KeyAscii = 55 Then Number_Click (7) ElseIf KeyAscii = 56 Then Number_Click (8) ElseIf KeyAscii = 57 Then Number_Click (9)
133
End If End Sub
' Procedure para a tecla de percentagem (%). ' Computa and mostra a percentagem do primeiro operando.
Private Sub Percent_Click() Visor.Caption = Format$(Op1 * Val(Visor.Caption) / 100) End Sub
Private Sub SobreSpCalc_Click() frmCopyright.Show 1 End Sub
Public Sub CENTRALIZA_FORM(Formulario As Form) On Error Resume Next 'Evita erro caso o usuário minimize o Form With Formulario .Left = (Screen.Width - .Width) / 2 'Alinha o form no horizontalmente no centro .Top = (Screen.Height - .Height) / 2 'Alinha o form no verticalmente no centro End With 'With Formulario '
.Left = ((mdiGerest.Width - .Width) / 2) 'Alinha o form no horizontalmente no centro
'
.Top = ((mdiGerest.Height - .Height) / 2) - 1000 'Alinha o form no verticalmente no
centro 'End With End Sub
134
Private Const AnInch As Long = 1440 '1440 twips per inch Private Const QuarterInch As Long = 360 Private Sub Combo1_Click() RTF.SelFontSize = Combo1.Text End Sub
Private Sub Combo3_Click() RTF.SelFontName = Combo3.Text End Sub
Private Sub Form_Load()
For i = 1 To Screen.FontCount - 1
135
Combo3.AddItem Screen.Fonts(i) Next i
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Novo" Then If RTF.Text = "" Then RTF.Text = "" Exit Sub End If 'Pergunta se deseja salvar !! If MsgBox("Deseja salvar o texto atual ?", vbQuestion + vbYesNo, "Salvar ?") = vbYes Then DIALOGO.ShowSave RTF.SaveFile (DIALOGO.FileName), 0 RTF.Text = "" Exit Sub End If
RTF.Text = ""
ElseIf Button.Key = "Abrir" Then DIALOGO.ShowOpen RTF.LoadFile (DIALOGO.FileName), 0 Exit Sub
ElseIf Button.Key = "Salvar" Then DIALOGO.ShowSave RTF.SaveFile (DIALOGO.FileName), 0 RTF.Text = "" Exit Sub
ElseIf Button.Key = "Imprimir" Then
136
If MsgBox("Gostaria de imprimir o documento na impressora " & Printer.DeviceName & " ?", vbQuestion + vbYesNo, "Confirme !!") = vbYes Then PrintRTF RTF, AnInch, AnInch, AnInch, AnInch Exit Sub Else Exit Sub End If
ElseIf Button.Key = "Recortar" Then Clipboard.Clear Clipboard.SetText (RTF.SelText) RTF.SelText = ""
ElseIf Button.Key = "Copiar" Then Clipboard.Clear Clipboard.SetText (RTF.SelText)
ElseIf Button.Key = "Colar" Then RTF.SelText = Clipboard.GetText
ElseIf Button.Key = "Retirar" Then If RTF.SelIndent > 0 Then RTF.SelIndent = RTF.SelIndent - 490 End If
ElseIf Button.Key = "Inserir" Then 'Limita a identação do texto If CInt(RTF.SelIndent) < CInt(11160) Then RTF.SelIndent = RTF.SelIndent + 490 End If
ElseIf Button.Key = "Cor" Then DIALOGO.ShowColor RTF.SelColor = DIALOGO.Color
137
ElseIf Button.Key = "Localizar" Then BUSCA = InputBox("Digite o texto a ser localizado:", "Localizador") If RTF.Find(BUSCA) = -1 Then MsgBox ("Não encontrei nada !!"), vbCritical, "Desculpe !!" Exit Sub Else Exit Sub End If
ElseIf Button.Key = "LSubstituir" Then BUSCA = InputBox("Digite o texto a ser localizado:", "Localiza / Substitui") If RTF.Find(BUSCA) = -1 Then MsgBox ("Não encontrei o texto digitado !!"), vbCritical, "Nada localizado" End If
BUSCA2 = InputBox("Digite o texto Substituto", "Substituir") RTF.SelText = BUSCA2 MsgBox ("Texto subtituido"), vbInformation, "Sucesso !!"
End If
End Sub
Private Sub Toolbar2_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Negrito" Then If RTF.SelBold = True Then RTF.SelBold = False Else RTF.SelBold = True End If
ElseIf Button.Key = "Italico" Then If RTF.SelItalic = True Then
138
RTF.SelItalic = False Else RTF.SelItalic = True End If
ElseIf Button.Key = "Sublinhado" Then If RTF.SelUnderline = True Then RTF.SelUnderline = False Else RTF.SelUnderline = True End If
ElseIf Button.Key = "Marcador" Then If RTF.SelBullet = False Then RTF.SelBullet = True Else RTF.SelBullet = False End If
ElseIf Button.Key = "Esquerda" Then RTF.SelAlignment = rtfLeft
ElseIf Button.Key = "Centro" Then RTF.SelAlignment = rtfCenter
ElseIf Button.Key = "Direita" Then RTF.SelAlignment = rtfRight
ElseIf Button.Key = "Sair" Then If RTF.Text = "" Then Unload Me Else If MsgBox("Deseja salvar o texto atual?", vbQuestion + vbYesNo, "Salvar?") = vbYes Then
139
DIALOGO.ShowSave RTF.SaveFile (DIALOGO.FileName), 0 Unload Me Exit Sub End If End If
Unload Me
End If End Sub
Dim Ind As Integer, ind2 As Integer Rem Função de pesquisa Function Search(Name As String) If Dir$(App.Path & Name) = "" Then MsgBox "Arquivo não encontrado:" & vbNewLine & Name & vbNewLine & "O aplicativo será finalizado.", vbCritical End End If End Function
Rem Verifica se os arquivos existem Private Sub Form_Load()
140
lblVersao.Caption = "Versão " & App.Major & "." & App.Minor & "." & App.Revision
For Ind = 1 To 10 Step 1 Search ("\Dat\A\" & Ind & ".dat") Search ("\Dat\B\" & Ind & ".dat") Search ("\Dat\C\" & Ind & ".dat") Search ("\Dat\D\" & Ind & ".dat") Search ("\Dat\E\" & Ind & ".dat") Search ("\Dat\F\" & Ind & ".dat") Search ("\Dat\G\" & Ind & ".dat") Search ("\Dat\H\" & Ind & ".dat") Search ("\Dat\I\" & Ind & ".dat") Search ("\Dat\J\" & Ind & ".dat") Search ("\Dat\L\" & Ind & ".dat") Search ("\Dat\M\" & Ind & ".dat") Search ("\Dat\N\" & Ind & ".dat") Search ("\Dat\O\" & Ind & ".dat") Search ("\Dat\P\" & Ind & ".dat") Search ("\Dat\Q\" & Ind & ".dat") Search ("\Dat\R\" & Ind & ".dat") Search ("\Dat\S\" & Ind & ".dat") Search ("\Dat\T\" & Ind & ".dat") Search ("\Dat\U\" & Ind & ".dat") Search ("\Dat\V\" & Ind & ".dat") Search ("\Dat\X\" & Ind & ".dat") Search ("\Dat\Z\" & Ind & ".dat") Search ("\Dat\W\" & Ind & ".dat") Search ("\Dat\Y\" & Ind & ".dat") Next
Screen.MousePointer = vbHourglass End Sub
Rem Tempo de apresentação
141
Private Sub tmrSplash_Timer() Screen.MousePointer = vbDefault Unload Me frmAgenda.Show frmAgenda.Top = 3000 frmAgenda.Left = 5000 End Sub
Option Explicit
Rem Função de movimentação do form sem barra de título: Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function ReleaseCapture Lib "USER32" () As Long
Rem Declaração das variáveis do aplicativo Dim Ind As Integer, ind2 As Integer, Pagina As Integer, Pag_Atual As Integer, SA As Integer, I2 As Integer, Pag As Integer, iARQ As Integer, II As Integer
142
Dim INI_Parametre(1 To 2) As String, Nome As String, Status As String, NomeO As String, FoneO As String, Status2 As String, Letra_Atual As String, Nome_Atual As String, Letra_Salvar As String, Letra_Pesquisa As String Rem Função de leitura dos arquivos .dat Private Function Separate_Parametre(ByVal Text As String) As String Dim I As Integer For I = 1 To Len(Text) If Mid$(Text, I, 1) = "=" Then Separate_Parametre = Trim(Left$(Text, I - 1)) Exit For End If Next I End Function
Rem Função de leitura dos arquivos .dat Private Function Separate_Value(ByVal Text As String) As String Dim I As Integer For I = 1 To Len(Text) If Mid$(Text, I, 1) = "=" Then Separate_Value = Trim(Right$(Text, Len(Text) - I)) Exit For End If Next I End Function
Rem Função para inibir os frames editore Function Inibe_Frames() fraCampos1.Visible = False fraCampos2.Visible = False fraCampos3.Visible = False fraCampos4.Visible = False fraCampos5.Visible = False End Function Rem Função para salvar a agenda
143
Function Salva(ByVal sFileINI As String)
ind2 = 0 iARQ = FreeFile
Select Case Pagina Case 1 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 1 }" For ind2 = 0 To 4 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 2 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 2 }" For ind2 = 5 To 9 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 5) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 5) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 3 Open sFileINI For Output As iARQ
144
Print #iARQ, "{ Página 3 }" For ind2 = 10 To 14 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 10) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 10) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 4 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 4 }" For ind2 = 15 To 19 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 15) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 15) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 5 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 5 }" For ind2 = 20 To 24 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 20) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 20) Next Close iARQ Inibe_Frames Habilita_Tudo2
145
lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 6 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 6 }" For ind2 = 25 To 29 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 25) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 25) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 7 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 7 }" For ind2 = 30 To 34 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 30) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 30) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 8 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 8 }" For ind2 = 35 To 39 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 35)
146
Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 35) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 9 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 9 }" For ind2 = 40 To 44 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 40) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 40) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Case 10 Open sFileINI For Output As iARQ Print #iARQ, "{ Página 10 }" For ind2 = 45 To 49 Step 1 Print #iARQ, "Nome" & ind2 & "=" & txtNome(ind2 - 45) Print #iARQ, "Telefone" & ind2 & "=" & txtFone(ind2 - 45) Next Close iARQ Inibe_Frames Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1))
147
End Select
End Function
Rem Função para mostrar a agenda Function Mostra_Letra(Letra As String) Mostra Dim sLine As String Dim iARQ As Integer Select Case Pagina Case 1 Primeiro.Enabled = False Anterior.Enabled = False Proximo.Enabled = True Ultimo.Enabled = True Case 10 Primeiro.Enabled = True Anterior.Enabled = True Proximo.Enabled = False Ultimo.Enabled = False Case Else Primeiro.Enabled = True Anterior.Enabled = True Proximo.Enabled = True Ultimo.Enabled = True End Select SA = 0 lblTot.Visible = True lblPag.Visible = True lblPagina.Visible = True lblPagina.Caption = Pagina For SA = 0 To 4 Step 1 iARQ = FreeFile Open (App.Path & "\Dat\" & Letra & "\" & Pagina & ".dat") For Input As iARQ
148
Do While Not EOF(iARQ) Line Input #iARQ, sLine Select Case Pagina Case 1 Select Case Separate_Parametre(sLine) Case "Nome" & SA INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & SA INI_Parametre(2) = Separate_Value(sLine) End Select Case 2 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 5) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 5) INI_Parametre(2) = Separate_Value(sLine) End Select Case 3 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 10) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 10) INI_Parametre(2) = Separate_Value(sLine) End Select Case 4 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 15) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 15) INI_Parametre(2) = Separate_Value(sLine) End Select Case 5 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 20)
149
INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 20) INI_Parametre(2) = Separate_Value(sLine) End Select Case 6 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 25) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 25) INI_Parametre(2) = Separate_Value(sLine) End Select Case 7 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 30) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 30) INI_Parametre(2) = Separate_Value(sLine) End Select Case 8 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 35) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 35) INI_Parametre(2) = Separate_Value(sLine) End Select Case 9 Select Case Separate_Parametre(sLine) Case "Nome" & (SA + 40) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 40) INI_Parametre(2) = Separate_Value(sLine) End Select Case 10 Select Case Separate_Parametre(sLine)
150
Case "Nome" & (SA + 45) INI_Parametre(1) = Separate_Value(sLine) Case "Telefone" & (SA + 45) INI_Parametre(2) = Separate_Value(sLine) End Select End Select Loop Close iARQ txtNome(SA).Text = INI_Parametre(1) txtFone(SA).Text = INI_Parametre(2) lblMostraNome(SA).Caption = INI_Parametre(1) lblMostraTelefone(SA).Caption = INI_Parametre(2) Next End Function
Function Inibe() Ultimo.Visible = False Anterior.Visible = False Proximo.Visible = False Primeiro.Visible = False For SA = 0 To 4 Step 1 lblNome(SA).Visible = False lblTelefone(SA).Visible = False txtNome(SA).Visible = False txtFone(SA).Visible = False Next End Function
Function Mostra() Ultimo.Visible = True Anterior.Visible = True Proximo.Visible = True Primeiro.Visible = True For SA = 0 To 4 Step 1
151
lblNome(SA).Visible = True lblTelefone(SA).Visible = True txtNome(SA).Visible = True txtFone(SA).Visible = True Next End Function Private Sub Anterior_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = Pagina - 1 Mostra_Letra ((Mid(fra2.Caption, 1, 1))) End Sub
Private Sub Anterior_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Anterior.FontUnderline = True End Sub
Private Sub Form_Load() Pagina = 1 Mostra_Letra (A) fra2.Caption = "A:" End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim rec& If Button And 1 Then ReleaseCapture rec& = SendMessage(Me.hWnd, &HA1, 2, 0&) End If End Sub
Function Reseta_Labels1() lblSair.FontUnderline = False
152
lblPesquisar.FontUnderline = False lblIncluir.FontUnderline = False lblExcluir.FontUnderline = False End Function
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Reseta_Labels1 End Sub
Private Sub fra1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim rec& If Button And 1 Then ReleaseCapture rec& = SendMessage(Me.hWnd, &HA1, 2, 0&) End If End Sub
Private Sub fra2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim rec& If Button And 1 Then ReleaseCapture rec& = SendMessage(Me.hWnd, &HA1, 2, 0&) End If End Sub
Function Inibe_Controles() Anterior.FontUnderline = False Proximo.FontUnderline = False Ultimo.FontUnderline = False Primeiro.FontUnderline = False End Function
153
Private Sub fra2_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Reseta_Labels1 Inibe_Controles End Sub
Private Sub lblExcluir_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If fraCampos1.Visible = True Then txtNome(0).Text = "" txtFone(0).Text = "" Desabilita_Tudo2 Pag_Atual = Pagina lblCopyright.Caption = Space(15) & ".:: Excluindo" Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat") End If If fraCampos2.Visible = True Then txtNome(1).Text = "" txtFone(1).Text = "" Desabilita_Tudo2 Pag_Atual = Pagina lblCopyright.Caption = Space(15) & ".:: Excluindo" Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat") End If If fraCampos3.Visible = True Then txtNome(2).Text = "" txtFone(2).Text = "" Desabilita_Tudo2 Pag_Atual = Pagina lblCopyright.Caption = Space(15) & ".:: Excluindo" Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat") End If If fraCampos4.Visible = True Then
154
txtNome(3).Text = "" txtFone(3).Text = "" Desabilita_Tudo2 Pag_Atual = Pagina lblCopyright.Caption = Space(15) & ".:: Excluindo" Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat") End If If fraCampos5.Visible = True Then txtNome(4).Text = "" txtFone(4).Text = "" Desabilita_Tudo2 Pag_Atual = Pagina lblCopyright.Caption = Space(15) & ".:: Excluindo" Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat") End If End Sub
Private Sub lblExcluir_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) lblExcluir.FontUnderline = True End Sub
Private Sub lblIncluir_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If fraCampos1.Visible = True Then Letra_Salvar = (Mid(txtNome(0).Text, 1, 1)) End If If fraCampos2.Visible = True Then Letra_Salvar = (Mid(txtNome(1).Text, 1, 1)) End If If fraCampos3.Visible = True Then Letra_Salvar = (Mid(txtNome(2).Text, 1, 1)) End If If fraCampos4.Visible = True Then
155
Letra_Salvar = (Mid(txtNome(3).Text, 1, 1)) End If If fraCampos5.Visible = True Then Letra_Salvar = (Mid(txtNome(4).Text, 1, 1)) End If If (Mid(fra2.Caption, 1, 1)) <> UCase(Letra_Salvar) Then MsgBox "Nome diferente da letra da agenda!", vbCritical Else Desabilita_Tudo2 Pag_Atual = Pagina lblCopyright.Caption = Space(15) & ".:: Salvando" Salva (App.Path & "\Dat\" & (Mid(fra2.Caption, 1, 1)) & "\" & Pagina & ".dat") End If End Sub
Private Sub lblIncluir_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) lblIncluir.FontUnderline = True End Sub
Private Sub lblNome_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) Select Case Index Case 0 Desabilita_Tudo fraCampos1.Visible = True NomeO = txtNome(0).Text FoneO = txtFone(0).Text Case 1 Desabilita_Tudo fraCampos2.Visible = True NomeO = txtNome(1).Text FoneO = txtFone(1).Text Case 2
156
Desabilita_Tudo fraCampos3.Visible = True NomeO = txtNome(2).Text FoneO = txtFone(2).Text Case 3 Desabilita_Tudo fraCampos4.Visible = True NomeO = txtNome(3).Text FoneO = txtFone(3).Text Case 4 Desabilita_Tudo fraCampos5.Visible = True NomeO = txtNome(4).Text FoneO = txtFone(4).Text End Select End Sub
Function Desabilita_Tudo() fra1.Enabled = False A.Enabled = False B.Enabled = False C.Enabled = False D.Enabled = False E.Enabled = False F.Enabled = False G.Enabled = False H.Enabled = False I.Enabled = False J.Enabled = False L.Enabled = False M.Enabled = False N.Enabled = False O.Enabled = False P.Enabled = False
157
Q.Enabled = False R.Enabled = False S.Enabled = False T.Enabled = False U.Enabled = False V.Enabled = False XA.Enabled = False Z.Enabled = False W.Enabled = False YA.Enabled = False Anterior.Enabled = False Proximo.Enabled = False Ultimo.Enabled = False Primeiro.Enabled = False For II = 0 To 4 Step 1 lblNome(II).Enabled = False lblTelefone(II).Enabled = False lblMostraNome(II).Enabled = False lblMostraTelefone(II).Enabled = False Next lblPag.Enabled = False lblPagina.Enabled = False lblPesquisar.Enabled = False lblTot.Enabled = False lblIncluir.Enabled = True lblExcluir.Enabled = True End Function
Function Habilita_Tudo() fra1.Enabled = True A.Enabled = True B.Enabled = True C.Enabled = True D.Enabled = True
158
E.Enabled = True F.Enabled = True G.Enabled = True H.Enabled = True I.Enabled = True J.Enabled = True L.Enabled = True M.Enabled = True N.Enabled = True O.Enabled = True P.Enabled = True Q.Enabled = True R.Enabled = True S.Enabled = True T.Enabled = True U.Enabled = True V.Enabled = True XA.Enabled = True Z.Enabled = True W.Enabled = True YA.Enabled = True Select Case Pagina Case 1 Primeiro.Enabled = False Anterior.Enabled = False Proximo.Enabled = True Ultimo.Enabled = True Case 10 Primeiro.Enabled = True Anterior.Enabled = True Proximo.Enabled = False Ultimo.Enabled = False Case Else Primeiro.Enabled = True
159
Anterior.Enabled = True Proximo.Enabled = True Ultimo.Enabled = True End Select For II = 0 To 4 Step 1 lblNome(II).Enabled = True lblTelefone(II).Enabled = True lblMostraNome(II).Enabled = True lblMostraTelefone(II).Enabled = True Next lblPag.Enabled = True lblPagina.Enabled = True lblPesquisar.Enabled = True lblTot.Enabled = True lblIncluir.Enabled = False lblExcluir.Enabled = False End Function
Function Desabilita_Tudo2() fra1.Enabled = False fra2.Enabled = False A.Enabled = False B.Enabled = False C.Enabled = False D.Enabled = False E.Enabled = False F.Enabled = False G.Enabled = False H.Enabled = False I.Enabled = False J.Enabled = False L.Enabled = False M.Enabled = False N.Enabled = False
160
O.Enabled = False P.Enabled = False Q.Enabled = False R.Enabled = False S.Enabled = False T.Enabled = False U.Enabled = False V.Enabled = False XA.Enabled = False Z.Enabled = False W.Enabled = False YA.Enabled = False Anterior.Enabled = False Proximo.Enabled = False Ultimo.Enabled = False Primeiro.Enabled = False For II = 0 To 4 Step 1 lblNome(II).Enabled = False lblTelefone(II).Enabled = False lblMostraNome(II).Enabled = False lblMostraTelefone(II).Enabled = False Next lblPag.Enabled = False lblPagina.Enabled = False lblPesquisar.Enabled = False lblTot.Enabled = False lblIncluir.Enabled = False lblExcluir.Enabled = False lblSair.Enabled = False End Function
Function Habilita_Tudo2() fra1.Enabled = True fra2.Enabled = True
161
A.Enabled = True B.Enabled = True C.Enabled = True D.Enabled = True E.Enabled = True F.Enabled = True G.Enabled = True H.Enabled = True I.Enabled = True J.Enabled = True L.Enabled = True M.Enabled = True N.Enabled = True O.Enabled = True P.Enabled = True Q.Enabled = True R.Enabled = True S.Enabled = True T.Enabled = True U.Enabled = True V.Enabled = True XA.Enabled = True Z.Enabled = True W.Enabled = True YA.Enabled = True Select Case Pagina Case 1 Primeiro.Enabled = False Anterior.Enabled = False Proximo.Enabled = True Ultimo.Enabled = True Case 10 Primeiro.Enabled = True Anterior.Enabled = True
162
Proximo.Enabled = False Ultimo.Enabled = False Case Else Primeiro.Enabled = True Anterior.Enabled = True Proximo.Enabled = True Ultimo.Enabled = True End Select For II = 0 To 4 Step 1 lblNome(II).Enabled = True lblTelefone(II).Enabled = True lblMostraNome(II).Enabled = True lblMostraTelefone(II).Enabled = True Next lblPag.Enabled = True lblPagina.Enabled = True lblPesquisar.Enabled = True lblTot.Enabled = True lblSair.Enabled = True End Function
Private Sub lblPesquisar_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) lblPesquisar.FontUnderline = True End Sub Private Sub lblSair_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Unload Me End Sub Private Sub lblSair_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) lblSair.FontUnderline = True End Sub
163
Private Sub lblSobre_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) lblSobre.FontUnderline = True End Sub
Private Sub lblVoltar_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) Select Case Index Case 10 If Status2 = "" Then txtNome(0).Text = NomeO txtFone(0).Text = FoneO Else End If Habilita_Tudo fraCampos1.Visible = False Case 0 If Status2 = "" Then txtNome(1).Text = NomeO txtFone(1).Text = FoneO Else End If Habilita_Tudo fraCampos2.Visible = False Case 1 If Status2 = "" Then txtNome(2).Text = NomeO txtFone(2).Text = FoneO Else End If Habilita_Tudo fraCampos3.Visible = False Case 2
164
If Status2 = "" Then txtNome(3).Text = NomeO txtFone(3).Text = FoneO Else End If Habilita_Tudo fraCampos5.Visible = False Case 3 If Status2 = "" Then txtNome(4).Text = NomeO txtFone(4).Text = FoneO Else End If Habilita_Tudo fraCampos4.Visible = False End Select End Sub Private Sub Primeiro_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ((Mid(fra2.Caption, 1, 1))) End Sub Private Sub Primeiro_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Primeiro.FontUnderline = True End Sub Private Sub Proximo_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = Pagina + 1 Mostra_Letra ((Mid(fra2.Caption, 1, 1))) End Sub Private Sub Proximo_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Proximo.FontUnderline = True
165
End Sub
Private Sub Tmr_Mostra_Label_Timer() lblNome(I2).BorderStyle = 0 End Sub
Private Sub Ultimo_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 10 Mostra_Letra ((Mid(fra2.Caption, 1, 1))) End Sub Private Sub Ultimo_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Ultimo.FontUnderline = True End Sub
Rem Ao passar o mouse sobre o fra1 todas as letras _ ficam não sublinhadas: Private Sub fra1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) A.FontUnderline = False B.FontUnderline = False C.FontUnderline = False D.FontUnderline = False E.FontUnderline = False F.FontUnderline = False G.FontUnderline = False H.FontUnderline = False I.FontUnderline = False J.FontUnderline = False L.FontUnderline = False M.FontUnderline = False N.FontUnderline = False O.FontUnderline = False
166
P.FontUnderline = False Q.FontUnderline = False R.FontUnderline = False S.FontUnderline = False T.FontUnderline = False U.FontUnderline = False V.FontUnderline = False XA.FontUnderline = False Z.FontUnderline = False W.FontUnderline = False YA.FontUnderline = False End Sub
Rem Ao passar o mouse sobre os labels esses ficam _ sublinhados: Private Sub A_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) A.FontUnderline = True End Sub Private Sub B_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) B.FontUnderline = True End Sub Private Sub C_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) C.FontUnderline = True End Sub Private Sub D_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) D.FontUnderline = True End Sub Private Sub E_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) E.FontUnderline = True
167
End Sub Private Sub F_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) F.FontUnderline = True End Sub Private Sub G_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) G.FontUnderline = True End Sub Private Sub H_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) H.FontUnderline = True End Sub Private Sub I_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) I.FontUnderline = True End Sub Private Sub J_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) J.FontUnderline = True End Sub Private Sub L_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) L.FontUnderline = True End Sub Private Sub M_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) M.FontUnderline = True End Sub Private Sub N_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) N.FontUnderline = True End Sub
168
Private Sub O_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) O.FontUnderline = True End Sub Private Sub P_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) P.FontUnderline = True End Sub Private Sub Q_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Q.FontUnderline = True End Sub Private Sub R_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) R.FontUnderline = True End Sub Private Sub S_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) S.FontUnderline = True End Sub Private Sub T_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) T.FontUnderline = True End Sub Private Sub U_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) U.FontUnderline = True End Sub Private Sub V_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) V.FontUnderline = True End Sub Private Sub XA_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
169
XA.FontUnderline = True End Sub Private Sub Z_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Z.FontUnderline = True End Sub Private Sub W_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) W.FontUnderline = True End Sub Private Sub YA_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) YA.FontUnderline = True End Sub
Rem Quando clicar em uma das letras o caption do fra2 _ assume o nome da letra, e carrega a agenda: Private Sub A_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("A") fra2.Caption = "A:" End Sub Private Sub B_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("B") fra2.Caption = "B:" End Sub Private Sub C_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("C") fra2.Caption = "C:"
170
End Sub Private Sub D_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("D") fra2.Caption = "D:" End Sub Private Sub E_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("E") fra2.Caption = "E:" End Sub Private Sub F_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("F") fra2.Caption = "F:" End Sub Private Sub G_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("G") fra2.Caption = "G:" End Sub Private Sub H_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("H") fra2.Caption = "H:" End Sub Private Sub I_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1
171
Mostra_Letra ("I") fra2.Caption = "I:" End Sub Private Sub J_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("J") fra2.Caption = "J:" End Sub Private Sub L_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("L") fra2.Caption = "L:" End Sub Private Sub M_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("M") fra2.Caption = "M:" End Sub Private Sub N_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("N") fra2.Caption = "N:" End Sub Private Sub O_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("O") fra2.Caption = "O:" End Sub
172
Private Sub P_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("P") fra2.Caption = "P:" End Sub Private Sub Q_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("Q") fra2.Caption = "Q:" End Sub Private Sub R_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("R") fra2.Caption = "R:" End Sub Private Sub S_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("S") fra2.Caption = "S:" End Sub Private Sub T_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("T") fra2.Caption = "T:" End Sub Private Sub U_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("U")
173
fra2.Caption = "U:" End Sub Private Sub V_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("V") fra2.Caption = "V:" End Sub Private Sub XA_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("X") fra2.Caption = "X:" End Sub Private Sub Z_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("Z") fra2.Caption = "Z:" End Sub Private Sub YA_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("Y") fra2.Caption = "Y:" End Sub Private Sub W_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Pagina = 1 Mostra_Letra ("W") fra2.Caption = "W:" End Sub
174
Private Sub lblPesquisar_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Desabilita_Tudo2 lblCopyright.Caption = Space(15) & ".:: Pesquisar" I2 = 0 Status = 0 Pag_Atual = Pagina Letra_Atual = (Mid(fra2.Caption, 1, 1)) Rem O usuário entra com o nome Nome = InputBox("Digite o nome a ser pesquisado:") Nome_Atual = Nome Nome = UCase(Nome) Letra_Pesquisa = UCase((Mid(Nome, 1, 1))) If Nome = "" Then Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Habilita_Tudo2 Else Mostra_Letra (Letra_Pesquisa) fra2.Caption = Letra_Pesquisa & ":" For Pag = 1 To 10 Step 1 Pagina = Pag Mostra_Letra (Mid(fra2.Caption, 1, 1)) For I2 = 0 To 4 Step 1 If UCase(lblMostraNome(I2).Caption) = Nome Then Habilita_Tudo2 Status = "1" Tmr_Mostra_Label.Enabled = True lblNome(I2).BorderStyle = 1 lblCopyright.Caption = ".:: Agenda Telefônica" Exit Sub End If Next Next
175
If Status = 0 Then MsgBox "O nome " & Nome_Atual & " não foi encontrado!", vbInformation Mostra_Letra (Letra_Atual) fra2.Caption = Letra_Atual & ":" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" End If End If Mostra_Letra (Letra_Atual) fra2.Caption = Letra_Atual & ":" Pagina = Pag_Atual Mostra_Letra (Mid(fra2.Caption, 1, 1)) Habilita_Tudo2 lblCopyright.Caption = ".:: Agenda Telefônica" End Sub
176
Public rsVenda As New ADODB.Recordset Public rsVendaDet As New ADODB.Recordset Private Vfrase As String Private rsProduto As New ADODB.Recordset Private VProduto As String Private rsCliente As New ADODB.Recordset Private VCliente As String Private Bruto As Currency Private ContadorVenda As Integer
Private Const CB_FINDSTRING As Long = &H14C Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _
177
lParam As Any) As Long Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As Long, Optional ByVal xUpperCase As Boolean = True) As Long Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String With xCombo If xKeyAscii = 8 Then If .SelStart = 0 Then Exit Function
.SelStart = .SelStart - 1 .SelLength = Len(.Text) .SelText = vbNullString Else intPos = .SelStart tStr = .Text .SelText = (Chr$(xKeyAscii)) '
.SelText = IIf(xUpperCase, _
'
UCase$(Chr$(xKeyAscii)), _
'
LCase$(Chr$(xKeyAscii))) End If lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text) If lngFind = -1 Then .Text = tStr .SelStart = intPos .SelLength = (Len(.Text) - intPos) Combo_AutoCompletar = xKeyAscii Else intPos = .SelStart intLength = Len(.List(lngFind)) - Len(.Text) .SelText = .SelText & Right$(.List(lngFind), intLength) .SelStart = intPos .SelLength = intLength End If End With
End Function
178
Private Sub cboCliente_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Combo_AutoCompletar(cboCliente, KeyAscii) End Sub
Private Sub cboCliente_LostFocus() If cboCliente.Text = Empty Then Exit Sub Else Dim VConNome As String VConNome = Chr(39) & CStr(cboCliente.Text) & Chr(39) Vfrase = "Select * from Clientes Where Nome_Cli=" & VConNome Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)
If rsConClientes.BOF = True And rsConClientes.EOF = True Then 'cliente não cadastrado MsgBox "Cliente Não Encontrado, caso seja Cliente novo Cadastrar!", vbInformation, "Atenção" cboCliente.Text = "" cboCliente.SetFocus 'fecha a conexão rsConClientes.Close Exit Sub End If
txtCodCli.Text = rsConClientes("Cod_Cli")
End If End Sub
179
Private Sub cboDescricao_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If KeyAscii = Combo_AutoCompletar(cboDescricao, KeyAscii) End Sub Private Sub HabilitaCampos() txtCodPro.Enabled = True cboDescricao.Enabled = True txtQtd.Enabled = True Command1.Enabled = True Command2.Enabled = True cboFormPagamento.Enabled = True txtDesc.Enabled = True txtJuros.Enabled = True txtCodCli.Enabled = True cboCliente.Enabled = True End Sub Private Sub cmdAltera_Click() HabilitaCampos cmdFinalizar.Enabled = False cmdFechar.Enabled = False cmdCalcular.Enabled = True cmdAltera.Enabled = False txtTotal.Text = Format(Bruto, "currency") lblTotal.Caption = Format(Bruto, "currency") lbltotal2.Caption = Bruto End Sub
Private Sub cmdCalcular_Click() Dim Vtotal As Currency
If fgItem.Rows = 1 Then
180
MsgBox "Não há produtos para finalizar Venda", vbOKOnly + vbExclamation, "Aviso" txtCodPro.SetFocus Exit Sub End If
If cboFormPagamento.Text = "Escolha a forma de Pagar" Then MsgBox "Escolha a forma que o Cliente Pagará", vbOKOnly + vbExclamation, "Aviso" cboFormPagamento.SetFocus Exit Sub End If
If txtCodCli.Text = Empty Then MsgBox "Entre com o código do Cliente para realizar a Venda!", vbOKOnly + vbExclamation, "Aviso" Exit Sub End If
If cboCliente.Text = Empty Then MsgBox "Entre com o Nome do Cliente para realizar a Venda!", vbOKOnly + vbExclamation, "Aviso" Exit Sub End If
Bruto = CCur(txtTotal.Text)
If txtDesc.Text = 0 And txtJuros.Text = 0 Then Vtotal = txtTotal.Text ElseIf txtDesc.Text <> 0 Then Vtotal = txtTotal.Text - txtTotal.Text * txtDesc.Text / 100 Else Vtotal = txtTotal.Text + txtTotal.Text * txtJuros.Text / 100 End If
181
txtTotal.Text = Format(Vtotal, "currency") lblTotal.Caption = Format(Vtotal, "currency") lbltotal2.Caption = Vtotal
Desabilita
cmdFinalizar.Enabled = True cmdCalcular.Enabled = False cmdAltera.Enabled = True cmdFechar.Enabled = False End Sub Private Sub Desabilita() txtCodPro.Enabled = False cboDescricao.Enabled = False txtQtd.Enabled = False Command1.Enabled = False Command2.Enabled = False cboFormPagamento.Enabled = False txtDesc.Enabled = False txtJuros.Enabled = False txtCodCli.Enabled = False cboCliente.Enabled = False End Sub
Private Sub cmdCancelar_Click() txtItem.Text = 1 txtCodPro.Text = "" cboDescricao.Text = "" txtQtd.Text = "" txtPrecoUni.Text = "" txtTotal.Text = "R$ 0,00" With fgItem .ColWidth(0) = 800
182
.ColWidth(1) = 2000 .ColWidth(2) = 3500 .ColWidth(3) = 1000 .ColWidth(4) = 2000 .ColWidth(5) = 1500 .Rows = 1 .TextMatrix(0, 0) = "Item" .TextMatrix(0, 1) = "Código do Produto" .TextMatrix(0, 2) = "Descrição" .TextMatrix(0, 3) = "Quantidade" .TextMatrix(0, 4) = "Preço Unitário" .TextMatrix(0, 5) = "Subtotal" End With cboFormPagamento.Text = "Escolha a forma de Pagar" txtDesc.Text = 0 txtCodCli.Text = "" cboCliente.Text = "" lblTotal.Caption = "R$ 0,00" txtJuros.Text = 0 lstreferente.Clear lbltotal2.Caption = "0,00" HabilitaCampos txtCodPro.SetFocus cmdCalcular.Enabled = False cmdFinalizar.Enabled = False cmdAltera.Enabled = False cmdFechar.Enabled = True cmdCancelar.Enabled = False End Sub
Private Sub cmdFechar_Click() Unload Me End Sub
183
Private Sub cmdFinalizar_Click() Dim Vcontdor As Boolean 'Vcontadorvenda = lblVenda.Caption + 1
fgItem.RowSel = 1 Vcontador = False
rsVenda("Cod_Vend") = lblVenda.Caption rsVenda("CodCli_Vend") = txtCodCli.Text rsVenda("NomeCli_Vend") = cboCliente.Text rsVenda("Funcionario_Vend") = lblVendedor.Caption rsVenda("Data_Vend") = lblData.Caption
rsVenda.Update
Do Until Vcontador = True rsVendaDet.AddNew rsVendaDet("Item_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col) rsVendaDet("CodPro_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 1) rsVendaDet("DescPro_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 2) rsVendaDet("Qtd_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 3) rsVendaDet("Preco_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 4) rsVendaDet("SubTotal_VendDet") = fgItem.TextMatrix(fgItem.RowSel, Col + 5) rsVendaDet("CodVend_VendDet") = lblVenda.Caption rsVendaDet("Cod_VendDet") = lblVenda.Caption rsVendaDet("FormaPag_Vend") = cboFormPagamento.Text rsVendaDet("Total_VendDet") = txtTotal.Text
rsVendaDet.Update
If fgItem.RowSel = fgItem.Rows - 1 Then Vcontador = True Else fgItem.RowSel = fgItem.RowSel + 1
184
End If
Loop cmdFinalizar.Enabled = False cmdCancelar.Enabled = False cmdAltera.Enabled = False frmRecibo.Show frmRecibo.Left = 4000 frmRecibo.Top = 1000 End Sub Private Sub cmdNova_Click() lblVenda.Caption = ContadorVenda txtItem.Text = 1 txtCodPro.Text = "" cboDescricao.Text = "" txtQtd.Text = "" txtPrecoUni.Text = "" txtTotal.Text = "R$ 0,00" With fgItem .ColWidth(0) = 800 .ColWidth(1) = 2000 .ColWidth(2) = 3500 .ColWidth(3) = 1000 .ColWidth(4) = 2000 .ColWidth(5) = 1500 .Rows = 1 .TextMatrix(0, 0) = "Item" .TextMatrix(0, 1) = "Código do Produto" .TextMatrix(0, 2) = "Descrição" .TextMatrix(0, 3) = "Quantidade" .TextMatrix(0, 4) = "Preço Unitário" .TextMatrix(0, 5) = "Subtotal" End With cboFormPagamento.Text = "Escolha a forma de Pagar"
185
txtDesc.Text = 0 txtCodCli.Text = "" cboCliente.Text = "" lblTotal.Caption = "R$ 0,00" txtJuros.Text = 0 lstreferente.Clear lbltotal2.Caption = "0,00" HabilitaCampos txtCodPro.SetFocus cmdCalcular.Enabled = False cmdFinalizar.Enabled = False cmdAltera.Enabled = False cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdNova.Enabled = False End Sub
Private Sub Command1_Click() Dim Vtotal As Currency
If txtCodPro.Text = Empty Then MsgBox "Entre com o Código do Produto", vbOKOnly + vbInformation, "Atenção" txtCodPro.SetFocus Exit Sub End If
If cboDescricao.Text = Empty Then MsgBox "Entre com a Descrição do Produto", vbOKOnly + vbInformation, "Atenção" cboDescricao.SetFocus Exit Sub End If
If txtQtd.Text = Empty Then
186
MsgBox "Entre com a Quantidade de Produto", vbOKOnly + vbInformation, "Atenção" txtQtd.SetFocus Exit Sub End If
Vtotal = CCur(txtQtd.Text * txtPrecoUni.Text)
fgItem.AddItem txtItem.Text & Chr(9) & txtCodPro.Text & Chr(9) & cboDescricao.Text & Chr(9) & txtQtd.Text & Chr(9) & txtPrecoUni.Text & Chr(9) & Format(Vtotal, "Currency")
lblTotal.Caption = Format(lblTotal.Caption + Vtotal, "currency") lbltotal2.Caption = lbltotal2.Caption + Vtotal txtTotal.Text = Format(txtTotal.Text + Vtotal, "Currency") txtItem.Text = txtItem.Text + 1 txtCodPro.Text = Empty cboDescricao.Text = Empty txtQtd.Text = Empty txtPrecoUni.Text = Empty txtCodPro.SetFocus End Sub
Private Sub Command2_Click() If fgItem.Row = 0 Then MsgBox "Não há item selecionado para excluir!", vbOKOnly + vbExclamation, "Aviso" Exit Sub End If
Dim Vsubtotal As Currency
If MsgBox("Deseja realmente excluir o produto?", vbYesNo + vbQuestion, "Aviso") = vbYes Then
187
Vsubtotal = CCur(fgItem.TextMatrix(fgItem.RowSel, Col + 5)) lblTotal.Caption = Format(lblTotal.Caption - Vsubtotal, "currency") lbltotal2.Caption = lbltotal2.Caption - Vsubtotal txtTotal.Text = Format(txtTotal.Text - Vsubtotal, "Currency") fgItem.RemoveItem (fgItem.RowSel) txtCodPro.SetFocus End If End Sub
Private Sub Command3_Click() frmConProdutos.Show frmConProdutos.Top = 2000 frmConProdutos.Left = 2000 End Sub
Private Sub Command4_Click() frmConClientes.Show frmConClientes.Top = 2000 frmConClientes.Left = 2000 End Sub
Private Sub Form_Load() lblVendedor.Caption = frmLogon.Vnome lblData.Caption = Date Dim Vcontador As Integer fgItem.ColAlignment = center
rsVenda.Open "Vendas", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable rsVendaDet.Open "Vendas_Detalhes", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
If rsVenda.RecordCount = 0 Then rsVenda.AddNew
188
Vcodigo = 1 lblVenda.Caption = Format(Vcodigo, "00000") Else rsVenda.MoveLast Vcodigo = rsVenda("Cod_Vend") Vcodigo = Vcodigo + 1 rsVenda.AddNew lblVenda.Caption = Format(Vcodigo, "00000") End If
With fgItem .ColWidth(0) = 800 .ColWidth(1) = 2000 .ColWidth(2) = 3500 .ColWidth(3) = 1000 .ColWidth(4) = 2000 .ColWidth(5) = 1500 .Rows = 1 .TextMatrix(0, 0) = "Item" .TextMatrix(0, 1) = "Código do Produto" .TextMatrix(0, 2) = "Descrição" .TextMatrix(0, 3) = "Quantidade" .TextMatrix(0, 4) = "Preço Unitário" .TextMatrix(0, 5) = "Subtotal" End With
VProduto = "Select * from Produtos" Set rsProduto = mdiPrincipal.cnBiblioteca.Execute(VProduto)
Do While Not rsProduto.EOF cboDescricao.AddItem rsProduto("Nome_Pro") rsProduto.MoveNext Loop
189
VCliente = "Select * from Clientes" Set rsCliente = mdiPrincipal.cnBiblioteca.Execute(VCliente)
Do While Not rsCliente.EOF cboCliente.AddItem rsCliente("Nome_Cli") rsCliente.MoveNext Loop End Sub
Private Sub Form_Unload(Cancel As Integer) If rsVenda.EditMode Then rsVenda.CancelUpdate End If rsVenda.Close rsVendaDet.Close End Sub
Private Sub txtCodCli_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtCodCli_LostFocus() If txtCodCli.Text = Empty Then Exit Sub Else Dim VConCodigo As Integer VConCodigo = CInt(txtCodCli.Text) Vfrase = "Select * from Clientes Where Cod_Cli=" & VConCodigo Set rsConClientes = mdiPrincipal.cnBiblioteca.Execute(Vfrase)
If rsConClientes.BOF = True And rsConClientes.EOF = True Then 'cliente não cadastrado
190
MsgBox "Cliente Não Encontrado!", vbInformation, "Atenção" txtCodCli.Text = "" txtCodCli.SetFocus 'fecha a conexão rsConClientes.Close Exit Sub End If
cboCliente.Text = rsConClientes("Nome_Cli") End If End Sub
Private Sub txtCodPro_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtCodPro_LostFocus() If txtCodPro.Text = Empty Then Exit Sub Else Dim VConCodigo As Integer VConCodigo = CInt(txtCodPro.Text) Vfrase = "Select * from Produtos Where Cod_Pro=" & VConCodigo Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)
If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then 'cliente não cadastrado MsgBox "Produto Não Encontrado!", vbInformation, "Atenção" txtCodPro.Text = "" txtCodPro.SetFocus 'fecha a conexão rsConProdutos.Close
191
If cmdCalcular.Enabled = False Then cmdCalcular.Enabled = False cmdCancelar.Enabled = False cmdFechar.Enabled = False End If Exit Sub End If
cboDescricao.Text = rsConProdutos("Nome_Pro") txtPrecoUni.Text = Format(rsConProdutos("Valor_Pro"), "currency") cmdCalcular.Enabled = True cmdCancelar.Enabled = True cmdFechar.Enabled = False End If End Sub
Private Sub cboDescricao_LostFocus() If cboDescricao.Text = Empty Then Exit Sub Else Dim VConNome As String VConNome = Chr(39) & CStr(cboDescricao.Text) & Chr(39) Vfrase = "Select * from Produtos Where Nome_Pro=" & VConNome Set rsConProdutos = mdiPrincipal.cnBiblioteca.Execute(Vfrase)
If rsConProdutos.BOF = True And rsConProdutos.EOF = True Then 'cliente não cadastrado MsgBox "Produto Não Encontrado!", vbInformation, "Atenção" cboDescricao.Text = "" cboDescricao.SetFocus 'fecha a conexão rsConProdutos.Close If cmdCalcular.Enabled = False Then cmdCalcular.Enabled = False
192
cmdCancelar.Enabled = False cmdFechar.Enabled = False End If Exit Sub End If
txtCodPro.Text = rsConProdutos("Cod_Pro") txtPrecoUni.Text = Format(rsConProdutos("Valor_Pro"), "Currency") cmdCalcular.Enabled = True cmdCancelar.Enabled = True cmdFechar.Enabled = False End If End Sub
Private Sub txtDesc_Click() txtJuros.Text = 0 txtJuros.Enabled = False End Sub
Private Sub txtDesc_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtDesc_LostFocus() If txtDesc.Text = Empty Then txtDesc.Text = 0 ElseIf txtDesc.Text > 0 Then txtJuros.Enabled = False End If
If txtDesc.Text = 0 Then txtJuros.Enabled = True
193
End If End Sub
Private Sub txtJuros_Click() txtDesc.Text = 0 txtDesc.Enabled = False End Sub Private Sub txtJuros_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End Sub
Private Sub txtJuros_LostFocus() If txtJuros.Text = Empty Then txtJuros.Text = 0 ElseIf txtJuros.Text > 0 Then txtDesc.Enabled = False End If
If txtJuros.Text = 0 Then txtDesc.Enabled = True End If End Sub
194
Dim S As Object
Private Sub Command2_Click() 'Dim S As Object Dim str As String
If Not IsNumeric(Valor.Text) Then MsgBox "Valor não aceito" Valor.SetFocus Exit Sub End If
If Not IsDate(Data.Text) Then MsgBox "Data não aceita" Data.SetFocus
195
Exit Sub End If
For M = 1 To Len(Valor.Text) If Mid$(Valor.Text, M, 1) = "," Then str = str + "." Else str = str & Mid$(Valor.Text, M, 1) End If Next M 'Set S = CreateObject("Word.Document") S.Application.Visible = True With S.Application.Selection .EndKey Unit:=6 .Tables.Add range:=.range, NumRows:=1, NumColumns:=2, DefaultTableBehavior:=1, AutoFitBehavior:=0 .Tables(1).Style = "Tabela com grade" .Tables(1).ApplyStyleHeadingRows = True .Tables(1).ApplyStyleLastRow = True .Tables(1).ApplyStyleFirstColumn = True .Tables(1).ApplyStyleLastColumn = True .Style = S.Styles("Título 1") .Borders(-1).LineStyle = 0 .Borders(-2).LineStyle = 0 .Borders(-3).LineStyle = 0 .Borders(-4).LineStyle = 0 .Borders(-4).LineStyle = 0 .Borders(-8).LineStyle = 0 .TypeText Text:="Recibo Nº: " & IEMOS.Text .MoveRight Unit:=12 .Borders(-1).LineStyle = 0 .Borders(-2).LineStyle = 0 .Borders(-3).LineStyle = 0 .Borders(-4).LineStyle = 0
196
.Borders(-4).LineStyle = 0 .Borders(-8).LineStyle = 0 .Style = S.Styles("Normal") .TypeText Text:="Valor: " & Format$(Val(str), "currency") .MoveRight Unit:=12 .Style = S.Styles("Normal") '.TypeText Text:=IEMOS.Text .MoveRight Unit:=1, Count:=2, Extend:=1 .Cells.merge .MoveRight Unit:=12 .TypeText Text:="Cliente: " & Endereco.Text .MoveRight Unit:=12 .TypeText Text:="A importância de " & Extenso(str, "Reais", "Real") .MoveRight Unit:=12 .TypeText Text:="Referente: " & referente.Text .MoveRight Unit:=12 .MoveRight Unit:=12 .TypeText Text:=Lugar.Text & ", " & Day(Data.Text) & " de " & MonthName(Month(Data.Text)) & " de " & Year(Data.Text) .MoveRight Unit:=12 .MoveRight Unit:=12 .Cells.Split NumRows:=1, NumColumns:=2, MergeBeforeSplit:=False .MoveLeft Unit:=1, Count:=1 .TypeText Text:="Emitente: " & Emitente.Text .MoveRight Unit:=12 .TypeText Text:="CNPJ: " & Cpf.Text .MoveRight Unit:=12 .MoveRight Unit:=1, Count:=2, Extend:=1 .Cells.merge .TypeText Text:="Assinatura _______________________________" .MoveDown Unit:=5, Count:=1 .TypeParagraph End With Unload Me
197
frmTelaVenda.cmdNova.Enabled = True End Sub
Private Sub Form_Load() '
Valor.Text = 0 Data.Text = Date Set S = CreateObject("Word.Document") IEMOS.Text = frmTelaVenda.lblVenda.Caption Valor.Text = frmTelaVenda.lbltotal2.Caption Valor2.Text = frmTelaVenda.lblTotal.Caption Endereco.Text = frmTelaVenda.cboCliente.Text
End Sub Private Sub valor_Change() Dim vlr For M = 1 To Len(Valor.Text) If Mid$(Valor.Text, M, 1) = "," Then vlr = vlr + "." Else vlr = vlr & Mid$(Valor.Text, M, 1) End If Next M If Not IsNumeric(vlr) Then Exit Sub Ext.Text = Extenso(Val(vlr), "Reais", "Real") End Sub
198
Private rsAlteraSenha As New ADODB.Recordset Private Vatual As New ADODB.Recordset
Private Sub cmdCancelar_Click() Unload Me End Sub
Private Sub cmdOK_Click() Dim vcriterio, VSenhaAtual As String
If txtAtual.Text = Empty Then MsgBox "Digite a Senha Atual!", vbOKOnly + vbInformation, "Atenção" txtAtual.SetFocus Exit Sub End If
If txtNova.Text = Empty Then MsgBox "Digite a Nova Senha!", vbOKOnly + vbInformation, "Atenção" txtNova.SetFocus Exit Sub End If
If txtConfirmar.Text = Empty Then MsgBox "Digite a Confirmação da Senha!", vbOKOnly + vbInformation, "Atenção" txtConfirmar.SetFocus Exit Sub End If
If Len(txtNova.Text) < 7 Then MsgBox "Digite uma Nova Senha com no mínimo 7 caracteres!", vbOKOnly + vbCritical, "Atenção" txtNova.Text = Empty txtConfirmar.Text = Empty
199
txtNova.SetFocus Exit Sub End If
If Not (txtNova.Text = txtConfirmar.Text) Then MsgBox "Senha de Confirmação incorreta!", vbOKOnly + vbCritical, "Atenção" txtConfirmar.Text = Empty txtConfirmar.SetFocus Exit Sub End If
VSenhaAtual = Chr(39) & txtAtual.Text & Chr(39) Vatual.Open "Select * from User_Sistema where Senha_Sist=" & VSenhaAtual, mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockPessimistic, adCmdText
If Vatual.RecordCount = 0 Then MsgBox "Senha Atual incorreta!", vbOKOnly + vbCritical, "Atenção" txtAtual.Text = Empty txtAtual.SetFocus Vatual.Close Exit Sub End If
vcriterio = Chr(39) & frmLogon.Vnome & Chr(39) rsAlteraSenha.Open "Select * from User_Sistema where Usuario_Sist=" & vcriterio, mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockPessimistic, adCmdText rsAlteraSenha("Senha_Sist") = txtNova.Text rsAlteraSenha.Update MsgBox "Senha Alterada com Sucesso!", vbOKOnly + vbInformation, "OK" Unload Me End Sub
200
Altera o plano de fundo do programa, porém não salva definitivamente, pois ao
efetuar o logoff do sistema a tela a ser carregada novamente será a padrão, assim, não descaracterizando o programa.
Option Explicit
Private Sub btnAplica_Click() 'ArquivoEscolhido é o caminho completo do arquivo selecionado mdiPrincipal.Image1.Picture = LoadPicture(ArquivoEscolhido) If opt(0).Value = True Then mdiPrincipal.CentraImagem If opt(1).Value = True Then mdiPrincipal.EstendeImagem If opt(2).Value = True Then mdiPrincipal.LadoaLadoImagem If opt(3).Value = True Then mdiPrincipal.NormalImagem
End Sub
Private Sub btnCancela_Click() Unload Me End Sub
Private Sub btnOk_Click() 'ArquivoEscolhido é o caminho completo do arquivo selecionado mdiPrincipal.Image1.Picture = LoadPicture(ArquivoEscolhido)
201
If opt(0).Value = True Then mdiPrincipal.CentraImagem If opt(1).Value = True Then mdiPrincipal.EstendeImagem If opt(2).Value = True Then mdiPrincipal.LadoaLadoImagem If opt(3).Value = True Then mdiPrincipal.NormalImagem Unload Me End Sub
Private Sub Combo1_Click() Select Case Combo1.Text Case "Arquivos do Bitmap" File1.Pattern = "*.bmp" Case "Arquivos JPEG" File1.Pattern = "*.Jpg;*.Jpg;" Case "Arquivos GIF" File1.Pattern = "*.gif" Case "Arquivos de Imagem" File1.Pattern = "*.bmp;*.Jpg;*.Jpeg;*.gif" End Select End Sub
Private Sub Dir1_Change() Dim I As Integer File1.Path = Dir1.Path End Sub
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub
Private Sub File1_Click() Image1.Picture = LoadPicture(Dir1 & "\" & File1.List(File1.ListIndex)) Call Redimencion(Image1, Picture1.Width, Picture1.Height) ArquivoEscolhido = Dir1 & "\" & File1.List(File1.ListIndex) End Sub
202
Private Sub Form_Load() Combo1.AddItem "Arquivos de Imagem" Combo1.AddItem "Arquivos do Bitmap" Combo1.AddItem "Arquivos JPG e JPEG" Combo1.AddItem "Arquivos GIF" Combo1.ListIndex = 0 Dir1.Path = "C:\" Image1.Picture = LoadPicture(ArquivoEscolhido) Call Redimencion(Image1, Picture1.Width, Picture1.Height) opt(OptionFundo).Value = True End Sub
Sub Redimencion(img As Image, Optional largura As Double, Optional altura As Double) Dim vFator As Double img.Stretch = False vFator = largura / img.Width img.Stretch = True If img.Height * vFator > altura Then img.Stretch = False vFator = altura / img.Height img.Stretch = True ElseIf img.Width * vFator > largura Then img.Stretch = False vFator = largura / img.Width img.Stretch = True End If img.Height = img.Height * vFator img.Width = img.Width * vFator img.Left = (largura / 2) - (img.Width / 2) img.Top = (altura / 2) - (img.Height / 2) End Sub
203
Private Sub opt_Click(Index As Integer) Select Case Index Case 0 OptionFundo = 0 Case 1 OptionFundo = 1 Case 2 OptionFundo = 2 Case 3 OptionFundo = 3 End Select Image1.Picture = LoadPicture(ArquivoEscolhido) Call Redimencion(Image1, Picture1.Width, Picture1.Height) End Sub
204
Private Sub cmdOK_Click() Unload Me End Sub
205
Private rsUsuarios As New ADODB.Recordset Private Sub cmdIncluir_Click() Dim Vcodigo As Integer
If rsUsuarios.RecordCount = 0 Then rsUsuarios.AddNew Vcodigo = 1 txtCodUsuario.Text = Format(Vcodigo, "0000") Else rsUsuarios.MoveLast Vcodigo = rsUsuarios("CodUser_Sist") Vcodigo = Vcodigo + 1 rsUsuarios.AddNew LimpaRegistro txtCodUsuario.Text = Format(Vcodigo, "0000") End If
HabilitaCampos txtUsuario.SetFocus
206
cmdCancelar.Enabled = True cmdFechar.Enabled = False cmdIncluir.Enabled = False cmdGravar.Enabled = True cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdExcluir.Enabled = False cmdAlterar.Enabled = False End Sub Private Sub cmdAlterar_Click() HabilitaCampos txtUsuario.SetFocus cmdIncluir.Enabled = False cmdFechar.Enabled = False cmdCancelar.Enabled = True cmdAlterar.Enabled = False cmdGravar.Enabled = True cmdExcluir.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End Sub
Private Sub cmdAnterior_Click() rsUsuarios.MovePrevious If rsUsuarios.BOF Then rsUsuarios.MoveFirst End If MostraRegistro End Sub
207
Private Sub cmdCancelar_Click() rsUsuarios.CancelUpdate If rsUsuarios.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdCancelar.Enabled = False cmdGravar.Enabled = False Else MostraRegistro cmdGravar.Enabled = False cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End If DesabilitaCampos End Sub
Private Sub cmdExcluir_Click() If MsgBox("Deseja excluir o Usuário?", vbYesNo + vbQuestion, "Atenção") = vbYes Then
208
rsUsuarios.Delete
If rsUsuarios.RecordCount = 0 Then LimpaRegistro cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False Else rsUsuarios.MoveNext If rsUsuarios.EOF Then rsUsuarios.MoveLast End If MostraRegistro End If End If End Sub
Private Sub cmdFechar_Click() Unload Me End Sub
Private Sub cmdGravar_Click() If txtUsuario.Text = "" Then MsgBox "O USUÁRIO é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtUsuario.SetFocus Exit Sub End If
If txtSenha.Text = "" Then MsgBox "A SENHA é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtSenha.SetFocus
209
Exit Sub End If
If txtNivel.Text = "" Then MsgBox "O NIVEL é obrigatório!", vbOKOnly + vbInformation, "Aviso" txtNivel.SetFocus Exit Sub End If
rsUsuarios("CodUser_Sist") = txtCodUsuario.Text rsUsuarios("Usuario_Sist") = txtUsuario.Text rsUsuarios("Senha_Sist") = txtSenha.Text rsUsuarios("Nivel_Sist") = txtNivel.Text
rsUsuarios.Update DesabilitaCampos MsgBox "Dados do Usuário salvos com sucesso!!!", vbOKOnly + vbInformation, "Aviso" cmdCancelar.Enabled = False cmdIncluir.Enabled = True cmdFechar.Enabled = True cmdGravar.Enabled = False cmdPrimeiro.Enabled = True cmdAnterior.Enabled = True cmdProximo.Enabled = True cmdUltimo.Enabled = True cmdAlterar.Enabled = True cmdExcluir.Enabled = True End Sub Private Sub cmdPrimeiro_Click() rsUsuarios.MoveFirst MostraRegistro End Sub
210
Private Sub cmdProximo_Click() rsUsuarios.MoveNext If rsUsuarios.EOF Then rsUsuarios.MoveLast End If MostraRegistro End Sub
Private Sub cmdUltimo_Click() rsUsuarios.MoveLast MostraRegistro End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{tab}" End If End Sub
Private Sub Form_Load()
rsUsuarios.Open "User_Sistema", mdiPrincipal.cnBiblioteca, adOpenKeyset, adLockOptimistic, adCmdTable
If rsUsuarios.RecordCount > 0 Then MostraRegistro Else cmdExcluir.Enabled = False cmdAlterar.Enabled = False cmdPrimeiro.Enabled = False cmdAnterior.Enabled = False cmdProximo.Enabled = False cmdUltimo.Enabled = False End If
211
DesabilitaCampos End Sub
Private Sub Form_Unload(Cancel As Integer) rsUsuarios.Close End Sub Private Sub DesabilitaCampos() txtUsuario.Enabled = False txtSenha.Enabled = False txtNivel.Enabled = False End Sub Private Sub MostraRegistro() If Not IsNull(rsUsuarios("CodUser_Sist")) Then txtCodUsuario.Text = Format(rsUsuarios("CodUser_Sist"), "0000") Else txtCodUsuario.Text = Empty End If
If Not IsNull(rsUsuarios("Usuario_Sist")) Then txtUsuario.Text = rsUsuarios("Usuario_Sist") Else txtUsuario.Text = Empty End If
If Not IsNull(rsUsuarios("Senha_Sist")) Then txtSenha.Text = rsUsuarios("Senha_Sist") Else txtSenha.Text = Empty End If
If Not IsNull(rsUsuarios("Nivel_Sist")) Then txtNivel.Text = rsUsuarios("Nivel_Sist") Else
212
txtNivel.Text = Empty End If
End Sub Private Sub HabilitaCampos() txtUsuario.Enabled = True txtSenha.Enabled = True txtNivel.Enabled = True End Sub Private Sub LimpaRegistro() txtCodUsuario.Text = "" txtUsuario.Text = "" txtSenha.Text = "" txtNivel.Text = "" End Sub
Private Sub txtNivel_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End Sub
Private Sub txtUsuario_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End If End Sub
213
Private Vfrase As String Private rsConUsuarios As New ADODB.Recordset
Private Sub cboTipo_Click() txtParametro.Text = "" fgConsultaUser.Clear With fgConsultaUser .ColWidth(0) = 800 .ColWidth(1) = 3000 .ColWidth(2) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome do Usuário" .TextArray(2) = "Nivel" End With If cboTipo.Text = "Todos" Then txtParametro.Enabled = False
214
Else txtParametro.Enabled = True End If End Sub
Private Sub fgConsultaUser_DblClick() If fgConsultaUser.Row = 0 Then Exit Sub End If frmUserSistema.Show frmUserSistema.Left = 4000 frmUserSistema.Top = 2000 End Sub
Private Sub fgConsultaUser_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If fgConsultaUser.Rows > 1 Then
If fgConsultaUser.Row <> fgConsultaUser.MouseRow And fgConsultaUser.MouseRow > 0 Then fgConsultaUser.Col = 0 fgConsultaUser.Row = fgConsultaUser.MouseRow fgConsultaUser.ColSel = fgConsultaUser.Cols - 1 End If
End If End Sub
Private Sub Form_Load() Toolbar1.Left = 11055 With fgConsultaUser .ColWidth(0) = 800 .ColWidth(1) = 3000 .ColWidth(2) = 800
215
.Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome do Usuário" .TextArray(2) = "Nivel" End With End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Button.Key = "Sair" Then Unload Me
ElseIf Button.Key = "Pesquisar" Then If cboTipo.Text = "Escolha o tipo de Consulta" Then MsgBox "Escolha o Tipo de Consulta desejada", vbOKOnly + vbInformation, "Atenção" cboTipo.SetFocus Exit Sub End If
If cboTipo.Text = "Por Código" Then If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
If Not IsNumeric(txtParametro.Text) Then MsgBox "Entre com um número para o código!", vbOKOnly + vbInformation, "Atenção" txtParametro.Text = "" txtParametro.SetFocus Exit Sub End If
216
Dim VConCodigo As Integer VConCodigo = CInt(txtParametro.Text) fgConsultaUser.Clear Vfrase = "Select * from User_Sistema Where CodUser_Sist=" & VConCodigo Set rsConUsuarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConUsuarios.BOF = True And rsConUsuarios.EOF = True Then 'cliente não cadastrado MsgBox "Usuário Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConUsuarios.Close End If
ElseIf cboTipo.Text = "Por Nome" Then Dim VConNome As String
If txtParametro.Text = "" Then MsgBox "Entre com o parametro para realizar a consulta", vbOKOnly + vbInformation, "Atenção" txtParametro.SetFocus Exit Sub End If
VConNome = Chr(39) & CStr(txtParametro.Text) & "'" fgConsultaUser.Clear Vfrase = "Select * from User_Sistema Where Usuario_Sist LIKE" & VConNome Set rsConUsuarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase) EncheGrid
If rsConUsuarios.BOF = True And rsConUsuarios.EOF = True Then 'cliente não cadastrado
217
MsgBox "Usuário Não Encontrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConUsuarios.Close End If
ElseIf cboTipo.Text = "Todos" Then Vfrase = "Select * from User_Sistema order by Usuario_Sist" Set rsConUsuarios = mdiPrincipal.cnBiblioteca.Execute(Vfrase) ' chama a funcao que preenche o grid EncheGrid
If rsConUsuarios.BOF = True And rsConUsuarios.EOF = True Then 'cliente não cadastrado MsgBox "Não há Usuário Cadastrado!", vbInformation, "Atenção" txtParametro.Text = "" 'fecha a conexão rsConUsuarios.Close End If End If
ElseIf Button.Key = "Nova" Then fgConsultaUser.Clear cboTipo.Text = "Escolha o tipo de Consulta" txtParametro.Text = "" With fgConsultaUser .ColWidth(0) = 800 .ColWidth(1) = 3000 .ColWidth(2) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome do Usuário" .TextArray(2) = "Nivel" End With
218
cboTipo.SetFocus End If
End Sub Private Sub EncheGrid()
' forma o cabeçalho do fexgrid With fgConsultaUser .ColWidth(0) = 800 .ColWidth(1) = 3000 .ColWidth(2) = 800 .Rows = 1 .TextArray(0) = "Código" .TextArray(1) = "Nome do Usuário" .TextArray(2) = "Nivel" End With
Do While Not rsConUsuarios.EOF fgConsultaUser.AddItem rsConUsuarios("CodUser_Sist") & Chr(9) & rsConUsuarios("Usuario_Sist") & Chr(9) & rsConUsuarios("Nivel_Sist") rsConUsuarios.MoveNext Loop
End Sub
Private Sub txtParametro_KeyPress(KeyAscii As Integer) If cboTipo.Text = "Por Código" Then If (KeyAscii < Asc("0") Or KeyAscii > Asc("9") And KeyAscii <> 8) Then KeyAscii = 0 End If End If
If cboTipo.Text = "Por Nome" Then If InStr("0123456789<>|\;,.?/[{}]+=§-_)(*&%$#@!*", Chr(KeyAscii)) <> 0 Then
219
KeyAscii = 0 End If End If End Sub
Help File Arquivo de ajuda aos usuários, onde contém todas as informações
necessárias para um bom desempenho perante o sistema.
220
Melhorias no Sistema. Diante de tudo o que foi apresentado, todo e qualquer sistema deve ser modelado aos poucos, após sua implantação passa ser um momento, de diariamente levantar “falhas”, que de imediato deve ser corrigidas, porem o mais importante, maneiras de se melhorar o programa, onde suprirá a necessidade da instituição pela qual utiliza o sotfware desenvolvido. Conforme se passa o tempo de sua utilização novas ferramentas serão solicitadas em prol da agilidade e praticidade, segui a baixo melhorias já detectadas pelo programador e que já estão em andamento medidas para prováveis soluções.
• Backup: De acordo com o fluxo de informações, deve ser programado para se fazer o backup dos dados. A informação é o bem mais valioso de uma empresa, nelas estão o “sangue que permite a empresa estar viva”.
• Relatórios: Documento de grande importância, pois neles estarão implessos os dados e informações para se dar continuidade no bom funcionamento da empresa, “vivemos em um País capitalista e movido por números.”
• Contole de estoque: Mantém o controle das mercadorias a serem vendidas de acordo com a necessidade da demanda da loja, assim não deichando faltar as devidas mercadorias, pois sua fonte de lucros vem das vendas.
• Consulta das Vendas: Necessário para que possa ser emitido a 2º via do recibo, e possíveis reclamações futuras, comprovante.
221
Conclusão Dentre todas as fases que se tem até chegarmos no melhor, para que o programa desenvolvido seja satisfatório e atenda toda necessidade, temos que atentar e seguir da melhor maneira todas elas, tais como: •
Estudo;
•
Análise;
•
Projetos;
•
Implementação;
•
Simulação;
•
Implantação;
•
Operação e
•
Manutenção. Assim trabalhando em equipe, com Analista, Programador e Projetista. Todo Sistema há falhas, isso consiste em detecta-los e corrigi-los tão
breve possível. É de grande importância passar por todos esses métodos, assim podemos adquirir experiências, pois conforme o tempo se passa pode-se ir modelando as técnicas e métodos.
“O Diamante como outras pedras preciosas, são encontradas na sua forma Bruta, mas basta apenas Lapidar, que veremos o brilho que encanta.”
222
Referência Bibliográfica Significado de algumas palavras retiradas do dicionário: DIC Michaelis Escolar – Versão 2.0 – Agosto de 2002 Editora Melhoramentos Ltda
Pesquisas realizadas e complementadas no site: Wikipédia, a enciclopédia livre. www.pt.wikipedia.org