Foxtable(狐表)用户栏目专家坐堂 → 关于自动复制行相关问题


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

主题:关于自动复制行相关问题

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
关于自动复制行相关问题  发帖心情 Post By:2018/11/27 11:02:00 [只看该作者]

您好!   自动复制行代码已经配置成功,但是发现以下问题,如果不小心点错了逻辑列,就会把不需要的行也复制到表B里面了,如何加个提示呢;
          还有就是如果逻辑列的√去掉就自动删除表B里面的行呢,怎么实现。
          我在论坛搜索了相关帖子有以下代码,
          
If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim dr As DataRow = DataTables("表B").Find("编号 = '" & e.DataRow("编号") & "'")
    If dr Is Nothing Then
        dr = DataTables("表B").AddNew
    End If

    For Each dc As DataCol In DataTables("表B").DataCols
        dr(dc.Name) = e.DataRow(dc.Name)
    Next
End If


第二句里面的编号是什么意思,代表什么。

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


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

If e.DataCol.Name = "逻辑列名"
    If e.DataRow("逻辑列名") = True Then
        Dim dr As DataRow = DataTables("表B").Find("编号 = '" & e.DataRow("编号") & "'")
        If dr Is Nothing Then
            dr = DataTables("表B").AddNew
        End If
       
       
        For Each dc As DataCol In DataTables("表B").DataCols
            dr(dc.Name) = e.DataRow(dc.Name)
        Next
    Else
        DataTables("表B").deletefor("编号 = '" & e.DataRow("编号") & "'")
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2018/11/27 14:23:00 [只看该作者]

版主您好!   按照您给的代码写入后发生错误如下
 
.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.9.9.1
错误所在事件:表,在职员工表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Integer”的转换无效。
输入字符串的格式不正确。

.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.9.9.1
错误所在事件:表,应聘人员表,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“编号”不属于表 应聘人员表。

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




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


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

If e.DataCol.Name = "逻辑列名"
    If e.DataRow("逻辑列名") = True Then
        Dim dr As DataRow = DataTables("表B").Find("编号 = '" & val(e.DataRow("编号")) & "'")
        If dr Is Nothing Then
            dr = DataTables("表B").AddNew
        End If
       
        For Each dc As DataCol In DataTables("表B").DataCols
            If e.DataRow.Isnull(dc.name) Then
                dr(dc.Name) = Nothing
            Else
                dr(dc.Name) = e.DataRow(dc.Name)
            End If
        Next
    Else
        DataTables("表B").deletefor("编号 = '" & val(e.DataRow("编号")) & "'")
    End If
End If


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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2018/11/27 15:15:00 [只看该作者]

版主您好!    按照4楼的代码写入错误依旧, 取消√表B的新增行没有自动删除。  代码中的编号指的是什么呢?
.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.9.9.1
错误所在事件:表,在职员工表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Integer”的转换无效。
输入字符串的格式不正确。

.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.9.9.1
错误所在事件:表,应聘人员表,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“编号”不属于表 应聘人员表。


  



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


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

If e.DataCol.Name = "逻辑列名"
    If e.DataRow("逻辑列名") = True Then
        Dim dr As DataRow = DataTables("表B").Find("编号 = '" & val(e.DataRow("编号")) & "'")
        If dr Is Nothing Then
            dr = DataTables("表B").AddNew
        End If
       
        For Each dc As DataCol In DataTables("表B").DataCols
            If e.DataTable.DataCols.contains(dc.name) Then
                If e.DataRow.Isnull(dc.name) Then
                    dr(dc.Name) = Nothing
                Else
                    dr(dc.Name) = e.DataRow(dc.Name)
                End If
            End If
        Next
    Else
        DataTables("表B").deletefor("编号 = '" & val(e.DataRow("编号")) & "'")
    End If
End If

 


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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2018/11/27 15:55:00 [只看该作者]

版主您好!  还是和原来问题一样,我把项目放上来了,您看看。  能解释一下代码中编号的意思吗?没看明白。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:rx人事管理181127.rar


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


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

If e.DataCol.Name = "身份证号" Then '如果更改的是身份证号码列
    If e.DataRow.IsNull("身份证号") Then '身份证号码是否为空
        e.DataRow("出生日期") = Nothing '如果为空,则清除出生日期
    Else
        '否则从身份证号码列中提取出生日期
        e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号"))
    End If
End If

If e.DataCol.Name = "入职确认"
    If e.DataRow("入职确认") = True Then
        Dim dr As DataRow = DataTables("在职员工表").Find("身份证号 = '" & e.DataRow("身份证号") & "'")
        If dr Is Nothing Then
            dr = DataTables("在职员工表").AddNew
        End If
       
        For Each dc As DataCol In DataTables("在职员工表").DataCols
            If e.DataTable.DataCols.contains(dc.name) Then
                If e.DataRow(dc.name) = Nothing Then
                    dr(dc.Name) = Nothing
                Else
                    dr(dc.Name) = e.DataRow(dc.Name)
                End If
            End If
        Next
    Else
        DataTables("在职员工表").deletefor("身份证号 = '" & e.DataRow("身份证号") & "'")
    End If
End If

[此贴子已经被作者于2018/11/27 16:50:11编辑过]

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2018/11/27 20:46:00 [只看该作者]

版主您好!   去掉逻辑列的勾后表B的新增行自动删除了,但是勾选逻辑列的时候还有一下报错。

.NET Framework 版本:2.0.50727.8766
Foxtable 版本:2018.9.9.1
错误所在事件:表,在职员工表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Integer”的转换无效。
输入字符串的格式不正确。

Dim dr As DataRow = DataTables("在职员工表").Find("身份证号 = '" & e.DataRow("身份证号") & "'")
这个代码是什么意思呢,为什么要把编号改为身份证号呢?


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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
  发帖心情 Post By:2018/11/27 20:50:00 [只看该作者]

版主你好!  如果想在勾选逻辑列自动复制前面加个确认提示应该怎么做呢?比如勾选时弹出提示 是否把该人员复制到表B,点确认就复制,点否就放弃。

 回到顶部
总数 33 1 2 3 4 下一页