以文本方式查看主题 - 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 键,还是以其他任何方式离开当前单元格 都 将 当前录入单元格 和当前行 应一并录入的列 ,统一设置为 空值。 |
-- 作者:蓝色理想 -- 发布时间: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 -- 客户名称是一个表达式列 |