以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 禁止不同发货地址使用相同箱号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149314)

--  作者:sanny
--  发布时间:2020/4/28 18:27:00
--  [求助] 禁止不同发货地址使用相同箱号

老师,请问一下如何禁止当前窗口表中的不同发货地址使用相同箱号。

 

比如一个箱号中只能是相同地址的,不同地址的就出现提示 “不同发货地址不能使用相同箱号

 

谢谢了。


--  作者:sanny
--  发布时间:2020/4/28 18:27:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:禁止不同地址用相同箱号.foxdb


--  作者:有点蓝
--  发布时间:2020/4/28 20:23:00
--  
DataColChanging事件

If e.DataCol.Name = "箱号" Then
    Dim dr As DataRow = e.DataTable.Find("箱号 = \'" & e.NewValue & "\' and 发货地址 <> \'" & e.DataRow("发货地址") & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("不同发货地址不能使用相同箱号!")
        e.Cancel = True
    End If
End If

--  作者:sanny
--  发布时间:2020/4/28 22:20:00
--  
谢谢老师,还有个问题就是,当这个表中有很多记录,但窗口表中只显示需要的记录时,我只想针对当前窗口中的记录对这个规则有效。也就是说这个大表有箱号1时,窗口表中发其它地方的箱号也可以是1。 目前是不能重复的。谢谢。
--  作者:有点蓝
--  发布时间:2020/4/28 22:33:00
--  
方法1、把窗口表改为sqltable

2、加上窗口表的筛选条件
dim filter as string = Tables("窗口表").filter
if filter > "" then filter =filter & " and "
Dim dr As DataRow = e.DataTable.Find(filter & "箱号 = \'" & e.NewValue & "\' and 发货地址 <> \'" & e.DataRow("发货地址") & "\'" )