以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  合计行始终可见新思路及遇到的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=42090)

--  作者:jnletao
--  发布时间:2013/11/4 10:23:00
--  合计行始终可见新思路及遇到的问题
看了程版提供的第二个例了,我引伸思路换了种方式,用e.Table.BottomVisibleRow 代替了e.Table.grid.ScrollPosition,
这种方法的好处在于调整行高不会影响合计显示。
\'Dim py As Integer = e.Table.grid.ScrollPosition.y
\'Dim gh As Double = e.Table.grid.height
\'py = (-py + gh) / 20 - 2

Dim py As Integer = e.Table.BottomVisibleRow

If e.Row.Index = py Then
e.Style = "样式1"
Select Case e.Col.Name
Case "语文"
e.Text = e.Table.Aggregate(AggregateEnum.Sum, 0, e.Col.Index, e.Table.Rows.Count - 1, e.Col.Index)
Case "数学"
e.Text = e.Table.Aggregate(AggregateEnum.Sum, 0, e.Col.Index, e.Table.Rows.Count - 1, e.Col.Index)
Case Else
e.Text = "待定" & py
End Select
End If

现在遇到了部分问题,见截图。求大能再优化下

此主题相关图片如下:eeeeeee.gif
按此在新窗口浏览图片
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:合计显示在底部例子2精典.table



--  作者:jnletao
--  发布时间:2013/11/4 10:44:00
--  
图片点击可在新窗口打开查看
--  作者:rjh4078
--  发布时间:2013/11/4 11:56:00
--  
强顶  这个思路不错 符合实际应用场景
--  作者:lihe60
--  发布时间:2013/11/4 12:07:00
--  

Dim py As Integer = e.Table.BottomVisibleRow-1

 

 这样改一下。


--  作者:jnletao
--  发布时间:2013/11/4 13:22:00
--  
以下是引用lihe60在2013-11-4 12:07:00的发言:

Dim py As Integer = e.Table.BottomVisibleRow-1

 

 这样改一下。

试过了,不过这样的话在正常情况下就是倒数第二行显示合计了。


其实我想在drawcell里加个判断,不过想不到太好的思路

[此贴子已经被作者于2013-11-4 13:24:44编辑过]