Jump to content

Recommended Posts

Posted

Boas Pessoal

Estou a desenvolver para um trabalho, uma espécie de loja virtual ou maquina virtual que vende produtos, e tenho aqui umas duvidas que gostaria de ver tiradas:

A lista dos produtos é mostrada ao utilizador através de uma listbox... já a tenho quase toda programada, falta-me apenas uma situação: todos os produtos têm um stock de 20 itens por produto, e isso tambem ja programei, e está tudo a funcionar (criei uma variavel que conta quando se clica em adicionar, e outra que conta quando se apaga na listbox, e depois o stock será a diferença entre esses dois), contudo estou a ter problemas com o Botao Limpar da listbox... Raciocinei um pouco, e criei entao outra variavel chamada itens, que conta apenas a quantidade de itens de um produto dentro da listbox, da seguinte forma:

no botao adicionar (exemplo do produto Mars) :

contaMars = contaMars + 1 (contaMars é a variavel para contagem global do stock, até quando a compra é finalizada)

itemMars = itemMars + 1 (itemMars conta apenas o nr de Mars presentes na listbox)

no botão apagar :

If (listaitens.GetItemText(listaitens.SelectedItem) = "Mars" & vbTab & vbTab & " 0.65€") Then

listaitens.Items.RemoveAt(listaitens.SelectedIndex)

eliminaMars = eliminaMars + 1 (eliminaMars é a variavel para contagem global do stock, até quando a compra é finalizada)

itemMars = itemMars - 1

End If

lbl_stockMars.Text = contaMars - eliminaMars

no botao limpar:

lbl_stockMars.Text = (contaMars - eliminaMars - itemMars)

itemMars = 0

PROBLEMA: Se o utilizador carregar 1 vez, o botao funciona e retira ao stock o nr de itens na listbox, contudo, se voltarmos a adicionar, ele volta a acrescentar itens... Imaginemos que abrimos agora o programa... adicionamos 4 mars à listbox e depois clicamos em limpar... o contador de stock fica a 0.. Contudo, se voltarmos a adicionar, o contador começará a partir do 4,ou seja, se da segunda vez adicionarmos mais 1, o contador de stock passará a ser 5 e nao 1, como deveria ser.... e quando clicamos uma segunda vez seguida no limpar, ele tambem volta a contagem a esse numero )

Espero ter sido claro (tenho a leve impressao que nao fui ehehhe), porque explicar isto por texto é muito confuso....

Cumpz

RufuZ

Posted

Espero ter sido claro (tenho a leve impressao que nao fui ehehhe), porque explicar isto por texto é muito confuso....

Olá Rufuz, estás como eu, tenho exactamente o mesmo problema em me explicar:) ajuda a ficar mais claro se meteres o código colorido...quando metes inserir código mete code=vb (neste caso)

Parece-me que o mal é estares a enviar :

lbl_stockMars.Text = (contaMars - eliminaMars - itemMars)
itemMars = 0

Parece-me que tens de por itemMars = VariavelQueTemValorTotalMars..., caso contrário ele vai pensar que só existem 0 Mars.

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted

A variável contaMars e eliminaMars sao as variáveis "globais", globais em termos do contexto do programa, porque elas mantém-se mesmo quando o utilizador termina a sua compra, fazendo com que o stock dos Mars vá decrementando à medida das compras de cada utilizador... Já o itemMars é apenas para contagem do numero de Mars dentro da listbox... Eu criei isto porque no meu raciocinio foi assim que se fez a ideia.. Porque basicamente, se tivermos 5 mars na listbox, o (contaMars - eliminaMars) podem ou nao ser 5, visto que eles vao incrementando e decrementando conforme o nr de utilizadores, mas o itemMars é obrigatoriamente 5....

Posted

acho que tem a haver com este codigo:


lbl_stockMars.Text = (contaMars - eliminaMars - itemMars)

quando fazes o reset como não faz reset nos contasMars e no eliminaMars acho que é esse o conflito, mas podias copiar o codigo todo, tal e qual como está, para eu dar uma olhadela? é que apartir daquele que colocaste não percebo bem o funcionamento interno do programa

Posted

Boas pessoal, ja consegui resolver o problema... Tive que fazer um esquema em papel para realmente compreender... tinha que , quando clicado em limpar, fazer tambem eliminaMars+itemMars, para depois dar sempre certo no stock...

Contudo tenho outro problema:

Tenho (para ja) 3 forms, e no 1º form tenho muitas variaveis que precisava de acessar e modificar atraves de outros forms... Como faço isso?

Posted

Obrigadissima gnrtuga 😉

Mais uma duvida ehehe:

Há alguma forma de comparar variaveis em vb sem ser por meio de uma estrutura de ifs? é que sao muitas variaveis a testar e a tal estrutura if será demasiado longa e complexa... 😕

Mais uma vez um grande obrigado pela ajuda 😉

Posted

Bem, acho que podes fazer isso de duas maneiras...sinceramente não sei qual a mais indicada...

Tens o selec case, onde podes comparar logo várias variáveis numa só instrução.

http://msdn.microsoft.com/en-us/library/cy37t14y.aspx

Ou criares uma lista de arrays e verificares se o valor está dentro desse array:

http://msdn.microsoft.com/en-us/library/wak0wfyt.aspx

Vê os dois para perceberes qual é a melhor solução para ti.

Desconheço (não quer dizer que não exista) outras maneiras.

Boa sorte.

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

  • 3 weeks later...
Posted

Hum, desculpa so agora responder, mas ja solucionei esse problema...

Contudo tenho uma duvida: há alguma forma de fazer um grafico de estatisticas? Por exemplo, com o numero de itens comprados de cada produto?? Um grafico de barras ou assim?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.