以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]同样代码在老项目中正常,在新项目中效果反了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=180826)

--  作者:xlrboy
--  发布时间: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



--  作者:有点蓝
--  发布时间:2022/10/17 14:04:00
--  
把有问题的项目发上来测试
--  作者:xlrboy
--  发布时间:2022/10/17 14:14:00
--  
已上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:泡台进销存管理.rar


--  作者:有点蓝
--  发布时间:2022/10/17 14:20:00
--  
代码放错地方了,应该放到datacolchanged
--  作者:xlrboy
--  发布时间: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

--  作者:有点蓝
--  发布时间: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
--  发布时间:2022/10/19 11:02:00
--  
您好!功能实现了,但是容易误操作,想加一个提示 是否取消,点确定执行 点取消不执行。应该如何设置
[此贴子已经被作者于2022/10/19 11:02:05编辑过]

--  作者:有点蓝
--  发布时间: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