ReportMachine报表问题(100分)

  • 主题发起人 主题发起人 pengderun
  • 开始时间 开始时间
P

pengderun

Unregistered / Unconfirmed
GUEST, unregistred user!
把RMReport报表控件的StoreInDFM设成false,到打印预览时报错'list index out of bounds(0)',StoreInDFM为true时打印都好好的,为什么会这样?
 
如果你设为 false
哪么你就要调用一个报表的设置文件
Report.LoadFromFile('xxxxxx.rls');
Report.ShowReport;
 
to lqcros:
没有发现XXXX.rls的文件,倒是有个XXXX.rmf的文件,报表应该是保存到这个文件的,不过我把Report.LoadFromFile('xxxxxx.rmf');插进去了还是报一样的错误,以下是打印过程:
procedure tbPrintAction();
var
PrintDate,UserID:TRMView;
begin
qryQItems.DisableControls;
rmrQItemsReport.LoadFromFile('psdh_Report.rmf');//StoreInDFM设成false新加进去的
rmrQItemsReport.Title := '配送订货单';
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;
 
procedure tbPrintAction();
var
PrintDate,UserID:TRMView;
begin
qryQItems.DisableControls;
rmrQItemsReport.LoadFromFile('psdh_Report.rmf');//StoreInDFM设成false新加进去的
rmrQItemsReport.Title := '配送订货单';
// 注释了这一段,看看
{
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;
 
注释了那段后没有报错,不过也没有打印预览的画面出来
 
点预览后就有个'正在准备报表-配送订货单'窗口很快地闪了一下,没有报表的画面出来
 
再注释一小段三,让程序能使用,一点一点的排除三
Pages是一个TList,如果有问题,也是哪一个有问题吧
procedure tbPrintAction();
var
PrintDate,UserID:TRMView;
begin
qryQItems.DisableControls;
rmrQItemsReport.LoadFromFile('psdh_Report.rmf');//StoreInDFM设成false新加进去的
rmrQItemsReport.Title := '配送订货单';
PrintDate:=rmrQItemsReport.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[0].FindObject('UserID');//改了一下,
// 注释一小段,看看
{
if UserID<>nil then
UserID.Memo.Text:='操作人:'+Module1.UserName;

}
rmrQItemsReport.ShowReport;
qryQItems.EnableControls;
end;
 
注释一小段就报错了
procedure tbPrintAction();
var
PrintDate,UserID:TRMView;
begin
qryQItems.DisableControls;
rmrQItemsReport.LoadFromFile('psdh_Report.rmf');//StoreInDFM设成false新加进去的
rmrQItemsReport.Title := '配送订货单';
PrintDate:=rmrQItemsReport.Pages.Pages[0].FindObject('PrintDate');
//这样注释也报错'list index out of bounds(0)',是不是上面这句有问题呢?
{ 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;
 
删了那个"Pages."也一样
 
ReportMachine论坛
http://rmachine.5d6d.com
 
后退
顶部