Torna al Thread
Public Sub CaricaListview(ByVal NomeListview As ListView, ByVal sql As String, ByVal Colonne As Integer, ByVal ColonnaPrincipale As Integer, Optional ByVal ColoneVuote As Integer = 0)
Dim DcListview As New SqlClient.SqlCommand(sql)
Dim i As Integer
Dim CV As Integer
NomeListview.Items.Clear() ' ripulisci la combo
DcListview.Connection = DB
Dim DrListview As SqlClient.SqlDataReader = DcListview.ExecuteReader
Do While DrListview.Read
Dim myitem As New ListViewItem(CStr(DrListview(ColonnaPrincipale)))
With myitem
.UseItemStyleForSubItems = False
For i = 1 To Colonne - 1
.SubItems.Add(CStr(DrListview(i)))
Next
If ColoneVuote > 0 Then
For CV = 1 To ColoneVuote
.SubItems.Add("")
Next
End If
End With
With NomeListview
.BeginUpdate()
.Items.AddRange(New ListViewItem() {myitem})
.EndUpdate()
.EnsureVisible(NomeListview.Items.Count - 1)
.Refresh()
End With
Loop
DrListview.Close()
DcListview.Dispose()
End Sub
Public Sub CaricaListviewStruttura(ByVal NomeForm As Form, ByVal NomelistView As ListView, ByVal Sql As String, ByVal Struttura As String)
Dim primalista() As String
Dim secondalista() As String
Dim dcGriglia As New SqlClient.SqlCommand(Sql)
NomelistView.Items.Clear() 'ripulisci la lista
NomelistView.Columns.Clear()
dcGriglia.Connection = DB
Dim drGriglia As SqlClient.SqlDataReader = dcGriglia.ExecuteReader
' crea la struttura della list view
primalista = Struttura.Split("|")
Dim Lista(primalista.Length - 1) As ListaStruttura
Dim i As Integer
Dim e As Integer
Dim g As Integer
For i = 0 To primalista.Length - 1
secondalista = primalista(i).Split(",")
Lista(i).nome = secondalista(0)
Lista(i).colonna = secondalista(1)
Lista(i).dimensione = CInt(secondalista(2))
If secondalista(3) = "Left" Then
Lista(i).allineamento = HorizontalAlignment.Left
ElseIf secondalista(3) = "center" Then
Lista(i).allineamento = HorizontalAlignment.Center
ElseIf secondalista(3) = "right" Then
Lista(i).allineamento = HorizontalAlignment.Right
Else
Lista(i).allineamento = HorizontalAlignment.Left
End If
Next
For e = 0 To Lista.Length - 1 ' colonne
NomelistView.Columns.Add(Lista(e).nome, Lista(e).dimensione, Lista(e).allineamento)
Next
' riempi la lista
Do While drGriglia.Read
Dim myitem As New ListViewItem(CStr(ValueNull(drGriglia(0), "string")))
With myitem
.UseItemStyleForSubItems = False
For g = 1 To Lista.Length - 1
.SubItems.Add(CStr(ValueNull(drGriglia(drGriglia.GetOrdinal(Lista(g).colonna)), "string")))
Next
End With
With NomelistView
.BeginUpdate()
.Items.AddRange(New ListViewItem() {myitem})
.EndUpdate()
.EnsureVisible(NomelistView.Items.Count - 1)
.Refresh()
End With
Loop
drGriglia.Close()
dcGriglia.Dispose()
End Sub