以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  首次生成汇总模式就出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60227)

--  作者:zhangchi96
--  发布时间:2014/11/20 14:01:00
--  首次生成汇总模式就出错

根据狐表提供的示范例子,写的空间代码:

 

Dim t As Table = Tables("教职工信息表")
Dim g As Subtotalgroup   \'集合,包括汇总模式下的各个分组设置
t.SubtotalGroups.Clear()  \'清除原有的分组
t.GroupAboveData = False  \'汇总模式下,分组行是否位于数据行之前
t.TreeVisible = False   \'在汇总模式下是否显示目录树
t.SpillNode = True

 

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "岗位工资_实际,薪级工资_实际,教龄津贴,岗位津贴,生活补贴,农村津贴,特级教师补贴,档案工资,班主任津贴,补提考核,岗位扣款,考核提留计,住房补贴,应统发,财政补发,扣个税,缴医保,缴救助,房积金,缴失保,缴养老,统发代扣,实统发,应发考核,考核补发,考核扣款,月实发_考核工资,奖励性_绩效工资,实发合计"
g.Caption = "总计"
t.SubtotalGroups.Add(g)
t.Subtotal()    \'生成汇总模式,首次运行就出错
t.ShowCell(t.Rows.Count(True) - 1, 0) \'显示最后一行

 

其中 t.Subtotal() 在首次运行时就出错,第二次运行就没错,请教这是怎么办呢?  

 

 

 


--  作者:Bin
--  发布时间:2014/11/20 14:13:00
--  
出现什么错误,上个例子看看
--  作者:zhangchi96
--  发布时间:2014/11/20 16:00:00
--  

调用的目标发生了异常

未将对象引用设置到对象的实例


--  作者:zhangchi96
--  发布时间:2014/11/20 16:00:00
--  
   在 UserCode.DrawCell(DrawCellEventArgs e)
   --- 内部异常堆栈跟踪的结尾 ---

--  作者:Bin
--  发布时间:2014/11/20 16:02:00
--  
上个例子看看
--  作者:zhangchi96
--  发布时间:2014/11/20 16:24:00
--  
问题已经找到,我在其他窗体中调用绑定("教职工信息表")时,为了一些颜色显示,而对此表设置了DrawCell事件,如果我把那些事件删除,则问题消失,请教:如果不删除DrawCell事件,这里应怎么处理?
--  作者:有点甜
--  发布时间:2014/11/20 16:26:00
--  
 代码有冲突,贴出代码,或者做个具体例子上来测试
--  作者:zhangchi96
--  发布时间:2014/11/20 16:31:00
--  

我找出具体冲突的代码部分,这样有针对性

 


--  作者:zhangchi96
--  发布时间:2014/11/20 16:34:00
--  

DrawCell 代码中引起冲突的代码找到了:

 

DataTables("教职工信息表").AddUserStyle("a", Color.Red, Color.White)
If e.Row(e.Col.Name) <> e.Row.DataRow.OriginalValue(e.Col.Name) Then
    e.Style = "a"
End If

 

这是参考说明书 

7.369 OriginalValue中的代码

请教如何避免这个冲突


--  作者:有点甜
--  发布时间:2014/11/20 16:40:00
--  
DataTables("教职工信息表").AddUserStyle("a", Color.Red, Color.White)
If e.Row.DataRow isnot Nothing AndAlso e.Row(e.Col.Name) <> e.Row.DataRow.OriginalValue(e.Col.Name) Then
    e.Style = "a"
End If