Foxtable(狐表)用户栏目专家坐堂 → 帮忙看下代码吧?


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

主题:帮忙看下代码吧?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/30 12:35:00 [显示全部帖子]

 不知道你想实现什么,也不知道你报什么错误……估计是这句代码写错了。

If math.max(dx("粗车计划完成日"),dx("钳工热焊计划完成日"),dx("外协计划完成日"),dx("精车计划完成日")) = "无" Then

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/30 15:17:00 [显示全部帖子]

 把你这个表的数据上传上来。 看不懂你代码的逻辑。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/30 15:25:00 [显示全部帖子]

 数据源呢?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/30 15:41:00 [显示全部帖子]

 If math.max(dx("粗车计划完成日"),dx("钳工热焊计划完成日"),dx("外协计划完成日"),dx("精车计划完成日")) = "无" Then

这句代码你想实现的内容是什么?怎么处理日期是 无 的情况?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/30 16:21:00 [显示全部帖子]

 改好了你的逻辑,不过不知道怎么去测试。看着头晕。

Select Case e.DataCol.name
    Case "工艺状态","粗车计划完成日","钳工热焊计划完成日","外协计划完成日","精车计划完成日","采购计划完成日","设计图计划完成日"
        Dim dr As DataRow = e.DataRow
        If dr("工艺状态") = "原材料" OrElse dr("工艺状态") = "外购毛坯" Then
            Dim dx As Row = Tables("生产明细表").Filter = "[项目编号] = '" & Tables("生产项目表").current("项目编号")& "'"
            If dx("粗车计划完成日") = "无" AndAlso dx("钳工热焊计划完成日") = "无" AndAlso dx("外协计划完成日") = "无" AndAlso dx("精车计划完成日") = "无" Then
                dr("装配入库计划开始日") = "缺值"
            Else
                Dim max As Date = IIF(dx("采购计划完成日") = "无", "1900/1/1", dx("采购计划完成日"))
                Dim temp As Date = IIF(dx("钳工热焊计划完成日") = "无", "1900/1/1", dx("钳工热焊计划完成日"))
                If temp > max Then max = temp
                temp = IIF(dx("采购计划完成日") = "无", "1900/1/1", dx("采购计划完成日"))
                If temp > max Then max = temp
                temp = IIF(dx("精车计划完成日") = "无", "1900/1/1", dx("精车计划完成日"))
                If temp > max Then max = temp
                dr("装配入库计划开始日") = max
            End If
        Else
            If dr("工艺状态") = "外购成品" OrElse dr("工艺状态") = "库存成品" Then
                dr("装配入库计划开始日") = dr("设计图计划完成日")
            End If
        End If
End Select
[此贴子已经被作者于2012-11-30 16:21:28编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/7 13:08:00 [显示全部帖子]

 建议实用日期类型,然后,无的,就留空。这样好判断。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/7 14:16:00 [显示全部帖子]

 不用日期列本身就不合理的。这样试试。

Select Case e.DataCol.name
    Case "工艺状态","粗车计划完成日","钳工热焊计划完成日","外协计划完成日","精车计划完成日","采购计划完成日","设计图计划完成日"
        Dim dr As DataRow = e.DataRow
        If dr("工艺状态") = "原材料" OrElse dr("工艺状态") = "外购毛坯" Then
            Dim dx As Row = Tables("生产明细表").Filter = "[项目编号] = '" & Tables("生产项目表").current("项目编号")& "'"

            Dim colnames() As String = {"钳工热焊计划完成日", "钳工热焊计划完成日", "钳工热焊计划完成日", "钳工热焊计划完成日"}   '加入你的列名

            Dim max As Date = "1900/1/1"
            For Each colname As String In colnames
                If dx(colname) <> "无" Then
                    Dim temp As Date = dx(colname)
                    If temp > max Then max = temp
                End If
            Next

            If max = "1900/1/1" Then
                dr("装配入库计划开始日") = "缺值"
            Else
                dr("装配入库计划开始日") = max
            End If
        Else
            If dr("工艺状态") = "外购成品" OrElse dr("工艺状态") = "库存成品" Then
                dr("装配入库计划开始日") = dr("设计图计划完成日")
            End If
        End If
End Select
[此贴子已经被作者于2012-12-7 14:15:56编辑过]

 回到顶部