Desenvolvimento - Mobile
Controle de Estoque 1.0 (Final)
Chegamos ao nosso terceiro artigo sobre o desenvolvimento de um aplicativo Palm que utiliza tabelas para armazenar informações. Nosso exemplo é um controle de estoque, simples porem define bem o uso do NS Basic.
por Wellington Pinto de OliveiraQuem ainda não tenha lido os artigos anteriores aconselhamos que, antes de continuar, leia os artigos os anteriores, pois este é uma continuação.
No primeiro artigo implementamos toda a parte de interface deixando o trabalho de manipulação de dados para o segundo artigo, os dados são trabalhados por funções internas do aplicativo deixando o usuário livre de edição de parâmetros e códigos.
Vamos abrir o formulário frmMain e selecionar o evento "Before Code", para isso clique com o botão direito do mouse sobre o formulário e selecione o evento, conforme podemos ver na imagem abaixo:
Figura 1 - Before Code
Edite o seguinte código:
Dim registros as Integer Dim resultado as Integer Dim produto as String Dim i as Integer Call openProduto() registros = dbGetNoRecs(dbProdutos) lstEstoque.clear For i = 1 to registros resultado = dbReadNext(dbProdutos,produto) lstEstoque.add produto Next Call closeProduto()
No código acima estamos chamando a função "openProduto()" para abrir o objeto Database "dbProdutos", com isso podemos ter acesso aos dados do arquivo. Usamos o "dbGetNoRecs()" para capturar o numero de registro dentro do arquivo PDB, agora que sabemos quantos registros podemos executar um for no arquivo e capturar a primeira coluna para ser adicionar ao ListBox.
Não se esqueça de fechar o arquivo usando "closeProduto()".
Estamos usando o objeto ListBox, mas o que é este objeto?
ListBox é uma caixa onde encontramos várias opções na qual podemos selecionar uma, este objeto é ideal para carregar listas e exibir para o usuário. Atualmente temos outros objetos para este fim, podemos destacar o PopUp e o Grid.
Quando o usuário seleciona um item no ListBox é disparado um evento que possui dois comandos, conforme podemos ver abaixo:
ponteiro = lstEstoque.Selected NextForm "frmVProduto"
Estamos capturando a posição do item selecionado e passando para a variável ponteiro e logo após estamos carregando e exibindo o formulário "frmVProduto".
Porem antes de desenvolver o código deste formulário vamos preparar o formulário "frmNProduto" para podermos cadastrar registros.
Abra o formulário e edite o seguinte código para o botão "btNGravar":
Dim resultado as Integer Dim produto as String Dim preco as Float Dim quantidade as Integer "vamos converter os dados e armazenar em "variáveis locais produto = fldNProduto.text preco = Val(fldNPreco.text) quantidade = Val(fldNQuantidade.text) "vamos chamar a rotina que grava o produto resultado = gravaProduto(produto,preco,quantidade)
O código acima captura os valores digitados pelo usuário e envia para a função "gravarProduto()" que faz todo o trabalho de padronização das entradas de dados no arquivo.
Bom agora vamos editar o código do botão "btNVoltar"
Call limpaNCampos() NextForm "frmMain"Bom agora temos como entrar com registros no PDB então vamos editar o código do formulário "frmVProduto". Este formulário é mais complexo que o anterior, então vamos ao "After Code" do formulário.
Edite o seguinte código:
Dim resultado as Integer Dim produto as String Dim preco as Float Dim quantidade as Integer Call openProduto() resultado = dbPosition(dbProdutos,ponteiro,0) If resultado = 0 Then resultado = dbGet(dbProdutos,produto,preco,quantidade) fldVProduto.text = produto fldVPreco.text = str(preco) fldVQuantidade.text = str(quantidade) Else MsgBox "Erro ao posicionar ponteiro." End If Call closeProduto()
Estamos usando a variável ponteiro para posicionar o na tabela, usamos para isso a função "dbPosition()" e estamos lendo os dados usando a função "dbGet()".
O próximo passo e editar o código dos botões que trabalham com o incremento e do decremento dos produtos, selecione o botão "btVDecremento" e edite o seguinte código:
Dim quantidade as Integer Dim valor as Integer Dim produto as String Dim preco as Float "convertendo os valores dos fld"s quantidade = Val(fldVQuantidade.text) valor = Val(fldVValor.text) produto = fldVProduto.text preco = Val(fldVPreco.text) "caso o decremento seja maior que o estoque ele então executa nada If valor > quantidade Then MsgBox "Não existe quantidade suficiente no estoque" Else quantidade = quantidade - valor "o parâmetro 0 edema que é um decremento If modificaDados(produto,preco,quantidade) = 0 Then fldVQuantidade.text = str(quantidade) End If End If
E para o botão "btVIncremento" edite o código:
Dim quantidade as Integer Dim valor as Integer Dim produto as String Dim preco as Float "convertendo os valores dos fld"s quantidade = Val(fldVQuantidade.text) valor = Val(fldVValor.text) produto = fldVProduto.text preco = Val(fldVPreco.text) quantidade = quantidade + valor "o parametro 0 idica que é um decremento If modificaDados(produto,preco,quantidade) = 0 Then fldVQuantidade.text = str(quantidade) End If
Bom agora podemos modificar a quantidade de um determinado produto. O usuário pode ainda modificar o titulo do produto ou o preço, para tratar este evento vamos editar o seguinte código para o botão "btVModificar":
Dim quantidade as Integer Dim produto as String Dim preco as Float Dim resultado as Integer "convertendo os valores dos fld"s quantidade = Val(fldVQuantidade.text) produto = fldVProduto.text preco = Val(fldVPreco.text) "o parametro 0 idica que é um decremento resultado = modificaDados(produto,preco,quantidade) If Not resultado = 0 Then MsgBox "Erro ao atualizar dados" End If
Caso o usuário queira excluir o produto ele usará o botão "btVExcluir", edite o seguinte código para este botão:
Dim resultado as Integer Dim resposta as Integer Call openProduto() resposta = Alert("Excluir", "Deseja Excluir este ítem?",0,"Sim","Não") If resposta = 0 Then resultado = dbDelete(dbProdutos,fldVProduto.text) If Not resultado = 0 Then MsgBox "Erro ao excluir dados" Else fldVProduto.Text = "" fldVQuantidade.Text = "" fldVPreco.Text = "" fldVValor.Text = "" Call closeProduto() NextScreen "frmMain" End If End If Call closeProduto()
Para finalizar este formulário vamos editar o código do botão "btVVoltar".
Call limparVCampos() NextForm "frmMain"
Chegamos ao fim desta série de artigos que ilustram o desenvolvimento de um aplicativo que mainpula dados de um arquivo PDB.
Estamos abertos a discussão no fórum do site www.softpalm.com.br onde estamos tirando duvidadas desta e de outras ferramentas.
Baixe o código fonte do programa, clicando aqui.
Wellington Pinto de Oliveira
softpalm@softpalm.com.br
- Como criar um player de audio para Windows PhoneDisp. móveis
- Windows Phone: Criando e lendo arquivos de textoDisp. móveis
- Inserindo, editando e lendo dados no Windows Phone com IsolatedStorageSettingsDisp. móveis
- Introdução ao jQuery MobileJavascript
- Entendendo a navegação entre páginas no Windows Phone 7Disp. móveis