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


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

主题:帮忙看下代码吧?

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/11/30 15:59:00 [只看该作者]

dx("粗车计划完成日"),dx("钳工热焊计划完成日"),dx("外协计划完成日"),dx("精车计划完成日") 根据前面写的判断 如果这些列里没日期 就会显示“无",而这句代码的意思是 如果都显示”无“ then

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/11/30 16:51:00 [只看该作者]

图片点击可在新窗口打开查看等我回去测试下,看着却是挺疼的~~其实这个在excel里 用max函数就可以实现的……

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/12/7 13:00:00 [只看该作者]

谢谢lin_hailun帮忙(抱歉前几天人不在)但这样判断貌似没判断全,Case "工艺状态","粗车计划完成日","钳工热焊计划完成日","外协计划完成日","精车计划完成日","采购计划完成日","设计图计划完成日" 这些列都是 string,所以还要转换~有没有更好的方法来实现 excel里面的max 函数?

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


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

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

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


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2012/12/7 13:30:00 [只看该作者]

有木有其他办法了 亲~

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
总数 17 上一页 1 2