以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]excel报表出错,不知道是什么意思  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8782)

--  作者:shofihsu
--  发布时间:2010/12/7 14:34:00
--  [原创]excel报表出错,不知道是什么意思

点击EXCEL报表,显示:

---------------------------
错误
---------------------------
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index

   at System.Collections.ArrayList.get_Item(Int32 index)

   at C1.Win.C1FlexGrid.RowCollection.get_Item(Int32 index)

   at Foxtable.XLS.Book.OlOl1O01110OO0O1l(String OOl1l0, DataRow Ol1OO1OO0, XLSheet O01110l0, XLSheet OOOl10O0, Int32 O0l1l1l1l11O0O, List`1 O01l0lO1l0)

   at Foxtable.XLS.Book.OlOl1O01110OO0O1l(String OOl1l0, DataRow Ol1OO1OO0, XLSheet O01110l0, XLSheet OOOl10O0, Int32 O0l1l1l1l11O0O, List`1 O01l0lO1l0)

   at Foxtable.XLS.Book.OO0lOO(Int32[] O0110Ol)
---------------------------
确定  
---------------------------

 

谁能告诉我,是什么意思,问题出在哪里?



--  作者:狐狸爸爸
--  发布时间:2010/12/7 14:37:00
--  

索引超出范围。

从字面看不出原因的。


--  作者:shofihsu
--  发布时间:2010/12/7 15:59:00
--  

开发版不会出现这个提示,但 用开发版发行后的软件点击EXCEL报表,就出现这个提示。

[此贴子已经被作者于2010-12-7 16:04:35编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/12/7 16:06:00
--  

做个开发版的例子上来吧,我发布测试一下看看

 

或者先自己逐步删除报表中的内容,看看到底是哪个内容导致了错误的发生。

 

根据错误提示分析,可能是报表区域的定义有问题。

[此贴子已经被作者于2010-12-7 16:13:35编辑过]

--  作者:shofihsu
--  发布时间:2010/12/7 17:23:00
--  
逐步删除报表中的内容,的确是个好方法,一下子就找到了问题
--  作者:狐狸爸爸
--  发布时间:2010/12/7 18:05:00
--  
以下是引用shofihsu在2010-12-7 17:23:00的发言:
逐步删除报表中的内容,的确是个好方法,一下子就找到了问题

 

能告诉我是什么原因吗?


--  作者:shofihsu
--  发布时间:2010/12/7 19:48:00
--  

其中引用的一张表的数据,开发版时fill了数据,发行后,重新打开是没有fill数据的(我设的是手动fill)所以报错。

我现在理解这个“索引超出范围”应该是压根就没有这个数据。

 

看来解决问题的思路很重要。排除法是个好方法


--  作者:狐狸爸爸
--  发布时间:2010/12/7 21:37:00
--  
怪事了,我清除表中数据,却不报错,只是不生成报表而已。
--  作者:shofihsu
--  发布时间:2010/12/8 9:08:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:out of range.jpg
图片点击可在新窗口打开查看
将红色部分删除就可以了。

 


--  作者:狐狸爸爸
--  发布时间:2010/12/8 9:13:00
--  

呵呵,知道了。