Foxtable(狐表)用户栏目专家坐堂 → 多个下拉组合框如何一次同时输入信息


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

主题:多个下拉组合框如何一次同时输入信息

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
多个下拉组合框如何一次同时输入信息  发帖心情 Post By:2018/8/8 22:06:00 [只看该作者]

如图,客户名称和客户电话两个下拉组合框都绑定一个下拉窗口“客户信息”,当选择一行客户信息时,如何一次实现同时向这两个下拉框写入客户名称和客户电话。


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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/8 22:11:00 [只看该作者]

比如

 

forms("窗口1").controls("TextBox1").Text = 表格.current("客户名称")

forms("窗口1").controls("TextBox2").Text = 表格.current("客户电话")


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/8/8 22:48:00 [只看该作者]

好的,谢谢


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/8/8 23:33:00 [只看该作者]

DropDownClosed:

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("客户信息_Table1")
    If tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current("客户电话")
        Forms("订单新增").Controls("DropBox3").Text = tbl.Current("客户名称")

            If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else '如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If
    End If
End If

双击的时候,有时出现只有客户电话能输入,客户名称不能。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 9:16:00 [只看该作者]

Forms("订单新增").Controls("DropBox3").Text = tbl.Current("客户名称")

Forms("订单新增").Controls("DropBox3").WriteValue


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/8/9 21:28:00 [只看该作者]

代码改后仍然有问题:

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("客户信息_Table1")
    If tbl.Current IsNot Nothing Then
        e.Form.DropDownBox.Value = tbl.Current("客户电话")
        Forms("订单新增").Controls("DropBox3").Text = tbl.Current("客户名称")
        'e.Form.DropDownBox.Value = tbl.Current("客户电话")
        If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else '如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
            Forms("订单新增").Controls("DropBox3").WriteValue()
        End If
    End If
End If

 

改成以上代码后,出现客户电话和客户名称不对应的问题,当选择客户电话后,客户名称出来的是上一次记录的客户名称:


此主题相关图片如下:tim截图20180809150838.jpg
按此在新窗口浏览图片


 

现在是客户名称绑定到销售订单.客户名称,客户电话绑定到销售订单.客户电话,而下拉窗口都绑定了“客户信息”下拉窗口,TextChanged、Validating,KeyPress,KeyDown代码都相同:

TextChanged:

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then '如果下拉窗口已经打开
    Dim tbl As Table = Tables("客户信息_Table1")
    If drp.Text = "" Then '如果内容为空
        tbl.Filter = "" '显示所有客户
    Else '否则根据输入内容进行模糊筛选
        Dim txt As String = "'%" & drp.Text & "%'"
        tbl.Filter = "客户电话 Like " & txt  & " Or 客户名称 Like " & txt
    End If
End If

 

Validating:

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then '如果下拉窗口已经打开
    drp.CloseDropdown(False) '关闭下拉窗口
End If

 

KeyPress:

Dim drp As WinForm.DropDownBox = e.Sender
If drp.DroppedDown = False '如果下拉窗口没有打开
    drp.OpenDropDown() '打开下拉窗口
End If

 

KeyDown:

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then '如果下拉窗口已经打开
    Dim tbl As Table = Tables("客户信息_Table1")
    If e.KeyCode = Keys.Up Then '如果按下的是上箭头按键
        tbl.Position = tbl.Position - 1 '向上移动一行
        e.Cancel = True
    ElseIf e.KeyCode = Keys.Down Then '如果按下的是下箭头按键
        tbl.Position = tbl.Position + 1 '向下移动一行
        e.Cancel = True
    End If
End If

[此贴子已经被作者于2018/8/9 21:30:52编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/9 21:35:00 [只看该作者]

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("客户信息_Table1")
    If tbl.Current IsNot Nothing Then
        Systemready = False
        e.Form.DropDownBox.Value = tbl.Current("客户电话")
        Forms("订单新增").Controls("DropBox3").Text = tbl.Current("客户名称")
        Forms("订单新增").Controls("DropBox3").WriteValue()
       
        If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else '如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If
        Systemready = True
    End If
End If

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/8/9 23:33:00 [只看该作者]

甜老师,客户名称有时候还是会错乱。

还有一个问题,如果暂停执行事件代码,客户购买记录窗口当选择了客户电话或者客户名称就不会有购买记录出来。

我上传了实例,请帮忙看看,谢谢!

[此贴子已经被作者于2018/8/10 19:14:52编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/10 9:09:00 [只看该作者]

If e.Selected Then '如果选择了值
    Dim tbl As Table = Tables("客户信息_Table1")
    If tbl.Current IsNot Nothing Then
        If e.Form.DropDownBox.name = "dropbox1" Then
            e.Form.DropDownBox.Value = tbl.Current("客户电话")
            e.Form.DropDownBox.WriteValue()
            Forms("订单新增").Controls("DropBox3").Text = tbl.Current("客户名称")
            Forms("订单新增").Controls("DropBox3").WriteValue()
        ElseIf e.Form.DropDownBox.name = "dropbox3" Then
            e.Form.DropDownBox.Value = tbl.Current("客户名称")
            e.Form.DropDownBox.WriteValue()
            Forms("订单新增").Controls("DropBox1").Text = tbl.Current("客户电话")
            Forms("订单新增").Controls("DropBox1").WriteValue()
           
        End If
    End If
End If

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/8/10 19:10:00 [只看该作者]

搞定了,谢谢甜老师


 回到顶部