ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:341KB ,
资源ID:30155166      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30155166.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EAS套打入门reportone.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EAS套打入门reportone.docx

1、EAS套打入门reportoneEAS套打模板设计(ReportOne格式)快速入门 1、前言本文希望通过简要的描述,使用户快速了解EAS套打中的ReportOne格式并能够按照实际需求自己动手设计模板。ReportOne系列的Print格式(模板文件名为*.r1-print,以下简称为R1),应用于EAS套打,为EAS用户提供自定义格式的单据、报表打印。R1格式集成到EAS中,始于版本5.4.0。本文针对EAS6.0.0(5.9)而作,EAS5.4.0的用户也可参考,基本无异。图1 套打管理中的新建R1模板操作2、R1格式的组件及规则R1格式包含了下列组件:页、单元对象(文字、金额、图片)、

2、数据表、网格。2.1页一个模板,自动对应了一个页对象。页不可创建、删除。页是模板的可设计区域。通常,页的大小为纸张大小减去四边距后的尺寸,此时页与纸张一一对应,套打模式和大部分报表模式就是这种情形。但是当多数据源的报表模式(参考后文的“简历模式”),设计时内容就很多,此设计区域容纳不下的时候,允许修改页的高度。见下图“页面设置”(注:由于不存在横向自由扩展的功能,页宽度不可修改)。图2-1 页面设置运行时,页自动与主数据源绑定。如果不存在“能引起分页的对象(如数据表)”绑定主数据源,则主数据源自动移至其下一条记录使页重复输出,例如票据套打模式、简历模式等。否则,由“能引起分页的对象”分页。2.

3、2单元对象单元对象包括:文字对象、金额对象、图片对象,它提供了一块固定的区域,用于展现对应的内容。此内容可以是绑定字段,或自定义的固定内容。注意,“单元对象”是离散的矩形区域,不等同于表格的“单元格”。图2-2 工具箱中的单元对象单元对象本身不引起分页,也不会引起数据源移动至下一条记录。当单元对象放置在可高度自适应的容器中,并“纵向充满”容器时,可实现高度自适应的效果。什么是“可高度自适应的容器”?网格的行、数据表的数据行,具有“行高自适应”的属性,它们的单元格为“可高度自适应的容器”。其中的金额对象,提供了对动态币别的支持。对象除了本身可绑定金额数值的字段外,还可以再绑定币别字段。系统根据数

4、据源提供的币别信息,实现“人民币壹佰元整”、“$123.45”等形式的展示。2.3数据表数据表是一种表格,它由规整的行、列组成,行列的交汇处为单元格。行、列、单元格是组成表格的基本元素。(注意“单元格”不等同于“单元对象”)数据表具有分组展现、统计功能,其数据行能根据数据源重复输出,它是一种可能引起分页的对象。2.3.1行数据表的行分为三种不同类型:普通行、分组行、数据行。图2-3 数据表各种类型的行及分组描述数据行有且只有一行,数据表至少由这一行组成。数据行顾名思义,用于将数据源逐行输出。相对于分组行中的统计内容,数据行中的内容可称为明细数据。数据行属性设置中有“套打型”和“报表型”供选择。

5、套打型用于指定每页打印固定行数;报表型则按照数据量重复输出,空间不够时自动分页。分组行与分组对应。在数据表上设置一层分组,则数据行上下两侧各增加一个分组行,称为“分组头”、“分组尾”。分组头、尾随分组重复输出。每层分组的头、尾允许增删多个分组行,但至少必须各保留一行。如果按照需求必须做分组,而分组头(或分组尾)不想输出,可将其行高设为0,或设置其属性“不打印”。普通行位于最外层,对应一份报表的表头表尾,即“总计层”。数据表允许在其头、尾插入多行普通行,也允许没有普通行。普通行和分组行有属性“每页出现”,可规避其随分组起、止才出现的特性,分页时随页的重复而每页出现,通常与“套打型”配合使用。2.

