首先,英语不是! 我的母语

对于我在这家公司的实习,我正在尝试收集一些数据。 网络中大约有200台PC。 所有HP SFF PC。 所有电脑将被包含软件和策略的公司磁盘映像覆盖。 他们还获得了BIOS更新。 但是随着时间的流逝,这些版本已经过时了。 并非要求更新BIOS,我们现在想在哪种型号的哪个PC上使用哪个版本。

有几种PC型号。 例如HP DC7600,HP 7700。

有几种BIOS版本。 例如786G1 v01.10、786G1 v01.16

我正在使用以下方法收集此数据。 每个人都有一个共享到特定磁盘的网络。(公司文件)。

对于客户端,我正在使用WMI(Windows管理规范)来收集所需的信息。

Sub RetrieveInfo()
    Dim _PCName As String = My.Computer.Name
    Dim _Info As String = vbNullString
    Dim _FileName As String = "G:\BiosVersion\" & _PCName & ".txt"
    Dim _ManagmentC As New ManagementClass("Win32_ComputerSystem")
    Dim _Moc As ManagementObjectCollection = _ManagmentC.GetInstances

    For Each _Mo As ManagementObject In _Moc
        Dim Model() As String = Split(_Mo.Properties("Model").Value.ToString, " ")
        For i = 0 To Model.Length - 1
            If Model(i).ToLower.Contains("dc") Then _Info &= Model(i)
        Next
    Next

    _ManagmentC = New ManagementClass("win32_bios")
    _Moc = _ManagmentC.GetInstances
    For Each _Mo As ManagementObject In _Moc
        _Info &= "|" & _Mo.Properties("SMBIOSBIOSVersion").Value.ToString
    Next

    Try
        If IO.File.Exists(_FileName) Then
            IO.File.Delete(_FileName)
        End If
    Catch ex As IO.IOException
        _FileName = _FileName.Replace(_PCName, _PCName & "-" & New Random().Next(10, 10000))
    End Try

    IO.File.WriteAllText(_FileName, _Info)

End Sub

如您所见,此文件将在与字符串PCName(例如PC1001)共享的文件中创建为文本文件。 它将PC型号和Bios版本都写入文本文件。 (例如dc7900 | 786G1 v01.16)


对于服务器端,图表构建部分,我正在做以下事情。

Dim Path As String = "G:\BiosVersion\"
Sub UpdateChart()
    Dim PCModels As New List(Of String)
    Dim BiosVersions As New List(Of String)
    Dim Files As IO.FileInfo() = New IO.DirectoryInfo(Path).GetFiles

    For Each File As IO.FileInfo In Files
        If File.Extension = ".txt" Then
            PCModels.Add(IO.File.ReadAllText(File.FullName).Split("|")(0))
            BiosVersions.Add(IO.File.ReadAllText(File.FullName).Split("|")(1))
        End If
    Next
    PCModels = RemoveDuplicates(PCModels)
    BiosVersions = RemoveDuplicates(BiosVersions)

    For i = 0 To chartBios.Series.Count - 1
        chartBios.Series.Remove(chartBios.Series.Item(i))
    Next

    Dim Dictionary As New Dictionary(Of String, Integer)
    For Each Version As String In BiosVersions
        chartBios.Series.Add(Version)
        Dim Count As Integer = 0
        For Each File As IO.FileInfo In Files
            If IO.File.ReadAllText(File.FullName).Split("|")(1).ToLower.Trim = Version.ToLower.Trim Then
                Count += 1
            End If
        Next
        Dictionary.Add(Version, Count)
    Next

    For Each Entry As KeyValuePair(Of String, Integer) In Dictionary
        chartBios.Series(Entry.Key).Points.AddY(Entry.Value)
    Next
End Sub

Function RemoveDuplicates(ByVal inputList As List(Of String)) As List(Of String)
    Dim uniqueStore As New Dictionary(Of String, Integer)()
    Dim finalList As New List(Of String)()
    For Each currValue As String In inputList
        If Not uniqueStore.ContainsKey(currValue) Then
            uniqueStore.Add(currValue, 0)
            finalList.Add(currValue)
        End If
    Next
    Return finalList
End Function

chartBios =图表控件。

结果如下:我还不能发布任何图像(垃圾邮件阻止) http://i.imgur.com/bGpyH.jpg

