Foxtable(狐表)用户栏目专家坐堂 → 高效流水账


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

主题:高效流水账

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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
高效流水账  发帖心情 Post By:2021/3/25 15:14:00 [只看该作者]

老师,碰到一个类似高效流水账的问题,因为数据是分页加载,当我后面项目用到的数据,没加载,用Select时,用上一个项目的数据用不了,这种怎么处理呢?

Select Case e.DataCol.Name
    Case
"收入",
"支出"
   
    Dim dr As DataRow
       
Dim drs As List(of DataRow)
        dr = e.
DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") '找出上一行
       
If dr Is Nothing Then '如果没有找到上一行,说明本行就是第一行
            e.
DataRow("余额") = e.DataRow("收入") - e.DataRow("支出")
            dr = e.
DataRow
       
End If
        drs = e.
DataTable.Select("[_SortKey] > = " & dr("_SortKey"), "[_SortKey]")
        For
i As Integer = 1 To drs.Count - 1
'重算余下行的余额
            drs(i)(
"余额") = drs(i-1)("余额") + drs(i)("收入") - drs(i)("支出")
        Next   
End
Select


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110587 积分:562831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 15:24:00 [只看该作者]


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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/3/25 16:24: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("[_Identify] < '" & mr("_Identify") &  "' And [合同编码] = '" &  mr("合同编码") &  "'", "[_Identify] Desc")
        If dr Is Nothing Then
            mr("本年完成产值") = mr("上月完成产值")
            mr("累计完成产值") = mr("本年完成产值")
            mr("剩余产值") = mr("合同金额") + mr("变更金额") - mr("累计完成产值")
            dr = mr
        End If
        drs = e.DataTable.Select("[_Identify] >=' " & dr("_Identify") &  "' And [合同编码] = '" &  dr("合同编码") &  "'", "[_Identify]")
        For  i As  Integer = 1 To drs.Count - 1
            drs(i)("本年完成产值") = drs(i-1)("本年完成产值") + drs(i)("上月完成产值")
            drs(i)("累计完成产值") = drs(i-1)("累计完成产值") + drs(i)("本年完成产值")
            drs(i)("剩余产值") = drs(i)("合同金额") + drs(i)("变更金额") - drs(i)("累计完成产值")
        Next
        If  e.DataCol.Name = "合同编码" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_Identify] < '" & mr("_Identify") &  "' And [合同编码] = '" &  e.OldValue &  "'", "[_Identify] Desc")
            If  dr Is Nothing Then
                dr = e.DataTable.Find("[合同编码] = '" & e.OldValue &  "'", "[_Identify]")
                If dr IsNot Nothing Then
                    mr("本年完成产值") = mr("上月完成产值")
                    mr("累计完成产值") = mr("本年完成产值")
                    mr("剩余产值") = mr("合同金额") + mr("变更金额") - mr("累计完成产值")
                End If
            End If
            If  dr IsNot Nothing Then
                drs = e.DataTable.Select("[_Identify] >=' " & dr("_Identify") &  "' And [合同编码] = '" &  dr("合同编码") &  "'", "[_Identify]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("本年完成产值") = drs(i-1)("本年完成产值") + drs(i)("上月完成产值")
                    drs(i)("累计完成产值") = drs(i-1)("累计完成产值") + drs(i)("本年完成产值")
                    drs(i)("剩余产值") = drs(i)("合同金额") + drs(i)("变更金额") - drs(i)("累计完成产值")
                Next
            End If
        End If
End Select


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110587 积分:562831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 16:30:00 [只看该作者]

看不出什么问题。测试有什么问题?如果计算不正确,上传实例测试一下,同时说明一下计算逻辑

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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/3/25 16:48:00 [只看该作者]

老师,数据结构和效果就这样,我实际数据是分页加载的,有跨年的情况,但是统计本年是指按照上报周期年来统计的。

上报周期的做的年月输入然后合并字符串到上报周期列

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


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110587 积分:562831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 16:54:00 [只看该作者]

无法测试,项目没看到有任何代码,输入3楼代码,提示缺少列。

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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/3/25 16:59:00 [只看该作者]

发的文件里面本月完成产值,应该是上月完成产值,列名错了

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110587 积分:562831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 17:12:00 [只看该作者]

以实例数据来说,那个单元格计算有问题?

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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/3/26 9:52:00 [只看该作者]

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

老师,

1.累计完成产值还是不对;

2.另外还有一个问题,计算本年的时候,逻辑是1月上报上一年12月,2月上报1月,这样逻辑,计算本年完成产值就是按照上报周期的前4位年来统计

2.实际是分页加载数据的;

[此贴子已经被作者于2021/3/26 9:52:31编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2021/3/26 14:21:00 [只看该作者]

老师,请看看改怎么修改啊

 回到顶部
总数 18 1 2 下一页