Foxtable(狐表)用户栏目专家坐堂 → 生产模数插入模具保养


  共有2197人关注过本帖树形打印复制链接

主题:生产模数插入模具保养

帅哥哟,离线,有人找我吗?
edisontsui
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:9516 威望:0 精华:0 注册:2014/12/18 16:12:00
生产模数插入模具保养  发帖心情 Post By: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

如上代码在原来的目的是:在“模具保养”里面查找日期和和模具型号都相同的数据行,然后将“生产模数统计”里面的“生产模数”插入到“模具保养”里面的“本月生产”里面去,后来我不需要比较日期是否相同了,就把与日期有关的代码注释掉了,但是整段代码却不起作用了。请教是哪里的问题?

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/8/20 14:15:00 [只看该作者]

你回复日期部分的代码就有效了?分析代码不应该这样的,你用下面的方法调试一下看看:
http://www.foxtable.com/webhelp/topics/1485.htm

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:9516 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/20 15:20:00 [只看该作者]

是的,恢复日期比较那些代码之后,就有效了。我加了类似 MessageBox.Show(1) 的跟踪语句,结果只会重复显示1和2两个数字,没有其他的警告。

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/8/20 15:32:00 [只看该作者]

既然没有执行,一定是条件部分,就跟踪是那些条件不符合,导致代码不执行了。

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:9516 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By: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就结束前出现过一次。总之,整段代码就是不起作用。去掉注释,就起作用了。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:9516 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/27 17:22:00 [只看该作者]

你给出的上述代码还是无效。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/27 17:41:00 [只看该作者]

上传具体实例说明

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:9516 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/29 14:36:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


这是上述代码涉及到的2个数据表。我还没有建立按钮。请你建立按钮之后测试一下。谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:9516 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/8/29 14:44:00 [只看该作者]

请你不用试了,我找到原因了。

 回到顶部
总数 11 1 2 下一页