Foxtable(狐表)用户栏目专家坐堂 → [求助]帮助文件自定义界面四中自动填充的疑问


  共有9285人关注过本帖树形打印复制链接

主题:[求助]帮助文件自定义界面四中自动填充的疑问

帅哥哟,离线,有人找我吗?
sunbrain
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:383 积分:2439 威望:0 精华:0 注册:2011/12/3 22:19:00
[求助]帮助文件自定义界面四中自动填充的疑问  发帖心情 Post By:2012/10/20 1:12:00 [只看该作者]

在学习复杂的窗口制作,有一段不是很懂

请教大家:

 

P1312:

 

5、将窗口的DropDownClosed( [标题编号])事件代码设置为:

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If
tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current("
客户ID")
    End
If
    e.Form.DropDownBox.CloseDropDown()
End
If

这样关闭下拉窗口后,可以自动将选定客户的客户ID输入到下拉列表框中。

 

红色部分:可是我希望的是把相关的内容也填入,怎么办呢?

于是,我想到在所属的表中datachanged中设置:

 

 

If e.DataCol.Name = "客户ID" Then     '在产品表找出该产品

    Dim dr As DataRow

    dr = DataTables("客户明细表").Find("客户ID = " & "'" & e.DataRow("客户ID") & "'" )

    If dr IsNot Nothing '如果找到, 则设置各列内容

        e.DataRow("客户名称")= dr("客户名称")

       

    End If

End If

 

 

结果,问题这样的:

没有实现索要的内容,结果除了莫名其貌的问题,见图:

 

 

 

输入的数字是哪个,出来的窗口中第一行的编号就变成了那个数字,而且还自动保存了还

 

请大家帮助,谢谢

 

 


此主题相关图片如下:rt3.gif
按此在新窗口浏览图片

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/20 9:08:00 [只看该作者]

 关系复杂,关联复杂,说不清,道不明。

 如果各个控件有绑定字段,直接把表的Position定位到那一行,信息就自动更新了。

 如果没有绑定字段,就在dropdownclosed中写代码,更新各个控件的值。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/10/20 9:27:00 [只看该作者]

离开输入框,输入的内容才会写入到表,才会触发DataColChanged事件。

所以你下拉选择后要离开输入框,其他列的内容才会自动输入。

 

你要即时生效,加一行:

 

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("窗口1_Table1")
    If tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current("客户ID")
        e.Form.DropDownBox.WriteValue()
    End If
    e.Form.DropDownBox.CloseDropDown()
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
sunbrain
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:383 积分:2439 威望:0 精华:0 注册:2011/12/3 22:19:00
  发帖心情 Post By:2012/10/20 9:48:00 [只看该作者]

感谢楼上二位!

问题已经找到,窗口的事件和表的datachanged事件是重复执行的,有冲突,所以才导致这样的问题。

解决方式:直接去掉datachanged事件,在窗口设置


 回到顶部