Foxtable(狐表)用户栏目专家坐堂 → 添加行判断


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

主题:添加行判断

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


加好友 发短信
等级:九尾狐 帖子:2705 积分:18035 威望:0 精华:0 注册:2013/4/9 10:41:00
添加行判断  发帖心情 Post By:2017/11/26 13:29:00 [只看该作者]

可以这样添加行吗?在表B添加行,根据以下几个条件判断
1、表A的档案编号和表B的项目编号相同,表B的事件时间编号列(时间生成的整数)最后的行和状态列为已完成,在表B添加行,并复制表A的档案编号到表B的项目编号,如果状态列为学习中,则不添加行,选中学习中的行,
2、如果表A的档案编号没有找到与项目编号列相同的添加行
感谢 感谢 
比如点击按,先判断表B的项目编号有没与表A的档案编号相同的,如果没有就添加行,如果有再判断相同的行里面 时间编号列的最后一行的表B的状态列是已完成还是学习中,如果是已完成也添加行并复制表A的档案编号到表B的项目编号,如果是学习中就不添加行,只是选中状态列为学习中的行,感谢 感谢!!!!
[此贴子已经被作者于2017/11/26 13:32:14编辑过]

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


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


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


加好友 发短信
等级:九尾狐 帖子:2705 积分:18035 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/11/27 11:30:00 [只看该作者]

能在帮忙看看吗?看了很久也没看懂具体的意思,感谢,感谢 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:行判断添加.table


If e.DataCol.Name = "项目编号" Then
    Dim dr As DataRow
    dr = DataTables("表A").Find("档案编号= '"  & e.DataRow("项目编号") & "'" )
    Tables("表B").AddNew() '新建行
    Tables("表B").position = Tables("表B").Rows.Count-1  '跳到最后一行
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("项目编号")= dr("档案编号")
        Dim ndb As DataRow = DataTables("表B").AddNew
        ndb("时间编号") = Format(Date.Now, "yyyyMMddHHmmss") '变动日期编号
    End If
End If  '当表B的项目编号列未找到与表A的档案编号有相同时,新建行,选中新建行,将表A档案编号复制到项目编号,时间编号得到时间编号,

If e.DataCol.Name = "项目编号" Then
    Dim dr As DataRow
    dr = DataTables("表A").Find("档案编号= '"  & e.DataRow("项目编号") & "' and 状态=学习中" )
        Dim r As Row = e.Table.Current
        If r IsNot Nothing Then
            Tables("表B").Position = Tables("表A").FindRow("档案编号")
        End If  '窗口表与表格同步
    End If
End If  '当表B的项目编号列找到与表A的档案编号有相同时,同时表B的状态列有学习中,则选中改行,

If e.DataCol.Name = "项目编号" Then
    Dim dr As DataRow
    dr = DataTables("表A").Find("档案编号= '"  & e.DataRow("项目编号") & "' and 状态=已学习" )
    Tables("表B").AddNew() '新建行
    Tables("表B").position = Tables("表B").Rows.Count-1  '跳到最后一行
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("项目编号")= dr("档案编号")
        Dim nda As DataRow = DataTables("表B").AddNew
        nda("时间编号") = Format(Date.Now, "yyyyMMddHHmmss") '变动日期编号
    End If
End If '当表B的项目编号列找到与表A的档案编号有相同时,同时表B的状态列有都是已学习,新建行,选中新建行,将表A档案编号复制到项目编号,时间编号得到时间编号,



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


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

参考代码

 

For Each dr As DataRow In DataTables("表A").Select("")
    Dim fdr = DataTables("表B").Find("项目编号 = '" & dr("档案编号") & "'", "时间编号 desc")
    If fdr Is Nothing Then
        fdr = DataTables("表B").AddNew
        fdr("项目编号") = dr("档案编号")
    Else
        If fdr("状态") = "已完成" Then
            fdr = DataTables("表B").AddNew
            fdr("项目编号") = dr("档案编号")
        Else
            Dim i = Tables("表B").FindRow(fdr)
            Tables("表B").Position = i
        End If
    End If
Next


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


加好友 发短信
等级:九尾狐 帖子:2705 积分:18035 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/11/30 21:01:00 [只看该作者]

感谢 感谢 ,一下复制了很多行,能再帮忙看看吗?感谢 感谢 

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


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

代码写到按钮里面去,如果有问题,请截图说明哪里有问题。

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


加好友 发短信
等级:九尾狐 帖子:2705 积分:18035 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/12/1 0:45:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:行判断添加.table

感谢了,谢谢 ,
其实就是判断表B要不要添加行,如果表B的项目编号没有与表A的档案编号相同的就添加行,复制表A的编号,如果有相同的就查看状态列是否有学习中,如果有就选中最前面的哪行,如果没有学习中,就同样新建行,把表A的编号复制到表B的项目编号里面,麻烦了,感谢 感谢 

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

[此贴子已经被作者于2017/12/1 0:45:40编辑过]

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


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

Dim dr As Row = Tables("表A").current
Dim fdr = DataTables("表B").Find("项目编号 = '" & dr("档案编号") & "'", "时间编号 desc")
If fdr Is Nothing Then
    fdr = DataTables("表B").AddNew
    fdr("项目编号") = dr("档案编号")
Else
    If fdr("状态") = "已完成" Then
        fdr = DataTables("表B").AddNew
        fdr("项目编号") = dr("档案编号")
    Else
        Dim i = Tables("表B").FindRow(fdr)
        Tables("表B").Position = i
    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2705 积分:18035 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/12/1 13:50:00 [只看该作者]

感谢 感谢 只是现在就是新建行后没有选中新建的行和当表B相同编号的列相同后,状态列如果有学习中,还是会新建行,可以选中这个学习中吗?感谢 感谢 

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


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

如果没找到,就新增;如果最后一行是已完成,也会新增。

 

Dim dr As Row = Tables("表A").current
Dim fdr = DataTables("表B").Find("项目编号 = '" & dr("档案编号") & "'", "时间编号 desc")
If fdr Is Nothing Then
    fdr = Tables("表B").AddNew
    fdr("项目编号") = dr("档案编号")
Else
    If fdr("状态") = "已完成" Then
        fdr = Tables("表B").AddNew
        fdr("项目编号") = dr("档案编号")
    Else
        Dim i = Tables("表B").FindRow(fdr)
        Tables("表B").Position = i
    End If
End If


 回到顶部
总数 19 1 2 下一页