以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  当表A的C列等于“出售”时,D列会自动输入“成功”,否则则为空  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=103477)

--  作者:jick0526
--  发布时间:2017/7/9 19:52:00
--  当表A的C列等于“出售”时,D列会自动输入“成功”,否则则为空
老师,请问下,当表A的C列等于“出售”时,D列会自动输入“成功”,否则则为空,代码要怎么写,谢谢!
--  作者:有点甜
--  发布时间:2017/7/9 20:43:00
--  

If e.DataCol.Name = "C" Then

    If e.newvalue = "出售" Then

        e.DataRow("D") = "成功"

    Else

        e.DataRow("D") = Nothing

    End If

End If


--  作者:jick0526
--  发布时间:2017/7/12 16:16:00
--  
老师,上面的代码要重置列后才会更新,我有几万行,重置直接卡死,怎样可以不重置就会认到数据变化
--  作者:cbt
--  发布时间:2017/7/12 16:26:00
--  
可以把 D列 变成 表达式
IIF([C]=\'出售\',\'成功\',\'\')


或者用  表属性里面的

DrawCell


If e.Col.Name = "D" Then
    If e.Row.IsNull("C") Then Return
    If e.Row("C")="出售" Then e.text="成功"
End If


--  作者:有点蓝
--  发布时间:2017/7/12 16:41:00
--  
如果是2楼的方法,不重置不行的。

或者可以使用sql直接更新后台数据。

或者
DataTables("A表").ReplaceFor("D","成功","C=\'出售\'")
DataTables("A表").ReplaceFor("D",Nothing,"C<>\'出售\'")
然后重新加载数据