Foxtable(狐表)用户栏目专家坐堂 → 列累加


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

主题:列累加

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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/17 21:06:00 [显示全部帖子]

师傅你好:

本班合计列只显示0


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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/18 7:26:00 [显示全部帖子]

各位师傅好:烦请帮助整理一下,谢谢!

Select Case e.DataCol.Name
    Case "组长","班次"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [组长] = '" & mr("组长") & "'And 班次 ='" & mr("班次") & "' And 日期 = # " & mr("日期") & "#", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("本班合计") = mr("应加工数")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [组长] = '" & dr("组长") & "'And 班次 ='" & dr("班次") & "' And 日期 = # " & dr("日期") & "#", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("本班合计") = drs(i-1)("本班合计") + drs(i)("应加工数")
        Next
        If e.DataCol.Name = "班次" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [组长] = '" & e.OldValue & "'And 班次 ='" & e.OldValue & "' And 日期 = # " & e.OldValue & "#", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[组长] = '" & e.OldValue & "' And 班次 ='" & e.OldValue & "' And 日期 = # " & e.OldValue & "#", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("本班合计") = dr("应加工数")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [组长] = '" & dr("组长") & "'And 班次 ='" & dr("班次") & "' And 日期 = # " & dr("日期") & "#", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("本班合计") = drs(i-1)("本班合计") + drs(i)("应加工数")
                Next
            End If
        End If
End Select


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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/18 10:15:00 [显示全部帖子]

师傅你好:是铁盘组装表,要求在同一个日期、同一个组长、同一个班次,对应加工数进行累加,这三个条件只要改娈一项,再开始累加,也就是间隔性累加,谢谢!

 

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


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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/18 11:02:00 [显示全部帖子]

师傅你好:我是一个初学者,编程方面的基础比较薄弱,只能边使用边学习,眼前还是需要师傅把要改语句写出来,在此表示万分的感谢。

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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/18 14:00:00 [显示全部帖子]

师傅你好:为什么输入几行后都要列重置,本班合计数才能显示数据,是不是代码有误,请师傅帮助调整一下,谢谢!

1、Datacolchaned:

Select Case e.DataCol.Name
    Case "组长","班次","日期"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [组长] = '" & mr("组长") & "'And 班次 ='" & mr("班次") & "' And 日期 = # " & mr("日期") & "#", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("本班合计") = mr("应加工数")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [组长] = '" & dr("组长") & "'And 班次 ='" & dr("班次") & "' And 日期 = # " & dr("日期") & "#", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("本班合计") = drs(i-1)("本班合计") + drs(i)("应加工数")
        Next
        If e.DataCol.Name = "组长" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [组长] = '" & e.OldValue & "'And 班次 ='" & e.OldValue & "' And 日期 = # " & e.OldValue & "#", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[组长] = '" & e.OldValue & "' And 班次 ='" & e.OldValue & "' And 日期 = # " & e.OldValue & "#", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("本班合计") = dr("应加工数")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [组长] = '" & dr("组长") & "'And 班次 ='" & dr("班次") & "' And 日期 = # " & dr("日期") & "#", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("本班合计") = drs(i-1)("本班合计") + drs(i)("应加工数")
                Next
            End If
        End If
End Select

2、AftarMoveRoW:

Dim Key As Decimal
Dim Index As Integer
Dim Filter As String
Dim r As Row
Index = Math.Min(e.OldIndex, e.NewIndex)
Key = e.Table.Rows(Index)("_SortKey")
r = e.Table.Rows(e.NewIndex)
Filter = "[_SortKey] >= " & Key & " And [日期] = '" & r("日期") & " And [组长] = '" & r("组长") & " And [班次] = '" & r("班次") & "'"
e.Table.DataTable.DataCols("应加工数").RaiseDataColChanged(Filter)

3、DataRowdELeting:

e.DataRow("应加工数") = 0


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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/18 16:44:00 [显示全部帖子]

师傅你好:

是的,新增一行,应加工数输入数据后,本班合计列是0,重置列后,数字显示,不知是什么原因。谢谢!


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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/19 9:07:00 [显示全部帖子]

各位师傅你们好:

在狐表与易表之间,同样一个问题,狐表代码这么长,还达不到预期效果,而易表只用了短短的公式就实现了(易表公式:SumFor(GridName,"应加工数","日期", "=" ,[日期],"带班组长", "=" ,[带班组长],"班次", "=" ,[班次],1,Row)),这就明显的对比。


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


加好友 发短信
等级:童狐 帖子:299 积分:1939 威望:0 精华:0 注册:2011/3/9 18:17:00
  发帖心情 Post By:2011/12/19 15:43:00 [显示全部帖子]

各位师傅好:

对于列累加,25楼代码需要重置列后显示本班合计列累加数,能不能直接显示,不要重置,请高手帮忙,谢谢!


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