以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于下拉窗体  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136857)

--  作者:裴保民
--  发布时间:2019/6/23 9:25:00
--  关于下拉窗体

数据表中某个字段是下窗体,当双击选则的数据关闭下拉窗体后,如果选择了不符合条件时,数据怎么恢复之前的数据,相当于没选择。

[此贴子已经被作者于2019/6/23 9:27:53编辑过]

--  作者:有点甜
--  发布时间:2019/6/23 10:39:00
--  

1、可以在datacolchanging事件,写代码判断和取消输入啊

 

2、你也可以在双击的时候,判断是否符合,然后控制是否录入啊


--  作者:裴保民
--  发布时间:2019/6/23 11:18:00
--  

我在DropDownClosed事件中写了

If  tbl.current("流量卡状态") = "废流量卡" Then
              msgbox("该流量卡是废卡,不能绑定商户!请核实流量卡号")
              tbl1.Current("流量卡ID")= tbl1.Current.DataRow.OriginalValue("流量卡ID")
                Return
         End If
这样如果直接打开下拉窗体双击选择不符合条件的数据时可以将旧值赋值给原数据,可是当在字段中输入任何一个字符作为模糊查找条件后双击选择不符合条件的数据后,旧值不赋值给原字段,显现的是输入的新值,也就是说当选择的数据不符合要求时,恢复输入前数据状态,怎么解决呢?最好在本事件中完成

[此贴子已经被作者于2019/6/23 17:37:32编辑过]

--  作者:有点甜
--  发布时间:2019/6/23 17:37:00
--  

 

你就不能在你给表格赋值之前判断一下?如果不满足,就不要赋值?

 

 


--  作者:裴保民
--  发布时间:2019/6/23 17:47:00
--  

因为该字段是下拉框带模糊查询功能在输入字符的时候不知道客户选择的数据是否符合条件,只有客户选完某一项数据并关闭下拉窗体以后才知道数据是否符合条件的,怎么在该事件中设置成当选择不符合条件的数据后,该字段恢复操作前的数据呢?

 

 

如果不模糊查询直接打开下拉窗体选择数据时,如果选择不符合条件的数据时是可以不复制的,如果模糊查询时,在输入每一个字符的时候是不是已经一一给字段赋值了呢?怎么能做到在选择数据之前不赋值呢?

[此贴子已经被作者于2019/6/23 17:53:30编辑过]

--  作者:有点甜
--  发布时间:2019/6/23 18:23:00
--  
上传具体实例测试
--  作者:裴保民
--  发布时间:2019/6/24 0:30:00
--  

甜老师你看看

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.foxdb


 

 

 


 


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190624002621.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/6/24 7:33:14编辑过]

--  作者:有点甜
--  发布时间:2019/6/24 10:19:00
--  

这个意思?

 

If e.Selected Then
    If  e.form.DropTable IsNot Nothing AndAlso e.form.DropTable.Name = "客户资料"
        Dim tbl As Table = Tables("流量卡选择窗体_Table1")
        Dim tbl1 As Table = Tables("客户资料")
        Dim Result As DialogResult
        Dim sr As Row = tbl.Current
        If  tbl.current("流量卡状态") = "废卡" Then
            msgbox("该流量卡是废卡不能绑定客户")
            \'            tbl1.Current("流量卡ID")= tbl1.Current.DataRow.OriginalValue("流量卡ID")
            e.Form.DropDownBox.Value = Nothing
            Return
        Else
            e.Form.DropDownBox.Value = tbl.Current("流量卡ID")
            tbl1.Current("流量卡ID")=tbl.Current("流量卡ID")
            tbl1.Current("流量卡号")=tbl.Current("流量卡号")
        End If
    End If
End If
If e.Form.DropTable IsNot Nothing Then \'如果是通过表下拉的
    e.Form.DropTable.FinishEditing()
ElseIf e.Form.DropDownBox.BindingField > "" \'如果是通过窗口下拉的
    e.Form.DropDownBox.WriteValue()
End If


--  作者:裴保民
--  发布时间:2019/6/24 14:35:00
--  
甜老师不是清除,是想取消操作(相当于字段未输入数据之前的数据)
--  作者:有点甜
--  发布时间:2019/6/24 14:42:00
--  

参考

 

http://www.foxtable.com/webhelp/topics/2643.htm