c#pcrmreport工作日报表怎么写写

Report Machine(RM)报表控件简单用法-delphi - wind的博客 - 博客园
随笔 - 5, 文章 - 0, 评论 - 0, 引用 - 0
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);varRMReport:TRMRbeginif ADOQuery1.IsEmpty thenEtryRMReport := TRMReport.Create(Self);RMReport.LoadFromFile('Match.rmf');RMReport.PrepareRRMReport.ShowRfinallyRMReport.F
procedure TForm1.Button1Click(Sender: TObject);beginRMReport1.ShowR
// 设计报表模板procedure TForm1.Button2Click(Sender: TObject);beginRMReport1.LoadFromFile('TTT.rmf');RMReport1.DesignR
对于大多数规则的报表,以上知识就足够了。但这只是RM最简单的用法,远远没体现出RM功能的强大。
RM有两个吸引人的功能是我目前最需要的:
1)、数据可以来自数据库,也可以来自其它任何地方,如文件中、内存中等。2)、不一定需要预先制作好模板,可以在运行时刻通过代码生成模板,这对于数据中字段个数不定的情况非常有用。
RM虽然功能强大,但用起来并不觉的很复杂,它是我见过的为数不多的报表控件中最好的一个。
1.对于一张纸要两面打的报表你有什么好办法?打印时可以选择打奇数页还是打偶数页。2.怎么能在一个页面中打印固定的条数,另外最后一页记录不够时怎么打出空白的格子出来啊.固定条数:设置LinesPerPage空白格子:设置AutoAppendBlank=True3.怎样屏蔽双击报表进入设计报表的界面?RMReport1.ModifyPrepared := False4.怎样在报表中增加表合计???可以放在标题栏,页面设置中选"两遍报表"汇总框的TotalCalc=True即可5.我想用代码把参数传递给报表中的某一个TRMMemoView该怎么做?RMReport1.FindObject(&Memo1&).Memo.Text := &ddddd&或者RMVariables[&a1&] := &ddddd&; //这样就可以在报表中使用变量&a1&了。6.如何能够不打印重复内容?Suppres=True7.如何让打印预览时双击不能进入报表编辑器!设置RMReport.ModifyPreview=False8.如何在报表程序中控制MEMO的边框是否显示在delphi中:memo1.LeftFrame.Visible := Falsememo1.TopFrame.Visible := Fmemo1.RightFrame.Visible := Fmemo1.BottomFrame.Visible := False在报表的script中memo1.FrameTyp := 15; //这个参数多试几次就知道如何设置了FrameTyp := 0; //不显示9.怎样改变page的名称和控制它显示但不打印可以,在Page1的OnBeforePrint中beginPage1.Visible := TPage1.Visible := F //不显示10.Report Machine中,如何强制每3行一个表格设置主项数据栏:LinesPerPage=3如果三人一行有办法:设置主项数据栏的Columns=3用分组打印,分组条件: NowLine & 3在分组标头的OnBeforePrint:beginNowLine := 1;在主项数据的OnBeforePrint:beginNowLine := NowLine + 1;11.能否只显示分组统计值而不显示分组数据?可以,设置主项数据栏:Visible=False统计框:CalcNoVisible=True12.能否只对超过长度的单条记录进行折行?可以,设置文本框:Stretched=T wordwrap=True设置文本框所在的栏:Stretched=T Breaked=True13.如何实现打印预览的问题RMReport1.LoadFromFile(&c:1.rmf&); //读入报表RMReport1.ShowR //预览RMReport1.PrintR //打印RMReport1.DesignR //设计14.请问如何在程序中控制:1、纵向打印还是横向打印。2、分组标头是否每组换页。1.RMReport1.Pages[0].ChangePaper()2.RMReport1.Pages[0].FindObject(分组标头栏名).Prop[&NewPage&] := F15.直接打印的方法是什么?RMReport1.ShowPrintDialog := FRMReport1.PrintR16.页边距改变以后,所有控件应该相应的改变位置。需要在页面设置中不选"缩放到可打印区域"页面居中或RMReport1.Pages[0].pgMargins := ; //这样试试17.如何从导入一个rtf文件作为TRMFormReport的PageHeadervarTempStream : TMemorySbeginTempStream := TMemoryStream.CRichEdit1.Lines.SaveToStream(TempStream);TempStream.Position := 0;RMFormReport1.PageHeader.Caption.LoadFromStream( TempStream);TempStream.F18.怎样确定报表模版目录?设置TRMDesigner的TemplateDir19.我想动态设"虚拟数据集"该怎么设!(RMReport1.FindObject(&Band1&) as TRMBandView).DataSet :=&RMDBDataSet1&;20.在程序中RMVariables[&aaa&] := form1.C在报表中就可以使用变量&aaa&21.左边距:CurReport.Pages[0].pgMargins.Left := Round(RMConvertToPixels(毫米 * 10, rmsuMM))22.RMVariables[&品牌&] :=TRMVariables[&品名&] :=&计算机&;在Page1的OnBeforPrint事件中的代码如下:If 品牌 ThenMessageBox(品名);23.每页只打10条记录怎么处理啊?主项数据栏LinePerPage=1024.怎么实现主项数据的统计啊???最好用栏目注脚栏,在上面放统计框,然后设置CalcType即可25.动态生成报表时,RM的页边距如何设定?TRMPage.pgMargins := Rect(30, 30, 40, 40);26.如何在程序运行时,在一个预览或者打印窗口中,一次打开多个报表文件用TRMCompositeReport,RMCompositeReport1.Reports.CRMCompositeReport1.Reports.Add(RMReport1);RMCompositeReport1.Reports.Add(RMReport2);RMCompositeReport1.ShowR27.rm如何进行套打Page1不是有个BackGroundPic属性吗,这个就是专门做套打的28.GridView1 能象Microsoft Excel实现 a3=a1+a2吗?可以,a3内容[memo1.CalcValue + memo2.CalcValue]29.使用总页数,将CalcMemoView放在页头,组头,栏目头时需要选择"两遍报表",对打印没影响,只打印一遍.30.如何打印中括号如: [2002]在memoview的OnBeforePrint中beginmemo := &[2002]&;或者把&[&,&]&定义成变量:RMVariables[&a1&] := &[&;
RMVariables[&a2&
report machine开发使用手册-创建报表 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中编写代码,配合报表设计器,不需要修改某个报表而重新编译项目。可以实现报表于你的项目分离。
报表脚本例子:
procedure Memo1OnBeforePrint(Sender: TObject);implementation
procedure Memo1OnBeforePrint(Sender: TObject);beginMemo1.Text := 'test';
procedure Mbegin
生成报表:
生成报表是ReportMachine根据报表模板,对数据源进行加工处理生成最终的报表并能在点击&预览&按钮后进行预览的过程。在ReportMachine中准备好的报表是一组对象的集合,描述报表处理后各页面所包含的内容。这允许你可以修改生成的报表页面,通过在设计器中调用所需的页面。除此之外,还可以描述在预览窗口中鼠标点击对象的反应。这将让你更容易地组织你的工作(在一个报表对象点击可以产生一个更详细的新报表)。
在ReportMachine的预览窗口类似于Microsoft Word:在一个窗口中可以看到多个页面,并且可用用鼠标拖动,需要的话,可以通过双击调出编辑器修改当前页。&&&&RMReport报表开发实例,无水印
RMReport报表开发实例,无水印
这是一个非常强大的c#报表开发工具
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行&使用rmreport有关程序调用报表时的注意事项
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
使用rmreport有关程序调用报表时的注意事项
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&5&次
C#中使用RmReport控件,打印报表注意事项
本资料共包含以下附件:
使用rmreport有关程序调用报表时的注意事项.doc
(0位用户参与评价)
down友评价
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载1099次
下载1724次
下载1035次
下载2884次
下载2575次
相关专题推荐
本视频教程一共二十讲,以英文版的《
本套视频是由徐长龙老师主讲,作为微
WinForm可以创建应用程序的用户界面,
本专题为.net平台的C#教学视频,共54
本专题为《软件开发视频大讲堂·C#从
精选53个ASP.NET开发中最常用的模块,
本专题为精选32个 C# Winforms 开发中
本专题详细介绍WCF通信的原理和应用,
本专题精选了21个来源于开发第一线的
本专题收集了20个具有代表性的项目实
ASP.NET是微软主流企业Web应用开发技
精选22个经典小游戏:俄罗斯方块、坦
本专题为C#4.0从入门到精通视频教程,
9大专题:.Net基础加强,数据库开发及
本专题包括家庭视频监控、企业短信群
主讲教材《Visual C# 2010从入门到精
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2348)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Report Machine(RM)报表控件简单用法',
blogAbstract:'',
blogTag:'报表,rmreport,控件,report,模板',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 销售周报表怎么写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信