Foxtable(狐表)用户栏目专家坐堂 → 列表页头像问题


  共有2268人关注过本帖树形打印复制链接

主题:列表页头像问题

帅哥哟,离线,有人找我吗?
ezilu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1870 威望:0 精华:0 注册:2018/7/1 10:45:00
列表页头像问题  发帖心情 Post By:2019/6/20 18:46:00 [只看该作者]

官方的 ListView.Table   示例二十二  “精确控制行的拖动行为

Dim lvw1 As WinForm.ListView = e.Form.Controls("ListView1") '员工列表
Dim
lvw2 As WinForm.ListView = e.Form.Controls("ListView2") '活动一参与者列表
Dim
lvw3 As WinForm.ListView = e.Form.Controls("ListView3") '活动二参与者列表
Dim
lvws() As Winform.ListView = {lvw1,lvw2,lvw3} '看看我们是怎样批量设置某组控件属性的
For
Each lvw As WinForm.ListView In lvws
    lvw.View = ViewMode.
List
    lvw.AllowDrag =
True
    lvw.AllowDrop =
True
    lvw.Images.AddSmallImage("Man", "Man.ico")
'
添加代表男性的一对图标
    lvw.Images.AddSmallImage("Woman", "Woman.ico")
'
添加代表女性的一对图标

