看下打印过程有没有问题:
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;
这里有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所说的打印机问题,不过还是谢谢你的答案)