Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Problema Item Datagridview
Forum - C# / VB.NET - [VB.NET] Problema Item Datagridview

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 16:54
Martedì, 20/07/2010
Allora innanzitutto vi dico che ho un Datagridview dove ci sono 31 Columns per indicare i giorni del mese e 12 Rows per indicare i mesi , adesso ho creato un ulteriore colonna intitolata : Totale , la quale come dice il nome mi dovrebbe dare il risualtato delle varie celle per ogni mese , quindi ho fatot questo code :
Codice sorgente - presumibilmente VB.NET

  1. For month1 As Integer = 0 To 30
  2.             Try
  3.                 DataGridView1.Item(31, month1).Value = DataGridView1.Item(0, month1).Value + +DataGridView1.Item(1, month1).Value + +DataGridView1.Item(2, month1).Value + +DataGridView1.Item(3, month1).Value + +DataGridView1.Item(4, month1).Value + +DataGridView1.Item(5, month1).Value + +DataGridView1.Item(6, month1).Value + +DataGridView1.Item(7, month1).Value + +DataGridView1.Item(8, month1).Value + +DataGridView1.Item(9, month1).Value + +DataGridView1.Item(10, month1).Value + +DataGridView1.Item(11, month1).Value
  4.  
  5.             Catch ex As Exception
  6.  
  7.             End Try
  8.             month1 = month1 + 1
  9.         Next




Come potete vedere ho utilizzato il ciclo For per velocizzare il lavoro , pultroppo  non so perchè il ciclo prende in considerazione solamente le Rows Dispari , mentre nelle
pari non mi esce alcun risultato

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 18:20
Martedì, 20/07/2010
Ma i mesi devono andare da 0 a 11 e stai già usando il ciclo per incrementarli!!
Togli month1 = month1 + 1

E metterei un ciclo da 0 a 30 per le colonne.

Ultima modifica effettuata da Alfonso il 20/07/2010 alle 18:29
PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 22:54
Martedì, 20/07/2010
infatti vanno da 0 a 30 , ho solamente messo così  la variabile con il nome month1 , ma non sta ad indicare i mesi

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 9:10
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da salva94:
ho solamente messo così  la variabile con il nome month1 , ma non sta ad indicare i mesi



Però:
DataGridView1.Item(31, month1).Value = ....

Testo quotato

Postato originariamente da salva94:
ci sono 31 Columns per indicare i giorni del mese e 12 Rows per indicare i mesi



31 è la colonna (il Totale), month1 è la riga (il mese)

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:18
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da salva94:

infatti vanno da 0 a 30 , ho solamente messo così  la variabile con il nome month1 , ma non sta ad indicare i mesi



Il ciclo For incrementa automaticamente la variabile contatore, altrimenti sarebbe inutile. Tu la incrementi ulteriormente dentro al ciclo, così ottieni che consideri solo gli indici pari (e quindi i mesi dispari). Riscrivi il tutto come:
Codice sorgente - presumibilmente VB.NET

  1. For month1 As Integer  = 0 To 30
  2.    Try
  3.       Dim Total As Single = 0
  4.       For I As Integer = 0 To 11
  5.          Total += DataGridView1.Item(I, month1).Value
  6.       Next
  7.       DataGridView1.Item(31, month1).Value = Total
  8.    Catch ex As Exception
  9.  
  10.    End Try
  11. Next


PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 9:46
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da Il Totem:

Testo quotato

Postato originariamente da salva94:

infatti vanno da 0 a 30 , ho solamente messo così  la variabile con il nome month1 , ma non sta ad indicare i mesi



Il ciclo For incrementa automaticamente la variabile contatore, altrimenti sarebbe inutile. Tu la incrementi ulteriormente dentro al ciclo, così ottieni che consideri solo gli indici pari (e quindi i mesi dispari). Riscrivi il tutto come:
Codice sorgente - presumibilmente VB.NET

  1. For month1 As Integer  = 0 To 30
  2.    Try
  3.       Dim Total As Single = 0
  4.       For I As Integer = 0 To 11
  5.          Total += DataGridView1.Item(I, month1).Value
  6.       Next
  7.       DataGridView1.Item(31, month1).Value = Total
  8.    Catch ex As Exception
  9.  
  10.    End Try
  11. Next






Ti ringrazio , funziona , non sapevo che il cilco For si incrementasse da solo , un'altra cosa nel code non ho capito molto la funzione del "+="

Ultima modifica effettuata da salva94 il 21/07/2010 alle 9:46
PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 10:00
Mercoledì, 21/07/2010
Total += DataGridView1.Item(I, month1).Value
+= aggiunge qualcosa alla fine della stringa, per essere più esplicito equivale a
Totale = Totale + DataGridView1.Item(I, month1).Value

PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 13:13
Mercoledì, 21/07/2010
ok grazie a tutti , problema risolto :rofl:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:26
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da Alfonso:

Total += DataGridView1.Item(I, month1).Value
+= aggiunge qualcosa alla fine della stringa, per essere più esplicito equivale a
Totale = Totale + DataGridView1.Item(I, month1).Value  



Total è un numero, comunque... + è l'operatore addizione, e il suo comportamento varia a seconda dei tipi tra cui è usato.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo