最近总是有人问我怎么才能改报表上的信息。因为作者把报表做在res文件里了,所以要导出来。方法很简单:首先在主窗体上添加一个按钮,然后在添加如下代码: procedure TMainForm.Button1Click(Sender: TObject); begin RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Client','REP')); RMGridReport1.SaveToFile('client.rls'); RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LinkMan','REP')); RMGridReport1.SaveToFile('LinkMan.rls'); RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Visit','REP')); RMGridReport1.SaveToFile('Visit.rls'); RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Bespeak','REP')); RMGridReport1.SaveToFile('Bespeak.rls'); RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'SELL','REP')); RMGridReport1.SaveToFile('SELL.rls'); RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Product','REP')); RMGridReport1.SaveToFile('Product.rls'); RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LOG','REP')); RMGridReport1.SaveToFile('LOG.rls'); end;编译运行后,点击按钮就会在程序目录下生成几个rls文件,那就是RMGridReport控件所使用的报表文件,双击RMGridReport控件,然后打开rls文件就可以编辑了。另外再改一下main.pas文件的代码: //从资源文件中导入报表数据流 { case ID of 1 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Client','REP')); 211, 2 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LinkMan','REP')); 212, 3 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Visit','REP')); 214, 4 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Bespeak','REP')); 213, 5 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'SELL','REP')); 6 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Product','REP')); 7 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LOG','REP')); end; } case ID of 1 : RMGridReport1.LoadFromFile('Client.rls'); 211, 2 : RMGridReport1.LoadFromFile('LinkMan.rls'); 212, 3 : RMGridReport1.LoadFromFile('Visit.rls'); 214, 4 : RMGridReport1.LoadFromFile('Bespeak.rls'); 213, 5 : RMGridReport1.LoadFromFile('SELL.rls'); 6 : RMGridReport1.LoadFromFile('Product.rls'); 7 : RMGridReport1.LoadFromFile('LOG.rls'); end; 这样就可以绕过res文件了,当然你想重新编译到资源文件也行,方法我就不多说了,网上有。 |