以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  重复字段能否生成list view  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=67007)

--  作者:blsu33
--  发布时间:2015/4/17 13:22:00
--  重复字段能否生成list view
老师,
  我这有一个表结构 
编码   一级   二级  三级
   1    地区   分类  大客户
   2    地区   分类  一般客户
   3    地区    分类  其他 
根据一级和二级 生成 LIST VIEW
 但是 会生成如下图片


地区(一级)
  分类      分类       分类  


能否根据一级 和二级 生成 以下结果

地区(一级)
  分类    


--  作者:Bin
--  发布时间:2015/4/17 13:35:00
--  
这个意思?http://www.foxtable.com/help/topics/2776.htm
--  作者:blsu33
--  发布时间:2015/4/17 14:18:00
--  
老师,
   这个例子 我打开了,我想要的是 这个表的数据中的一部分生成LISTVIEW 不是平铺,要的是表中的一部 生成,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:生成范围.png
图片点击可在新窗口打开查看


希望生成
先生 博士 
女士


而不是
男 
先生  先生  先生  博士....
女士 女士 女士

--  作者:blsu33
--  发布时间:2015/4/17 14:18:00
--  
因为,先生里面 有重复的值  怎么让他 变成不重复的显示呢
--  作者:Bin
--  发布时间:2015/4/17 14:22:00
--  
利用GETValues http://www.foxtable.com/help/topics/2747.htm
--  作者:blsu33
--  发布时间:2015/4/17 14:34:00
--  
老师,
烦您帮忙看看 哪里不对呢

Dim dt As DataTable = DataTables("测试2")
Dim drs As List(of DataRow)  = DataTables("测试2").Select("功能主模块 = \'总账管理\'")
If drs IsNot Nothing Then
    Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") \'生成桌面功能图标
    lvw.View=ViewMode.LargeIcon
    Dim grps() As String = dt.GetValues("一级模块")
    Dim gn() As String = dt.GetValues("二级模块")
    For Each gp As String In grps \'add group
        lvw.Groups.Add(gp)
    Next
    Dim count As Integer
    lvw.Images.LargeSize= new size(32,32)
    For Each dr As DataRow In drs  \'从数据表中提取数据
        Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
        \'lvw.Images.Clear() \'清除原来的图片
        \'vr.Index
        lvw.Images.AddImage(dr("功能ID"),dr("模块图标"),dr("模块图标"))
        \'MessageBox.Show(dr("模块图标"))
        \'MessageBox.Show(dr("功能ID"))
        
        vr.Text = dr("二级模块")
        vr.Group = dr("一级模块")
        vr.ImageKey = dr("功能ID")
        \'MessageBox.Show(dr("功能ID"))
        \'MessageBox.Show(vr.ImageKey)
        vr.Tag = dr
        count = count +1
        \'If count =2
        \'Return
        \'End If
    Next
End If



.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,可视化授权,AfterLoad
详细错误信息:
无法将类型为“System.Collections.Generic.List`1[System.String]”的对象强制转换为类型“System.String[]”。


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



--  作者:Bin
--  发布时间:2015/4/17 14:36:00
--  
因为你没有按照帮助做,仔细看一下5楼帮助.GETValues返回的是LIST集合
--  作者:blsu33
--  发布时间:2015/4/17 14:46:00
--  
老师,
改好了
生成的LIST VIEW  还是重复 的为什么呢 
Dim dt As DataTable = DataTables("测试2")
Dim drs As List(of DataRow)  = DataTables("测试2").Select("功能主模块 = \'总账管理\'")
If drs IsNot Nothing Then
    Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") \'生成桌面功能图标
    lvw.View=ViewMode.LargeIcon
    Dim grps As List(Of String) =dt.GetValues("一级模块")
    Dim gn  As List(Of String)  =dt.GetValues("二级模块")
    For Each gp As String In grps \'add group
        lvw.Groups.Add(gp)
    Next
    Dim count As Integer
    lvw.Images.LargeSize= new size(32,32)
    For Each dr As DataRow In drs  \'从数据表中提取数据
        Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
        \'lvw.Images.Clear() \'清除原来的图片
        \'vr.Index
        lvw.Images.AddImage(dr("功能ID"),dr("模块图标"),dr("模块图标"))
        \'MessageBox.Show(dr("模块图标"))
        \'MessageBox.Show(dr("功能ID"))
        
        vr.Text = dr("二级模块")
        vr.Group = dr("一级模块")
        vr.ImageKey = dr("功能ID")
        \'MessageBox.Show(dr("功能ID"))
        \'MessageBox.Show(vr.ImageKey)
        vr.Tag = dr
        count = count +1
        \'If count =2
        \'Return
        \'End If
    Next
End If

--  作者:Bin
--  发布时间:2015/4/17 14:48:00
--  
你取的还是遍历行啊. 把例子发上来.我给你改
--  作者:blsu33
--  发布时间:2015/4/17 15:00:00
--  
麻烦您了,图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:界面.rar

要根据一级二级生成