Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di e444
    Registrato dal
    Jan 2012
    Messaggi
    37

    [VB.NET] Eseguire la somma di valori di denaro in una ListView

    Ciao a tutti.
    Chiedo scusa ma non riesco a risolvere questo problema.
    Ho una listview chiamata "ListaAcquisti".
    In basso, fuori dalla listview, ho una label formattata per convertire un testo in valuta.
    Avrei bisogno che la label di nome "LblSomma" mi vada a riportare la somma in valuta di tutto quello che è riportato nella terza colonna della listview.
    Come posso fare?

    Inserisco qui l'immagine...



    Avviando il programma, quello "0" nella label, verrà convertito con il Format("C")... quindi ora appare lo zero semplice ma all'avvio del programma si vedrà "0,00€".
    E, man mano che inserisco "Items", dovrebbe sommarmi tutto quello che sono gli importi della predetta colonna... insomma... è una ricevuta fiscale...

    Grazie a chi mi potrà aiutare.
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    le immagini servono a poco, mostra il codice che stai usando.
    Probabilmente si tratta di convertire il contenuto da testo a numero in modo da poter fare la somma
    Ultima modifica di patel; 02-04-2018 a 12:13

  3. #3
    Utente di HTML.it L'avatar di e444
    Registrato dal
    Jan 2012
    Messaggi
    37
    Il codice non c'è... lo devo appunto realizzare...

  4. #4
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    hai letto il regolamento a proposito della pappa pronta ?
    non hai neppure detto come popoli la LV, a mano, da file, da DB

  5. #5
    Utente di HTML.it L'avatar di e444
    Registrato dal
    Jan 2012
    Messaggi
    37
    allora... si ok...
    La LV viene popolata attraverso pulsanti, avete presente un registratore di cassa? che tu clicchi sul prodotto e quello si mette in elenco per il totale?... ecco... la stessa cosa.
    Al momento ho preparato solo un pulsante.

    Praticamente il programma si apre e si hanno una serie di pulsanti.
    Ogni pulsante apre un Form associato all'articolo indicato dal pulsante... esempio... c'è il pulsante "T-Shirt", ci clicchi sopra e si apre il form delle T-Shirt.
    Clicchi sul pulsante della t-shirt che devi vendere e si inserisce nella LV e si chiude il form delle t-shirt.
    Cliccando sul pulsante questo è il codice:

    codice:
    Private Sub BtnIscrizione_Click(sender As Object, e As EventArgs) Handles BtnIscrizione.Click
            If Form1.ListaAcquisti.Items.Count = 0 Then
                Form1.ListaAcquisti.Items.Add("Iscrizione Associazione")
                Form1.ListaAcquisti.Items(0).SubItems.Add("1")
                Form1.ListaAcquisti.Items(0).SubItems.Add(Label1.Text)
            Else
                Form1.ListaAcquisti.Items.Add("Iscrizione Associazione")
                Form1.ListaAcquisti.Items(Form1.ListaAcquisti.Items.Count - 1).SubItems.Add("1")
                Form1.ListaAcquisti.Items(Form1.ListaAcquisti.Items.Count - 1).SubItems.Add(Label1.Text)
            End If
            Me.Close()
        End Sub
    Come si vede la cosa è molto semplice.
    In questo caso si sta inserendo il pagamento per l'iscrizione all'associazione, inserisce poi ovviamente il quantitativo di pezzi che in questo caso ovviamente è "1" e inserisce l'importo indicato dalla Label1.Text che indica "20,00 €" e si chiude poi il Form.

    Una parentesi....
    Non prediligo per la "pappa pronta" è ovvio che ho provato a fare qualcosa... ma se son qui è solo perche non ho trovato i risultati che speravo.
    Prima del "Me.Close()" avevo inserito questo codice pensando che fosse sufficiente... una delle cose che ho imparato nella programmazione è che spesso le cose sono più semplici di quello che sembra... e quindi avevo inserito questo codice:

    codice:
    Form1.LblSomma.Text += Val("20")
    Così facendo il programma di fatto "somma" modificando il testo... solo che mi perde la "formattazione".
    Di fatto succede che aprendo il programma il totale della ricevuta è "0,00€", ma inserendo questo primo pagamento, mi ritrovo il totale di "20", se lo ripeto diventa "40" ecc... ecc...

    Diciamo che ho fatto appunto ulteriori prove e tutto sommato mi andrebbe pure bene come sta funzionando... ma come faccio a mantenere la formattazione "C" nella label somma?

  6. #6
    Utente di HTML.it L'avatar di e444
    Registrato dal
    Jan 2012
    Messaggi
    37
    Ovviamente io faccio prove...

    Ho modificato il codice in questo modo:

    codice:
    Form1.LblSomma.Text += Format(Val("20"), "C")
    ma così facendo, non mi somma più il totale ma mi "accoda" gli importi ottenendo questo risutato:

    0,00€20,00€5,00€
    Inutile dire che non è questo il risultato sperato...

    Perche il risultato corretto era:

    25,00 €
    Ultima modifica di e444; 03-04-2018 a 00:01

  7. #7
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    Come già ti avevo anticipato una label contiene testo e i testi non si sommano ma si accodano, quindi dovrai definire una variabile SOMMA as Decimal in cui sommi i valori numerici dei contenuti nelle varie Label, poi converti in testo Somma col formato desiderato e lo assegni a LblSomma

    Tutti questi errori sarebbero evitati se tu inserissi in testa al progetto la direttiva Option Strict On
    Ultima modifica di patel; 03-04-2018 a 09:24

  8. #8
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    mi correggo Option Strict On è una istruzione, non una direttiva

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da patel Visualizza il messaggio
    mi correggo Option Strict On è una istruzione, non una direttiva
    Più che altro si eviterebbero se si studiassero le basi. Non è la solita frase fatta e444, ma ti devi rendere conto che non ha senso iniziare a scrivere programmi se non si ha la minima idea di come funzionino le istruzioni e funzioni elementari. E il forum non si sostituisce allo studio.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Non voglio creare polemiche, gente, ma se vi rileggeste un attimino e con un minimo di modestia forse potrete capire perché questo forum ha 1/100 dei post di altri dedicati al VB.
    Se poi è proprio questo il vostro scopo.... come non detto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.