以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口Tables 空间显示重复值  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=34742)

--  作者:bingo
--  发布时间:2013/6/14 15:22:00
--  [求助]窗口Tables 空间显示重复值
我现在在根据订单号做一个重复判断,以下代码:

 

DataColChanging事件

If e.DataCol.Name = "订单号" Then
    Dim
 dr As DataRow 
    dr = e.
DataTable.Find("订单号 = \'" & e.NewValue & "\'")
    
If dr IsNot Nothing Then
        MessageBox.Show(
"此订单号已经存在!")
        e.Cancel = 
True
    End
 If
End
 
If


问题:

1.我想判断重复后,显示的不是MessageBox.Show("此订单号已经存在!"),希望可以在窗口中的tables显示出订单号的重复值和其对应的日期这两列;

2.显示重复值后,用户可以选择是否录入这个重复值;


请各位支支招。





[此贴子已经被作者于2013-6-14 15:23:01编辑过]

--  作者:XYT
--  发布时间:2013/6/14 15:25:00
--  
http://www.foxtable.com/help/topics/0553.htm 用这个
--  作者:狐狸爸爸
--  发布时间:2013/6/14 15:31:00
--  

If e.DataCol.Name = "订单号" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("订单号 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        If MessageBox.Show("此订单号已经存在,日期:" & dr("日期") & ",是否继续输入?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) =DialogResult.No Then
            e.Cancel = True
        End If
    End If
End If


--  作者:zaianda
--  发布时间:2013/6/14 17:00:00
--  

If e.DataCol.Name = "订单号" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("订单号 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
       Dim wz As Integer = e.DataTable.FindRow(dr)
       If
wz >= 0 Then
         Tables
("订单").Position = wz                     \'获得焦点位置
     End If

    End If
End If


--  作者:bingo
--  发布时间:2013/6/15 19:54:00
--  

谢谢热心的解答。

 

我现在有个疑问就是,通过以下的代码获得了重复值得行r,怎么将这个r提取出对应的值

With CurrentTable
    Dim
r As Integer
    r
= .FindRow("[公司名称] Like \'*湛江*\'", .Position + 1, True ) \'从当前行开始查找
    If
r >= 0 Then \'如果找到的话
       
.Position = r \'定位到找到的行。
   
End If
End With

 

因为我需要提取这个重复值然后对应放到窗口的Tables控件里。


--  作者:有点甜
--  发布时间:2013/6/16 9:37:00
--  

什么意思啊?

 

一般都是Table控件绑定到这个表,然后设置其Filter属性就行了。