以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 关联控件数据刷新时机问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47921)

--  作者:bahamute
--  发布时间:2014/3/19 15:49:00
--  [求助] 关联控件数据刷新时机问题
已经从表属性设置好代码,选择岗位层级后,岗位工资会显示相应数值。
从窗口操作时,发现选择岗位层级后,必须点击其他控件控件一下,岗位工资控件才会更新数值,
如图


图片点击可在新窗口打开查看此主题相关图片如下:002.gif
图片点击可在新窗口打开查看

想请教才能做到只要岗位层级数值一发生改变,岗位工资控件能立即更新?

--  作者:Bin
--  发布时间:2014/3/19 15:54:00
--  
因为你要离开焦点,才会触发DataColChanged事件哦.

你可以考虑把代码搬到ChangeEdit 事件

--  作者:bahamute
--  发布时间:2014/3/19 16:12:00
--  

把代码搬到ChangeEdit 事件后,点确定会提示错误:

编译错误:DataCol”不是“ChangeEditEventArgs”的成员。

错误代码:If e.DataCol.Name = "岗位层级" Then

 

我的代码如下:

If e.DataCol.Name = "岗位层级" Then 

    If e.DataRow.IsNull("岗位层级") Then 

        e.DataRow("岗位工资") = Nothing 

    Else

        Select Case e.DataRow("岗位层级")

            Case "A1"

                   e.DataRow("岗位工资")=5000

            Case "A2"

                   e.DataRow("岗位工资")=4050

            Case "A3"

                   e.DataRow("岗位工资")=3650

            Case "B1"

                   e.DataRow("岗位工资")=3260

        

End Select

    End If

End If


该如何修改?


--  作者:Bin
--  发布时间:2014/3/19 16:14:00
--  
DATAROW 改为 row  datacol 改为 col
--  作者:bahamute
--  发布时间:2014/3/19 16:29:00
--  
代码已经修改好了,但是不起作用!改后代码如下,例子附后。

If e.Col.Name = "岗位层级" Then 
    If e.Row.IsNull("岗位层级") Then 
        e.Row("岗位工资") = Nothing 
    Else
        Select Case e.Row("岗位层级")
            Case "A1"
                   e.Row("岗位工资")=5000
            Case "A2"
                   e.Row("岗位工资")=4050
            Case "A3"
                   e.Row("岗位工资")=3650
            Case "B1"
                   e.Row("岗位工资")=3260
        
End Select
    End If
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb



--  作者:bahamute
--  发布时间:2014/3/19 16:33:00
--  
sorry,这是例子代码。

If e.Col.Name = "第二列" Then 
    If e.Row.IsNull("第二列") Then 
        e.Row("第三列") = Nothing 
    Else
        Select Case e.Row("第三列")
            Case "A1"
                   e.Row("第三列")=5000
            Case "A2"
                   e.Row("第三列")=4050
            Case "A3"
                   e.Row("第三列")=3650
            Case "B1"
                   e.Row("第三列")=3260
        
End Select
    End If
End If

--  作者:bahamute
--  发布时间:2014/3/19 16:43:00
--  
..
[此贴子已经被作者于2014-3-19 16:43:44编辑过]

--  作者:Bin
--  发布时间:2014/3/19 16:45:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


--  作者:bahamute
--  发布时间:2014/3/19 16:50:00
--  
问题解决,非常感谢。
--  作者:bahamute
--  发布时间:2014/3/19 17:32:00
--  
追问一下bin兄:
如果把示例中的岗位层级控件换成下拉控件,又该怎么办呢,我另一个窗口就存在这个问题:
我把刚才示例改了一下,请指教:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2 (11010).foxdb