6、3.2单元格数据表的单元格可以直接用于显示文字内容,也可以作为容器放置单元对象,它可以是下列类型之一:文本固定的文字内容,通常出现在表头或分组头;字段绑定数据表当前数据源的某个字段,通常出现在数据行中;统计可做分组统计(分组范围内)、区域统计(当前页范围内)、累计(从分组开始至当前页)等,通常出现在分组尾(该层分组的统计)或表尾的普通行(总计);运算统计功能的扩展,支持横向的在同一行中对多个数值字段进行运算,再对运算结果进行纵向的统计,最终运算结果显示在该单元格中;容器可放置单元对象或网格,但数据表本身不允许嵌套。多个单元格可以融合。表头表尾某些列与整体不符的情况,通常可以将一行中的几个单元格

7、进行“合并单元格”,再放入网格进行划分。另一种常见情形是某一列从分组头,跨过数据行,合并到分组尾,并绑上分组字段。注意某些情形可能是没有意义的,例如在二层分组头之间做单元格的融合。2.3.3数据源绑定数据表必须绑定唯一的一个数据源。如果要展现另一个数据源的数据,可以在单元格中放置单元对象,并通过单元对象绑定另一数据源的字段。2.4网格网格也是一种表格,同样由行、列、单元格是组成。网格本身不绑定数据,它的行没有类型;单元格也不能显示文字,只能作为容器使用。网格的基本功能是作为一种布局的手段,放置一批单元对象,使模板的调整更简单。此时,网格可放在页中、数据表的单元格中。网格可以嵌套,但嵌套会使模板

8、变得复杂,所以通常通过单元格的融合也可以达到相同的效果。网格的另一高级功能是组合多个数据表,在多数据源的情况下完成报表的展现需求。通常配合“一主多从”的数据源出现(参考“简历模式”),此时的网格作为分隔区域的大容器放置在页中,一般设置为1列多行。可在第一行中放置另一网格做表头,可在后续各行中分别放置数据表。放置数据表的行,设置属性“行高自适应”。那么,这个做为大容器的网格,起到将各个数据表依次输出的目的。所以,设置了行高自适应的网格,也是一个可能引起分页的对象。3、模板设计经典模式3.1票据套打以支票为代表的套打,其特征为:单数据源;数据源的每一行记录对应一张票据;不带分录。在页面上准确位置放