Next
For
Each dr As DataRow In DataTables("员工").Select("","性别") '列出所有员工
    Dim vr As WinForm.ListViewRow = lvw1.Rows.Add()
    vr.Text = dr(
"
姓名")
   
vr.Name = dr("姓名") '将ListViewRow的Name属性设置为员工姓名
    If dr("性别") = "男"
Then
        vr.ImageKey =
"Man"
   
Else
        vr.ImageKey =
"Woman"
    End
If

Next
Dim
nms() As String = DataTables("活动").DataRows(0)("参与者").Split(",") '列出活动一参与者
For Each
nm As String In nms
    If
nm > "" Then
        Dim
vr As WinForm.ListViewRow = lvw2.Rows.Add()
       
vr.Text = nm
       
vr.Name = nm
       
vr.ImageKey = lvw1.Rows(nm).ImageKey  '从员工列表(ListView1)获取此员工的图标键值
    End If
Next

nms
= DataTables("活动").DataRows(1)("参与者").Split(",") '列出活动二参与者
For Each
nm As String In nms
    If
nm > "" Then
        Dim
vr As WinForm.ListViewRow = lvw3.Rows.Add()
       
vr.Text = nm
       
vr.Name = nm
       
vr.ImageKey = lvw1.Rows(nm).ImageKey '从员工列表(ListView1)获取此员工的图标键值
    End If
Next



红色区域的设置 是 针对 男女性别的  生成列表行图片键值  这个好理解

但是我现在想  员工列表不是有 一列  图片列  吗 代表每个员工的图像

现在问题来了  如何实现这种  图片列 设置为 ImageKey

代码反复修改,总是错误 ,  拖动员工 名字显示  但是头像不显示

哦 对了  官方的 vr.Name = nm 设置为姓名  我觉得不妥 一个大的员工体系里面  应该有重复姓名的

我初设了 员工 工号  这个列  可以是唯一的 

如何实现上面这段代码  各位大大   谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/20 22:01:00 [只看该作者]

比如

 

For Each dr As DataRow In DataTables("员工").Select("","性别") '列出所有员工
    Dim vr As WinForm.ListViewRow = lvw1.Rows.Add()
    vr.Text = dr("姓名")
    vr.Name = dr("姓名") '将ListViewRow的Name属性设置为员工姓名   
    lvw.Images.AddSmallImage(vr.Name, ProjectPath & "attachments/" & dr("图片")) '添加代表男性的一对图标       
    vr.ImageKey = vr.name
    vr.ImageKey = "Woman"   
Next

 

参考 http://www.foxtable.com/webhelp/topics/2775.htm

 

http://www.foxtable.com/webhelp/topics/2776.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
ezilu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1870 威望:0 精华:0 注册:2018/7/1 10:45:00
  发帖心情 Post By:2019/6/21 13:15:00 [只看该作者]

你帮我看看   甜大大  麻烦  谢谢了 
[此贴子已经被作者于2019/6/21 15:53:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/21 15:18:00 [只看该作者]

Dim bm As String = e.Form.Controls("ComboBox1").Value
Dim rw As String = e.Form.Controls("ComboBox2").Value

Dim lvw1 As WinForm.ListView = e.Form.Controls("ListView1") '部门组员列表
Dim lvw2 As WinForm.ListView = e.Form.Controls("ListView2") '星期日参与者列表
Dim lvw3 As WinForm.ListView = e.Form.Controls("ListView3") '星期一参与者列表
Dim lvw4 As WinForm.ListView = e.Form.Controls("ListView4") '星期二参与者列表

Dim lvws() As Winform.ListView = {lvw1,lvw2,lvw3,lvw4} '看看我们是怎样批量设置某组控件属性的
For Each lvw As WinForm.ListView In lvws
    lvw.Rows.Clear() '清除原来的行
    lvw.Images.Clear() '清除原来的图片
    lvw.View = ViewMode.LargeIcon
    lvw.AllowDrag = True
    lvw.AllowDrop = True
    For Each r As DataRow In DataTables("员工表").Select("员工工号 is not null")
        lvw.Images.AddLargeImage(r("员工工号"), ProjectPath & "Images/" & r("员工头像")) '添加代表这个员工的一对图标
    Next
Next

Dim dr As DataRow = DataTables("工作任务表").Find("部门 = '" & bm & "' And 任务名称 = '" & rw & "'")
If dr IsNot Nothing Then
   
    Dim wz As Integer = Tables("工作任务表").FindRow(dr)
    If wz >= 0 Then
        Tables("工作任务表").Position = wz
    End If
   
    Dim dr1 As DataRow = DataTables("部门").Find("部门 = '" & bm & "'")
    Dim zys() As String = dr1("部门人员").split(",")
   
    For Each zy As String In zys '列出所有组员
        If zy > "" Then
            Dim dr2 As DataRow = DataTables("员工表").Find("员工工号 = '" & zy & "'")
            Dim vr As WinForm.ListViewRow = lvw1.Rows.Add()
            vr.Text = dr2("员工姓名")
            vr.Name = zy '将ListViewRow的Name属性设置为员工工号
            vr.ImageKey = vr.Name '指定图标键值
        End If
    Next
   
    Dim nms() As String = Tables("工作任务表").Current("一组人员").Split(",") '列出任务一组成员
    For Each nm As String In nms
        If nm > "" Then
            Dim dr3 As DataRow = DataTables("员工表").Find("员工工号 = '" & nm & "'")
            Dim vr As WinForm.ListViewRow = lvw2.Rows.Add()
            vr.Text = dr3("员工姓名")
            vr.Name = nm
            vr.ImageKey = vr.Name '指定图标键值
        End If
    Next
   
    nms = Tables("工作任务表").Current("二组人员").Split(",") '列出任务二组成员
    For Each nm As String In nms
        If nm > "" Then
            Dim dr4 As DataRow = DataTables("员工表").Find("员工工号 = '" & nm & "'")
            Dim vr As WinForm.ListViewRow = lvw3.Rows.Add()
            vr.Text = dr4("员工姓名")
            vr.Name = nm
            vr.ImageKey = vr.Name '指定图标键值
        End If
    Next
   
    nms = Tables("工作任务表").Current("三组人员").Split(",") '列出任务二组成员
    For Each nm As String In nms
        If nm > "" Then
            Dim dr5 As DataRow = DataTables("员工表").Find("员工工号 = '" & nm & "'")
            Dim vr As WinForm.ListViewRow = lvw4.Rows.Add()
            vr.Text = dr5("员工姓名")
            vr.Name = nm
            vr.ImageKey = vr.Name '指定图标键值
        End If
    Next
   
Else
    Forms("新增部组").Open()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
ezilu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1870 威望:0 精华:0 注册:2018/7/1 10:45:00
  发帖心情 Post By:2019/6/21 15:53:00 [只看该作者]

谢谢甜大大

 回到顶部