Ciao Mauro.
Forse ti serviva un DataGridView .... piutto sto che un ListView......
Ad ogni modo, io lo risolverei così:
Dim Totali(30) As Long<----- QUESTO L'HO AGGIUNTO IO
Dim Index As Integer<----- QUESTO L'HO AGGIUNTO IO
While (thisReader.Read())
Index = 0<----- QUESTO L'HO AGGIUNTO IO
Dim item As New ListViewItem(thisReader.Item(0).ToString, 0)
item.SubItems.Add(thisReader.Item(1).ToString)
item.SubItems.Add(thisReader.Item(2).ToString)
item.SubItems.Add(thisReader.Item(3).ToString)
item.SubItems.Add(thisReader.Item(4).ToString)
Dim datTim1 As Date
Dim datTim2 As Date
datTim1 = Date.Parse(thisReader.Item(3).ToString)
datTim2 = Date.Parse(thisReader.Item(4).ToString)
Index = 4<----- QUESTO L'HO AGGIUNTO IO
Select Case thisReader("TipoOp").ToString
Case "NU"
Case "UM"
For i As Integer = 0 To 2
item.SubItems.Add(New ListViewItem.ListViewSubItem)
Index += 1<----- QUESTO L'HO AGGIUNTO IO
Next
Case "CA"
For i As Integer = 0 To 5
item.SubItems.Add(New ListViewItem.ListViewSubItem)
Index += 1<----- QUESTO L'HO AGGIUNTO IO
Next
End Select
'ANNI
Dim wY As Long
wY = DateDiff("yyyy", datTim1, datTim2)
If datTim2 < DateSerial(datTim2.Year, datTim1.Month, datTim1.Day) Then
wY = wY - 1
item.SubItems.Add(wY.ToString)
End If
item.SubItems.Add(wY.ToString)
Totali(Index) += wY<----- QUESTO L'HO AGGIUNTO IO
Index += 1<----- QUESTO L'HO AGGIUNTO IO
'--------------------------------
'MESI
Dim wM As Long
wM = DateDiff("m", datTim1, datTim2)
wM = wM - (wY * 12)
If DatePart("d", datTim1) > DatePart("d", datTim2) Then
wM = wM - 1
item.SubItems.Add(wM.ToString)
End If
item.SubItems.Add(wM.ToString)
Totali(Index) += wM<----- QUESTO L'HO AGGIUNTO IO
Index += 1<----- QUESTO L'HO AGGIUNTO IO
'--------------------------------
'GIORNI
Dim GiornoInizio As Int32
Dim GiornoFine As Int32
Dim wD As Long
Dim TempGiornoInizio As Date
GiornoInizio = DatePart("d", datTim1)
GiornoFine = DatePart("d", datTim2)
If GiornoFine >= GiornoInizio Then
wD = GiornoFine - GiornoInizio + 1
item.SubItems.Add(wD.ToString)
Else
TempGiornoInizio = DateAdd("m", -1, datTim2)
wD = DateDiff("d", TempGiornoInizio, datTim2) - (GiornoInizio - GiornoFine) + 1
item.SubItems.Add(wD.ToString)
End If
Totali(Index) += wD <----- QUESTO L'HO AGGIUNTO IO
Index += 1<----- QUESTO L'HO AGGIUNTO IO
ListView1.Items.Add(item)
End While
''QUESTA PARTE L'HO AGGIUNTA IO
''=================================================
Dim TotItem As New ListViewItem
For i = 0 To 4
TotItem.SubItems.Add(New ListViewItem.ListViewSubItem)
Next
For Each tot As Long In Totali
If tot > 0 Then
TotItem.SubItems.Add(tot.ToString)
Else
TotItem.SubItems.Add(New ListViewItem.ListViewSubItem)
End If
Next
''=================================================
Non lo ho provato, ma dovrebbe funzionare, eventualmente ... facci sapere....
Ciao