找回密码
 立即注册

QQ登录

只需一步,快速开始

chenfeng1029
金牌服务用户   /  发表于:2018-9-28 06:58  /   查看:3152  /  回复:4
由于我要计算c1flexgrid表格的合计值,筛选列项后也要重新计算。
我调用了我自己写的扩展函数
    Public Function CountSum(ByVal vFlex As C1FlexGrid, ByVal vColumnName As String) As Double
        Dim dblsum As Double = 0
        Try
            If vFlex.Rows.Count > 1 Then
                For i As Integer = 1 To vFlex.Rows.Count - 1
                    If vFlex.Rows(i).IsVisible = True Then '显示的行计算
                        dblsum += CDbl(vFlex.Rows(i)(vColumnName))
                    End If

                Next

            End If
        Catch ex As Exception
            '    MsgBox(ex.Message)
        End Try
        Return dblsum
    End Function

放在C1Flexgrid的AfterFilter事件计算合计值。
问题就出现,我打开窗体时,我没有做任何处理,直接就触发C1Flexgrid的AfterFilter事件,结果报错。提示列项不存在,
有什么方法可以窗体加载完毕后,筛选才触发。还是说我选择的事件有问题

4 个回复

倒序浏览
JeffryLI
葡萄城公司职员   /  发表于:2018-9-28 09:17:39
沙发
您好,关于合计,您可以参考这个,https://gcdn.grapecity.com.cn/fo ... grid%2B%BA%CF%BC%C6
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
chenfeng1029
金牌服务用户   /  发表于:2018-9-28 10:09:49
板凳
我看了下。我不是计算合计值不行。而是我打开一个窗体,先触发了。c1flexgrid的AfterFilter事件。而窗体还没有加载完。
我在窗体加载shown的事件绑定字段,等于字段还没绑定,就优先触发了AfterFilter事件
回复 使用道具 举报
chenfeng1029
金牌服务用户   /  发表于:2018-9-28 11:46:16
地板

你好。我自己做了下处理。改了下。
if me.visible=true then '窗体加载显示后,在计算。
     be_TotalAmt.EditValue = (FG_List.CountSum("Realsum"))
end if
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-9-28 11:48:01
5#
chenfeng1029 发表于 2018-9-28 10:09
我看了下。我不是计算合计值不行。而是我打开一个窗体,先触发了。c1flexgrid的AfterFilter事件。而窗体还 ...

您好,这个就需要在过滤事件里面加上条件判断了。希望能帮到您
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部