网络软件 系统软件 应用软件 联络聊天 图形图像 多媒体类 游戏娱乐 编程开发 安全相关 行业软件

report machine汉化版 v7.0 免费版(附教程)

report machine威廉希尔|report machine汉化版

report machine汉化版是小编为大家选择的一款报表处理和编辑软件,大家可以在里面对任何报表进行修改和编辑,功能齐全,操作简单,没有它管理不了的报表文件,你还可以在里面进行diy设计,建立自己喜欢的报表类型,赶快下载试试吧!

report machine汉化版介绍

复杂的报表?在report machine面前,还会有什么复杂的报表存在吗?不,不会有的,因为这是一个功能强大,完全自动化、完全自由设计的报表控件。对于一般的主从表,单表,你甚至只需要点动鼠标次数=你的数据字段个数就可以完成一个完全自定义的,并且支持用户进行格式修改加工,重新设计格式的报表!想想fast report 吧,report machine会fast report会的,还会它不会的!这是一个完全中文化报表控件,支持delphi5到delphi7,bcb5到bcb6。它的最大优点就是:强大与自由!

report machine汉化版

report machine功能

1、支持屏幕打印,控制方法多样,可以打印全部rxlib控件,全部infopower控件,tdbgrid,tstringgrid,timage,tedit等,tdbgrideh,f1book,tdecisiongrid等等众多控件。(例子1,例子2,例子3,例子4,例子5)

2、支持最终用户设计、修改报表,只需连接相关的数据源,指出数据的位置(设置报表样式),无论是主从表,子报表,套表,都可迅速生成。开发一个报表只需几分钟的时间。

3、报表样式可以保存为rmf格式,下次可通过读入使用(配合sql脚本就可以生成报表)。并可以把带数据的报表保存为rmp格式,在任何机器上都可以浏览、打印,而不需要数据库。

4、生成后的报表支持修改,包括字体的设置,边框的设置,修改内容等。

5、报表编辑器内自带ado,bde,ibx,diamond dao,dbisam等数据访问控件,可以通过这些控件开发独立的报表制作工具。其使用方法和delphi中的控件是一样的。

6、完全、自由自定义页面、边距、字体,标题和页眉页脚,并可以在自认合适的地方插入函数来实现当前日期,页合计,总合计等功能,合计字段可以放在页头,分组头,并支持条件合计,对分组合计,分页合计,总计等只需简单地设置属性即可。

7、完全支持d5--d7,bcb5--bcb6。

8、报表中可以在自认合适的事件(on beforeprint,on afterprint等)中加入程序脚本,以控制、或实现更复杂的打印效果。

9、更新迅速,可根据使用人员与用户的意见,不断的加入新的功能。

10、多种格式转换,可以把做出的报表转换为html,xls,pdf,bmp,jpeg等等格式。

11、自动对超长记录折行,超长的内容也会自动折行,中文换行不会乱码。

12、首家支持缩放打印功能,可以根据打印时选择的纸张自动缩放报表。

13、首家支持即打即停.

14、首家提供类似excel的报表设计器,给你足够灵活方表的报表设计方式。

15、首家提供双报表设计器(第一种,第二种),满足所有的需求。

16、更是提供类似于objectpascal的script,实现特殊功能。

17、首家提供web,intraweb中的报表解决方案。

18、首家提供报表压缩处理,占用内存更少,生成报表速度更快。

19、首家提供合并单元格功能,更加适应处理复杂的中文报表。

20、自动填空行,每页打印数量等细节处理更完善。

21、首家提供intraweb下报表插件,完美实现b/s下报表

22、提供webreport方案,可以在asp,asp.net,php中实现报表的打印预览。

使用教程

rm(report machine)是一个功能强大的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,运行时调入。下面给出几个代码片断:

procedure tbrowseform.button5click(sender: tobject);

var

rmreport:trmreport;

begin

if adoquery1.isempty then

exit;

try

rmreport := trmreport.create(self);

rmreport.loadfromfile('match.rmf');

