以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:根据字段A给字段B赋值,字段B如何即时改变?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74394)

--  作者:bahamute
--  发布时间:2015/9/10 9:28:00
--  请教:根据字段A给字段B赋值,字段B如何即时改变?
从记录控件操作

根据字段A给字段B赋值,字段B如何即时改变?
从表事件里试了一番,没发现那个事件可以做到只要A变化,则B马上赋值,必须等到离开字段A后B才变化。

If e.Col.Name = "层级" Then
    If e.Row.IsNull("层级") Then
        e.Row("岗位") = 0
    Else        
        Select Case e.Row ("层级")
            Case "A1"
                e.Row("岗位")=8000
            Case "A2"
                e.Row("岗位")=7050           
        End Select
    End If
End If
[此贴子已经被作者于2015/9/10 9:31:59编辑过]

--  作者:大红袍
--  发布时间:2015/9/10 9:32:00
--  

去写ChangedEdit事件,如代码

 

If e.Col.name = "第一列" Then
    e.Row("第二列") = e.Text
End If

 

---------------

 

If e.Col.Name = "层级" Then
    If e.Text = nothing Then
        e.Row("岗位") = 0
    Else        
        Select Case e.Text
            Case "A1"
                e.Row("岗位工资")=8000
            Case "A2"
                e.Row("岗位工资")=7050           
        End Select
    End If
End If

--  作者:bahamute
--  发布时间:2015/9/10 9:41:00
--  

在RecordGrid控件中操作好像不起作用,还是要等焦点离开A字段后,B字段才改变,没有即时改变。


--  作者:大红袍
--  发布时间:2015/9/10 9:49:00
--  

我测试,记录窗口一样有效。


--  作者:bahamute
--  发布时间:2015/9/10 10:48:00
--  
我只把下面几句放到ChangedEdit,结果报错,A列是字符列,B列是数字列,转换无效。
If e.Col.name = "第一列" Then
    e.Row("第二列") = e.Text
End If

这段代码也要放到ChangedEdit事件吗?,我还是放在datacolchanged里的。
If e.Col.Name = "层级" Then
    If e.Text = nothing Then
        e.Row("岗位") = 0
    Else        
        Select Case e.Text
            Case "A1"
                e.Row("岗位工资")=8000
            Case "A2"
                e.Row("岗位工资")=7050           
        End Select
    End If
End If


[此贴子已经被作者于2015/9/10 10:55:20编辑过]

--  作者:bahamute
--  发布时间:2015/9/10 11:05:00
--  
解决了,谢谢。
--  作者:大红袍
--  发布时间:2015/9/10 11:06:00
--  

第一段,是给你测试用的;

 

第二段,写到ChangedEdit事件去