以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎么更人性化的取值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41026)

--  作者:yangwenghd
--  发布时间:2013/10/9 15:17:00
--  怎么更人性化的取值
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16 (1).table


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131009151533.png
图片点击可在新窗口打开查看
 
事件代码:Select Case e.DataCol.Name
    Case "附表编号列","合格数量","结账数量"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [附表编号列] = \'" & e.DataRow("附表编号列") & "\'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] <= " & dr("_SortKey") & " And [附表编号列] = \'" & dr("附表编号列") & "\'"
            Dim Val1 As Double = e.DataTable.Compute("Sum(合格数量)",Filter)
            Dim Val2 As Double = e.DataTable.Compute("Sum(结账数量)",Filter)
            dr("未结数量") = Val1 - Val2
        Next
        If e.DataCol.Name = "附表编号列" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [附表编号列] = \'" & e.OldValue & "\'"
            drs = e.DataTable.Select(Filter)
            For Each dr As DataRow In drs
                Filter = "[_SortKey] <= " & dr("_SortKey") & " And [附表编号列] = \'" & dr("附表编号列") & "\'"
                Dim Val1 As Double = e.DataTable.Compute("Sum(合格数量)",Filter)
                Dim Val2 As Double = e.DataTable.Compute("Sum(结账数量)",Filter)
                dr("未结数量") = Val1 - Val2
            Next
        End If
End Select
For Each r As Row In Tables("表A").Rows
    If r("未结数量") = r("合格数量") Then
        r("结账情况")="未结账"
    ElseIf r("未结数量") < r("合格数量") And  r("未结数量")>0 Then
        r("结账情况")="结账中"
ElseIf r("未结数量")=0
        r("结账情况")="已结账"
    End If
Next


但是这个功能只能在第一排实现 有没办法拍都实现  未结数量在不同阶段时 结账情况就跟着发生变化

[此贴子已经被作者于2013-10-9 15:33:31编辑过]

--  作者:Bin
--  发布时间:2013/10/9 15:18:00
--  
大哥,你这个问题也太抽象了吧.  有具体的问题,才有具体的解答呀.
--  作者:yangwenghd
--  发布时间:2013/10/9 15:23:00
--  
不好意思 兄弟 又是你在帮我!感谢感谢 !
--  作者:Bin
--  发布时间:2013/10/9 15:34:00
--  
半天没理清楚你想做什么,你看看是否符合你要求吧

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



--  作者:yangwenghd
--  发布时间:2013/10/9 15:51:00
--  
感谢兄弟! 是这样的 我语言交流不是很好 感谢你很赖心!
  发的那个文件相信你也看了,他的功能是个流水账   合格数量-结帐数量=未结数量  
后面还有一个设置就是 当未接数量=合格数量,结账情况显示 未结账
                             当未接数量小于合格数量切等于0  结账情况显示 结账中
                             当未接数量=0的时候显示  已结账
但是这个功能只能在第一行体现  后面的几行就失去了这个功能  
我想怎么让后面的几行也有这个功能  
 兄弟 谢谢你怎么赖心 我的QQ294068455  如果不方便我也可以加你 感谢不进
[此贴子已经被作者于2013-10-9 15:55:49编辑过]

--  作者:Bin
--  发布时间:2013/10/9 16:01:00
--  
你在你原来的基础下,加上我这个代码吧,就OK了.
--  作者:yangwenghd
--  发布时间:2013/10/9 16:14:00
--  
感谢 座等哦 兄弟
--  作者:lsy
--  发布时间:2013/10/9 16:16:00
--  

楼主的流水账,应该参照区分产品的

照葫芦画瓢,不需要自己发挥。

然后参照Bin的代码。


--  作者:yangwenghd
--  发布时间:2013/10/9 16:21:00
--  
 对 流水账  但是二排的结账情况为什么不是和第一排的一样呢? 兄弟 帮看看 


--  作者:有点甜
--  发布时间:2013/10/9 20:26:00
--  
 流水账代码,在加上下面的代码就行了。

Dim max As Double = DataTables("表A").Compute("max(合格数量)", "附表编号列=\'" & e.DataRow("附表编号列") & "\'")
For Each r As DataRow In DataTables("表A").Select("附表编号列=\'" & e.DataRow("附表编号列") & "\'")
    If r("未结数量")=0 Then
        r("结账情况")="已结账"
    ElseIf r("未结数量") < max AndAlso r("未结数量")> 0  Then
        r("结账情况")="结账中"
    ElseIf r("未结数量") = max Then
        r("结账情况")="未结账"
    End If
Next