以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  分页加载的本页合计和本页止累计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189289)

--  作者:采菊东篱下
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2023/11/22 11:34:00
--  
本页合计指已经加载的数据的合计?

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

--  作者:采菊东篱下
--  发布时间:2023/11/22 11:55:00
--  
本页合计就是当前已加载的数据合计,本页止累计是表A后台第一页第一行至e.Form.Controls("TextBox1").Value “/"前数字页数,乘以一页25行的所有金额合计。
--  作者:有点蓝
--  发布时间:2023/11/22 12:04:00
--  
分页加载是怎么做的?按什么列进行分页的?
--  作者:采菊东篱下
--  发布时间:2023/11/22 12:19:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:改墙砖后最低预算.foxdb


--  作者:有点蓝
--  发布时间:2023/11/22 13:46:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:改墙砖后最低预算.zip


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

--  作者:采菊东篱下
--  发布时间:2023/11/22 15:55:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加载显示页面异常.foxdb


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

--  作者:有点蓝
--  发布时间: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

--  作者:有点蓝
--  发布时间:2023/11/22 16:28:00
--  
个人的建议是在窗口里添加2个标签显示合计和累计,不要放到表格里。

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