注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

ReportMachine 简单使用  

2016-11-22 23:16:26|  分类: reportmchine 7 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

常见问题与使用技巧相关说明:

1、本帖在不断完善中,大家如有什么好的使用技巧与常见问题可以发邮件给我,谢谢!!

2、部分内容来自RM3的faq及Demo 相关例子下载:

[大家有什么好的使用技巧不要保留哦!!

1、不打印特定的MemoView,套打常用

a.页面设置-->其它-->不打印背景图

b.设置MemoView属性printable=False

2、 如何打印wwDBGrid? 修改rm.inc,

如果想支持RX,GIF,JPEG,DimandAccess,Halcyon,DBISAM, EHLib,也需要修改rm.inc

//{$DEFINE InfoPower} //修改这行,去掉"//" //{$Ehlib}

3.试用版安装方法(以下假设将文件释放到c: m目录中)

(1)Tools->Environments Option->Libary->Libary Path中增加:

c:\rm\souce

c:\rm\pl

$(DELPHI)Lib

$(DELPHI)Bin

$(DELPHI)Imports $(DELPHI)ProjectsBpl

(2)Component->Install Packages->Add,选bpl m_d70.bpl

4.在Delphi IDE中卸载以前的Report Machine版本,然后打开rm_r50.dpk,选"compile", 在打开rm_d50.dpk,选"Install". 包分成了Runtime package和Designer package,所以要安装顺序安装

5、单元格的变量格式用代码设置

t = TRMGridReportPage(RMGridReport1.Pages[0]).Grid.Cells[1, 1].View

t = TRMMemoView(RMReport1.FindObject('memo1'));

t.DisplayFormat := 'N0.001' //数字型

t.DisplayFormat := 'Dyyyy/mm/dd' //日期型

6、两遍报表如何用代码设置 GridReport1.DoublePass := True

7、用代码写数据字典:

RMReport1.Dictionary.FieldAliases.Clear;

RMReport1.Dictionary.FieldAliases['RMDBDataSet1'] := '动物';

RMReport1.Dictionary.FieldAliases['RMDBDataSet1."Name"'] := '姓名';

这样在RM的设计器<插入数据字段>显示为自定义名称,为最终用户提供友好的显示

8、在报表中如何使用变量(或者如何给某个memoview赋值)

a.RMVariables在RM_Class.pas中定义,是全局变量,这样定义后就可以在报表中使用变量"var1",例如: RMVariables['变量名称'] := Edit1.Text;

b.用报表中数据字典,TRMReport.Dictionary.Variables,需要注意的是,如果变量是字符型的需要用AsString赋值,其他类型的用RMReport.Dictionary.Variables['var1'] := 1234,例如: RMReport1.LoadFromFile('1.rls'); RMReport1.Dictionary.Variables.AsString['变量名称'] := Edit1.Text;

c. 直接对某个单元格赋值,例如: RMGridReport1.LoadFromFile('1.rls'); TRMGridReportPage(RMGridReport1.Pages[0]).Grid.Cells[1,1].Text := '值';

如果是RMReport: RMReport1.LoadFromFile('1.rmf');

t := RMReport1.FindObject('Memo1'); if t <> nil then

// var t: TRMView t.Memo.Text := 'dsdsdsds';

d.脚本中直接引用Form的值

procedure Main;

begin

Memo1.Memo.Text := Form1.Edit1.Text;

end;

9、自动换行

主项数据栏Stretched = true

文本框 Stretched = true WordWrap = true

10、RM内置变量(Script),增加中....

a.属性PrintAtAppendBlank=True CurReport.AppendBlanking=True时代表增加空行

report m

achine 的一些帮助

2010-02-10 13:101.对于一张纸要两面打的报表你有什么好办法?

打印时可以选择打奇数页还是打偶数页。

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.Report Machine中,如何强制每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 := TMemorySt

ream.Create;

RichEdit1.Lines.SaveToStream(TempStream);

TempStream.Position := 0;

RMFormReport1.PageHeader.Caption.LoadFromStream( TempStream);

TempStream.Free;

end;

18.怎样确定报表模版目录?

设置TRMDesigner的TemplateDir

19.我想动态设"虚拟数据集"该怎么设!

(RMReport1.FindObject(‘Band1‘) as TRMBandView).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 能象Microsoft Excel

实现 a3=a1+a2吗?

可以,a3内容

[memo1.CalcValue + memo2.CalcValue]

29.

使用总页数,将CalcMemoView放在页头,组头,栏目头时需要选择"两遍报表",对打印没影响,只打印一遍.

30.如何打印中括号如: [2002]

在memoview的OnBeforePrint中

begin

memo := ‘[2002]‘;

end;

或者把‘[‘,‘]‘定义成变量:

RMVariables[‘a1‘] := ‘[‘;

RMVariables[‘a2‘] := ‘]‘;

  评论这张
 
阅读(28)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017