Ciao.
Metto un po mani al tuo codice:
''Dichiaro il gruppo
Dim grp As ListViewGroup
''Dichiaro un Items
Dim elem As ListViewItem
For i = 0 To TreeView1.Nodes.Count - 1
ToolStripProgressBar1.Minimum = 0
ToolStripProgressBar1.Maximum = TreeView1.Nodes.Count - 1
ToolStripProgressBar1.Value = i
'scorro il secondo livello
For j = 0 To TreeView1.Nodes(i).Nodes.Count - 1
'scorro il terzo livello
For k = 0 To TreeView1.Nodes(i).Nodes(j).Nodes.Count - 1
If TreeView1.Nodes(i).Nodes(j).Nodes(k).Nodes.Count <> 0 Then
'scorro il quarto livello
For y = 0 To TreeView1.Nodes(i).Nodes(j).Nodes(k).Nodes.Count - 1
importo = 0
s1 = Split(TreeView1.Nodes(i).Text, " ")
s2 = Split(TreeView1.Nodes(i).Nodes(j).Text, " ")
s3 = Split(TreeView1.Nodes(i).Nodes(j).Nodes(k).Text, " ")
capitolato = TreeView1.Nodes(i).Nodes(j).Nodes(k).Nodes(y).Text
''Inizializzo il gruppo e lo aggiungo alla ListView
grp = new ListViewGroup("")
me.ListView1.Groups.Add(grp)
rs.Open("SELECT fornitori.ragionesociale, GSD70COL_GOFRI00F.ORNUM, " _
& "GSD70COL_GOFRI00F.ORANN, GSD70COL_GOFRI00F.ORDES, GSD70COL_GOFRI00F.ORDE2, " _
& "GSD70COL_GOFRI00F.ORQTA, GSD70COL_GOFRI00F.ORCOS" _
& " FROM fornitori INNER JOIN (GSD70COL_GOFRI00F INNER JOIN GSD70COL_GOFTE00F " _
& " ON (GSD70COL_GOFRI00F.ORANN = GSD70COL_GOFTE00F.OTANN AND " _
& " GSD70COL_GOFRI00F.ORNUM = GSD70COL_GOFTE00F.OTNUM)) " _
& " ON (fornitori.codice = GSD70COL_GOFRI00F.ORFOR) WHERE" _
& " ORAZI LIKE '" & filtro & "' AND" _
& " ORCOM LIKE '%" & cmbcommessa.Text & "%' AND" _
& " ORCAN LIKE '%" & cmbcant.Text & "%' AND" _
& " ORLI2 LIKE '%" & s1(0) & "%' AND" _
& " ORLI3 LIKE '%" & s2(0) & "%' AND" _
& " ORLI4 LIKE '%" & s3(0) & "%' AND" _
& " ORCAP LIKE '%" & capitolato & "%' AND" _
& " OTDAT >= " & dal & " AND" _
& " OTDAT <= " & al & " ", cn, 1)
If rs.RecordCount <> 0 Then
MsgBox("numero di record trovati " & rs.RecordCount & " WBS " & s1(0) & "." & s2(0) & "." & s3(0) & " " & capitolato)
While rs.EOF = False
If rs.Fields("ORQTA").Value = zero Then
importo = importo + rs.Fields("ORCOS").Value
Else
importo = importo + (rs.Fields("ORQTA").Value * rs.Fields("ORCOS").Value)
End If
elem = new Listvewiitem()
elem.text = rs.Fields("ragionesociale").Value
elem.subitems.add((Mid(rs.Fields("ORANN").Value, 3, 2) & "/" & rs.Fields("ORNUM").Value))
elem.subitems.add(Trim(rs.Fields("ORDES").Value) & Trim(rs.Fields("ORDE2").Value))
elem.subitems.add(FormatNumber(rs.Fields("ORQTA").Value))
elem.subitems.add(FormatNumber(rs.Fields("ORCOS").Value))
If rs.Fields("ORQTA").Value = zero Then
elem.subitems.add(FormatNumber(rs.Fields("ORCOS").Value))
else
elem.subitems.add(FormatNumber(rs.Fields("ORQTA").Value * rs.Fields("ORCOS").Value))
end if
elem.Group = grp
me.ListView1.Items.Add(Elem)
rs.MoveNext()
End While
grp.Text( oppure 'Caption' non ricordo bene) = "" & s1(0) & "." & s2(0) & "." _
& s3(0) & " " & capitolato & " " & "(" & importo & ")"
End If
rs.Close()
Next
End If
Next
Next
Next
cn.Close()
ToolStripProgressBar1.Value = 0
Cristian Barca