打印报表报错'list index out of bounds(0)'

pengderun 2008-11-21 12:19:48
之前程序是没问题,不知道怎么的进入模块时报错'不支持的rmf格式',后来我把RMReport报表控件的StoreInDFM属性为false,模块是可以进去了,不过打印报表时就出现题目的错误.
请问是怎么回事?
...全文
891 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengderun 2008-12-15
  • 打赏
  • 举报
回复
看下打印过程有没有问题:
procedure tbPrintAction();
var
PrintDate,UserID:TRMView;
begin
qryQItems.DisableControls;
rmrQItemsReport.LoadFromFile('psdh_Report.rmf');//StoreInDFM设成false新加进去的
rmrQItemsReport.Title := '配送订货单';
// 下面注释的这一段加进去报错,改StoreInDFM属性之前存在都没错的.
{
PrintDate:=rmrQItemsReport.Pages.Pages[0].FindObject('PrintDate');
if PrintDate<>nil then
PrintDate.Memo.Text:='打印日期:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',Module1.SysDate+Module1.SysTime);
UserID:=rmrQItemsReport.Pages.Pages[0].FindObject('UserID');
if UserID<>nil then
UserID.Memo.Text:='操作人:'+Module1.UserName;

}
rmrQItemsReport.ShowReport;
qryQItems.EnableControls;
end;
try__again 2008-12-14
  • 打赏
  • 举报
回复
list index out of bounds(0)

根据这判断,是你这边的这个list的count为0,也就是 没有item,而你还是去取了item[0]的值

建议取值前先判断count的值是否大于0,或者循环中为

for i := 0 to list.cout -1
WangYuanfei12345 2008-12-13
  • 打赏
  • 举报
回复
我也遇到同样的问题了,我的是有的报表报这个错,有的不报,后来我要了个新的rm报表控件,重新装了一下,终于好了,希望对你也有用
yangkunjie 2008-12-02
  • 打赏
  • 举报
回复
出现这样的问题只能一点一点跟踪找出原因
找到出错的具体代码点,那问题就好解决了
sunshinegyy 2008-11-28
  • 打赏
  • 举报
回复

单步调试!

不能只在表面找错误,除非内部机制……
伏特加 2008-11-28
  • 打赏
  • 举报
回复
帮顶。。。没碰到过
pengderun 2008-11-28
  • 打赏
  • 举报
回复
顶上去...
pengderun 2008-11-27
  • 打赏
  • 举报
回复
这里有2个问题:
1.之前运行还正常的,为什么会突然在某部机器上进入这模块时报'不支持的rmf格式'这个错(非管理员用户才报错,administrator正常),在其他机上的非管理员用户运行却没错,而且好像和管理员权限又没关系,因为我们试过给当前用户管理权限了还是出现同样的问题.重建个非管理员用户,程序开始可以正常运行,但过会就又出现这个错误了.
2.出现问题1后,我上网找了下,参考http://topic.csdn.net/t/20050906/11/4252259.html这个帖子2楼的建议,把RMReport报表控件的StoreInDFM设成false,程序模块倒是正常运行了,但是到打印预览时又报错'list index out of bounds(0)'(没改StoreInDFM为false之前打印都好好的,所以应该不是tsingfeng_bhcss所说的打印机问题,不过还是谢谢你的答案)

能解决一个问题就行,可以的话2个都解决了当然更好,分少了的话再想办法加...
tsingfeng_bhcss 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 pengderun 的回复:]
引用 13 楼 tsingfeng_bhcss 的回复:
出错的机器上可能没有打印机,安装个虚拟的就行了

抱歉!可能表达不清楚让你误解了,是点击ToolBar的打印预览按钮时报错,这和打印机应该没关系吧?
[/Quote]

如果你没有打印机相当于没有地方打印,页面高度不够就会出现你那个问题
pengderun 2008-11-26
  • 打赏
  • 举报
回复
UP...
fancy_cecilia 2008-11-26
  • 打赏
  • 举报
回复
用户权限不够
ajiwuweibin 2008-11-26
  • 打赏
  • 举报
回复
应该是stringlist之类的东西超出范围了
pengderun 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 tsingfeng_bhcss 的回复:]
出错的机器上可能没有打印机,安装个虚拟的就行了
[/Quote]
抱歉!可能表达不清楚让你误解了,是点击ToolBar的打印预览按钮时报错,这和打印机应该没关系吧?
tsingfeng_bhcss 2008-11-26
  • 打赏
  • 举报
回复
出错的机器上可能没有打印机,安装个虚拟的就行了
tjg5202 2008-11-26
  • 打赏
  • 举报
回复
无语了。。。。
jjwang2004 2008-11-21
  • 打赏
  • 举报
回复
好好看下字段吧
pengderun 2008-11-21
  • 打赏
  • 举报
回复
程序版本一样的,更奇怪的是我也没改StoreInDFM属性为false之前的程序在其他机器运行没问题,而且在出问题的那台机的管理员用户上也没问题,就在非管理员的一个用户有问题,但是呢在其他机器上都是没问题的.
火龙岛主 2008-11-21
  • 打赏
  • 举报
回复
版本不一致?
mathsfan 2008-11-21
  • 打赏
  • 举报
回复
up...
可能没值的原因吧。
pengderun 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nacheng 的回复:]
代码自己不帖出来谁知道是哪个字段啊。
[/Quote]
我是觉得代码是没问题的,因为我没改StoreInDFM属性之前是没这个错误的,而且代码那么长也不知道那段出错难道全部贴出来?而且有些控件属性的设置从代码也是看不出来的吧.
加载更多回复(5)

5,929

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