最近总是有人问我怎么才能改报表上的信息。因为作者把报表做在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文件了,当然你想重新编译到资源文件也行,方法我就不多说了,网上有。 |