以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 分页加载的本页合计和本页止累计 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189289) |
||||
-- 作者:采菊东篱下 -- 发布时间:2023/11/22 11:24:00 -- 分页加载的本页合计和本页止累计 这代码弹窗显示的数据都没错,可窗口里本页合计和本页止累计行的金额列都没显,应如何把结果输到本里。 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 --
|
||||
-- 作者:有点蓝 -- 发布时间:2023/11/22 13:46:00 --
上一页下一页等按钮参考窗口afterload事件里的改法
|
||||
-- 作者:采菊东篱下 -- 发布时间:2023/11/22 15:55:00 --
此主题相关图片如下:微信图片_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个标签显示合计和累计,不要放到表格里。 这样动态的删除添加不是合理的做法,可能会导致一些功能行为发生变化
|