9、置单元对象,绑定字段即可。页随数据源的记录自动重复输出。模板允许从磁盘中导入一张图片作为背景,用于辅助确定准确位置。该图片随模板保存、预览(除非设计完成后将其删除),但不输出到打印机。图3-1 支票套打支票中金额的展现,可使用金额对象。小写金额可按“样式”中的“填格”属性完成填格功能。日期可按年、月、日,创建三个文字对象,都是绑定日期字段,分别做格式化:yyyy、MM、dd。如果是日期大写,可用脚本中提供的专门用于支票日期大写的formatChequeDate函数,例如在文字对象的“后处理脚本”中写上:setValue(formatChequeDate(getValue(),yyyy)3.2单

10、据套打单据的主要特征是带分录,逻辑上是“单据分录”关系的数据源,但在EAS中,通常表现为单数据源。数据源所提供的数据形式上如下:单据A分录A-1单据A分录A-2单据B分录B-1单据B分录B-2单据B分录B-3单据C分录C-1由上例可见,三张单的分录合并在一起由一个数据源提供。数据源总共6条记录,第一张单据A有2条分录、第二张单据B有3条分录、第三张单据C有1条分录。对于此种情形,要做分组,分组字段为“单据ID”(或叫“单据号”之类能唯一标识单据的字段)。图3-2 单据套打该模式通常只需一个数据表,前后普通行融合后放网格做表头表尾;分组头做分录的标题,分组尾绑单据的汇总字段或利用套打系统做统计;

11、数据行为套打型,每页重复固定次数。所有普通行、分组行设置为“每页出现”。常见的“凭证”等业务的套打,属于此模式。3.3多数据源的单据套打(带审批的单据)该模式特针对下述情形:在上述“单据套打”所描述的单数据源的基础上,增加了一个审批信息数据源;审批记录行数可预知(最多不超过多少行);审批信息在单据每页中显示。首先,模板开始设计之前,必须引入数据源并设置参数,使“从数据源”依赖“主数据源”。此例中,输入参数名称为billId,为审批数据源的单据ID字段(可按数据库中“外键”的概念理解),绑定到单据数据源的单据ID字段。图3-3 设置数据源依赖关系和展现单据的数据表并列地,也放置一个数据表在页中,

12、绑定审批数据源,位于单据下方。由于审批记录行数可预知,设置数据行套打型、固定行数。这样,审批信息将不会跨页,只出现在单据的第一页里。如果有必要让审批信息在单据的每页中重复出现,在其数据表的“后处理脚本”中填上secondBirth()函数即可。注意,此例中的数据源提供方式,不能满足报表形式的展现,即不能满足单据跨页显示完了,单据后头接上审批信息(除非只打印一张单据)。如果要达成此需求,数据源必须是“单据分录,审批”这样“一主二从”的形式,请参考“简历模式”。3.4单数据源的报表“报表型”区别于“套打型”的特点是:不限定每页显示数据行数,行高可随内容自动调整(行高自适应),通常为第一页开头是表头

13、,表体内容跨若干页,最后一页是表尾的形式。和单据套打类似,用一个数据表就可以解决问题。做必要的分组,分组行择需隐藏(“不打印”属性);数据行设置为“报表型”;如果某些字段数据量不可预知,或各行数据多寡悬殊,可设置“行高自适应”;普通行、分组行的“每页出现”属性择需设置。3.5多数据源的报表(简历模式)该模式的数据源为“一主多从”的结构。以简历为例,对应的是“人员基本信息教育经历、工作经历”。 如同前面“多数据源的单据套打”中所述,对于多数据源的情况,同样需要设置依赖关系。不赘述。在“组件及规则”部分中已提及,利用页按主数据源的记录自动重复的功能,人员基本信息数据源中每一个人的记录都能自动得到输

14、出。我们只需要创建一个一列多行的网格作为基本容器,第一行嵌套另一个网格放置基本信息,第二行开始各放入一个数据表,显示教育经历等各从数据源的内容。以上描述如下图所示。为了清晰展示多层容器的关系,该图中各对象都向内部缩入,留出一圈边缘,实际设计模板时,对象应该是充满的,除非故意设计成这样。从图中可以看到“分页提示线”,这是由于设计区域不足以容纳众多的内容,我们在页面设置中修改了页的高度。此线只是提示,按照实际纸张输出,一页有那么大。图3-4 简历模式4、模板设计常见需求解决方案4.1盖章(电子签名)需求一:对于动态的内容,由数据源提供数据,用图片对象直接绑定字段即可。需求二:对于固定的内容,只是有

15、条件地控制是否显示。用图片对象,在其“后处理脚本”中写脚本进行控制。假设存在一个叫“是否完成”的字段isFinished,布尔值,单据状态为“完成”则加盖图章。图章的图片对象的脚本为:if(getFieldValue(数据源名称, isFinished)setHide(false);elsesetHide(true);脚本不是唯一的,只要符合语法,可以举一反三。上例也可写成:setHide(!getFieldValue(数据源名称, isFinished);4.2“是”/“否”(枚举值显示为汉字)数据表单元格或单元对象绑定目标字段。后处理脚本为:setValue(getValue()? 是 :

16、 否);或:setValue(toStr(getValue()=“true”? 是 : 否);4.3能否做到只显示统计,不显示明细数据通过隐藏数据行,可以达到目的。数据行属性-“不打印”。虽然功能上能达到目的,但还是建议避免这种做法,尽量从数据源的角度考虑解决方案。试想为了显示若干行统计数据而取回上万行明细数据,是多么笨拙的做法。4.4页眉页脚R1格式中尚无明确的“页眉页脚”的概念。但通过下列途径,可达到页眉页脚一致的效果:放置在页中的单元对象,可随页重复输出。在单数据表的情况下,数据表的前、后的普通行,设置“每页出现”。4.5节纸打印简而言之就是例如在一张A4纸中打印三张凭证。做法如下:页面

17、设置中纸张按实际打印的物理纸张设置为A4,勾上“节纸打印”选项。模板中单据放置在页靠上三分之一的范围内。4.6连续走纸针式打印机、两边带孔的连续纸。打印机自动走纸,无需任何特殊设置。4.7超市小票模式连续的纸张,每页长度由内容决定,可以打多长就撕下多少。就像在超市买单时的购物小票。页面设置,纸张选自定义(Custom)、纵向,勾上“动态走纸(超市小票模式)”选项。4.8关于纸张、横纵向与打印机进纸方向的问题纸张有确定的大小,不管是标准纸还是自定义纸张,都是由宽度高度来描述。例如A4纸是210297(单位:毫米),如果尺寸为297210,只是与A4物理纸张一样大,不能称为A4纸。打印机的进纸方向

18、是与纸张尺寸一致的,与横纵向的设置无关。例如模板设置了纸张为A4纸,那么一张A4的物理纸张总是210的一端(宽)贴着进纸口,297的一端(高)垂直进纸口来装纸。横纵向只是定义了内容在这张纸上的打印方向,和进纸方向无关。以上是一般打印机与纸张的规则,由于容易混淆,特此说明。另外,不管是设置了纵向还是横向,设计器和预览界面中看到的,总是文字正向的方向,不会像图片一样转换90度。4.9如何确定主数据源当一个模板中定义了多个数据源时,要按照逻辑关系设置参数,定义依赖关系。模板执行时,系统自动识别“不依赖于其它数据源的”为主数据源。主数据源将影响到分页。如果确实存在无依赖关系的、并列的数据源,则按照设计

19、器中看到的顺序,第一个为主数据源。此时,在设计器导航栏中的数据页签中,选中除第一个之外的任一数据源,鼠标右键,可看到“成为主数据源”的弹出菜单。此菜单项可将选中目标置顶成为主数据源。图4-1 数据源不建议在模板中定义多个无关的数据源,而实际只使用到其中的一个或几个。5、设计器使用技巧对象属性设置、设计区中的拖拽操作,遵循“选中目标”原则,即选中谁、操作谁。就像文字编辑时的光标,光标在哪里,录入的文字就插入在哪里。所以,当选中一个文字对象的时候问“为什么不能拖动表格行高”是不聪明的问题。设计器左边导航栏的“报表”页签,是对设计区中对象的树状描述。它的对象选中状态和设计区保持一致。当设计区中出现重

20、叠现象,比如对象覆盖到其容器,使选中不方便时,可通过此树来选中对象。Ctrl+鼠标单击,可多选对象;Shift+鼠标单击,可“块选”表格(包括数据表和网格)的单元格。(注:相同容器中的对象才允许多选。)选中工具箱中的组件,在设计区中创建对象时,按住Ctrl,可连续创建多个对象。导航栏“数据”页签,可将一个字段拖到设计区目标对象上绑定。特别地,对于数据表,拖放字段的时候按住Shift,可将字段别名作为文本内容填入单元格中;拖放字段的时候按住Ctrl,可将单元格的类型置为对该字段的分组统计。对象从一个容器“移动”到另一个容器,可剪切(Ctrl+X)、粘贴(Ctrl+V)。数据表单元格的内容可复制,而且可按照单元格的位置批量复制。例如把整行标题文字从第一行移动到第二行,选中第一行第一个单元格,Shift+选中第一行最后一个单元格,Ctrl+X,选中第二行第一个单元格,Ctrl+V。(注:作者是R1套打设计器、执行引擎的开发人员,也是R1套打规则定义的主要设计人员)485001.41070001498

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1