以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  官方 自定义录入界面之三 的一个改进的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160573)

--  作者:蓝色理想
--  发布时间:2021/2/6 23:26:00
--  官方 自定义录入界面之三 的一个改进的问题
单元格中输入内容,自动下拉窗口筛选数据,帮助录入
当:
1、要用下拉窗口  录入多列数据
2、当前要录入的行、列,以前已经录入过数据,现在是要修改
3、录入单元格的内容,筛选窗口中没有的时候,用户敲了回车

会出现一个问题
1、录入单元格的数据为 手工录入的值,而不是下拉窗口中任何一个值
2、其余一并要录入的列,因为下拉窗口中没有值被选中,而不会 更新那些列,导致那些列是老值。

需要改进的目标是:
当 单元格手工录入的值 , 不在 下拉窗口中时,无论客户是敲回车,还是 Tab 键,还是以其他任何方式离开当前单元格
都 将 当前录入单元格 和当前行 应一并录入的列 ,统一设置为 空值。


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



--  作者:蓝色理想
--  发布时间:2021/2/6 23:33:00
--  
举个例子说明这个问题
假设 在  客户ID 单元格输入 数据自动下拉窗口筛选,选择下拉窗口对应的行以后,自动将 客户ID,公司名称 两列 录入 当前行

当前行已经有数据:
客户ID     公司名称
BOLD      迈多贸易

要修改当前行数据,所以在 客户ID 单元格录入   XXXX(一个下拉窗口中不可能存在的数据),当前下拉窗口中筛选不出任何记录
客户敲入回车后的结果是

当前行数据变成:
客户ID     公司名称
XXXX      迈多贸易


请问如何才能在这种情况,当录入的数据,下拉窗口筛选不出的时候,让录入各列都变成  空?


--  作者:蓝色理想
--  发布时间:2021/2/6 23:43:00
--  
其实最终的目标就是
单元格可以输入数据,但是只作为筛选 下拉窗口中的数据之用
数据输入只能通过下拉窗口来输入
请问如何做到

--  作者:有点蓝
--  发布时间:2021/2/7 10:14:00
--  
窗口的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")
        If e.Form.DropTable IsNot Nothing Then \'如果是通过表下拉的
            e.Form.DropTable.FinishEditing()
        Else \'如果是通过窗口下拉的
            e.Form.DropDownBox.WriteValue()
        End If
    End If
else
清空的代码
End
 If

--  作者:蓝色理想
--  发布时间:2021/2/7 11:24:00
--  
你好蓝版,有些情况真的比较诡异,照着 案例做的 ,这么都不行,添加了一个 messagebox。show,就好了
感觉,foxtable有些时候,修改了代码,好像还是按照老代码在执行

--  作者:有点蓝
--  发布时间:2021/2/7 11:26:00
--  
关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。
--  作者:蓝色理想
--  发布时间:2021/2/7 11:36:00
--  
蓝版

按照官方案例,修改的录入窗口,把 单个表的事件,统一放到全局表事件中处理了,现在又有一个诡异问题

录入不存在的数据,按回车,不执行 退出清空代码,但 按tab键或者鼠标直接点其他单元格都能执行

这是个什么情况,把我搞蒙了

--  作者:有点蓝
--  发布时间:2021/2/7 11:38:00
--  
http://www.foxtable.com/webhelp/topics/2461.htm,看看Selected参数说明
--  作者:蓝色理想
--  发布时间:2021/2/7 12:40:00
--  
蓝版,官方的例子,客户ID列,粘贴进去 客户ID,客户名称列 会自动修改为对应的客户名称
这个如何做到的?
我看了一圈,也没看到代码啊

--  作者:有点蓝
--  发布时间:2021/2/7 13:47:00
--  
客户名称是一个表达式列