AC Report开发应用手册
AC Report报表开发应用手册AC Report报表开发应用手册Anycell Report应用开发手册Emai: acreport(asina, com QQ:16537385929481711AC Report的历史很多 Delphi开发人员对 ACReport应该不会陌生, ACReport早期主要作为 Delphi下的CL组件发布第一个对外公开的版本是1.5,发布于2003年,第一个以COM方式发布的版本是184(2004年),2005年 ACReport发布经典的19系列版本2006年发布20版本,20之前明显重视 Delphi下的ⅤCL版功能,COM版虽然具备基本功能,但仅有一个 ActiveX控件,开放的编程接口很少。2009年,在众多网友和老用户的建议下,原作者决定对 ACReport重新进行了规划和改进,走出CL组件的局限,全力加强COM版的功能,该版本命名为 IrEport中国式报表引擎( AcReportEngine VEr2.1),相比老版的COM版和VCL版,新版本在功能、稳定性、使用方便性、开发接口等方面都大为增强。此版本包舍两部分:报表引擎 Reportengine)和web版 ActiveX控件。此外,新版本完全兼容以前所有版本的报表文档格式(包括模板[ap和报表ar),准备升级到新版本用户不需要担心报表模板重新设计的问题,但在新版本中修改过的报表文档,旧版本捋不再支持。附ver22主要新增或修改的功能、增加报表行对象隐腩功能(支持在脚中设置,函数名: SetLine visible(b: boolean)【设计器】二、增加单元格下拉列表框设置功能【设计器】增加宏替换功能(宏变量)的支持【设计器】四、增加 LAc Unionlib接口支持,以一种新的方式扩充函数厍【SDK】五、增加 LoadFrom Stream和 Save ToStrean方法及 IACNetstream接口支持【SDK六、修改了单元格批量复制粘帖功能,当粘帖位置行数不够时,粘帖时自动增加行。【设计器】七、修改了单元格拖动时有时会出现字符显示错位的问题【设计器】八、屏蔽了设计器中打开模板时如果数据库控件连接字符串无效时报错的信息【脚本】九、设计器增加了行号显示Anycell Report应用开发手册Emai: acreport(asina, com QQ:16537385929481711十、增加了 SetApp Connection String方法,ADO连接控件增加了 AlwaysUSeAppconnSπing等相关属性在报表中直接访问数据库更加方便。报表设计器初识 Anycel Report表格来看看两个典型的报表实例直页上东度L付款明细表日期贝2003825到20408=25单号日期供应高号供血名释制单较手人单需宝额神我200405290002004-05-29001Adrin1950. 00206204200140大日化Asi建2167.462168.4b1204-06-20g西烛,酒Ahn题4520,3445234006803204-0623001馒定纶宝集國Adman漫296.3026.30d011204062400618269.2a0040e2402204-08-2400d杰出商贸有颗公司Amn孟盂田768.?7e5.0z464mn|200-06-24|m彗公司百252044941209024四0「唐乐蜜Adnn孟国富65883580062130204-06-4026京大日化Ain孟团雷13:2563252000020044029自〔近羊〕m孟国富324.17020441007204062409自即〔远洋]M孟国百2204062408204-06-24|3白〔盒日)k击n国富4871.60487.6C40624020-06-24031白你(兴)dn雲图雷585:70200004109内友店6云回富5800652004062401t2004-08-240034自积专实店田百L55,1d20062401220406-24自熟)天堂伞业A孟网1:3.0C0624013204-06-24∞36自象全日用品An三36,Min舌图富26446382641820062401620040-4m38(自欢织An孟窗105.00o40641204-0-211ay7(自熟土达AA孟田富20.002m4624011204-02403老坏h击n国冒21.0m000:40182004-06-241005广亲悲经制提厂Admn2富105.01035200060204-068aa会料没部in舌田0旬20040620002200-08-28|026东大说Admin孟团富390.002040680:豆白Ms了44.1491cnonezeannd. znnd-ns-24 onna改幽益市需1517第厦持页(图:一般的清单报表)Anycell Report应用开发手册Emai: acreport(asina, com QQ:1655373859229481711Anru1 roport报在查看 E:lgontrolw\Creport Roport Fir\ACRigTinti acrl文件操作0笔〔〕0日“國画②只回HHF过p烟台天商科技有限公司采购入库单单号;R-款005-12-001进赁仓库:总部仓日期:200405-12但名称『燕单址联系人吴先生号品名格单数量含栏单价「货款桡率款节险光日■1,L0u94!114g4节I光4J5F5TJ913如T3旋7啬光|3旋1584刘2376123分计<大写,>贰方陆梨值圆整<小写:>2672000销货单位道);记已萨卫红粥1页典t置第洪贾如ya1sart把收查(图:单据式报表)带图表的报表4当k4四x名m1表编器[ EitGontrolskdcreport+dao表用示例rtB,mt1□文吧)编更格格式更)工勋田日+国但p件01B些薯口日口E目·▲·,x4第行第r格回计算公式=r僱员案:员柱案学历本肆)1点和密家自8小字盘点阜明用日169本料国弱初中工作证剩作中5g中5大专锅号单位名瑞想格圈小学中仓:2■了20本科口初中图3大三个一两个图在日3中方法上笔全不,研注意比较啦人事档案表制要:邵洋边距[r号「姓名卡号身份过号部门姓别用国期学历号打印前平作 filefaert:t方判时mn姓先21H1学-0Nortran右边距7丰条目:人数:4男性人数:123牛科学历人数B面虹M即比表工具光标这置r)X]7了当夏面半报表工具权用为,无方工作案Anycell Report应用开发手册Emai: acreport(asina, com QQ:16537385929481711(图:设计器界面)它的表格风格有点类似 Microsoft officc word的风格,但AC表格区别于Word-个明显的特点是:它没有"列”的概念,即它每一行是独立存在的,每一行中的单元格的数目可以是不一样的,上下单元格不需要对齐,这是一个很重要的特点,意味着AC可以更容易随心所欲地快速设计出很复杂的中国式报表格式,而不需要过多的合并拆分动作。例如,在AC的表格设计中常会看到如下的情景國Ay11ut天华辑富[标照牛¢)編辑)表格⑦)格式皿〕插入〔)工且帮助a品串c。型00%田囗=图=画10·田1Ⅱl三日E=4出曰崮,△,,妇第忙第格图去计算公式1111:(图:上下未对齐的单元格)注意选中的区域,它的上下相邻的单元格不是对齐的,而这这个效果不是通过合并拆分实现的,而只需要直接拉动调整每一行上单元格的宽度就可以了。基本元素一个 ACReport报表模板可能含以下元的部分或全部1.表格页面(Page)一个报表模板下面,可能包含若干个子页面,第一个页面都是一个独立的报表样式或表格,类似于Excel里 Sheet的概念,创建一个新报表模板时,默认创建一个主页面。Anycell Report应用开发手册Emai: acreport(asina, com QQ:165373859294817112.行ine)每一个报表页面中会包含两种子对象“行”和“浮动对象。而行对象则是组成表格的唯一实体。可以说,一个表格,就是页面上的若干行组成的。3.单元格(Ce)单元格是属于行的子对象,每一行中包舍若千个单元格,组成这一行的表格视图,它有边框、数据、计算公式、图像、颜色等属性,是组成表格最直观的对象,而行只是一个虚的概念,可以这样说,如果一个行上没有单元格,那么,你捋看不到这一个“行4.浮动对象(view)浮动对象是一种与单元格有相似功能,但又有很大区别的对象。百先,它和单元格一样,也是组成报表内容之一的视图对象,它可以是文本、图片、图表、条码等,但它与单元格有明显的区别,浮动对象顾名思义,就是浮动在页面上的可视对象,它不受行的约束,可以用鼠标自由拖动,所以也称为自由对象,例如上图中的“公司log,就是一个浮动的图片对象,这种可视对象是从设计器中左边的控件栏”中拖放下来的。5.报表样式标注( Style通常情况下,我们用 ACRcport做一个表格,只是设计一个“模板”,所谓模板,简单地说就是某些地方固定,而某些是方是按照一定的规则动态生成的,动态生成的部分,通常是由报表系绕自动完成的,AC如何生成用户所需要的报表?很自然的它需要知道两个东西:1数据的来源,2生成的格式和规则。所以,我们就需要在模板中进行相关的设置,这个设置,我们称为“报表样式设置”,在后面的章节里捋会具体介绍如何进行报表样式设置。6.自定义窗体和脚本(Horm& Script)Anycell Report应用开发手册Emai: acreport(asina, com QQ:16537385929481711Δ CReport是一个轻量级的智能报表系统,其它大型报表系统一样,支持抓取外部数据和脚本编程。ACReport除了支持复杂的公式运算,也支持脚本功能、支持报表内嵌的U设计,即报表设计人员可以设计针对具体报表的窗体(Fom)和用户进行交互、或定义自己的数据来源,获得不同数据库的数据等等。有关窗体和脚本的功能,在后面的相关章节里会有详细介绍。多种类型的单元格ACReport吸引人的地方之一:它不只是支持简单的文本打印,它的单元格类型非常丰富,使得制作图文混合、具有复杂表格的中国式报表非常方便,看如下的截图nceLl Renort报表编-[B: controlgeAr秒rtda报表应用示 Trott0.art文件表格)格式)插入)工具墨防口汕中。子0田日目团图p「采1·aⅡ国日口E目圈△4·刻弟7弟楼回计算公式三打印日期:+ For natDate5 yyyy)年m月日,t0盘点单望表CE对象简介国盘点单日员案你可以设互一个单元格为CLE对象,在0E中可以插Ard又橼Ecnl文档工作证作图片等对象「姗号你还可以如表型的数据字中装入0对象,方法是在比单元格插入此罕隐名你甚至可以动烟!史氯,如余可算必式中写:名称= DePat+“abc.x1x仓库1料I这是一个ich单元格.可以在胃一个犀2单元中设置和不园的字体中4中4文本中竞公式纷如,以下公式是雕得因密薇中2当醇爵径: pAth0TAeRapoYL学5下100报丧敌头3商品资料「高度商品名移规格翌号单位编号仓库1仓库2m派方向portrait面5[葡考酒右边尺寸月而0「远洋高科资有限会司瑆期二87-"bi26527上边毘100打印那2年95日贴万些件肆届差恰即国伍角陆分x26523轰[是一个自由对,自曲对像是在单上的可自由的打对Onlefereprialv置页面即本代码页西cdrt报表工具光标位置):":83,:53当前发主爽面本报表工具报织用尸:天方工作家(图:多种单元格的展示上面的截图来自Demo中的功能展示,这个报表模板展示了各种不同类型的报表元素,下面简单介绍一下上图中所列出的多种单元格类型Anycell Report应用开发手册Emai: acreport(asina, com QQ:165373859294817111.文本单元格最基本、也是最常用的单元格类型,可以支持文本或数字的自动处理。2.图片单元格图片单元格用来显示一个图像,图像可以在设计时固定,也可以在生成报表时从文件或数据库中动态装入。3.日期型单元格专门用来处理日期型数据的单元格,可以设定多种日期格式。4.数值型单元格专门用来处理数值类型数据的单元格,它的值必须是数字,可以设置多种显示格式。5.图表单元格支持图表显示的单元格,数据来源于报表连接的数据库对象,支持多种显示方式,例如直方图、饼图、折线图等。6.条码单元格粲型码显示的单元格,将单元格的值,以条型码的方式展示出来,支持多种粲码格式。7.财务帐薄单元格以传统财务凭证单据中金额栏的样式显示数字的单元格,在中国式报表中,经常会用到。8.Rich文本单元格对于普通的文本单元格来说,不管这个单元格有多大,整个单元格只能是一种字体和颜色,而Rch文本的单元格可以支持在一个单元格中显示一段具有不同颜色和字体的文字,并且支持内嵌变量和公Anycell Report应用开发手册Emai: acreport(asina, com QQ:16537385929481711式,例如上图中的:&[ AppAlL(O, AppPalh()是 AcReport里面提供的一个函数,返回当前进程的文件路柽。9.OLE对象单元格OIE对象单元格顾名思义,它是一个OLE对象容器,可以将其它支持OLE的应用文档嵌入到这个单元格中显示或打印,例如,你可以烀一个word或Fxc文档嵌通过这种类型的单元格嵌入到报表模板当中来。10.特殊边框样式的单元格ACReport中,每个单元格都可以设置丰富的边框样式,目前支持的样式有:无边框、单实线、双实线、虚线、点虚线、对角线等,也可以设置边框的粗细和颜色。常用的操作在工具条上有相关的快捷按扭,复杂一点的设置,例如双实线的设置,在单元格属性->边框设置里操作,如下图所示单元格格式设置单元格类型对齐字体边框图案边框一圖宝田线型一边框线额色6√确定」[x取消可以单独设置一个单元格,也可以选中多个单元格,批量设置边框。具体操作在后面的章节会有详细介绍。
用户评论