转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
vb.net实现一个自定义类数组的排序         ★★★★

vb.net实现一个自定义类数组的排序

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1884 更新时间:2009/4/23 19:00:04

今天下午做东西时遇到这样的问题:

    把公司所有员工的业绩(回访数量,收费情况)用一个柱型图表示出来,要求:

A:Y轴表示公司的所有员工且业绩为0的员工不显示出来,X轴表示业绩数量(回访数量+收费情况);

B:按要求对柱图实现升序或着降序

    按以上要求所得思路为:

首先建立一个类(也可以通过结构来实现),类中包含的属性(或字段)为员工ID属性(或字段),员工回访数量属性(或字段),员工收费情况属性(或字段),员工业绩属性等等。(为了能利用Array中的sort需要实现一个接口,会在原码中说明)

接着通过一个table来通过颜色或着图片表现出来。下面是实现的原码:

Public Class wordload
    Implements IComparable''''一定要实现这个接口,才能利用下面的:Array.Sort
    Public pay As Integer ''''维护数量
    Public go_back As Integer ''''回访数量
    Public name As String ''''用户名称
    Public total_ As Integer ''''维护数量+回访数量

''''以下是想通过那个属性(或字段),来进行排序
   
Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
        Dim other As wordload = CType(obj, wordload)
        Return total_.CompareTo(other.total_)
    End Function

    Public Sub New(ByVal pay_value As Integer, ByVal go_back_value As Integer, ByVal name_value As String)
        pay = pay_value
        name = name_value
        go_back = go_back_value
        total_ = pay + go_back
    End Sub
End Class

 Public Sub creat_test(ByVal myarr() As wordload, ByVal mytable As System.Web.UI.WebControls.Table)
        Array.Sort(myarr)''''说明利用Array进行排序
        Dim rows_num As Integer = myarr.Length + 1 ''''说明:人员做为y轴,即人员的个数做为行数,其中为了写表头,要加一行,所以表的总行数为,人员个数+1
        Dim total_comm_num As Integer = myarr(myarr.Length - 1).total_ ''''说明:列数为工作量加1,因为人员的名字要占一列
        Dim pay_width As Integer ''''定义维护宽度
        Dim go_back_width As Integer ''''定义回访宽度
        Dim myimage As HtmlControls.HtmlImage
        Dim myspan As HtmlControls.HtmlGenericControl

        Dim begin_myrow As New Web.UI.WebControls.TableRow
        Dim mycell1 As New UI.WebControls.TableCell
        Dim mycol1 As New Color
        mycell1.Text = "员工"
        mycell1.BackColor = mycol1.Green
        mycell1.Style.Add("BACKGROUND-COLOR", "#949294")
        mycell1.Style.Add("FONT-WEIGHT", "bold")
        mycell1.Style.Add("FONT-SIZE", "18pt")
        mycell1.Style.Add("COLOR", "#ffffff")
        mycell1.Width = WebControls.Unit.Pixel(60)
        begin_myrow.Cells.Add(mycell1)
        begin_myrow.Width = Unit.Pixel(700)
        For b As Integer = 0 To 7 ''''写第一行的列
            Dim mycol As New Color
            If b = 0 Then
                Dim mycell As New UI.WebControls.TableCell
                ''''mycell.BackColor = mycol.LightGreen
                begin_myrow.Cells.Add(mycell)
            Else
                myspan = New HtmlControls.HtmlGenericControl
                myspan.InnerText = ((total_comm_num * (b - 1) / 7) \ 1).ToString
                myspan.Style.Add("WIDTH", "80px") ''''WIDTH: 100px;
                myspan.Style.Add("HEIGHT", "40px") '''' HEIGHT: 100px;: bold; FONT-SIZE: 18pt;COLOR: #ffffff;
                myspan.Style.Add("BACKGROUND-COLOR", "#949294")
                myspan.Style.Add("FONT-WEIGHT", "bold")
                myspan.Style.Add("FONT-SIZE", "18pt")
                myspan.Style.Add("COLOR", "#ffffff")
                begin_myrow.Cells(1).Controls.Add(myspan)
            End If
        Next
        mytable.Rows.Add(begin_myrow)
        For i As Integer = 0 To rows_num - 2
            pay_width = (500 * myarr(i).pay / total_comm_num) \ 1 ''''给维护宽度进行赋值
            go_back_width = (500 * myarr(i).go_back / total_comm_num) \ 1 ''''给回访宽度进行赋值
            Dim myrow As New Web.UI.WebControls.TableRow
            myrow.Width = Unit.Pixel(700)
            Dim j As Integer
            ''''以下循环是添加维护情况
            For j = 0 To pay_width
                If j = 0 Then ''''在第一列要写进用户的名称
                    Dim mycell As New UI.WebControls.TableCell
                    mycell.Text = myarr(i).name
                    mycell.Width = WebControls.Unit.Pixel(60)
                    Dim mycol As New Color
                    mycell.BorderColor = mycol.DeepPink
                    myrow.Cells.Add(mycell)

                    Dim mycell2 As New UI.WebControls.TableCell
                    myrow.Cells.Add(mycell2)
                Else ''''在第二列添加图片信息
                    myspan = New HtmlControls.HtmlGenericControl
                    myimage = New HtmlControls.HtmlImage
                    myimage.Src = "Images/navbar.gif" ''''要显示的中间图片
                    myspan.Controls.Add(myimage)
                    myrow.Cells(1).Controls.Add(myspan)
                End If
            Next
            ''''以下循环是添加回访情况
            For j = 0 To go_back_width
                myspan = New HtmlControls.HtmlGenericControl
                myimage = New HtmlControls.HtmlImage
                myimage.Src = "Images/navbar2.gif" ''''要显示的中间图片
          &

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台