以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据输入 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106272) |
-- 作者:peibaomin -- 发布时间:2017/9/5 18:55:00 -- 数据输入 我在表的“DataColChanged”事件写了如下代码 Select Case e.DataCol.Name
商户ID字段输入方式是用一个下拉窗口输入的。怎么当商户ID的值发生变化后“机具是否绑定"字段值不发生变化呢?是什么原因呢?
|
-- 作者:有点蓝 -- 发布时间:2017/9/5 20:18:00 -- DataColChanged事件肯定还有其它代码影响到了 |
-- 作者:peibaomin -- 发布时间:2017/9/5 20:24:00 -- Select Case e.DataCol.Name dr("机具条码") = e.DataRow("机具条码") dr("机具条码") = e.DataRow("机具条码") If e.DataCol.Name = "商户ID" Then If e.DataCol.Name = "商户ID" Then \'POS机库存资料表数据和商户资料表数据同步 |
-- 作者:有点蓝 -- 发布时间:2017/9/5 21:11:00 -- 1楼触发的是“商户ID”,3楼触发的又是“客户姓名”,是想整哪样? 另外代码有多个地方的“商户ID”触发点,代码完全一样,为什么不合并?
|
-- 作者:peibaomin -- 发布时间:2017/9/5 21:55:00 -- 是在测试代码、复制错了
Select Case e.DataCol.Name dr("机具条码") = e.DataRow("机具条码") dr("机具条码") = e.DataRow("机具条码") If e.DataCol.Name = "商户ID" Then If e.DataCol.Name = "商户ID" Then \'POS机库存资料表数据和商户资料表数据同步
我测试了,“机具是否绑定"字段值就是不发生变化?是做测试例子没问题,一到程序中测试就出问题,不知道什么原因?
不会合并,已合并代码就乱了
[此贴子已经被作者于2017/9/5 21:56:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/9/5 21:56:00 -- 说明还有其它代码影响 |
-- 作者:peibaomin -- 发布时间:2017/9/5 21:59:00 -- 老师应该从哪下手查呢?
|
-- 作者:有点蓝 -- 发布时间:2017/9/5 22:04:00 -- 注释和这个表有关的其它所有代码,逐一测试排除 |
-- 作者:有点蓝 -- 发布时间:2017/9/5 22:05:00 -- 5楼的代码整理了一下,自己体会 Select Case e.DataCol.Name Case "机具ID" Dim Filter As String = "[机具ID] = \'" & e.oldvalue & "\'" Dim drs As List(Of DataRow) = DataTables("商户资料表").Select(Filter) For Each dr As DataRow In drs dr("机具ID") = e.NewValue dr("机具条码") = e.DataRow("机具条码") Next Case "机具条码" Dim Filter As String = "[机具ID] = \'" & e.DataRow("机具id") & "\'" Dim drs As List(Of DataRow) = DataTables("商户资料表").Select(Filter) For Each dr As DataRow In drs dr("机具条码") = e.DataRow("机具条码") Next Case "商户ID" If e.NewValue Is Nothing Then e.DataRow("商户名称") = Nothing e.DataRow("客户ID") = Nothing e.DataRow("客户姓名") = Nothing e.DataRow("机具是否绑定") = False Else e.DataRow("机具是否绑定") =True Dim dr As DataRow dr = DataTables("商户资料表").Find("[商户ID] = \'" & e.NewValue & "\'") If dr IsNot Nothing e.DataRow("商户名称") = dr("商户名称") e.DataRow("客户ID") = dr("客户ID") e.DataRow("客户姓名") = dr("法人姓名") End If End If If e.OldValue <> Nothing Then For Each dr As DataRow In DataTables("商户资料表").Select("商户id = \'" & e.OldValue & "\'") dr("机具id") = Nothing dr("机具条码") = Nothing Next End If End Select |