版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./ReportMachine〔RM报表控件简单用法RM<ReportMachine>是一个功能强大的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,运行时调入。下面给出几个代码片断:procedureTBrowseForm.Button5Click<Sender:TObject>;
var
RMReport:TRMReport;
begin
ifADOQuery1.IsEmptythen
Exit;
try
RMReport:=TRMReport.Create<Self>;
RMReport.LoadFromFile<'Match.rmf'>;
RMReport.PrepareReport;
RMReport.ShowReport;
finally
RMReport.Free;
end;
end;procedureTForm1.Button1Click<Sender:TObject>;
begin
RMReport1.ShowReport;
end;//设计报表模板
procedureTForm1.Button2Click<Sender:TObject>;
begin
RMReport1.LoadFromFile<'TTT.rmf'>;
RMReport1.DesignReport;
end;对于大多数规则的报表,以上知识就足够了。但这只是RM最简单的用法,远远没体现出RM功能的强大。RM有两个吸引人的功能是我目前最需要的:1>、数据可以来自数据库,也可以来自其它任何地方,如文件中、存中等。
2>、不一定需要预先制作好模板,可以在运行时刻通过代码生成模板,这对于数据中字段个数不定的情况非常有用。RM虽然功能强大,但用起来并不觉的很复杂,它是我见过的为数不多的报表控件中最好的一个。1.对于一纸要两面打的报表你有什么好办法?
打印时可以选择打奇数页还是打偶数页。
2.怎么能在一个页面中打印固定的条数,另外最后一页记录不够时怎么打出空白的格子出来啊.
固定条数:设置LinesPerPage
空白格子:设置AutoAppendBlank=True
3.怎样屏蔽双击报表进入设计报表的界面?
RMReport1.ModifyPrepared:=False
4.怎样在报表中增加表合计???
可以放在标题栏,页面设置中选"两遍报表"
汇总框的TotalCalc=True即可
5.我想用代码把参数传递给报表中的某一个TRMMemoView该怎么做?
RMReport1.FindObject<‘Memo1‘>.Memo.Text:=‘ddddd‘
或者
RMVariables[‘a1‘]:=‘ddddd‘;//这样就可以在报表中使用变量‘a1‘了。
6.如何能够不打印重复容?
Suppres=True
7.如何让打印预览时双击不能进入报表编辑器!
设置RMReport.ModifyPreview=False
8.如何在报表程序中控制MEMO的边框是否显示
在delphi中:
memo1.LeftFrame.Visible:=False
memo1.TopFrame.Visible:=False;
memo1.RightFrame.Visible:=False;
memo1.BottomFrame.Visible:=False
在报表的script中
memo1.FrameTyp:=15;//这个参数多试几次就知道如何设置了
FrameTyp:=0;//不显示
9.怎样改变page的名称和控制它显示但不打印
可以,在Page1的OnBeforePrint中
begin
Page1.Visible:=True;
Page1.Visible:=False;//不显示
end;
10.ReportMachine中,如何强制每3行一个表格
设置主项数据栏:LinesPerPage=3
如果三人一行有办法:设置主项数据栏的Columns=3
用分组打印,分组条件:NowLine>3
在分组标头的OnBeforePrint:
begin
NowLine:=1;
end;
在主项数据的OnBeforePrint:
begin
NowLine:=NowLine+1;
end;
11.能否只显示分组统计值而不显示分组数据?
可以,设置主项数据栏:Visible=False
统计框:CalcNoVisible=True
12.能否只对超过长度的单条记录进行折行?
可以,设置文本框:Stretched=True;wordwrap=True
设置文本框所在的栏:Stretched=True;Breaked=True
13.如何实现打印预览的问题
RMReport1.LoadFromFile<‘c:1.rmf‘>;//读入报表
RMReport1.ShowReport;//预览
RMReport1.PrintReport;//打印
RMReport1.DesignReport;//设计
14.请问如何在程序中控制:1、纵向打印还是横向打印。2、分组标头是否每组换页。
1.RMReport1.Pages[0].ChangePaper<>
2.RMReport1.Pages[0].FindObject<分组标头栏名>.Prop[‘NewPage‘]:=False;
15.直接打印的方法是什么?
RMReport1.ShowPrintDialog:=False;
RMReport1.PrintReport;
16.页边距改变以后,所有控件应该相应的改变位置。
需要在页面设置中不选"缩放到可打印区域"页面居中或
RMReport1.Pages[0].pgMargins:=;//这样试试
17.如何从导入一个rtf文件作为TRMFormReport的PageHeader
var
TempStream:TMemoryStream;
begin
TempStream:=TMemoryStream.Create;
RichEdit1.Lines.SaveToStream<TempStream>;
TempStream.Position:=0;
RMFormReport1.PageHeader.Caption.LoadFromStream<TempStream>;
TempStream.Free;
end;
18.怎样确定报表模版目录?
设置TRMDesigner的TemplateDir
19.我想动态设"虚拟数据集"该怎么设!
<RMReport1.FindObject<‘Band1‘>asTRMBandView>.DataSet:=‘RMDBDataSet1‘;
20.在程序中
RMVariables[‘aaa‘]:=form1.Caption;
在报表中就可以使用变量‘aaa‘
21.左边距:
CurReport.Pages[0].pgMargins.Left:=Round<RMConvertToPixels<毫米*10,rmsuMM>>
22.RMVariables[‘品牌‘]:=True;
RMVariables[‘品名‘]:=‘计算机‘;
在Page1的OnBeforPrint事件中的代码如下:
If品牌Then
MessageBox<品名>;
23.每页只打10条记录怎么处理啊?主项数据栏LinePerPage=10
24.怎么实现主项数据的统计啊???
最好用栏目注脚栏,在上面放统计框,然后设置CalcType即可
25.动态生成报表时,RM的页边距如何设定?
TRMPage.pgMargins:=Rect<30,30,40,40>;
26.如何在程序运行时,在一个预览或者打印窗口中,一次打开多个报表文件
用TRMCompositeReport,
RMCompositeReport1.Reports.Clear;
RMCompositeReport1.Reports.Add<RMReport1>;
RMCompositeReport1.Reports.Add<RMReport2>;
RMCompositeReport1.ShowReport;
27.rm如何进行套打
Page1不是有个BackGroundPic属性吗,这个就是专门做套打的
28.GridView1能象MicrosoftExcel
实现a3=a1+a2吗?
可以,a3容
[memo1.CalcValue+memo2.CalcValue]
29.
使用总页数,将CalcMemoView放在页头,组头,栏目头时需要选择"两遍报表",对打印没影响,只打印一遍.
30.如何打印中括号如:[2002]
在memoview的OnBeforePrint中
begin
memo:=‘[2002]‘;
end;
或者把‘[‘,‘]‘定义成变量:
RMVariables[‘a1‘]:=‘[‘;
RMVariables[‘a2‘reportmachine开发使用手册-创建报表2010-02-1013:08创建报表:创建一个报表由下面几步组成:1、选择数据:选择报表中用到的数据源2、设计报表模板:利用区域〔称为Band>将报表分布不同的部分,决定报表样式。3、处理:用报表置脚本语言或在delphi中对报表中用的的数据,报表模板等进行处理4、生成报表:根据报表模板+数据源,生成最终的报表。选择数据源:大多数报表需要的数据都是来自数据库。TTable和TQuery组件可以作为报表的数据源。总的来说它可以使用任何一个从TDataSet组件继承的子类。每个报表中用到的TDataSet都要有一个与之对应的TRMDBDataSet。除了TDataSet,ReportMachine页可以使用任何数据源〔数组,文件,字符网格等等。在这种情况下,程序必须自己控制非数据库源的存取。你可以用TRMUserDataSet方便地把数据传送到报表中。设计报表模板:报表模板本身就是描述怎样可以看到正确的报表。每个报表模板由多个区域组成,ReportMachine把这些区域称为"Band"。有两种类型的Band:固定区域Band〔比如报表标题,页标头,页注脚等等和用于显示数据集中所有记录的Band〔比如主项数据栏。数据Band需要联接到数据源,容是数据源中的记录。在ReportMachine中提供了报表开发的可视化环境<报表设计器,这个设计器也可以提供给你的EndUser,以方便你的EndUser自己修改报表模板>用于创建报表。报表设计器功能强劲,简单又易于使用。报表设计器的界面由带有浮动的工具栏,可以自由地改变它们的位置,使用对象观察器〔ObjectsInspector可以控制对象的属性,类似于DelphiIDE中的那个。处理:在生成报表的时候,需要对输入的数据进行某种处理〔比如格式化,报表模板需要某些修改〔比如报表模板中某个文本框需要改变字体。实现这个处理可以在Delphi中的TRMReport的事件处理中编写代码,这个方法并不通用,因为它不允许在Delphi外创建报表而无需重新编译。这就是为什么在ReportMachinet中置脚本语言,ReportMachine的置脚本语言非常类似于ObjectPascal,功能强大。用这个脚本语言编写事件处理代码,这就可以让你创建复杂的处理而无需在Delphi中编写代码,配合报表设计器,不需要修改某个报表而重新编译项目。可以实现报表于你的项目分离。报表脚本例子:unitReport;interfaceprocedureMemo1OnBeforePrint<Sender:TObject>;
implementationprocedureMemo1OnBeforePrint<Sender:TObject>;
begin
Memo1.Text:='test';
end;procedureMain;
beginend;end.生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 再生微粉胶砂抗冻性冻融质量损失监理细则
- 再生粗骨料颗粒级配筛分监理细则
- 会话固定攻击劫持用户登录状态的问题与登录后重新生成会话ID对策
- 烟机设备操作工岗前理论技能考核试卷含答案
- 酸洗钝化工8S考核试卷含答案
- 装裱师测试验证知识考核试卷含答案
- 测井工岗前岗中水平考核试卷含答案
- 轮轴装修工改进水平考核试卷含答案
- 化工过滤工岗中发展趋势考核试卷含答案
- 2026下半年青海省事业单位联考及易考易错模拟试题(共500题)试卷后附参考答案
- DB52T 1283-2018 精准扶贫 农村“组组通”硬化路建设与管理养护规范
- 2024九年级数学上学期期中测试题新版华东师大版
- 罚款单模板8则版
- CSAE标准-汽车整车气动声学风洞风噪试验-车内风噪测量方法编制说明
- GB/T 44148.2-2024承压设备用钢锻件、轧制或锻制钢棒第2部分:规定高温性能的低合金及合金(钼、铬和铬钼)钢
- 净水器售后维修合同
- (高清版)JTG 3810-2017 公路工程建设项目造价文件管理导则
- 工业机器人培训计划方案
- 英语48个国际音标课件(单词带声、附有声国际音标图)
- 安徽省蚌埠市蚌山区2023-2024学年八年级上学期月考数学试题
- 小升初六年级 小学英语 疑问词 特殊疑问句
评论
0/150
提交评论