Foxtable(狐表)用户栏目专家坐堂 → 窗口 DropDownForm 多列数据填入问题.


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

主题:窗口 DropDownForm 多列数据填入问题.

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


加好友 发短信
等级:二尾狐 帖子:589 积分:4499 威望:0 精华:0 注册:2020/4/15 19:53:00
窗口 DropDownForm 多列数据填入问题.  发帖心情 Post By:2020/11/17 11:15:00 [只看该作者]

在缴费信息窗口 有学员信息控件   学号  姓名 等控件

学号控件绑定了,DropDownForm 学员信息列表窗口 

打开缴费信息窗口,点击学号,获取 DropDownForm  学员信息列表窗口 (正常)
选择相应人员填入学号(正常)
填入相关其他人员信息 (错误,现在只能填入学号)
相关代码如下.

在DropDownForm 学员信息列表窗口 DropDownClosed事件写入以下代码
Dim tbl As Table = Tables("学员列表窗口_学员信息列表")
If tbl.Current IsNot Nothing Then
    e.Form.DropDownBox.Value = tbl.Current("学号")
    Tables("学员管理_学员信息表").Current("姓名") = tbl.Current("姓名")
    If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
        e.Form.DropTable.FinishEditing()
    Else '如果是通过窗口下拉的
        e.Form.DropDownBox.WriteValue()
    End If
End If

在DropDownForm 学员信息列表窗口 的table 控件 的 DoubleClick事件写入以下代码

Dim tbl As Table = Tables("学员列表窗口_学员信息列表")
If tbl.Current IsNot Nothing Then
    e.Form.DropDownBox.Value = tbl.Current("学号")
End If

e.Form.DropDownBox.CloseDropDown()

帮忙看看错在什么地方,谢谢.

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/17 11:19:00 [只看该作者]

去掉 DropDownClosed事件

DropDownForm 学员信息列表窗口 的table 控件 的 DoubleClick事件
e.cancel = true
e.Form.DropDownBox.Value = e.row("学号")
Tables("学员管理_学员信息表").Current("姓名") = e.row("姓名")
e.Form.DropDownBox.CloseDropDown()
[此贴子已经被作者于2020/11/17 11:19:38编辑过]

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


加好友 发短信
等级:二尾狐 帖子:589 积分:4499 威望:0 精华:0 注册:2020/4/15 19:53:00
姓名还是没有出来....请指教.  发帖心情 Post By:2020/11/17 11:36:00 [只看该作者]

DropDownForm 学员信息列表窗口 的table 控件 的 DoubleClick事件
e.cancel = true
e.Form.DropDownBox.Value = e.row("学号")
Tables("学员管理_学员信息表").Current("姓名") = e.row("姓名")
e.Form.DropDownBox.CloseDropDown()

代码改成这个了,姓名还是没有出来

有个不明明白的地方, 现在是DropDownForm 学员信息列表窗口的数据向 窗口 课程缴费新增窗口添加数据
窗口 课程缴费新增窗口 的姓名控件 引用的学员管理_学员信息表 姓名字段
下面这个代码是说 窗口控件中的代码获取 DropDownForm 学员信息列表窗口 的table 控件 姓名列的值吗?
Tables("学员管理_学员信息表").Current("姓名") = e.row("姓名")

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/17 11:43:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

e.cancel = true
msgbox(e.Form.DropTable.name)
e.Form.DropDownBox.Value = e.row("学号")
msgbox(e.row("姓名"))
msgbox(Tables("学员管理_学员信息表").Current("姓名"))
Tables("学员管理_学员信息表").Current("姓名") = e.row("姓名")
msgbox(Tables("学员管理_学员信息表").Current("姓名"))
e.Form.DropDownBox.CloseDropDown()

 回到顶部
帅哥哟,离线,有人找我吗?
夜点蚊香
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:589 积分:4499 威望:0 精华:0 注册:2020/4/15 19:53:00
终于搞清楚逻辑关系了,谢谢大神  发帖心情 Post By:2020/11/17 13:46:00 [只看该作者]

终于搞清楚逻辑关系了,谢谢大神

代码如下
Dim tbl As Table = Tables("学员列表窗口_学员信息列表")
If tbl.Current IsNot Nothing Then
    e.Form.DropDownBox.Value = tbl.Current("学号")
    Tables("课程缴费表").Current("姓名") = e.Row("姓名")
    Tables("课程缴费表").Current("学号") = e.Row("学号")
End If
e.Form.DropDownBox.CloseDropDown()

 回到顶部