以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口 DropDownForm 多列数据填入问题.  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158340)

--  作者:夜点蚊香
--  发布时间:2020/11/17 11:15:00
--  窗口 DropDownForm 多列数据填入问题.
在缴费信息窗口 有学员信息控件   学号  姓名 等控件

学号控件绑定了,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()

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

--  作者:有点蓝
--  发布时间: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编辑过]

--  作者:夜点蚊香
--  发布时间: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("姓名")

--  作者:有点蓝
--  发布时间: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()

--  作者:夜点蚊香
--  发布时间: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()