以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  编码重置列不起作用?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145608)

--  作者:gudao123456
--  发布时间:2020/2/2 0:53:00
--  编码重置列不起作用?
设计了菜单按钮,代码如下:
PopMessage("正在计算,请稍候!", "提示信息", PopIconEnum.Infomation,1)
DataTables("xszxztb").ReplaceFor("mxfxm", Nothing)
DataTables("xszxztb").ReplaceFor("mxfje", Nothing)
DataTables("xszxztb").ReplaceFor("mzfxm", Nothing)
DataTables("xszxztb").ReplaceFor("mzfje", Nothing)
DataTables("xszxztb").ReplaceFor("zxjxm", Nothing)
DataTables("xszxztb").DataCols("Fpsj").RaiseDataColChanged()
DataTables("xszxztb").DataCols("pklx_xxrd").RaiseDataColChanged()

点击菜单按钮重置列功能不起作用呢?(数据没有发生变化),但点击系统菜单的重置列却起作用(数据发生了变化)。为什么?谢谢!

--  作者:有点蓝
--  发布时间:2020/2/2 20:48:00
--  
DataColChanged事件写了什么代码?
--  作者:gudao123456
--  发布时间:2020/2/3 21:04:00
--  
与之相关的有:
If e.DataCol.Name="fusj"
    If e.DataRow("扶贫数据") Like "贫困*" And (e.DataRow("扶贫数据") Like "*2014*" Or  e.DataRow("扶贫数据") Like "*2015*")=False Then
        e.DataRow("pklx_sjbd")="建档立卡贫困户"
    End If
    If (e.DataRow("扶贫数据") Like "贫困*")=False  And (e.DataRow("民政数据") Like "*低保*"  Or  e.DataRow("民政数据")  Like "*特困*")
        e.DataRow("pklx_sjbd")=e.DataRow("民政数据")
    End If
    If e.DataRow("扶贫数据")="NULL"   And (e.DataRow("民政数据") Like "*低保*"  Or  e.DataRow("民政数据")  Like "*特困*")=False  And  e.DataRow("残联数据") Like "*残疾*" Then
        e.DataRow("pklx_sjbd")="残疾学生"
    End If
    
    If e.DataRow("扶贫数据") Like "*2014*"  Then
        If e.DataRow("rxsj") Like "2016*"
            e.DataRow("sfscyhzz")=False
        Else
            e.DataRow("pklx_sjbd")="2014年贫困退出户"
            e.DataRow("sfscyhzz")=True
            e.DataRow("tpnd")="2014年"
        End If
    End If
    If   e.DataRow("扶贫数据") Like "*2015*" Then
        If e.DataRow("rxsj") Like "2017*"
            e.DataRow("sfscyhzz")=False
        Else
            e.DataRow("pklx_sjbd")="2015年贫困退出户"
            e.DataRow("sfscyhzz")=True
            e.DataRow("tpnd")="2015年"
        End If
    End If
    
    If  e.DataRow("扶贫数据")="NULL"  And e.DataRow("残联数据")="NULL"  And  e.DataRow("民政数据") Like "低收入*" Then
        e.DataRow("pklx_sjbd")=e.DataRow("民政数据")
        
    End If
    
    If  e.DataRow("扶贫数据")="NULL"  And  e.DataRow("残联数据")="NULL"   And   e.DataRow("民政数据")="NULL"   And  e.DataRow("工会数据")<> "NULL"  Then
        
        \'  e.DataRow("pklx_sjbd")=e.DataRow("工会数据")
        e.DataRow("pklx_sjbd")="建档困难职工家庭子女"
    End If
End If

但同是这些代码,手动点击重置列:扶贫数据,却能达到目的
[此贴子已经被作者于2020/2/3 21:05:12编辑过]

--  作者:有点蓝
--  发布时间:2020/2/3 21:35:00
--  
datacolchanged事件判断的是“fusj”列(If e.DataCol.Name="fusj"),要对这个列重置才行的

DataTables("xszxztb").DataCols("fusj").RaiseDataColChanged()

--  作者:gudao123456
--  发布时间:2020/2/3 22:37:00
--  
原文中是“fpsj”,是我复制上来把中文改为字母 改错了的。我手动点击重置列可以达到目的,代码不应该有错
--  作者:有点蓝
--  发布时间:2020/2/3 23:08:00
--  
那不应该有问题,上传实例说明