以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]DataColChanged 问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83985) |
-- 作者:husl -- 发布时间:2016/4/20 17:16:00 -- [求助]DataColChanged 问题 老师好, 我在表的DataColChanged 里设置了代码,但是当通过自定义项目...打开窗口然后选择内容写入列后,列内容改变之后代码有时候实现不了? 我测试重置列的话又可以实现代码。请问是代码问题还是? 代码如下: If e.DataCol.Name = "库位" Then Dim dr4 As DataRow Dim filter4 As String Dim filter2 As String Dim filter As String = "1=1" If e.DataRow.isnull("品名") = False Then filter &= " and 品名 = \'" & e.DataRow("品名") & "\'" End If If e.DataRow.isnull("批号") = False Then filter &= " and 批号 = \'" & e.DataRow("批号") & "\'" End If filter4 = filter & " and [库位] = \'" & e.DataRow("库位") & "\' and [货权] = \'" & e.DataRow("货权") & "\'" filter2 = filter & " and [库位] = \'" & e.DataRow("库位") & "\' and [货权] = \'" & e.DataRow("货权") & "\' and [日期]=\'" & Date.today & "\'" dr4 = DataTables("总库存表").SQLFind(Filter4 ) Dim Sum1 As Single=DataTables("总库存表").SQLCompute("Sum(昨日结存)", filter4) Dim Sum2 As Single=DataTables("出库明细表").Compute("Sum(出库重量)", filter2) If dr4 IsNot Nothing Then dr4("今日出库")=sum2 dr4.Save End If If dr4 IsNot Nothing And Sum1 <e.DataRow("出库重量") Then Dim drs As List(Of DataRow) = DataTables("入库明细表").Select(Filter2 ) If drs.Count > 0 Then Dim Sum3 As Single= e.DataRow("出库重量")-sum1 Dim str As String = "" For Each dr As DataRow In drs str = str & dr("入库车号") & "|" & sum3 & "+" & dr4("库位") & "|" & sum1 & "-" Next e.DataRow("出库详情") = str.TrimEnd("-") End If ElseIf dr4 IsNot Nothing And Sum1 >=e.DataRow("出库重量") Then \'如果找到 e.DataRow("出库详情") =e.DataRow("出库重量") End If End If |
-- 作者:大红袍 -- 发布时间:2016/4/20 17:19:00 -- 加入msgbox,弹出是否进入执行了代码。 |
-- 作者:husl -- 发布时间:2016/4/21 16:20:00 -- 袍大大。我试了下,如果已经有库位了,然后修改库位可以显示出 msgbox,但是如果是空的然后我写入库位的话就没msgbox |
-- 作者:大红袍 -- 发布时间:2016/4/21 16:31:00 -- sqlFind、sqlCompute 的值,是查询保存的数据。
没有弹出,就是没有查询到对应的数据,满足不了 IF 判断,所以不进入执行代码。 |
-- 作者:husl -- 发布时间:2016/4/21 16:45:00 -- 好的,谢谢袍大大,我再研究下 SQLFIND 内容,明明有的为什么查不到。。看看是不是代码错了。 |
-- 作者:大红袍 -- 发布时间:2016/4/21 16:48:00 -- 1、弹出你的Filter看一看,去你的后台数据库那里,看看有没有对应的数据。
2、加入msgbox,看看执行到哪里就不执行了,然后看那句代码有什么问题。 |
-- 作者:husl -- 发布时间:2016/4/21 17:09:00 -- 谢谢老师。msgbox 内容写什么可以判断代码停止呢? |
-- 作者:大红袍 -- 发布时间:2016/4/21 17:10:00 -- 加入多个msgbox,看执行到哪里就知道啦,不断缩小范围 |
-- 作者:husl -- 发布时间:2016/4/21 17:17:00 -- 原来这样…………好的,谢谢袍大大! |