以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于listview显示问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89754)

--  作者:沦落深蓝
--  发布时间:2016/8/29 11:36:00
--  [求助]关于listview显示问题

在一个LISTVIEW中,已完成考核科目的分类,但是希望只显示每项科目最近一次“考核时间”的相关信息,同时按成绩进行降序排序,该如何实现

PS:第一项“姓名”无论如何都居中不了,求解~~~~

截图如下:


                        ~~~~~~怎么传不了了~~~稍后补上

图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看



数据都是瞎写的~~~不要深究
[此贴子已经被作者于2016/8/29 11:47:08编辑过]

--  作者:大红袍
--  发布时间:2016/8/29 12:18:00
--  
 贴出代码,或者上传实例。
--  作者:沦落深蓝
--  发布时间:2016/8/29 12:44:00
--  
\'训练管理页面生成
If e.Sender.SelectedPage.Text ="训练管理" Then
    Dim lvw As WinForm.ListView = e.Form.Controls("LV训练成绩")
    lvw.StopRedraw() \'停止绘制
    lvw.Groups.Clear() \'清除原来的分组
    lvw.Columns.Clear() \'清除原来的列
    lvw.Rows.Clear() \'清除原来的行
    lvw.Images.Clear() \'清除原来的图片
    lvw.View = ViewMode.Details \'显示模式为详细信息
    Dim cls() As String = {"姓名","JX","职务","考核情况_完成时间","考核情况_扣分情况","考核情况_最终得分","等级评定","考核时间"} \'定义列名
    Dim wds() As Integer = {80,80,80,100,100,100,80,100} \'定义列宽
    For i As Integer = 0 To  cls.Length - 1  \'增加列
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Name = cls(i) \'指定列名
        c.Text = cls(i) \'指定标题,这里标题和列名相同
        c.Width = wds(i) \'指定列宽
        c.TextAlign = HorizontalAlignment.center
    Next
    For Each zh As String In DataTables("考核成绩表").GetValues("考核项目") \'增加分组
        Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
        grp.Name = zh
        grp.Text = zh
    Next
    For Each dr As DataRow In DataTables("考核成绩表").DataRows
        Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
        r.Group = dr("考核项目") \'指定所属分组
        For Each cl As String In cls \'逐列取值
            r(cl) = dr(cl)
        Next
    Next
    lvw.ResumeRedraw() \'恢复绘制
    lvw.Columns("考核情况_完成时间").Text = "考核用时" \'修改考"核情况_完成时间"列的标题
    lvw.Columns("考核情况_扣分情况").Text = "扣分情况"
    lvw.Columns("考核情况_最终得分").Text = "最终得分"
End If


这是利用页面集合当主窗口,设计的其中一个页面的内容,调用的表就是普通成绩统计表


PS:菜鸟才学两三个月,前期都在看文件,近一两周才开始动手,问题比较多,还请老师们多多指教图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/8/29 14:46:00
--  
 上传foxtable实例。
--  作者:沦落深蓝
--  发布时间:2016/8/29 15:35:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:页签主页尝试.table


--  作者:大红袍
--  发布时间:2016/8/29 15:52:00
--  
\'训练管理页面生成
If e.Sender.SelectedPage.Text ="训练管理" Then
    Dim lvw As WinForm.ListView = e.Form.Controls("LV训练成绩")
    lvw.StopRedraw() \'停止绘制
    lvw.Groups.Clear() \'清除原来的分组
    lvw.Columns.Clear() \'清除原来的列
    lvw.Rows.Clear() \'清除原来的行
    lvw.Images.Clear() \'清除原来的图片
    lvw.View = ViewMode.Details \'显示模式为详细信息
    Dim cls() As String = {"","姓名","JX","职务","考核情况_完成时间","考核情况_扣分情况","考核情况_最终得分","等级评定","考核时间"} \'定义列名
    Dim wds() As Integer = {0,80,80,80,100,100,100,80,100} \'定义列宽
    For i As Integer = 0 To  cls.Length - 1  \'增加列
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Name = cls(i) \'指定列名
        c.Text = cls(i) \'指定标题,这里标题和列名相同
        c.Width = wds(i) \'指定列宽
        c.TextAlign = HorizontalAlignment.center
    Next
    For Each zh As String In DataTables("考核成绩表").GetValues("考核项目") \'增加分组
        Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
        grp.Name = zh
        grp.Text = zh
        For Each xm As String In DataTables("考核成绩表").GetValues("姓名", "考核项目 = \'" & zh & "\'")
            Dim dr As DataRow = DataTables("考核成绩表").find("考核项目 = \'" & zh & "\' and 姓名 = \'" & xm & "\'", "考核时间 desc")
           
            Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
            r.Group = dr("考核项目") \'指定所属分组
            For Each cl As String In cls \'逐列取值
                If cl > ""
                    r(cl) = dr(cl)
                End If
            Next
        Next
    Next
   
    lvw.ResumeRedraw() \'恢复绘制
    lvw.Columns("考核情况_完成时间").Text = "考核用时" \'修改考"核情况_完成时间"列的标题
    lvw.Columns("考核情况_扣分情况").Text = "扣分情况"
    lvw.Columns("考核情况_最终得分").Text = "最终得分"
End If

--  作者:沦落深蓝
--  发布时间:2016/8/29 16:31:00
--  
万分感谢~~~~等我软件制作成了给老板过目以后定会购买正版进行开发~~~今后还请继续指导图片点击可在新窗口打开查看

领导满意的话就能报销喽~~~图片点击可在新窗口打开查看

--  作者:沦落深蓝
--  发布时间:2016/8/29 20:09:00
--  

[此贴子已经被作者于2016/8/29 20:09:51编辑过]

--  作者:沦落深蓝
--  发布时间:2016/8/29 20:09:00
--  [求助]
还有一个问题:Dim cls() As String = {"","姓名","JX","职务","考核情况_完成时间","考核情况_扣分情况","考核情况_最终得分","等级评定","考核时间"} \'定义列名
    Dim wds() As Integer = {0,80,80,80,100,100,100,80,100} \'定义列宽
我用在其他地方说:列“”不属于表,为什么这里可以用,换个地方就不行呢???

--  作者:Hyphen
--  发布时间:2016/8/30 8:58:00
--  
完整代码贴出来。

代码并不是随便拷拷就能用的,要根据上下文,更改表名列名等......