rmreport.preparereport;

rmreport.showreport;

finally

rmreport.free;

end;

end;

procedure tform1.button1click(sender: tobject);

begin

rmreport1.showreport;

end;

// 设计报表模板

procedure tform1.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.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 := tmemorystream.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‘

report machine开发使用手册-创建报表2010-02-10 13:08

创建报表:

创建一个报表由下面几步组成:

1、选择数据:选择报表中用到的数据源

2、设计报表模板:利用区域(称为band)将报表分布不同的部分,决定报表样式。

3、处理:用报表内置脚本语言或在delphi中对报表中用的的数据,报表模板等进行处理

4、生成报表:根据报表模板+数据源,生成最终的报表。

选择数据源:

大多数报表需要的数据都是来自数据库。ttable和tquery组件可以作为报表的数据源。总的来说它可以使用任何一个从tdataset组件继承的子类。每个报表中用到的tdataset都要有一个与之对应的trmdbdataset。

除了tdataset,reportmachine页可以使用任何数据源(数组,文件,字符网格等等)。在这种情况下,程序必须自己控制非数据库源的存取。你可以用trmuserdataset方便地把数据传送到报表中。

设计报表模板:

报表模板本身就是描述怎样可以看到正确的报表。每个报表模板由多个区域组成,reportmachine把这些区域称为"band"。有两种类型的band:固定区域band(比如报表标题,页标头,页注脚等等)和用于显示数据集中所有记录的band(比如主项数据栏)。数据band需要联接到数据源,内容是数据源中的记录。

在reportmachine中提供了报表开发的可视化环境(报表设计器,这个设计器也可以提供给你的end user,以方便你的end user自己修改报表模板)用于创建报表。报表设计器功能强劲,简单又易于使用。报表设计器的界面由带有浮动的工具栏,可以自由地改变它们的位置,使用对象观察器(objects inspector)可以控制对象的属性,类似于delphi ide中的那个。

处理:

在生成报表的时候,需要对输入的数据进行某种处理(比如格式化),报表模板需要某些修改(比如报表模板中某个文本框需要改变字体)。

实现这个处理可以在delphi中的trmreport的事件处理中编写代码,这个方法并不通用,因为它不允许在delphi外创建报表而无需重新编译。这就是为什么在reportmachinet中内置脚本语言,reportmachine的内置脚本语言非常类似于object pascal,功能强大。用这个脚本语言编写事件处理代码,这就可以让你创建复杂的处理而无需在delphi中编写代码,配合报表设计器,不需要修改某个报表而重新编译项目。可以实现报表于你的项目分离。

报表脚本例子:

unit report;

interface

procedure memo1onbeforeprint(sender: tobject);

implementation

procedure memo1onbeforeprint(sender: tobject);

begin

memo1.text := 'test';

end;

procedure main;

begin

end;

end.

生成报表:

生成报表是reportmachine根据报表模板,对数据源进行加工处理生成最终的报表并能在点击“预览”按钮后进行预览的过程。在reportmachine中准备好的报表是一组对象的集合,描述报表处理后各页面所包含的内容。这允许你可以修改生成的报表页面,通过在设计器中调用所需的页面。除此之外,还可以描述在预览窗口中鼠标点击对象的反应。这将让你更容易地组织你的工作(在一个报表对象点击可以产生一个更详细的新报表)。

在reportmachine的预览窗口类似于microsoft word:在一个窗口中可以看到多个页面,并且可用用鼠标拖动,需要的话,可以通过双击调出编辑器修改当前页。

收起介绍展开介绍

安装界面预览图

report machine汉化版 v7.0 免费版(附教程) 0

    其它版本下载

    • 下载地址

    report machine汉化版 v7.0 免费版(附教程)

    下载不了,安装失败,有问题? 点此报错 告诉我们!

    发表评论

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    请不要评论无意义或脏话,我们所有评论会有人工审核.
    字数: 0/500 (您的评论需要经过审核才能显示)

    装机必备软件