以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 新增行为什么会触发表的datacolchanging事件? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153156) |
-- 作者:yacity -- 发布时间:2020/8/2 11:09:00 -- 新增行为什么会触发表的datacolchanging事件? 新增行为什么会触发表的datacolchanging事件? 做了一个生产记录表,本想录入生产记录后,点入库直接就可入库了,免去再到库存表输入的麻烦,可是下面代码我没有点入库啊,只不过新增了一行,它就执行代码了,这样也不对啊,如何解决? Select Case e.DataCol.Name Case "ruku" \'复制数据到库存流水 Dim dr As DataRow=e.DataRow If e.DataRow("ruku") = False Then Dim nma() As String = {"shengchandate","chanpinid","shuliang"} \'A表数据来源列 Dim nmb() As String = {"rdate","chanpinid","shuliang"} \'B表数据接收列 Dim drs As DataRow = DataTables("kucun").AddNew For i As Integer = 0 To nma.Length - 1 drs(nmb(i)) = e.DataRow(nma(i)) Next drs("beizhu") = "制袋入库" drs("bianhao")="ZD" & dr("_Identify") Else Dim Result As DialogResult Result = MessageBox.Show("您确定要取消该产品入库吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.Yes Then Dim nma() As String = {"shengchandate","chanpinid","shuliang"} \'A表数据来源列 Dim nmb() As String = {"rdate","chanpinid","shuliang"} \'B表数据接收列 Dim drs As DataRow = DataTables("kucun").AddNew For i As Integer = 0 To nma.Length - 1 drs(nmb(i)) = e.DataRow(nma(i)) Next drs("beizhu") = "取消制袋入库" drs("shuliang") = -drs("shuliang") drs("bianhao")="ZD" & dr("_Identify") Else e.Cancel = True End If End If End Select
|
-- 作者:有点蓝 -- 发布时间:2020/8/2 11:34:00 -- "ruku"是逻辑列,新增行会触发逻辑列的datacolchanged。如果不想触发 datarowAdding事件: systemready = False e.DataRow("ruku") = False systemready = True |