我想要做的是以下内容。 我有3个Vars,Bios版本,每个版本安装了几次以及型号名称。

这是我想要的图表布局的示例。 任何人都对如何创建此布局有任何想法吗? 在运行时还是静态,我不在乎,只要可以在运行时将其填充即可。

对于每个BIOS版本号,每个PC型号必须有一个带有标签的栏,该标签代表BIOS版本的安装次数。

示例:我还不能发布任何图像(防止垃圾邮件) http://i.imgur.com/tP0Sf.jpg

===============>>#1 票数:0

使用MS Chart Controls,您可以在一个图表中添加多个系列,每个系列将代表您的PC类型,其中每种类型都有BIOS版本号和出现次数。

在此处输入图片说明

http://msdn.microsoft.com/en-us/library/dd456769.aspx

  ask by z7gsr32cod586mic4a5e translate from so

未解决问题?本站智能推荐:

2回复

如何为图表创建动态颜色列表

如何为图表创建动态颜色列表 基本上我在我的数据库中有不同的值或每个值包含每个百分比,我需要在不同颜色的饼图中显示这个百分比.... 这是静态方式的饼图示例代码 但我需要动态的方式使用PHP( 对于循环/ foreach循环 )这样 而我不知道创建动态颜色列表还可以看到
1回复

vb.net动态更新数组的图表

我有一个子图,它计算图的数组,另一个子图是图。 有两个线程,一个用于计算(getArrayForGraph()),另一个用于绘制图形。 现在我希望图形沿着侧面数组更新函数进行绘制,因为数组很长(10000 000),使整个过程非常缓慢。 一旦点可用于图形,我如何开始更新图形。 或
1回复

如何在vb.net中创建图表

如何在vb.net中创建图表。 可以有一个没有任何其他组件的图表吗? 如果是,那怎么办? 使用此VS组件进行实时操作
1回复

我需要从一个系列转到两个系列

我们使用dotNETCHARTING来描绘图表,他们接受Series作为SeriesCollection 。 这是我正在处理的新图表,所有先前的图表在显示的值和提取的值之间具有1:1的关系。 现在,我有一个值列表显示为值列表12:12。 我目前有2个数据列表,以显示(过去12个月中的实
1回复

VB.net中的图表

我有一个名为Chart1的图表和默认系列Series1。 该图表将按要求显示,但是再次单击显示按钮时,它将显示错误消息“ System.Windows.Forms.DataVisualization.dll中发生了'System.ArgumentException类型的未处理的异常” 附
1回复

重叠图表VB.NET

有什么办法可以在vb.net中创建像这样的图表: 我已经搜索了一段时间,找不到一种创建类似图表的方法,也找不到一种方法/控件/属性来联接/重叠2个不同的图表以获得上述结果。 因此,是否有可能做到这一点的人都知道吗?
3回复

VB.NET逻辑顺序在if语句中

我是VB.NET的新手,但是对于C,C ++,C#和其他语言,我有多年的经验。 对我来说,这个问题很奇怪,因为我以前从未遇到过。 我有这行代码: 当obj为Nothing时,这行代码将显示错误,因为obj.IsDisposed不存在(没有句柄)。 据我所知,Or的第一个语句返回
3回复

vb.net if else逻辑流程错误

我在ASP.net Web应用程序项目中调试一些代码。 我有一个嵌套在Try / Catch块中的If / Else语句。 只要在If块中发生错误,而不是立即跳入Catch块,它就会落入Else块。 我已经反复介绍了这些代码以见证这种情况。 当我在if块中抛出异常时,我会期望逻辑
4回复

秒表的VB.net演算返回负分钟

秒表工作约15分钟后, 秒数显示为负数 。 这可能与计时器有关,也可能是逻辑错误,但对我来说似乎很合逻辑。 我不知道什么是行不通的,请帮忙。
1回复

vb.net powerscan m8300写入显示

我正在尝试将数据(提示)写入m8300条码扫描器,但是我遇到了一些问题。 该设备是串行设备,我正在使用后台工作人员为我从中获取数据,从而从中获取数据。 但是,我似乎无法找到一种将数据写入设备的方法。 我知道该设备能够按照手册中的说明进行操作。 但是,我有以下代码: 但是,它不能始