RMReport 7

上传者: istemp | 上传时间: 2022-03-29 19:16:51 | 文件大小: 4.47MB | 文件类型: -
VB控件 RMReport7 转:RMReport的使用方法及详解 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:/rm目录中) (1)Tools->Environments Option->Libary->Libary Path中增加: c:/rm/souce c:/rm/bpl $(DELPHI)/Lib $(DELPHI)/Bin $(DELPHI)/Imports $(DELPHI)/Projects/Bpl (2)Component->Install Packages->Add,选bpl/rm_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时代表增加空行 在RM中,打印设置只能保存页面边距及打印份数、是否两遍打印以及是否套打等参数,缺少保存打印机纸张类型、进纸方式以及纸张页面大小等信息的保存及引入。详情可以参见RM_Class.pas代码的第13776行的保存处代码以及13706引入代码。 现在我们修改一下这两处代码,我们处理保存到注册表方式,保存到INI文件方式类似。 将其他信息保存进去 liRegIniFile.WriteInteger(aReportName, 'Page_' + IntToStr(i) + '_PageWidth', aReport.Pages[i].pgWidth);//页宽 liRegIniFile.WriteInteger(aReportName, 'Page_' + IntToStr(i) + '_PageHeight', aReport.Pages[i].pgHeight);//页高 liRegIniFile.WriteInteger(aReportName, 'Page_' + IntToStr(i) + '_pgOr', Integer(aReport.Pages[i].pgOr));//方向(横向或是纵向) liRegIniFile.WriteInteger(aReportName, 'Page_' + IntToStr(i) + '_pgBin', aReport.Pages[i].pgBin);//进纸方式 liRegIniFile.WriteInteger(aReportName, 'Page_' + IntToStr(i) + '_pgSize', aReport.Pages[i].pgSize);//纸张尺寸(自定义=256) 再修改引入处的代码: AWidth := liRegIniFile.ReadInteger(aReportName, 'Page_' + IntToStr(i) + '_PageWidth', 0); AHeight := liRegIniFile.ReadInteger(aReportName, 'Page_' + IntToStr(i) + '_PageHeight', 0); AOr := liRegIniFile.ReadInteger(aReportName, 'Page_' + IntToStr(i) + '_pgOr', 0); ABin := liRegIniFile.ReadInteger(aReportName, 'Page_' + IntToStr(i) + '_pgBin', 0); ASize := liRegIniFile.ReadInteger(aReportName, 'Page_' + IntToStr(i) + '_pgSize', 0); aReport.Pages[i].ChangePaper(ASize,AWidth,AHeight,ABin,TPrinterOrientation(AOr));//关键,更改页面信息 var Page: TRMReportPage; Page := TRMReportPage(RMReport1.Pages[0]); Page.ChangePaper(); ChangePaper(ASize, AWidth, AHeight,abin: Integer; AOr: TPrinterOrientation); asize:页码纸张的类型,可以通过api从打印驱动中取出例如9是a4,如果系统没有的纸张类型,她认为是自定义格式 awidth:纸张宽度(MM) aheight:纸张高度(MM) AOr:打印方向 // rmpolangscape 横向 rmpoPortrait //纵向 ABIN:;//进纸方式

文件下载

评论信息

  • panlinp :
    c/s开发很好用的控件,用起来超方便,可以自己封装
    2021-01-21
  • yangjian900109 :
    和我几年前在上家公司使用的是相同的版本,只是有个问题,在设置报表的时候总有点地方感觉怪怪的。不知道是控件问题还是使用问题。希望CSDN开个板块专门的报表这块讨论。
    2019-11-11
  • yp :
    用了,不错的。
    2018-11-11
  • ask1000 :
    SmartScreen阻止了下载,还要评论才能再次下载。
    2018-01-26
  • u010731940 :
    非常好,再下一次
    2017-10-09

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明