以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 分页加载的总计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152535)

--  作者:81538475
--  发布时间:2020/7/14 15:18:00
--  [求助] 分页加载的总计问题

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200714151225.jpg
图片点击可在新窗口打开查看
如何在分页下面增加一个 计算所有分页产品的 数量汇总行呢。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:有点蓝
--  发布时间:2020/7/14 15:21:00
--  
参考:http://www.foxtable.com/webhelp/topics/2748.htm


--  作者:81538475
--  发布时间:2020/7/14 16:04:00
--  
这个是当前数据的合计列,我是希望统计所有页面的总和,然后显示在下面
--  作者:有点蓝
--  发布时间:2020/7/14 16:11:00
--  
有点麻烦,参考:

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=45520&skin=0
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=110420&authorid=0&page=1&star=1
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=130456&page=3

--  作者:81538475
--  发布时间:2020/7/14 17:36:00
--  
怎么把这个合计诺下去呢。
图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

--  作者:81538475
--  发布时间:2020/7/14 17:53:00
--  
上面那个问题解决了。现在另外一个问题,我拖动下面的活动条的时候,合计列上面的数字回跟着跑
然后我之前有段代码,功能是点击某个单元格之后右侧会弹出一个窗口。现在窗口感觉被卡住了
[此贴子已经被作者于2020/7/14 17:53:34编辑过]

--  作者:81538475
--  发布时间:2020/7/14 18:02:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看
好几个窗口显示都有问题了。切换导其他表格,又是正常的。
图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

--  作者:81538475
--  发布时间:2020/7/14 18:04:00
--  
Dim filter As String = DataTables("xmfp").LoadFilter
If filter = "" Then
    Return ""
End If
Dim sender As object = Args(0)
Dim e As object = Args(1)
If sender.Name = "" Then Return Nothing  \'没有设置好Table 和底层的关联
If Tables.Contains(sender.Name) = False Then Return Nothing  \'不存在就退出
Dim tb As Table = Tables(sender.Name)
If tb.GrandTotal  Then    \'如果处于合计模式
    \'If sender.Rows(sender.Rows.count -1).Top < sender.Height - sender.rows(sender.rows.count -1).Height * 2 Then  \'如果原合计行可视
    \'If sender.Controls.ContainsKey("Myhuizong")  Then  \'删除合计行控件
    \'    sender.Controls.RemoveByKey("Myhuizong")
    \'End If
    \'Else
    Dim hg As Integer = sender.rows(sender.rows.count -1).Height  \'控件高
    If hg = -1 Then
        hg = sender.rows(sender.rows.count -1).HeightDisplay
    End If
    Dim gh = sender.Height - 1
    If sender.ScrollBarsVisible = 1 OrElse sender.ScrollBarsVisible = 3  Then  \'显示了水平滚动条
        gh = gh - 19
    End If
    If sender.Controls.ContainsKey("Myhuizong") = False Then  \'不存在汇总控件,则添加
        Dim huizong As new C1.Win.C1FlexGrid.C1FlexGrid
        With huizong
            .name = "Myhuizong"
            .BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None \'无边框
            .Cols.Count = sender.Cols.Count
            .rows.count = 2
            .Rows(0).Height = 0    \'隐藏标题行
            .Enabled = False    \'不能使用控件
        End With
        sender.Controls.add(huizong)   \'加入控件
    End If
    Dim hui As C1.Win.C1FlexGrid.C1FlexGrid = sender.Controls("Myhuizong")
    If sender.ScrollBarsVisible = 0 OrElse sender.ScrollBarsVisible = 2  Then  \'显示了垂直滚动条
        hui.ScrollBars = 2
    Else
        hui.ScrollBars = 0
    End If
    With hui         \'调整位置
        .left = 0
        If sender.Rows(sender.Rows.count -1).Top < sender.Height - sender.rows(sender.rows.count -1).Height * 2 Then
            .Top = sender.Rows(sender.Rows.count -1).Top  \'sender.GetCellRect(sender.Rows.count-1, 1).y
        Else
            .top = gh - hg - 1
        End If
        .width = sender.width -19
        .Height = 100 \'hg + 2
        .Rows(1).Height = 27 \'hg
    End With
    Dim sLightBlue As C1.Win.C1FlexGrid.CellStyle = hui.Styles.Add("LightBlue")
    sLightBlue.BackColor = Drawing.Color.PaleGreen
    Dim i As Integer
    For i = 0 To  sender.Cols.count -1
        If sender.Cols(i).width = -1 Then    \'同步列宽
            hui.Cols(i).width = sender.Cols.DefaultSize
        Else
            hui.Cols(i).width = sender.Cols(i).width
        End If
        hui.Cols(i).Style = sender.Cols(i).Style    \'同步列样式
        If i > 0 Then hui.SetCellStyle(1,i,sLightBlue)
        hui.Cols(i).Visible = sender.Cols(i).Visible   \'同步隐藏列
    Next
    hui.Cols.Frozen = sender.Cols.Frozen   \'同步冻结列
    hui.ScrollPosition = sender.ScrollPosition   \'同步水平滚动
    hui(1,1) = "合计"
    For i = 2  To  sender.Cols.count -1
        If tb.Cols(i-1).GrandTotal Then
            hui(1,i) = sender.Aggregate(C1.Win.C1FlexGrid.AggregateEnum.Sum,0,i,sender.Rows.count-2,i,1)
        Else
            hui(1,i) = Nothing
        End If
    Next
    
    \'hui.rows(1)(sender.cols("客户ID").Index) = "我想怎么显示就怎么显示"
    
    Dim s As Double = DataTables("xmfp").Compute("sum(当月人天)",filter)
    hui.rows(1)(sender.cols("当月人天").Index) = s
    sender.Cols(0).width = 15
    hui.Cols(0).width = 15
    \'End If
Else   \'检查并删除控件
    If sender.Controls.ContainsKey("Myhuizong")  Then  \'删除控件
        sender.Controls.RemoveByKey("Myhuizong")
    End If
End If

--  作者:有点蓝
--  发布时间:2020/7/14 20:07:00
--  
请上传实例测试