Foxtable(狐表)用户栏目专家坐堂 → 单元格提取


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

主题:单元格提取

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


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
单元格提取  发帖心情 Post By:2020/4/29 15:51:00 [只看该作者]

有一“姓名”列,是采用多值字段录入单元格内容的,怎么样在“姓名”列李选择几个人,则在另外一列“人数”中自动统计多少人呀?请求帮助,谢谢,例如单元格里选择了“张三,李四”,在人数列李自动生成2.

 

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


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


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2020/4/29 15:53:00 [只看该作者]

.split(",").lenght

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/29 16:09:00 [只看该作者]

DataColChanged事件

If e.DataCol.Name = "姓名" Then 
    If e.DataRow.IsNull("姓名") Then 
        e.DataRow("人数") = Nothing 
    Else
        e.DataRow("人数") = e.DataRow("姓名").split(",").length
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2020/4/29 16:14:00 [只看该作者]

完整代码怎么写


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/29 16:26:00 [只看该作者]

看3楼

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


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2020/4/29 16:53:00 [只看该作者]

谢谢,可以了,非常实用,另外请教:

现在到表A里面完成了,现在需要提交到表C里面去,该怎么做?

例如:做了一个按钮,当该行的“审核=TRUE”与“是否提交=TRUE”时,把当前表A里面的姓名分解成几行,复制到表C里面去,其它部分内容不变,只是把多值字段的姓名分解成单一的行,以方便个人工资计算,谢谢。

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

[此贴子已经被作者于2020/4/29 16:53:04编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/29 17:13:00 [只看该作者]

For Each dr As DataRow In DataTables("表A").Select("是否提交=true and 审核=true")
    For Each s As String In dr("姓名").split(",")
        Dim r As Row = Tables("表C").AddNew
        For Each c As Col In Tables("表C").Cols
            r(c.Name)=dr(c.Name)
        Next
        r("姓名")= s
    Next
Next

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


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2020/4/29 19:11:00 [只看该作者]

谢谢蓝师,这段代码是整个表复制的,但是这样很容易重复,为了防止重复,能否当前表当前行符合("是否提交=true and 审核=true")的情况下复制当前行:请蓝老师帮忙修改代码:For Each dr As DataRow In DataTables("表A").Select("是否提交=true and 审核=true")
    For Each s As String In dr("姓名").split(",")
        Dim r As Row = Tables("表C").AddNew
        For Each c As Col In Tables("表C").Cols
            r("人数")=dr("人数")
            r("工序")=dr("工序")
            r("完成日期")=dr("完成日期")
            r("总工资")=dr("总工资")
            r("平均工资")=dr("平均工资")
        Next
        r("姓名")= s
    Next
Next

非常感谢


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/30 8:45:00 [只看该作者]

这个代码本来就是复制符合("是否提交=true and 审核=true")的行的

 回到顶部