- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Report Machine(RM)报表控件简单用法
RM(Report Machine)是一个功能强大的Delphi报表控件包。使用它可以制作出非常复杂的报表。下面讲述最简单的用法:
在Form上放上两个数据库控件:ADOConnection和ADOQuery设置好ADOConnection的ConnectionString。LoginPrompt=False。ADOQuery的Connection指向ADOConnection。ADOQuery的SQL设置好数据查询语句。
在Form上放上两个RM报表控件:RMDBDataSet和RMReport。RMDBDataSet的DataSet指向ADOQuery。RMReport的DataSet指向RMDBDataSet。
(如果想使最终生成的应用程序具备报表设计能力,还需要放上RMDesigner控件,不需要设置任何属性)
双击RMReport控件,开始设计报表模板。
对于一般比较规则的报表,只需向模板中加入四个Band对象,分别是:1)、页标头:通常用来显示报表名称,时间等2)、主项标头:通常用来显示栏目名称。3)、主项数据:用来显示数据。4)、页注脚:用来显示页号,日期等。
设计好的模板可以保存在DFM中,也可以保存到独立的模板文件中,扩展名为RMF,运行时调入。下面给出几个代码片断:
procedure TBrowseForm.Button5Click(Sender: TObject);var?? RMReport:TRMReport;begin?? if ADOQuery1.IsEmpty then???? Exit;?? try???? RMReport := TRMReport.Create(Self);???? RMReport.LoadFromFile(Match.rmf);???? RMReport.PrepareReport;???? RMReport.ShowReport;?? finally???? RMReport.Free;?? end;end;
procedure TForm1.Button1Click(Sender: TObject);begin?? RMReport1.ShowReport;end;
// 设计报表模板procedure TForm1.Button2Click(Sender: TObject);begin?? RMReport1.LoadFromFile(TTT.rmf);?? RMReport1.DesignReport;end;
对于大多数规则的报表,以上知识就足够了。但这只是RM最简单的用法,远远没体现出RM功能的强大。
RM有两个吸引人的功能是我目前最需要的:
1)、数据可以来自数据库,也可以来自其它任何地方,如文件中、内存中等。2)、不一定需要预先制作好模板,可以在运行时刻通过代码生成模板,这对于数据中字段个数不定的情况非常有用。
RM虽然功能强大,但用起来并不觉的很复杂,它是我见过的为数不多的报表控件中最好的一个。
1.对于一张纸要两面打的报表你有什么好办法?打印时可以选择打奇数页还是打偶数页。2.怎么能在一个页面中打印固定的条数,另外最后一页记录不够时怎么打出空白的格子出来啊. 固定条数:设置LinesPerPage空白格子:设置AutoAppendBlank=True3.怎样屏蔽双击报表进入设计报表的界面? RMReport1.ModifyPrepared := False4.怎样在报表中增加表合计???可以放在标题栏,页面设置中选两遍报表汇总框的TotalCalc=True即可5.我想用代码把参数传递给报表中的某一个TRMMemoView该怎么做?RMReport1.FindObject(‘Memo1‘).Memo.Text := ‘ddddd‘或者RMVariables[‘a1‘] := ‘ddddd‘; //这样就可以在报表中使用变量‘a1‘了。6.如何能够不打印重复内容?Suppres=True7.如何让打印预览时双击不能进入报表编辑器!设置RMReport.ModifyPreview=False8.如何在报表程序中控制MEMO的边框是否显示在delphi中:memo1.LeftFrame.Visible := Falsememo1.TopFrame.Visible := False;memo1.RightFrame.Visible := False;memo1.BottomFrame.Visible := False在报表的sc
文档评论(0)