以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】数据字典  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96416)

--  作者:10059
--  发布时间:2017/2/20 14:49:00
--  【求助】数据字典
老师,请问在listview中怎么用数据字典的“值”进行分组显示数据??
--  作者:有点色
--  发布时间:2017/2/20 15:29:00
--  

你的数据字典,是使用某表的数据,还是直接编写各个值?

 

无论哪一种,都是不能直接获取数据处理的。你需要额外的定义一个字典变量 dic 来处理分组。

 

具体问题上传实例。


--  作者:10059
--  发布时间:2017/2/20 16:30:00
--  

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


老师,我是想用 "生产部" 替换"001","统计部" 替换 “003"........

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table





--  作者:有点色
--  发布时间:2017/2/20 18:06:00
--  
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() \'停止绘制
lvw.Groups.Clear() \'清除原来的分组
lvw.Columns.Clear() \'清除原来的列
lvw.Rows.Clear() \'清除原来的行
\' lvw.Images.Clear() \'清除原来的图片
lvw.View = ViewMode.Details \'显示模式为详细信息
lvw.Images.AddSmallImage("Man", "Man.ico") \'添加代表男性的图标
lvw.Images.AddSmallImage("Woman", "Woman.ico") \'添加代表女性的图标
Dim cls() As String = {"姓名","性别","地址"} \'指定要显示的各列
Dim wds() As Integer = {100,130,80} \'定义列宽
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) \'指定列宽
Next
Dim dic As new Dictionary(Of String, String)
For Each zh As String In DataTables("信息").GetValues("部门", "部门 is not null") \'增加分组
    Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
    Dim fdr As DataRow = DataTables("编码").find("编号 = \'" & zh & "\'")
    dic.add(zh, fdr("部门"))
    grp.Name = fdr("部门")
    grp.Text = fdr("部门")
Next
For Each dr As DataRow In DataTables("信息").Select("部门 is not null") \'从数据表中提取数据
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    vr.Group = dic(dr("部门")) \'指定所属分组
    For Each cl As String In cls \'逐列取值
        vr(cl) = dr(cl)
    Next
    If dr("性别") = "男" Then \'设置分组
        vr.ImageKey = "Man"
    Else
        vr.ImageKey = "Woman"
    End If
    vr.Tag= dr \'将DataRow赋值给ListViewRow的Tag属性,将二者联系起来
Next
lvw.ResumeRedraw() \'恢复绘制

--  作者:10059
--  发布时间:2017/2/21 9:51:00
--  
谢谢老师

老师,我还想问一下,编辑窗口的文本框可以绑定到字典的“值”??即将下图部门的“006” 变成“技术部”


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


--  作者:有点蓝
--  发布时间:2017/2/21 10:47:00
--  
DropBox2的DataFormat事件

If e.Value > "" Then
    Dim dr As DataRow = DataTables("编码").Find("编号=\'" & e.Value & "\'")
    If dr IsNot Nothing Then e.Text = dr("部门")
End If

--  作者:10059
--  发布时间:2017/2/21 11:46:00
--  
谢谢老师