以文本方式查看主题

-  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=75190)

--  作者:ehomecd
--  发布时间:2015/9/29 21:11:00
--  [求助]listview平铺模式是否可以显示动态统计的数据?
需要实现控件listview的“示例九”的平铺显示功能,但有些数据是根据每天的记录计算而成的,类似于经验值,金币数额等。
第一个问题:用listview是否可以实现统计数据的显示?
第二个问题:如果不行,那用现有的窗口控件如何实现图片、基本信息、动态统计信息的综合显示?


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


--  作者:大红袍
--  发布时间:2015/9/29 21:13:00
--  

呃,肯定可以统计表里的数据。

 

里面赋值的时候,是你动态给其赋值的,你想改成什么都可以啊。


--  作者:ehomecd
--  发布时间:2015/9/29 21:40:00
--  

印章 和运气字段不在 table(“学生信息”),而是根据table(“游戏数据”)中的字段计算出来的,请教代码如何修改?


图片点击可在新窗口打开查看此主题相关图片如下:2015年9月29日.jpg
图片点击可在新窗口打开查看


Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear() \'清除原来的图片
lvw.View = ViewMode.Tile \'显示模式为平铺
lvw.Images.LargeSize = New Size(65,75) \'定义大图标尺寸
lvw.TitleSize = New Size(150,90)  \'设置平铺区域的大小 
Dim cls() As String = {"姓名","团队名称","金币","印章","运气"} \'定义列名 
For i As Integer = 0 To  cls.Length - 1  \'增加列 
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add() 
    c.Name = cls(i) \'指定列名 
Next
For Each dr As DataRow In DataTables("学生信息").DataRows \'从数据表中提取数据 
    Dim Key As String = dr("照片") \'获取此员工的照片文件
    lvw.Images.AddLargeImage(Key, Key) \'添加照片,直接用文件名作为图片键值
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    vr.ToolTipText = dr("服务类型")  \'设置此行的动态提示
    vr.ImageKey = Key \'设置图片键值
    For Each cl As String In cls \'逐列取值
        vr(cl) = dr(cl)
    Next
Next
lvw.ResumeRedraw() \'恢复绘制



--  作者:大红袍
--  发布时间:2015/9/29 21:43:00
--  

这段是赋值的代码,你想怎么赋值都可以啊

 

    For Each cl As String In cls \'逐列取值

        vr(cl) = dr(cl)
    Next

 

改成

 

vr("团队名称") = 1234

vr("姓名") = 6789


--  作者:ehomecd
--  发布时间:2015/9/29 21:55:00
--  
截图无法上传,不知道为什么,我暂时不加载统计的字段,先尝试加载现有字段,有三个问题
1.图片无法显示,我已经将图片复制到Attachments文件夹下,但文件名是中文的,这个不知道是否有影响;
2.另外我的图片列使用了远程文件,不知道是否有影响
3.平铺显示每行文字间距非常窄,不美观,该如何调整?

--  作者:ehomecd
--  发布时间:2015/9/29 21:56:00
--  
图片无法显示,且文字间距非常窄

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

--  作者:ehomecd
--  发布时间:2015/9/29 21:56:00
--  
图片列是远程文件

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

--  作者:ehomecd
--  发布时间:2015/9/29 21:57:00
--  
图片文件名字是中文的

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


--  作者:大红袍
--  发布时间:2015/9/29 21:58:00
--  

1、复制到Images文件夹;

 

2、图片只要在images里面,就能显示;

 

3、你可以多加几列,一列空白,一列显示文字


--  作者:ehomecd
--  发布时间:2015/9/29 22:13:00
--  
复制到Images文件夹仍然不不显示,我看了示例九,照片字段直接是图片名字,而我的照片字段是://卢佳晗.jpg
这两个斜杠是否有影响。

跟下边这个问题一样,就像印章字段不在学生信息表,就报错了。如何既关联到数据表数据,又能动态在listview添加统计数据列?
同样道理,我怎么样加入空白行?


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


部分代码:
Dim cls() As String = {"姓名","团队名称","金币","印章"} \'定义列名 
For i As Integer = 0 To  cls.Length - 1  \'增加列 
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add() 
    c.Name = cls(i) \'指定列名 
Next
For Each dr As DataRow In DataTables("学生信息").DataRows \'从数据表中提取数据 
    Dim Key As String = dr("照片") \'获取此员工的照片文件
    lvw.Images.AddLargeImage(Key, Key) \'添加照片,直接用文件名作为图片键值
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    vr.ToolTipText = dr("服务类型")  \'设置此行的动态提示
    vr.ImageKey = Key \'设置图片键值
    For Each cl As String In cls \'逐列取值
        vr(cl) = dr(cl)
    Next

vr("印章") = Tables("龙源宝藏").Compute("sum(午休)","姓名 = \'" & dr("姓名") & "\'")

Next
lvw.ResumeRedraw() \'恢复绘制