以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- e.Cancel = True. 这行怎么改成不添加行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86517) |
||||
-- 作者:jinzhengbe -- 发布时间:2016/6/19 14:10:00 -- e.Cancel = True. 这行怎么改成不添加行 Dim dr As DataRow Dim Filter As String Filter = "[name] = \'" & e.DataRow("name") & "\' And [leiji] = \'" & e.DataRow("leiji") & "\'" dr = DataTables("minxi").Find(Filter ) \'在行政区域表查找所输入省市和县市的行 If dr IsNot Nothing Then \'如果找到 \'将找到行的区号?邮编内容填入到正在输入的行中. e.DataRow("cb") = dr("price") e.DataRow("pt") = dr("price1") e.DataRow("vip") = dr("vip") e.DataRow("vvip") = dr("vvip") e.DataRow("cvp") = dr("cvp") e.DataRow("used") =1 e.DataRow("lirun")=e.DataRow("price")-e.DataRow("cb") e.DataRow("yu")=dr("leiji") - e.DataRow("leiji") Else If dr Is Nothing Then e.Cancel = True msgbox("无法出库,库存不足") End If e.Cancel = True. 这行怎么改成不添加行(如果满足dr is nothing时) 现在执行到这个位置后,会一直添加行。 然后一直提示库存不足
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/6/19 21:56:00 -- 你上面的代码,有增加行吗? |
||||
-- 作者:大红袍 -- 发布时间:2016/6/19 23:42:00 -- 代码你写到什么事件?增加行的代码写到哪里了啊? |
||||
-- 作者:jinzhengbe -- 发布时间:2016/6/20 9:48:00 -- 有的啊。 增加一行,提示一次没有库存 事件是datarowadded
[此贴子已经被作者于2016/6/20 9:51:34编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/6/20 9:58:00 -- 写到 DataRowAdding事件。
|
||||
-- 作者:jinzhengbe -- 发布时间:2016/6/20 19:55:00 -- 重新看了一下 应该是下面这段代码的问题 问题出在 weixin窗口的,+号按钮, 输入数量后 如果没有库存就会一直提示 没有库存 下面的代码是在weixin表的datacolchanged
If e.DataCol.name = "shuliang" Then If e.DataRow("shuliang") Then Dim t As Table = Tables("weixindanhao.weixin.weixinminxi") For i As Integer = t.rows.count-1 To 0 Step -1 t.rows(i).delete Next Dim cc As Integer =e.DataRow("shuliang") Dim r As Row = Tables("weixinminxi").Current Dim r1 As Row = Tables("minxi").Current Dim rks1 As Double = DataTables("minxi").sqlCompute("max(leiji)", "name = \'" & r1("name") & "\'") Dim cks As Double = DataTables("weixinminxi").sqlCompute("max(leiji)", "name = \'" & r("name") & "\'") 想在这个部分比较 minxi表name的最大 leiji值 是否大于weixinminxi表相同name 的最大lieji值 如果 满足下面 If rks1 - cks >=0 Then t.addnew(cc) t.save() Else If rks1 -cks <0 Then e.Cancel = True msgbox("无法出库,库存不足") End If End If End If End If [此贴子已经被作者于2016/6/20 19:57:43编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/6/20 20:35:00 -- If e.DataCol.name = "shuliang" Then Dim t As Table = Tables("weixindanhao.weixin.weixinminxi") Dim cc As Integer = e.DataRow("shuliang") Dim rks1 As Double = DataTables("minxi").sqlCompute("max(leiji)", "name = \'" & e.DataRow("name") & "\'") Dim cks As Double = DataTables("weixinminxi").sqlCompute("max(leiji)", "name = \'" & e.DataRow("name") & "\'") If rks1 - cks >=0 Then For i As Integer = t.rows.count-1 To 0 Step -1 t.rows(i).delete Next t.addnew(cc) t.save() Else e.Cancel = True msgbox("无法出库,库存不足") End If End If |
||||
-- 作者:jinzhengbe -- 发布时间:2016/6/20 20:44:00 -- 可以了 非常感谢 1!!!!! [此贴子已经被作者于2016/6/20 21:04:04编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/6/20 21:04:00 --
|
||||
-- 作者:jinzhengbe -- 发布时间:2016/6/20 21:09:00 -- 不好意思啊 重新测试了一下 发现,如果修改数量的话, 代码测试成功 如果第一次输入数量的话 还是一直提示(没有库存) 直到 添加的数量 行结束为止,加入添加了10行, 就会提示10次,(没有库存的情况下) |