Foxtable(狐表)用户栏目专家坐堂 → 分页加载的本页合计和本页止累计


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

主题:分页加载的本页合计和本页止累计

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
分页加载的本页合计和本页止累计  发帖心情 Post By:2023/11/22 11:24:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20231122110855.png
图片点击可在新窗口打开查看

这代码弹窗显示的数据都没错,可窗口里本页合计和本页止累计行的金额列都没显,应如何把结果输到本里。
Dim wbl As WinForm.Table = e.Form.Controls("Table1")
Dim tbl As Table = wbl.Table
With tbl
    .DataTable.DeleteFor("[分类] = '本页合计'")
    .DataTable.DeleteFor("[分类] = '本页止累计'")
    Dim r As Row
    Dim s As Double = 0
    r = .Rows.AddNew()
    r("分类") = "本页合计"
    Dim dss As List(Of DataRow) = DataTables("表A").Select("[项目] Is Not Null")
    If dss IsNot Nothing Then
        For Each ds As DataRow In dss
            s = s + ds("金额")
        Next
        MessageBox.Show(s)
        r("金额") = s
        r.Save()
    End If
    r = tbl.Rows.AddNew()
    Dim s1 As Double = 0
    r("分类") = "本页止累计"
    Dim Tel As String = e.Form.Controls("TextBox1").Value
    Dim Parts() As String = Tel.Split("/")
    Dim a As Double = CDbl(Parts(0)) * 25 - 1
    Dim drs As List(Of DataRow) = DataTables("表A").SQLSelect("[项目] Is Not Null")
    If drs IsNot Nothing Then
        For i1 As Integer = 0 To a
            s1 = s1 + drs(i1)("金额")
        Next
        MessageBox.Show(s1)
        r("金额") = s1
        r.Save()
    End If
End With
[此贴子已经被作者于2023/11/22 11:57:11编辑过]

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/22 11:34:00 [只看该作者]

本页合计指已经加载的数据的合计?

本页止累计又是怎么个止法,截止什么?某个日期?分页加载是怎么做的?按什么列进行分页的?

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2023/11/22 11:55:00 [只看该作者]

本页合计就是当前已加载的数据合计,本页止累计是表A后台第一页第一行至e.Form.Controls("TextBox1").Value “/"前数字页数,乘以一页25行的所有金额合计。

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/22 12:04:00 [只看该作者]

分页加载是怎么做的?按什么列进行分页的?

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2023/11/22 12:19:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:改墙砖后最低预算.foxdb


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/22 13:46:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:改墙砖后最低预算.zip


上一页下一页等按钮参考窗口afterload事件里的改法

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2023/11/22 15:55:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加载显示页面异常.foxdb


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20231122154533.png
图片点击可在新窗口打开查看
按上一页,下一页按钮后e.Form.Controls("TextBox1").Value显示的数字异常,你在上一页、下一页多按几下就见了,而且第一页窗口的表中显示的行数在逐次递减。

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/22 16:27:00 [只看该作者]

因为代码里删除了2行,但是没有保存,然后又新增了2行,导致行数发生了变化。改为在加载之前删除并保存

With DataTables("表A")
    .DeleteFor("[分类] = '本页合计'")
    .DeleteFor("[分类] = '本页止累计'")
    .Save
    If .TotalPages > 0 And .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage + 1
        .LoadTop = 25 '每页30行
        .LoadOver = "_Identify"
        .LoadReverse = True
        .Load()
        e.Form.Controls("TextBox1").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/22 16:28:00 [只看该作者]

个人的建议是在窗口里添加2个标签显示合计和累计,不要放到表格里。

这样动态的删除添加不是合理的做法,可能会导致一些功能行为发生变化

 回到顶部