以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 生产模数插入模具保养 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139732) |
||||
-- 作者:edisontsui -- 发布时间:2019/8/20 13:07:00 -- 生产模数插入模具保养 If User.Group = "行政" Or User.name = "开发者" If CurrentTable.name.contains("模具保养") For Each r As Row In Tables("生产模数统计").rows \' Dim NY As String = r("年") & r("月") \' If NY.length = 5 \' NY = r("年") & "0" & r("月") \' Else \' NY = r("年") & r("月") \' End If If r("模具型号") = "" Else Dim contains As Boolean = False For Each dr As DataRow In DataTables("模具保养").DataRows \' If dr("年月") = NY If dr("模具型号") = r("模具型号") dr("本月生产") = r("生产模数") contains = True Exit For End If \' End If Next If contains = False Then Dim dr1 As DataRow dr1 = DataTables("模具保养").AddNew() dr1("模具型号") = r("模具型号") dr1("本月生产") = r("生产模数") End If End If Next End If End If 如上代码在原来的目的是:在“模具保养”里面查找日期和和模具型号都相同的数据行,然后将“生产模数统计”里面的“生产模数”插入到“模具保养”里面的“本月生产”里面去,后来我不需要比较日期是否相同了,就把与日期有关的代码注释掉了,但是整段代码却不起作用了。请教是哪里的问题?
|
||||
-- 作者:有点酸 -- 发布时间:2019/8/20 14:15:00 -- 你回复日期部分的代码就有效了?分析代码不应该这样的,你用下面的方法调试一下看看: http://www.foxtable.com/webhelp/topics/1485.htm
|
||||
-- 作者:edisontsui -- 发布时间:2019/8/20 15:20:00 -- 是的,恢复日期比较那些代码之后,就有效了。我加了类似 MessageBox.Show(1) 的跟踪语句,结果只会重复显示1和2两个数字,没有其他的警告。 |
||||
-- 作者:有点酸 -- 发布时间:2019/8/20 15:32:00 -- 既然没有执行,一定是条件部分,就跟踪是那些条件不符合,导致代码不执行了。 |
||||
-- 作者:edisontsui -- 发布时间:2019/8/27 10:35:00 -- If User.Group = "行政" Or User.name = "开发者" If CurrentTable.name.contains("模具保养") For Each r As Row In Tables("生产模数统计").rows Dim NY As String = r("年") & r("月") If NY.length = 5 NY = r("年") & "0" & r("月") Else NY = r("年") & r("月") End If If r("模具型号") = "" Else Dim contains As Boolean = False For Each dr As DataRow In DataTables("模具保养").DataRows \' If dr("年月") = NY If dr("模具型号") = r("模具型号") dr("本月生产") = r("生产模数") contains = True Exit For End If MessageBox.Show(1) \' End If Next MessageBox.Show(2) If contains = False Then Dim dr1 As DataRow dr1 = DataTables("模具保养").AddNew() dr1("模具型号") = r("模具型号") dr1("本月生产") = r("生产模数") End If MessageBox.Show(3) End If MessageBox.Show(4) Next MessageBox.Show(5) End If MessageBox.Show(6) End If 上面的代码,我注释掉了2行,增加了6行提示代码,运行结果:1字出现的次数最多,其次是数字2、3、4,数字5和6就结束前出现过一次。总之,整段代码就是不起作用。去掉注释,就起作用了。
|
||||
-- 作者:有点蓝 -- 发布时间:2019/8/27 10:45:00 -- 一个查找赋值的过程而已,不要那么麻烦吧 If User.Group = "行政" Or User.name = "开发者" If CurrentTable.name.contains("模具保养") For Each r As Row In Tables("生产模数统计").rows If r.isnull("模具型号") Then Continue For Dim dr As DataRow = DataTables("模具保养").find("模具型号=\'" & r("模具型号") & "\'") If dr Is Nothing Then dr = DataTables("模具保养").AddNew() dr("模具型号") = r("模具型号") End If dr("本月生产") = r("生产模数") Next End If End If |
||||
-- 作者:edisontsui -- 发布时间:2019/8/27 17:22:00 -- 你给出的上述代码还是无效。 |
||||
-- 作者:有点蓝 -- 发布时间:2019/8/27 17:41:00 -- 上传具体实例说明 |
||||
-- 作者:edisontsui -- 发布时间:2019/8/29 14:36:00 --
这是上述代码涉及到的2个数据表。我还没有建立按钮。请你建立按钮之后测试一下。谢谢。
|
||||
-- 作者:edisontsui -- 发布时间:2019/8/29 14:44:00 -- 请你不用试了,我找到原因了。 |