Foxtable(狐表)用户栏目专家坐堂 → [求助]同样代码在老项目中正常,在新项目中效果反了


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

主题:[求助]同样代码在老项目中正常,在新项目中效果反了

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


加好友 发短信
等级:幼狐 帖子:134 积分:996 威望:0 精华:0 注册:2018/9/13 16:41:00
[求助]同样代码在老项目中正常,在新项目中效果反了  发帖心情 Post By:2022/10/17 14:01:00 [只看该作者]

目的  勾选逻辑列后  把这行里面的某个数据复制到表2里面,老项目中正常的代码
If e.DataCol.Name = "入职确认" AndAlso e.DataRow("入职确认") = True Then
    Dim nma() As String = {"姓名","性别","身份证号","应聘岗位","学历","联系电话","联系地址","照片","入职时间"} 'A表数据来源列
    Dim nmb() As String = {"姓名","性别","身份证号","岗位","学历","联系电话","联系地址","照片","上岗日期"} 'B表数据接收列
    Dim dr As DataRow = DataTables("在职员工表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
  End If

调整后代码放到新建的项目里面 勾选逻辑列没反应,把逻辑列上的勾去掉后反而复制过去了。

If e.DataCol.Name = "销售确认" AndAlso e.DataRow("销售确认") = True Then
    Dim nma() As String = {"产品编号"} 'A表数据来源列
    Dim nmb() As String = {"产品编号"} 'B表数据接收列
    Dim dr As DataRow = DataTables("销货表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
  End If



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


加好友 发短信
等级:超级版主 帖子:112441 积分:572479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/17 14:04:00 [只看该作者]

把有问题的项目发上来测试

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


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

已上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:泡台进销存管理.rar


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


加好友 发短信
等级:超级版主 帖子:112441 积分:572479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/17 14:20:00 [只看该作者]

代码放错地方了,应该放到datacolchanged

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


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

您好!需要实现逻辑列打勾把该行复制到表B,逻辑列勾去掉自动把表B对应的那行删除。修改了代码执行不了,请看看
If e.DataCol.Name = "销售确认" AndAlso e.DataRow("销售确认") = True Then
    Dim nma() As String = {"板材编号", "板材序号" } 'A表数据来源列
    Dim nmb() As String = {"板材编号", "板材序号"} 'B表数据接收列
    Dim dr As DataRow = DataTables("销货表").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next 
End If
If e.DataCol.Name = "销售确认" Then
    If e.DataRow("销售确认") = False Then
        Dim dr As DataRow = DataTables("销货表").AddNew
        For Each dc As DataCol In DataTables("销货表").DataCols
            dr(dc.Name) = e.DataRow(dc.Name)
        Next
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:112441 积分:572479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/18 11:39:00 [只看该作者]

If e.DataCol.Name = "销售确认" Then 
    If e.DataRow("销售确认") = True Then
        Dim nma() As String = {"板材编号", "板材序号" } 'A表数据来源列
        Dim nmb() As String = {"板材编号", "板材序号"} 'B表数据接收列
        Dim dr As DataRow = DataTables("销货表").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = e.DataRow(nma(i))
        Next 
    Else
        DataTables("销货表").DeleteFor("板材编号='" & e.DataRow("板材编号") & "'")
    End If
End If


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


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

您好!功能实现了,但是容易误操作,想加一个提示 是否取消,点确定执行 点取消不执行。应该如何设置
[此贴子已经被作者于2022/10/19 11:02:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:112441 积分:572479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/19 11:06:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/0326.htm

datacolchanging事件
If e.DataCol.Name = "销售确认" Then 
    If e.newvalue = false Then
Dim Result As DialogResult
Result = MessageBox.Show(
"
是否取消?""提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If
 Result = DialogResult.Yes Then
    e.cancel=true

End
 if
    End If
End If

 回到顶部