Foxtable(狐表)用户栏目专家坐堂 → 这个需求该如何来实现


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

主题:这个需求该如何来实现

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 15:27:00 [显示全部帖子]

方法一:给缓存列赋值,但是不是写在drawcell事件,而是写在AfterLoadTableSetting。

 

方法二:加一列,或者直接在缓存列记录各个用户的信息,然后直接和user.name比较。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 15:59:00 [显示全部帖子]

 回复3楼。

 

1、你加载的数据有10万行吗?你加载多少条就判断多少条;

 

2、你不需要每次打开的时候判断。之前判断过的,可以不判断了吧?值是存放起来的。如果想刷新,单独做个按钮刷新。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 16:37:00 [显示全部帖子]

1、算法优化。如果用户存放的文件较少,那可以循环用户的文件,查找表数据。如果用户存放的文件较多,那就循环表数据,查找文件。

 

2、为什么不能保存用户的信息?一个单元格,可以保存多个值,如 张三、李四、王五,然后判断。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 17:13:00 [显示全部帖子]

以下是引用天若千颖在2017/8/1 17:00:00的发言:


下面查找表数据如何查找呢?又要循环表数据吗?岂不是又全部循环一遍?

 

你可以直接find

 

Dim path As String = ProjectPath & "RemoteFiles\"
For Each File As String In FileSys.GetFiles(path)
    Dim name As String = filesys.GetName(file)

    Dim fdr As Datarow = DataTables("表A").Find("资料名称 = '" & name & "'")
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 17:57:00 [显示全部帖子]

Dim path As String = ProjectPath & "RemoteFiles\"
For Each File As String In FileSys.GetFiles(path)
    Dim name As String = filesys.GetName(file)
    Dim fdr As DataRow = DataTables("表A").Find("资料名称 = '" & name & "'")
    If fdr IsNot Nothing Then
        fdr("缓存")="3"
    End If
Next
DataTables("表A").ReplaceFor("缓存", 0, "缓存 = 1")
DataTables("表A").ReplaceFor("缓存", 1, "缓存 = 3")

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 18:37:00 [显示全部帖子]

以下是引用天若千颖在2017/8/1 18:12:00的发言:
这代码有意思,为什么要把没有找到赋值为3,然后又用1替换3呢?和直接赋值等于1,其他赋值为0的思路有什么不同?
[此贴子已经被作者于2017/8/1 18:15:15编辑过]

 

如果你表数据本来有值,如 1、1、1、0、0、0

 

你循环文件,修改后,可能改成  1、3、3、3、0、3

 

那么,就要处理掉本来的数据,修改成 0、1、1、1、0、1


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/2 9:07:00 [显示全部帖子]

请直接用我给你的代码

 

Dim path As String = ProjectPath & "RemoteFiles\"
For Each File As String In FileSys.GetFiles(path)
    Dim name As String = filesys.GetName(file)
    Dim fdr As DataRow = DataTables("表A").Find("资料名称 = '" & name & "'")
    If fdr IsNot Nothing Then
        fdr("缓存")="3"
    End If
Next
DataTables("表A").ReplaceFor("缓存", 0, "缓存=1 or 缓存 is null")  '你的代码是  缓存=1,实际上即使不存在缓存,数据表中也没有等于1的值,所以我改为判断是否是空值
DataTables("表A").ReplaceFor("缓存", 1, "缓存 = 3")

[此贴子已经被作者于2017/8/2 9:07:06编辑过]

 回到顶部