以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  修改了datacolchanged代码后,重置相关列,怎么还是执行以前的代码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158941)

--  作者:温馨的大树
--  发布时间:2020/12/8 5:36:00
--  修改了datacolchanged代码后,重置相关列,怎么还是执行以前的代码?
修改了表事件的datacolchanged代码后,保存,然后重置相关列,怎么还是执行以前的代码?新的代码无效不执行!重新打开项目还是如此,好象新的代码没有写进去,还是执行以前的代码!

这是新的代码:

Select Case e.DataCol.Name
    Case "员工_姓名","调度操作_订单结果","价格收款_单位","价格收款_WT"
        If dr("调度操作_订单结果") = "成功" AndAlso dr("员工_姓名") IsNot Nothing Then
            Dim dr5 As DataRow = DataTables("员工数据表").Find("员工_姓名 = \'" & dr("员工_姓名") &"\'")
            If dr5 IsNot Nothing Then
                If dr("价格收款_WT") = False Then
                    Dim str1 As String = " DT_"&" \'"& dr("价格收款_单位") & "\'"&" 固定"
                    If dr5("str1") IsNot Nothing Then
                        dr("员工收入") = dr5("str1")
                    End If
                End If
            End If
        End If
End Select


[此贴子已经被作者于2020/12/8 6:11:52编辑过]

--  作者:有点蓝
--  发布时间:2020/12/8 8:52:00
--  
1、没有选中case里面的列重置
2、没有符合条件的数据
3、判断单元格是否为空请使用isnull:http://www.foxtable.com/webhelp/topics/0426.htm
4、确定列名是对的?注意中间的空格

                If dr("价格收款_WT") = False Then
                    Dim str1 As String = " DT_"&" \'"& dr("价格收款_单位") & "\'"&" 固定"
msgbox(str1 )
                    If dr5.isnull(str1)=false Then
                        dr("员工收入") = dr5(str1)
                    End If
                End If


--  作者:温馨的大树
--  发布时间:2020/12/8 11:05:00
--  
就算代码有误,不执行,为什么还是显示以前代码执行的结果呢?按照老师说的调整了一下,好象还是会这样,因为旧的代码我早就删除,更换成新。

Select Case e.DataCol.Name
    Case "员工_姓名","调度操作_订单结果","价格收款_单位","价格收款_WT"
        If dr("调度操作_订单结果") = "成功" AndAlso dr.IsNull("员工_姓名") = False Then
            Dim dr5 As DataRow = DataTables("员工数据表").Find("员工_姓名 = \'" & dr("员工_姓名") &"\'")
            If dr5 IsNot Nothing Then
                If dr("价格收款_WT") = False Then
                    Dim str1 As String = "DT_"&"\'" & dr("价格收款_单位") & "\'"&"_固定"
                    If dr5.IsNull(str1) = False Then
                        dr("员工收入") = dr5(str1)
                    End If
                End If
            End If
        End If
End Select


--  作者:有点蓝
--  发布时间:2020/12/8 11:07:00
--  
不符合条件,原来的数据是怎么样就肯定还是怎么样。

另外确定列名里会有单引号这种神奇的东西?

msgbox(str1)

--  作者:温馨的大树
--  发布时间:2020/12/8 11:22:00
--  
把员工收入列全部清零了,保存后重置“员工_姓名”列,msgbox(str1)没有跳出来,“员工_姓名”列数据又还是前面一次执行代码后的计算结果
--  作者:温馨的大树
--  发布时间:2020/12/8 11:23:00
--  
Select Case e.DataCol.Name
    Case "员工_姓名","调度操作_订单结果","价格收款_单位","价格收款_WT","调度操作_单位"
        If dr("调度操作_订单结果") = "成功" AndAlso dr.IsNull("员工_姓名") = False Then
            Dim dr5 As DataRow = DataTables("员工数据表").Find("员工_姓名 = \'" & dr("员工_姓名") &"\'")
            If dr5 IsNot Nothing Then
                If dr("价格收款_WT") = False Then
                    Dim str1 As String = "DT_"&"\'" & dr("调度操作_单位") & "\'"&"_固定"
                    msgbox(str1)
                    If dr5.IsNull(str1) = False Then
                        dr("员工收入") = dr5(str1)
                    End If
                End If
            End If
        End If
End Select


--  作者:有点蓝
--  发布时间:2020/12/8 11:57:00
--  
说明没有符合这些条件的数据

        If dr("调度操作_订单结果") = "成功" AndAlso dr.IsNull("员工_姓名") = False Then
            Dim dr5 As DataRow = DataTables("员工数据表").Find("员工_姓名 = \'" & dr("员工_姓名") &"\'")
            If dr5 IsNot Nothing Then
                If dr("价格收款_WT") = False Then

--  作者:温馨的大树
--  发布时间:2020/12/8 12:05:00
--  回复:(有点蓝)不符合条件,原来的数据是怎么样就肯...

图片点击可在新窗口打开查看此主题相关图片如下:%2sbdsxu)%x3}7lxx6q6$l.png
图片点击可在新窗口打开查看
跳出这个窗口显示的列名是正确的,不过关闭不了这个窗口,点ok或关闭按钮,又会重新跳出来

--  作者:有点蓝
--  发布时间:2020/12/8 12:07:00
--  
代码放到循环里面的,肯定是不断弹出来。提示框是用来做测试的,如果确定列名没有问题,去掉提示框在重新测试即可
--  作者:温馨的大树
--  发布时间:2020/12/8 13:01:00
--  回复:出现报错,msgbox显示正确,执行计算结果也对
现在有些奇怪,执行中msgbox,显示 :DT_2H_固定,是正确的,然后执行程序,会出现下面的提示窗口,但是计算结果又是我想要的结果,这个是什么情况啊?

图片点击可在新窗口打开查看此主题相关图片如下:p(`ei@`%$n`k)zys8`plm.png
图片点击可在新窗口打开查看



[此贴子已经被作者于2020/12/8 13:09:36编辑过]