以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76476) |
||||
-- 作者:hbhb -- 发布时间:2015/10/29 22:29:00 -- 请教代码 大师:drawcell事件中如下代码,错在哪里?为何差异行不计算? Dim r As Row \'---项目行--- If e.Table.DataTable.Name.Contains("附注表") Then If Vars("fzToTal").count > 0 Then Dim sum(Vars("fzToTal").count - 1) As object \'---合计数组 Dim sum1(Vars("fzToTal").count - 1) As object \'----报表数组 Dim sum2(Vars("fzToTal").count - 1) As object \'----差异数组 e.Table.DataTable.AddUserStyle("abc",Color.LightBLue,Color.blue) If e.Row(e.Table.Cols(0).name) = "合计" Then e.Style = "abc" For n As Integer = 0 To e.Row.Index -1 r = e.Table.Rows(n) If r(e.Table.Cols(0).name) <> "合计" Then For i As Integer = 1 To sum.length - 1 sum(i) += val(r(Vars("fzToTal")(i))) Next End If Next For i As Integer = 1 To sum.length - 1 e.Row(Vars("fzToTal")(i)) = Format(val(sum(i)),"n") Next End If If e.Row(e.Table.Cols(0).name) = "报表数" Then For i As Integer = 1 To sum1.length - 1 sum1(i) = val(e.Row(Vars("fzToTal")(i))) Next End If If e.Row(e.Table.Cols(0).name) = "差异" Then For i As Integer = 1 To sum2.length - 1 e.Row(Vars("fzToTal")(i)) = Format(val(sum1(i)),"n") - Format(val(sum(i)),"n") Next End If End If End If |
||||
-- 作者:大红袍 -- 发布时间:2015/10/29 22:35:00 -- e.Row(Vars("fzToTal")(i)) = Format(val(sum1(i)) - val(sum(i)),"n") |
||||
-- 作者:hbhb -- 发布时间:2015/10/29 22:45:00 -- 还是不计算,为何?
|
||||
-- 作者:大红袍 -- 发布时间:2015/10/29 23:04:00 -- Dim r As Row \'---项目行--- |
||||
-- 作者:hbhb -- 发布时间:2015/10/29 23:27:00 -- 始终不理解我写的代码错在哪里?通过e.row定位的index的行号与查找的行号是一样的?为何就不行? |
||||
-- 作者:大红袍 -- 发布时间:2015/10/30 10:12:00 -- drawcell执行的时候,一个单元格一个单元格运行的,也就是每次进入,e.Row都是不同,不可能获取多行的数据,必须用findrow查询 |