Foxtable(狐表)用户栏目专家坐堂 → 按钮代码求助(C版请进,又出问题了)


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

主题:按钮代码求助(C版请进,又出问题了)

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 12:25:00 [显示全部帖子]

其它没看懂。

Dim dr As DataRow = e.DataRow
Dim pr As DataRow = dr.GetParentrow("表A")
if dr("工序号") = "1" Then
    dr("工序完工日期") = pr("到料日期").AddDays(dr("工序天数"))
End If

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 12:54:00 [显示全部帖子]

以下是引用wqc360在2009-12-19 12:44:00的发言:

只算出了工序号=1的行,工序天数应要用累加的。如工序号=1时,工序天数=工序天数
                                                                            =2时,应累加上工序号为1的天数
                                                                            =3时,应累加工序号为1和2的天数
要不做一个过度列,把天数累加起来,如工序号1=1,2=1+2,3=1+2+3————


过度列不没必要的,关键是搞不表你的问题。
你的示例累加的天数我看不懂呀。


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 13:07:00 [显示全部帖子]

2009-12-18 加 2 = 2009-12-20 这可以理解。

2009-12-18 加 2 加 1.4 = 2009-12-23
2009-12-18 加 2 加 1.4 加 1.2 = 2009-12-25
2009-12-18 加 2 加 1.4 加 1.2 加 1.3 = 2009-12-30
上面三项叫人怎么理解的了?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 16:30:00 [显示全部帖子]

直接这种方式就行吧?

Dim dr As DataRow = e.DataRow
Dim Sum As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] <= " & dr("工序号"))
Dim pr As DataRow = dr.GetParentrow("表A")
dr("工序完工日期") = pr("到料日期").AddDays(Sum)

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 16:51:00 [显示全部帖子]

你加上下面这段看看,加哪你自己看,我没搞清楚你的问题。

pr("计划周期")/pr("合计天数")

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 16:52:00 [显示全部帖子]

是不是这样?

Dim dr As DataRow = e.DataRow
Dim Sum As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] <= " & dr("工序号"))
Dim pr As DataRow = dr.GetParentrow("表A")
dr("工序完工日期") = pr("到料日期").AddDays(Sum * (pr("计划周期")/pr("合计天数")))
[此贴子已经被作者于2009-12-19 16:53:56编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 17:18:00 [显示全部帖子]

这应该很简单吧。

Dim dr As DataRow = e.DataRow
Dim Sum As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] <= " & dr("工序号"))
Dim pr As DataRow = dr.GetParentrow("表A")
dr("工序完工日期") = pr("到料日期").AddDays(Sum * (pr("计划周期")/pr("合计天数")))
if dr.IsNull("工序完工日期") And dr.IsNull("工序天数") Then
    dr("工序开工日期") = Nothing
Else
    dr("工序开工日期") = dr("工序完工日期").AddDays(-dr("工序天数"))
End If

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/19 17:19:00 [显示全部帖子]

改一下。

Dim dr As DataRow = e.DataRow
Dim Sum As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] <= " & dr("工序号"))
Dim pr As DataRow = dr.GetParentrow("表A")
dr("工序完工日期") = pr("到料日期").AddDays(Sum * (pr("计划周期")/pr("合计天数")))
if dr.IsNull("工序完工日期") OrElse dr.IsNull("工序天数") Then
    dr("工序开工日期") = Nothing
Else
    dr("工序开工日期") = dr("工序完工日期").AddDays(-dr("工序天数"))
End If

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/24 15:58:00 [显示全部帖子]

呵呵,你这样搞不出错才怪呢。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/12/24 16:01:00 [显示全部帖子]

这样试试:

if e.DataCol.Name = "工序天数"  OrElse e.DataCol.Name = "工序号" Then
    Dim dr As DataRow = e.DataRow
    if dr.IsNull("图号") OrElse dr.IsNull("名称") OrElse dr.IsNull("订单号") OrElse dr.IsNull("工序号") OrElse dr.IsNull("工序天数") Then
        dr("工序完工日期") = Nothing
        dr("工序开工日期") = Nothing
    Else
        Dim Sum As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] <= " & dr("工序号"))
        Dim Sum1 As Double = Tables("表B").Compute("Sum(工序天数)","[图号] = '" & dr("图号") & "' And [名称] = '" & dr("名称") & "' And [订单号] = '" & dr("订单号") & "' And [工序号] >= " & dr("工序号"))
        Dim pr As DataRow = dr.GetParentrow("表A")
        if pr IsNot Nothing Then
            dr("工序完工日期") = pr("到料日期").AddDays(Sum * (pr("计划周期")/pr("合计天数")))
            dr("工序开工日期") = pr("计划完工").AddDays(-Sum1 * (pr("计划周期")/pr("合计天数"))+1)
        Else
            dr("工序完工日期") = Nothing
            dr("工序开工日期") = Nothing
        End If
    End If
End If

 回到顶部
总数 21 1 2 3 下一页