Me.RichTextBoxDownload.Text += "Nombre de host par poller" & Environment.NewLine
Dim querypoller = From row In hosts 'hosts est le datatable
Group row By poller = row.Field(Of String)("POLLER") Into PollerGroup = Group
Select New With {
Key poller,
.host = PollerGroup.Select(Function(r) r.Field(Of String)("Host")).Distinct
}
Dim listpoller = New List(Of Tuple(Of String, Integer))
For Each x In querypoller
listpoller.Add(New Tuple(Of String, Integer) _
(x.poller.ToString, x.host.Count))
Next
listpoller.Sort()
Dim result = From v In listpoller
Group v By v.Item1 Into TupleGroup = Group
For Each value In result
For Each item In value.TupleGroup
Me.RichTextBoxDownload.Text += value.Item1 & Convert.ToChar(Keys.Tab) & _
item.Item2 & Environment.NewLine
Next
Next
Whismeril
Messages postés18643Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 3 octobre 2023629 26 févr. 2017 à 22:20
Salut,
j'ai pas de datatable sous la main, j'ai fait avec une liste.
Public Class JMO2
Public Property Code3Caracteres() As String
Public Property Serveur() As String
Public Property Poller() As String
End Class
Public Class HostParPoller
Public Property Host() As String
Public Property Nombre() As Integer
End Class
Public Class RequetteJMO
Public Property Poller() As String
Public Property Nombre() As Integer
Public Property Hosts() As List(Of HostParPoller)
End Class
Dim lesDonneesJMO As New List(Of JMO2)() From {
New JMO2 With {.Code3Caracteres = "ACC", .Serveur = "server1", .Poller = "FR3PRD02"},
New JMO2 With {.Code3Caracteres = "ACC", .Serveur = "server2", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "AS0", .Serveur = "server3", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "ASU", .Serveur = "server8", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "ASU", .Serveur = "server30", .Poller = "FR3PRD01"},
New JMO2 With {.Code3Caracteres = "AXO", .Serveur = "server50", .Poller = "FR3PRD02"}}
'nombre de host par poller
Dim toto = (
From y In lesDonneesJMO.GroupBy(Function(x) x.Poller)
Select New RequetteJMO With
{
.Poller = y.Key,
.Nombre = y.Count(),
.Hosts = y.GroupBy(Function(z) z.Code3Caracteres).Select(Function(w) New HostParPoller With
{
.Host = w.Key,
.Nombre = w.Count()
}).ToList()
}).ToList()
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 27 févr. 2017 à 08:17
Bonjour Whismeril,
Merci pour ce code.utilisant les collections et classes qui répond à mon besoin.
For Each value In toto MessageBox.Show(value.Poller & Convert.ToChar(Keys.Tab) & _ Convert.ToChar(Keys.Tab) & CStr(value.Nombre)) For Each item In value.Hosts MessageBox.Show(item.Host.ToString & Convert.ToChar(Keys.Tab) & _ CStr(item.Nombre), value.Poller) Next Next
27 févr. 2017 à 08:17
Merci pour ce code.utilisant les collections et classes qui répond à mon besoin.
Bonne journée,