ReportMachine常见问题

2012-06-22 12:26:50|  分类: Delphi|举报|字号 订阅

 
 

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"'] := '姓名';
RMGridReport1.Dictionary.FieldAliases['RMDBDataSet1."Weight"'] := ''; // 不显示
这样在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;

RMReport1.Dictionary.Variables[' 大类1'] := '';
    RMReport1.Dictionary.Variables['名称1'] := '';
    RMReport1.Dictionary.Variables['名称2'] := '';
    RMReport1.Dictionary.Variables[' 大类2'] := '';
    RMReport1.Dictionary.Variables['名称3'] := '';
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;

  报表脚本例子:

unit Report;

interface

procedure Memo1OnBeforePrint(Sender: TObject);
implementation

procedure Memo1OnBeforePrint(Sender: TObject);
begin
   Memo1.Text := 'test';
end;

procedure Main;
begin

end;

end.

9、自动换行
   主项数据栏Stretched = true
   文本框    Stretched = true
             WordWrap = true

10、RM内置变量(Script),增加中....
   a.属性PrintAtAppendBlank=True
     CurReport.AppendBlanking=True时代表增加空行
11、自定义纸张
var
    Page : TRMReportPage;
Page := TRMReportPage(RMReport1.Pages[0]);
Page.ChangePaper(ASize, AWidth, AHeight, ABin, AOr);
ASize :纸张类型,256为自定义
AWidth: 宽度
AHeight:高度
AOr:方向
ABin:进纸方式
aOr:rmpoPortrait, rmpoLandscape 在RM_Common中定义
aBin: $FFFF // 默认进纸器

12、动态增加数据集:
with TRMDBDataSet.Create(self) do
begin
    Name := 'Test1';
    DataSet := ADOTable1;
    RMReport1.Dictionary.FieldAliases[Name] := '测试数据集';
    RMReport1.Dictionary.FieldAliases[Name+'."au_id"'] := '自动编号';
end;

RMReport1.DesignReport;

Uses RM_Dataset;

13、加载界面语言
RMResourceManager.LoadResourceModule('RM_ChiBIG5.dll');

ReportMachine常见问题的更多相关文章

  1. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  2. SQL Server常见问题介绍及快速解决建议

    前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题.这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架. 下面一些问题是 ...

  3. 【腾讯优测干货分享】如何降低App的待机内存(二)——规范测试流程及常见问题

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/806TiugiSJvFI7fH6eVA5w 作者:腾讯TMQ专项测 ...

  4. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  5. 《PDF.NE数据框架常见问题及解决方案-初》

    <PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值: 解决方案:    PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时 ...

  6. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  7. JMeter常见问题集合

    前言 本文内容仅仅是针对Jmeter的部分功能名词的介绍和解释,以及初学者不易理解的问题的整理.部分内容来自别人做的整理,为了更好地整理自己的思路,所以可耻的整理一下发到博客上. 标题[1-6]和[参 ...

  8. NHibernate常见问题及解决方法

    NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...

  9. .NET Core中ADO.NET SqlClient的使用与常见问题

    一.简介 在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的工作:目前有一些网友问有关于.NET Core操作SQL Server的问题在本文中解答一下. 本文旨在指出,在 ...

随机推荐

  1. CSharp陷阱1

    CSharp陷阱1 环境:sharpdevelop 3     .net 2.0 正确的        internal static readonly string[] string_2 = new ...

  2. 论坛:获取当前原始请求中的远程IP地址

    topic.setIpAddr(ServletActionContext.getRequest().getRemoteAddr());//当前原始请求中的远程IP地址

  3. 爬虫初窥day1:urllib

    模拟“豆瓣”网站的用户登录 # coding:utf-8 import urllib url = 'https://www.douban.com/' data = urllib.parse.urlen ...

  4. NETSHARP微信开发说明

    一.微信开发介绍 1.微信分为个人号,订阅号.服务号,需要去理解三个号的区别,对于开发来说也需要了解不同的账号所提供的功能 2.微信号需要审批,审批之后有一些功能才能使用 3.微信提供的功能及使用情况 ...

  5. spring 的 ApplicationContext.getBean(type) 无法获取bean,报错

    具体问题请看   https://q.cnblogs.com/q/108101/ 研究了两天: 经过上文中的排除法: 造成问题的原因是要获取的bean 中 有被切入的方法.. 就是可能该类会使用反射生 ...

  6. JDK8集合类源码解析 - LinkedList

    linkedList主要要注意以下几点: 1构造器 2 添加add(E e) 3 获取get(int index) 4 删除 remove(E e),remove(int index) 5  判断对象 ...

  7. 关于oracle的锁表解决session marked for kill

    oracle 使用的过程中,有时候会遇到锁表的情况,数据库增.删.改.查都是会锁表的,但是锁的类型会不同, 大多是行锁,部分会是表锁. 在oracle运行中,一直是有表在锁的,只不过很快一个操作结束, ...

  8. Python脚本语言第一行的写法

    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单 #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python ...

  9. 通俗理解 CPU && GPU

    CPU 力气大啥P事都能干,还要协调.GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟处理了,小弟兄弟多,有数百至数千个 ...

  10. 假期训练八(poj-2965递归+枚举,hdu-2149,poj-2368巴什博奕)

    题目一(poj-2965):传送门 思路:递归+枚举,遍历每一种情况,然后找出最小步骤的结果,与poj-1753类似. #include<iostream> #include<cst ...