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:;//进纸方式

RMreport的使用技巧相关推荐

  1. keyshot怎么批量渲染_提高Keyshot逼真渲染的小技巧

    Keyshot是一个特别神奇的应用软件,但是,就像Photoshop一样,如果你不知道怎么使用它,那么再优秀的工具在你手中也什么都是了.这里我就告诉你一些制作优秀效果图的技巧以及如何使用这个神奇软件. ...

  2. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧

    1. 检查 vim 软件包 1.1 CentOS 发行版 $ alias vi alias vi='vim' $ $ which vim /usr/bin/vim $ $ ls -l /usr/bin ...

  3. Python 笔试面试及常用技巧 (1)

    1. 交换两个数字 In [66]: x, y = 1, 2In [67]: x Out[67]: 1In [68]: y Out[68]: 2 赋值的右侧形成了一个新的元组,左侧立即解析(unpac ...

  4. Redis 使用技巧

    Redis 现在非常受欢迎,似乎已经成为内存数据存储行业的标准.本人结合平时使用Redis经验,也同时查找了一些网上别人的总结经验,总结以下几条Redis使用技巧. 1. 停止使用 KEYS 众所周知 ...

  5. 受用一生的高效 PyCharm 使用技巧(六)

    http://www.sohu.com/a/329854019_654419 大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从第一篇开始,一直到本篇,一共更新了6篇文章,每篇 5 个小技 ...

  6. 受用一生的高效 PyCharm 使用技巧(四)

    https://blog.csdn.net/pdcfighting/article/details/93269028 大家好,距离最近一篇 PyCharm 使用技巧的文章已经过去一月有余,最近虽然也比 ...

  7. 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件

    https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ 在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果 ...

  8. 受用一生的高效 PyCharm 使用技巧(一)

    声明:本文章转自 返回主页Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. https://www.cnb ...

  9. PyCharm 使用技巧

    PyCharm 使用技巧 2018.12.15 00:26:36 字数 1034 阅读 290 JetBrains家的IDE很多技巧是通用的,说一些自己日常用得多但不一定仅限于PyCharm的技巧: ...

最新文章

  1. 一幅图读懂量子力学(数学的判决)
  2. 如何借助 svn update 自动更新线上的web
  3. 我的程序员之路:上帝的苹果
  4. Android之RxPermissions用kotlin写没反应
  5. IDEA---SpringBoot同一个项目多端口启动
  6. java指的是什么_java什么是实例意思指的是
  7. 验证码图片 java_验证码图片
  8. JSK-16 爬楼梯【基础】
  9. 添加源ubuntu_x64 安装 Adobe Reader
  10. 网易高并发优化 | 公开课-02
  11. 用python爬取中南大学所有教师个人主页的个人简介
  12. 苹果iPod设计及商业操作内幕
  13. 【ExtJS6开发日记(一)】——Chart类型无法加载,及ExtJS中出现requires无法加载情况的统一说明
  14. basler相机参数简要中文说明_basler 相机参数设置
  15. 串口转以太网与监控软件modbusTCP客户端通信配置
  16. 联想Y50耳机插入耳机孔后没有声音解决办法
  17. 影音视频领域开源项目专区
  18. PMC于浪潮互联网峰会展示领先存储解决方案
  19. Pyinstaller 详解多种打包过程(去坑,填坑)。
  20. 什么是C和C++标准库?

热门文章

  1. C语言统计输入数的正负以及零的个数
  2. Android FFmpeg 音视频开发教程
  3. uniapp中背景颜色使用scss变量不生效
  4. HTML5+CSS3移动商城-首页
  5. 计算机领域核心期刊 国际,计算机国际核心期刊
  6. 2017秋招-技术岗-闪银
  7. ftcs格式 matlab,计算流体力学_对流方程_有限差分法_Lax格式_迎风格式_FTCS格式(8页)-原创力文档...
  8. Flume多source,多sink组合框架搭建
  9. Helmholtz方程在直角坐标系下的变量分离及高维Fourier展开 | 特殊函数(一) |偏微分方程(二十三)
  10. 厦门特色中秋——博饼