+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

calcoli in un form

  1. #1
    gnappi non  in linea Scolaretto
    Il 2.9.2021 segnalavo un problema, che allora risolsi sostituendo il controllo all'evento textchange.
    Ora, ripropongo il caso, perch si ripresenta in una situazione similare e che non riesco a risolvere.
    Come dimostrano le seguenti immagini (di un form semplificato al massimo) la somma esatta solo sul primo record (perch l'evento load richiama la sub che effettua il calcolo DOPO aver caricato il record),mentre i records seguenti danno come risultato la somma del record precedente!
    Mi aiutate a risolvere? Grazie per qualsiasi contributo.

    https://we.tl/t-Wjrw8ozO7E

    https://we.tl/t-uc5rYMehyn

    https://we.tl/t-D6LXunjT2J

    Ad ogni buo conto ecco il codice del form:
    Public Class Form1
        Private Sub GIACENZEBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles GIACENZEBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.GIACENZEBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.STATitalia2000DataSet)
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Me.GIACENZETableAdapter.Fill(Me.STATitalia2000DataSet.GIACENZE)
            TOTALE()
        End Sub
    
        Private Sub CZTextBox_TextChanged(sender As Object, e As EventArgs) Handles CZTextBox.TextChanged
            TOTALE()
        End Sub
        Sub TOTALE()
            TextBox1.Text = Val(GIACENZE_INPSTextBox.Text) + Val(GIACENZE_INAILTextBox.Text) + Val(GIACENZE_ALTRITextBox.Text)
        End Sub
    End Class
    
    Ultima modifica di gnappi; 18-09-2021 13:40  Motivo: URL non IMG

  2. #2
    Ti pare possibile rispondere senza codice o altre spiegazioni?
    ℹ️ Leggi di pi su AntonioG ...

  3. #3
    gnappi non  in linea Scolaretto
    Ho risolto.
    Ho sostituito il BingNavigator con normali bottoni, che ho programmato in base alle rispettive funzioni.

    Il codice funzionante il seguente :
        Private Sub GIACENZEBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles GIACENZEBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.GIACENZEBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.STATitalia2000DataSet)
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Me.GIACENZETableAdapter.Fill(Me.STATitalia2000DataSet.GIACENZE)
            TOTALE()
        End Sub
    
        Private Sub CZTextBox_TextChanged(sender As Object, e As EventArgs) Handles CZTextBox.TextChanged
            TOTALE()
        End Sub
        Sub TOTALE()
            TextBox1.Text = Val(GIACENZE_INPSTextBox.Text) + Val(GIACENZE_INAILTextBox.Text) + Val(GIACENZE_ALTRITextBox.Text)
        End Sub
        Private Sub PROSSIMO_Click(sender As Object, e As EventArgs) Handles PROSSIMO.Click
            GIACENZEBindingSource.MoveNext()
            TOTALE()
        End Sub
        Private Sub PRECEDENTE_Click(sender As Object, e As EventArgs) Handles PRECEDENTE.Click
            GIACENZEBindingSource.MovePrevious()
            TOTALE()
        End Sub
        Private Sub primo_Click(sender As Object, e As EventArgs) Handles primo.Click
            GIACENZEBindingSource.MoveFirst()
            TOTALE()
        End Sub
        Private Sub ultimo_Click(sender As Object, e As EventArgs) Handles ultimo.Click
            GIACENZEBindingSource.MoveLast()
            TOTALE()
        End Sub
    End Class
    
    Scusate il disturbo. Buon lavoro.

  4. #4
    Sgrubak non  in linea Scribacchino
    Non hai risolto, solo girato intorno al problema. Bastava chiamare TOTALE nel BindingNavigator.CurrentChanged e avrebbe funzionato lo stesso.

  5. #5
    L'avatar di sistemista
    sistemista non  in linea Topo di biblioteca
    Come gi,ampiante e discusso varie volte,non bisogna adattarsi alla procedura guidata, fuorviante e ti porta fuori strada,programmiamo con gli strumenti che ci vengono offerti dalle varie query,insert,delete,into,update,solo cos possiamo manipolare i nostri dati a nostro piacimento,dimenticavo i dataset ,datatable e datarow,e vivremo felici senza complicazioni,senza contare il commandbuilder associato al data table....studiare gente,sempre studiare e vi eliminerete tanti problemi.
    ℹ️ Leggi di pi su sistemista ...

  6. #6
    gnappi non  in linea Scolaretto
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Non hai risolto, solo girato intorno al problema. Bastava chiamare TOTALE nel BindingNavigator.CurrentChanged e avrebbe funzionato lo stesso.
    Grazie Sgrubak.Ho provato ad applicare la tua soluzione, ma tra gli eventi connessi alla BN non c' current.changed.
    Ho forse frainteso il tuo messaggio? Grazie se puoi chiarirmi il mio errore.

  7. #7
    gnappi non  in linea Scolaretto
    Quote Originariamente inviato da sistemista Visualizza il messaggio
    Come gi,ampiante e discusso varie volte,non bisogna adattarsi alla procedura guidata, fuorviante e ti porta fuori strada,programmiamo con gli strumenti che ci vengono offerti dalle varie query,insert,delete,into,update,solo cos possiamo manipolare i nostri dati a nostro piacimento,dimenticavo i dataset ,datatable e datarow,e vivremo felici senza complicazioni,senza contare il commandbuilder associato al data table....studiare gente,sempre studiare e vi eliminerete tanti problemi.
    Hai mille volte ragione, ma a volte i problemi sono talmente elementari che si fa ricorso alla strada che si ritiene pi sbrigativa.Ho imparato oggi per che le strade sbrigative a volte fanno perdere pi tempo!!! Grazie,sistemista.Vedr di seguire la tua filosofia pi spesso.

  8. #8
    gnappi non  in linea Scolaretto
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Non hai risolto, solo girato intorno al problema. Bastava chiamare TOTALE nel BindingNavigator.CurrentChanged e avrebbe funzionato lo stesso.
    Ho appena testato il seguente evento che funziona correttamente:
        Private Sub BindingNavigator1_RefreshItems(sender As Object, e As EventArgs) Handles BindingNavigator1.RefreshItems
            TOTALE()
        End Sub
    

  9. #9
    Sgrubak non  in linea Scribacchino
    Quote Originariamente inviato da gnappi Visualizza il messaggio
    ...tra gli eventi connessi alla BN non c' current.changed...
    Scusami, un evento del BindingSource.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. calcoli in un form
    Da gnappi nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 02-09-2021, 16:07
  2. calcoli con ore
    Da annaelle nel forum Microsoft Excel
    Risposte: 11
    Ultimo Post: 08-04-2013, 14:48
  3. calcoli con iva
    Da papy2 nel forum Visual Basic 6
    Risposte: 11
    Ultimo Post: 26-11-2005, 14:45
  4. calcoli con ore
    Da altair nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 06-10-2004, 18:13
  5. calcoli con ore
    Da altair nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 05-08-2004, 20:17