Diogo Andre Silva Posted May 9, 2013 at 09:51 PM Report #506536 Posted May 9, 2013 at 09:51 PM Olá boa noite gostava de saber se por acaso consigo obter ajuda aqui. é o seguinte estou a fazer um projecto para o meu curso onde estou a fazer uma simulação de uma registadora de cafe, Ou seja um ecra tatil onde tem cafe, doces etc e ao clicar em cima do cafe manda automaticamente o valor de 0.60€ para a listbox e eu queria que essa listbox logo no load da form começasse a somar todos os valores lá inseridos e os mandasse para ums textbox automaticamente.A linguagem é Visual Basic 2010
samesdavis Posted May 9, 2013 at 10:26 PM Report #506548 Posted May 9, 2013 at 10:26 PM Olá Diogo, tem como fazer isso sim, mas em qual base de dados que esse projeto está? E mostre qual código que você fez até o momento
Diogo Andre Silva Posted May 9, 2013 at 11:06 PM Author Report #506562 Posted May 9, 2013 at 11:06 PM De momento é apenas um teste não está associado a nenhuma base de dados mas o código que tenho até ao momento é: Public Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Form1.Hide() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click l1.Items.Add("Café" + "0.60") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click l1.Items.Add("Cappucino" + "0.60") End Sub Private Sub Button21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button21.Click l1.Items.Add("Carioca" + "0.60") End Sub Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click l1.Items.Add("Meia de leite" + "0.70") End Sub Private Sub Button25_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button25.Click l1.Items.Add("Garoto" + "0.70") End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click l1.Items.Add("Sandes Mista" + "0.80") End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click l1.Items.Add("Baguette" + "1.10") End Sub Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click l1.Items.Add("Sandes de quijo" + "0.80") End Sub Private Sub Button22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button22.Click l1.Items.Add("Sandes de Fiambre" + "0.80") End Sub Private Sub Button24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button24.Click l1.Items.Add("Sandes de atum" + "0.80") End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click l1.Items.Add("Pastel de nata" + "0.90") End Sub Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click l1.Items.Add("Queijada" + "1.00") End Sub Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click l1.Items.Add("Donut" + "1.00") End Sub Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click l1.Items.Add("Tarte" + "1.50") End Sub Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click l1.Items.Add("Tarte sabores" + "1.60") End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click l1.Items.Add("Pizza" + "1.60") End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click l1.Items.Add("Pão de chouriço" + "0.80") End Sub Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click l1.Items.Add("Filó" + "0.80") End Sub Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click l1.Items.Add("Tosta" + "0.70") End Sub Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click l1.Items.Add("Guardanapo" + "0.90") End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click l1.Items.Add("Santal Laranja" + "1.00") End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click l1.Items.Add("Santal light" + "1.00") End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click l1.Items.Add("Fanta" + "1.00") End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click l1.Items.Add("Compal" + "1.00") End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click l1.Items.Add("Coca-Cola" + "1.00") End Sub Private Sub Button26_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button26.Click Dim resultado, i As Single For i = 0 To l1.Items.Contains resultado = i tf.Text = i Next End Sub Private Sub Button27_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button27.Click l1.Items.RemoveAt(l1.SelectedIndex) End Sub Private Sub Button28_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button28.Click l1.Items.Clear() End Sub Private Sub Button29_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button29.Click MsgBox("Deseja mesmo sair", vbYesNo) If (vbYes) Then End Else End If End Sub Private Sub Button30_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button30.Click End Sub End Class
nelsonr Posted May 9, 2013 at 11:49 PM Report #506576 Posted May 9, 2013 at 11:49 PM Ixx, podias tentar automatizar isso da criação dos botões para os produtos. Bem, de qualquer maneira, porque não crias uma função chamada AdicionarItem em que passas por parametro a designação e o preço. Nessa função, adicionava a designação à lista e somava o preço ao total. 1 Report
Diogo Andre Silva Posted May 9, 2013 at 11:56 PM Author Report #506577 Posted May 9, 2013 at 11:56 PM Ixx, podias tentar automatizar isso da criação dos botões para os produtos. Bem, de qualquer maneira, porque não crias uma função chamada AdicionarItem em que passas por parametro a designação e o preço. Nessa função, adicionava a designação à lista e somava o preço ao total. Podes dar uma dica de qual o código poderia colocar?
nelsonr Posted May 10, 2013 at 08:45 AM Report #506602 Posted May 10, 2013 at 08:45 AM O que me estava a referir era ter algo deste tipo: private sub AdicionarItem(designacao as string, valor as decimal) ' Adicionar item à lista l1.Items.Add(String.Format("{0} {1}", designacao, valor)) ' Adicionar valor ao total total=total+valor ' Atualizar a variavel com o total txtTotal.Text=String.format("{0:0.00}", total) end sub E no evento do click no produto, adicionavas assim: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AdicionarItem("Café", 0.60) End Sub No entanto isso implicava que no remover, também removesses o valor ao total, o que começa a complicar na estrutura que tens no exemplo. Normalmente o que se faz é ter uma class para o produto (com designacao, valor e outros campos que possam ser uteis) e ter uma lista que contem os produtos todos.
Diogo Andre Silva Posted May 10, 2013 at 09:51 AM Author Report #506616 Posted May 10, 2013 at 09:51 AM O que me estava a referir era ter algo deste tipo: private sub AdicionarItem(designacao as string, valor as decimal) ' Adicionar item à lista l1.Items.Add(String.Format("{0} {1}", designacao, valor)) ' Adicionar valor ao total total=total+valor ' Atualizar a variavel com o total txtTotal.Text=String.format("{0:0.00}", total) end sub E no evento do click no produto, adicionavas assim: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AdicionarItem("Café", 0.60) End Sub No entanto isso implicava que no remover, também removesses o valor ao total, o que começa a complicar na estrutura que tens no exemplo. Normalmente o que se faz é ter uma class para o produto (com designacao, valor e outros campos que possam ser uteis) e ter uma lista que contem os produtos todos. Obrigada pelo código. Contudo estas a querer dizer que que eu deveria pedir ao utilizador utilizando uma imputbox ou uma textbox e só depois inserir automaticamente na listbox?
nelsonr Posted May 10, 2013 at 10:11 AM Report #506621 Posted May 10, 2013 at 10:11 AM (edited) Obrigada pelo código. Contudo estas a querer dizer que que eu deveria pedir ao utilizador utilizando uma imputbox ou uma textbox e só depois inserir automaticamente na listbox? Não, digo que neste momento estás a adicionar diretamente o produto numa listbox como texto. Isso não permite grande controlo sobre o conteúdo.Imagina que ao removeres um produto da lista, tens de descontar o valor desse produto ao total... Como vais fazer? Extrair o valor do texto? Isso é pouco funcional. O que podes fazer, é criar uma class para o produto e adicionares um objecto dessas class à lista. Algo assim Private Class Produto Public Designacao As String Public Valor as decimal Public Sub New(ByVal designacao As String, ByVal valor As decimal) Designacao = designacao Valor = valor End Sub Public Overrides Function ToString() As String Return Designacao End Function End Class E adicionas um novo produto à lista assim: l1.Items.Add(New Produto("Café", 0.60)) Assim ao removeres um item da lista, consegues ir buscar o produto e descontar o valor no total ' Ler produto selecionado dim produtoSelecionado as Produto produtoSelecionado = l1.Selecteditem ' Descontar o valor do total total = total - produtoSelecionado.Valor ' Remover da lista l1.Items.RemoveAt(l1.SelectedIndex) ATENÇÃO: Como não uso VB.NET nem o tenho instalado, não sei se o código compila. Mas é só para teres uma ideia Edited May 10, 2013 at 03:07 PM by nelsonr 1 Report
Diogo Andre Silva Posted May 10, 2013 at 02:31 PM Author Report #506718 Posted May 10, 2013 at 02:31 PM Não, digo que neste momento estás a adicionar diretamente o produto numa listbox como texto. Isso não permite grande controlo sobre o conteúdo. Imagina que ao removeres um produto da lista, tens de descontar o valor desse produto ao total... Como vais fazer? Extrair o valor do texto? Isso é pouco funcional. O que podes fazer, é criar uma class para o produto e adicionares um objecto dessas class à lista. Algo assim Private Class Produto Public Designacao As String Public Valor as decimal Public Sub New(ByVal designacao As String, ByVal valor As decimal) Designacao = designacao Valor = valor End Sub Public Overrides Function ToString() As String Return Designacao End Function End Class E adicionas um novo produto à lista assim: l1.Items.Add(New Produto("Café", 0.60)) Assim ao removeres um item da lista, consegues ir buscar o produto e descontar o valor no total ' Ler produto selecionado dim produtoSelecionado as Produto produtoSelecionado = l1.Selecteditem ' Descontar o valor do total total = total - produtoSelecionado.Valor ' Remover da lista l1.Items.RemoveAt(l1.SelectedIndex) ATENÇÃO: Como uso VB.NET nem o tenho instalado, não sei se o código compila. Mas é só para teres uma ideia Sim Obrigada vou tratar disso e logo quando terminar publico aqui o código final
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now