Report报表开发设计说明书_第1页
Report报表开发设计说明书_第2页
Report报表开发设计说明书_第3页
Report报表开发设计说明书_第4页
Report报表开发设计说明书_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 表开发设计说明书 第一部份 : 简介 表,就是将数据库的数据合理、清晰、汇总的展示出来。输入一定条件的参数,得到一定的数据的展示的结果,其实就是一个 询的过程。查询,就是说,不要对有任何的增加原数据,修改原数据的功能。 然能够轻易的实现改变原数据,但是这样的需求是不合理的,报表的就是一个展示的功能,不管多复杂的报表,不能改变原数据,不能影响流程。 单的说,就是一个资料模型,就是你的报表数据查询来 源,一个布局模型,你要的报表的展示格式。使用 前,你需要的基本能力就是会使用句,语法是其次,关键是数据之间的逻辑关系,起码能将左外联接,迪卡尔积等几个名词说的清楚,那么, 续往下看。 第二部份 : 基本开发步骤 境下的 格式属性设定 . 不使用 出现在画面中的始文件另存为你的目的地址,并使用你的项目报表名称。 中报表名称段,按 字符模式 -用字符单位设计 -选择 ”是 ” 。 2 择主要节段,按 符模式 -报表高度和报表宽度按照设计书填写,节段 -宽度和高度,这个设置直接影响布局模型字符模式下的点距。 小技巧:节段的高度和宽度,与报表高度和报表宽度最好对应成比例,并且,这个比例的倍数最好是整数,由于将来可能出现的报表长宽发生变化,报表高度和报表宽度调整后,节段的高度和宽度就要按比例调整,这样每个格子的形状、大小不变,同时你报表中的内容不会拉长、压扁; 同时建议将表头节段,表尾节段也设置来同主要节段 相同。 例如:表头 ,表尾 ,主要节段三个的属性 ,请将节段高度和报表高度按比列设置 (如 1:10), 节段宽度和报表宽度 ,按比例设置 (如 1:6),而且三个节段的属性要设置相同 . 3 这样做的好处是将来一旦调整报表大小 ,只需按比例不变的情况下调整 ,框架中每格大小不变 ,表格也就不会混乱 . 择格式 -布局选项 -标尺设定,画面中点选,单位 -字符单位,网格线间隔 -,对齐点数目 -,字符单位大小不要改动。 . 4 这样设置的目的在于拉动框架时,间距都是 1个字符,符 合 样,你的前期工作就算完成了。 2定义你的使用者参数 将详细设计文件中, 境传入的参数和你自己定义的参数,一一设置好,提醒注意数据类型和大小,传入参数和自定义参数要区分开,请按照规范文档来。注意,自定义参数对报表的开发灵活性作用巨大,要使用有含义的名称。 5 1 “入值用的参数 , 如果 用途是真正作为传入参数用时,名称一律以 ” ” 开头 ;不可使用系统默认值。 2 “ +表中使用的变量参数 , 如果 用途是作为共享变量时,名称一律以 ” ” 开头 ; 不可使用系统默认值。 3 有起迄的参数需要在后面 ”_F” 表示 _T” 表示 不可使用系统默认值。 小技巧: 型的传入参数,有时根据 置的不同要使用格式遮罩,固定它的时间格式,不然会出现错误。同时建议在设置大小时要适当放大一些,避免有多国语言文字时出现错误。 3 行过程的说明 6 从画面上触发器的摆 放次序,是从上到下的。为参数前,参数后,报表前,翻页中,报表后。其中参数后和报表前为最常使用的两个触发器,一般情况下,使用报表前( 编写在报表运行前需要处理的数据,比如给自定义参数赋值,运行一段存储过程,定义一段动态 入临时表格数据等。当报表前插入临时表格数据,那么 4建立资料模型 一般来说,除了矩阵,布局无非就是固定框架和循环框架的组合,每一个循环框架就对应一个资源模型中的一级。当然,这么一句话并没有什么实质意 义,而要把这个讲清楚,就通过图形和实例来讲解。下一部份重点讲解该注意一些技巧和特点。 按“ 钮,点入画布中,再导入事先写好的 7 导入 个报表的资料模型非常之简单。(注此报表并非模范,请按照规范命名。) 5,建立布局模型 个固定框,再在固定框内画 1个循环框 固定框和循环框拖拉到合适的大小,再内部填充上数据栏位和文字栏位 8 固定框 上下设为浮动的,左右为固定的,显示为“第一页”“包 含模式”。 循环框 9 上下设为浮动的,左右为固定的,显示为“第一页”“包含物件”,每页最多显示多少,这里为 1,当然根据需要而定。 内部栏位 10 上下设为固定的,左右为固定的,显示为“第一页”“包含模式” 6 报表完成 这里的第 3,4,5小节只是一点简单的步骤介绍,详细方法和技巧并没有呈现出来。下面这个部分,将就资料模型和布局模型的关系作详细的探讨。 7 参数规范参考 框架 字段名称 命名 “可表达其意义的名字 ,最好能与抓取值名称对应上;不可使用系统默认值。 查询主体 名称 命名 “可表达其意义的名字;不可使用系统默认值。 11 固定框 名称 命名 “可表达其意义的名字;不可使用系统默认值。 循环框 名称 命名 “可表达其意义的名字;不可使用系统默认值。 文字框 名称 命名 “可表达其意义的名字;不可使用系统默认值。 式直栏命名: “可表达其意义的名字 ;不可使用系统默认值。 “可表达其意义的名字;不可使用系统默认值。 12 第三部分 殊报表的布局开发方法 1. 布局框架风格 时间左靠齐 ,数字右靠齐 . 小技巧:对于字符型数据的栏位,注意中文和日文的宽度,是占用 2 个字符;对于时间栏位,注意格式遮罩,比如 有小时是 12 小时制,还是 24 小时制,有时会遗忘这一点;对于数字栏位,注意保留位数, 不一样的,前者是恒保留 2位,后者是超过 2 位小数保留 2 位,但是不足 2 位就不会补 0,还有一些是货币格式,注意选择合适的格式遮罩,还有特殊情况,如负数要用括号括起来, ( 100),这种情况,建议使用公式栏中处理出来后显示,先 换,再判断是否两边连接括号。 体报表要求用细明体 ,10号字 . 小技巧:不要设置任何斜体、下划线、粗体,因为 表就是纯字符报表,有一次我设置了粗体,试验下来的结果就是报表会报错,这样的错误,很难找到原因。有时你看见明明显示的是细明体 10 号,但是一 运行却不是,建议在作完报表布局后, 全选,然后先选择另一个字体,再选回细明体,先选另一个大小字号,再选回 10 号字。 将框架和栏位的颜色设为无色 ,填充也设为无 . 小技巧:在画完报表之后, 全选,选择无填充,无颜色,这样报表保证不会出错。 13 表标题 ,设在主要节段内 ,表头 ,表尾尽量不要输入内容 ,同时在“显示报表的表为节段 ” 模式下 ,将黑框顶满画面 . 小技巧:任何报表形式,都能够在不利用表头模式、表尾模式的情况下实现表头表尾格式的实现。因为在表头模式、表尾模式下,非常 容易出现报表出错,关键是错误很难找出,有时把整个画面全部删除了,才想到是表头表尾出错了。 将下面这个黑框,上下左右全部顶满。 2资料模式风格 分利用报表的汇总、公式列功能。 14 小技巧:汇总,与此类似的平均值之类的,为我们的报表编写提供了相当大的辅助,但是要注意层级关系,你这个汇总是放在哪一个层级上的。一般来说,汇总列总是比你要处理的列高层级,而公式列是与处理的列平行的。 公式列的功能,常用在字符处理上,或者数字转字符,或者返回一个 接线的使用 对于图中 _2之间的这条连接线,意味着,将这两个查询通过某一个栏位而统一起来了,从上图中就可以看出, 是连接的栏位列之间是对应关系。 但是,假如右边第一级不是 1个栏位是很多个栏位,并且其他栏位并不与主查询有连接线,这是,右边的第一层,就比左边低一级了,就不是平等关系了,这时需要一个循环框。 可能有人会被我这个高级、低级给将糊涂了,为了清晰的表达这个层级关系,通过几个实例来阐述资料模型的结构与框架结构的关系。 15 3资料模型与布局模型的关系。 料模型一个层级就对应布局模型一个循环框 上面这句话,是我对 总结,下面,我就通过画面来说明这个关系是如何对应的。 例一:红色部分就是第一层,第一层意味着可以不被任何循环框套起来,可以直接使用到报表之中,本例中第一层没有数据。第二层,意味着需要一层循环框。第三层,意味着使用这样的栏位,需要有两层循环框。第四层,意味着使用这样的栏位,需要有三层循环框。 在下面图中,三层循环框就对应资料模型中的三个层级。布局模型中,不用任何循环框包围的部分,就是资料模型中的第一层。 16 小技巧:每个循环框的外面, 请加上一个固定框。不加可以吗,可以!但是,这就降低了报表的应付变更的可变化性,比如:有个报表的循环里面要求固定 5 条数据,在固定的 5条数据下面固定一行高一层数据,这行数据不随这个循环框浮动,那么就可以设置外面这个固定框的上下属性为“固定的”,不是浮动的。 例二 有连接线时的层级关系,同时在第一层也有数据,这个算是比较难的报表了。你可以看到这个报表,我用颜色将层级划分开,还是一个层级划分代表一个循环框。第一层,不需要循环框,第四层,它的栏位从内往外数,一定会有三个循环框包围它。 下面这种情况的连接线,就是一对一 的关系,是放在同一层的。 17 18 例三,再来一个更复杂的,表明层级的关系。 上面这个图很夸张,不过可以看出:第一层,无循环层,没有数据,第二层,就是中心查询, 他 是并立的,他们各自的前 4个栏位,都是与 此 与 列第二层的。其他的依次增加层数即可。这就明确了循环框的个数和画法。 下面这个图,与上图实际上是类似的,只是更清晰一些,道理是一样的。 第一层无数据,第二层, 及与它连接的 _2, 19 锚物件的使用 前面的报表,不管它多复杂,无非就是以循环框为核心的报表。 对于固定框的属性,一般调整的,就是上下是变动的,还是固定的,然后使用包含物件,第一页或者所有的页。这里一定是包含物件,定锚物件不要乱用,否则会出错。 对于循环框更是,一般都是上下设为浮动的,左右为固定的,显示为“第一页”“包含物件”,每页最多显示多少。 栏位更不必说,除了偶尔上下栏位浮动的,一般都是固定的,显示为“第一页”“包含物件”。 小技巧:当一些栏位需要所有的页显示时,请在外面加上一个固定框, 栏位设置为“第一页”“包含物件”,固定框设置为“所有的页”“包含物件”。 定锚物件什么时候用呢?布局模型中还有一个强制定锚,这个在什么时候用呢?举一个例子,你是否遇到过一个普通的报表,分表头,表身,表尾三部分,表头要求每页都显示, 20 这个好办,所有的页即可。表身是循环显示,表尾却要求是在最后一页的最下面显示,注意哦,是最下面,如果你紧跟报表画,就错了。 这里就要用到定锚物件。 我们来看上图中这个案例,这里中间是个循环,要求每页显示 6条,那么在外面加一个固定框,来保持报表的形状不变,实际上是保持下面部分的 相对位置不变。这时有个难题,就是固定框右下部,红框框起来的几个栏位。按需要,必须在最后一页显示。这时设置“最后一页”就可以了吗?不行。 要设置为最后一页,定锚物件,这时还需要使用强制定锚,将这个栏位与上面固定框连接起来,这时就有一个小黑点,就 21 现介绍两个要求: 矩阵和群组矩阵要使用报表精灵来实现,利用的是矩阵的框架,手工无法画; 有矩阵又有其他内容的报表,先做矩阵,再手工画其他的; 例一,用个实例讲解矩阵。 由上面的图示,可以看到,我将矩阵分为 5个区域,这 5个区域会分别 与图形中的区域相对应。 22 在上图中,是由精灵产生的布局格式,从上到下分成 5个维度: 1) 横竖循环框,不要动这里; 2) 横向栏位,对应横层 3) 中心栏位,对应中心层 4) 竖向栏位,对应竖层 5) 无维度,对应第一层。 那么交叉层在哪里?在横向一个,是横向的统计,竖向一个,是竖向的栏位,这两个栏位是精灵自动产生的,即使用不到,也让这两个数据出来,在画面上删除就可以了,万一以后要增加也方便。 23 让我们来分析上面这幅布局: 1) 最必要的三个框架:最外层大框,横向循环框,竖向循环框。 最外层大框 横向循环框 24 竖向循环框 25 2) 横向栏 位,对应横层。在图中 _在的地方就是横层的所放位置,只按要注意一点,精灵产生的全在左边,但是根据需要,你可以拉宽横层循环框,并且将栏位用左右键移到右边去。同时这个区域存放,交叉层的横向汇总。 3) 中心栏位,对应中心层。在图中 是中心栏位,就是你想要显示的明细数据,由精灵产生时,这里有 1个循环框,再包含 1个栏位,或多个。 4) 竖向栏位,对应竖层。在图中 按要注意一点,精灵产生的全在上边,但是根据需要,你可 以拉高竖层循环框,并且将栏位用上下键移到下边去。同时这个区域存放,交叉层的竖向汇总。 5) 无维度,对应第一层。注意,四个角的四个固定框,这里就是无维度层,你可以设置固定字符和栏位,都可以。 26 小技巧:交叉层不可以新增公式例,肯定会报错。在矩阵精灵出来的布局结构中,出来外面的大框,横框,竖框,三个框绝对不能删除之外,其他都可以删除,并且可以任意手工添加栏位。注意属性哦,不然会出错。 3 4 对于群组矩阵,其实只要你理解了矩阵。就是在矩阵外面加一个循环框,将整个矩阵包括起来,矩阵循环显示,就是群组矩阵。 注意:不管是矩阵,还是群组矩阵,由精灵产生的时候,麻烦你把“边界”那里产生栏位删除掉,不然你会出错。边界里面放置的是布局模型中,在黑框外的栏位,在我倡导的法里面,不建议使用黑框外的做法,因此,边界也请删除掉。 研究话题:以上方法,几乎对付所有的矩阵报表,都没有问题。但是不采用矩阵精灵做矩阵,从我的角度来看,还没有办法完全手工做矩阵。 4文字档报表 4 1什么是文字档报表 就是直接将报表的内容写进服务器的文件夹下面的以文件形式存在的报表。 4 2如何做 大家知道,做报表本来就比较难做,要直 接写进服务器端就更难了。有时是既要显示的报表,又要写文字档。 这里我主要介绍做文字档报表的主要方法步骤。 27 4 2 1 将你所有要显示的栏位,通过“ |”,样的感觉就好像是一个栏位,特点是非常长,当然,这个连接过程,就是报表排版的过程。 4 2 2 然后丰富你的 询,加上跳页规则,排序规则所需要的栏位,当然,这些栏位以后并不显示。 4 开一个合适的临时表,通过一个 你的查询存入你的临时表中。这样,你的这个临时表就相当于一 个报表的数据来源了。 方法一,当然,要在 行这个 将这个报表数据啊,运行入这个临时表中。然后,在资料模型中,布局模型中正常设置,数据来源为临时表。在展示结束后, 面讲)。方法二,写 后调用单纯只展示数据的报表,然后继续写文字档。 字档如何写?其实就是将临时表,通过一个 顺序一行一行的写进文件中。换行加上换行符 0),跳页加上跳页符 3)。 举个例 子: 定义: 2767); = 先打开文件,下面的函数。 = 件目錄 ,打开方式, W,新写入,把以前覆盖, A,接着写, ,32767); = 你传入的内容是什么?写入的内容 , ;里是繁体中文。 打开之后就是写入的动作了 _ 28 写入完别忘了关闭文件。 _ 当然,你可以写成函数来调用。 一个问题注意一下,矩阵报表尽量不要去设计来写文字档,由于没有办法在完全在拼接矩阵报表,因此只能采 用模拟矩阵的办法。模拟矩阵是就是假设矩阵横向栏位不会超过 100(比如是 100),那么在 00个栏位来处理。这种方法,只是一个近似,不是真实的矩阵,如果横向真超过 100,那么这个报表结果就是错误的。目前还没有更好的办法来解决矩阵文字档的问题。做需求和设计的要明白这一点,不然报表难产。 文字档是 时需要写成 然,这是没有办法的直接写 式不变的情况下,在每个列的间隔加上“;”作为区隔。然后用 隔符 号用“;”,就是 ”不是“;”,需要设置一下 29 第四部份 : 简单实例 一: 步骤如下,复杂报表,步骤雷同。 信封套印報表 (1. 程式 安裝: c:簡稱 $TP S/目錄下 假設文件 放於 db C:假設文件 盤 ) db C:. 定: (連線 進入 30 31 32 小技巧: 1 在 时候,一般的 意不要后缀名“ 果是 使用 pl/使用“包名 2 般来说,常用的 为两种,一种是基于 种不基于 。对于基于 数据来源,如图设置: 33 图上名字自己定,只要不冲突就行,当然要符合公司规范。 择 择了 击进入 34 图上, 以是 是,建议使用 写,因为这里一旦设置好后,不能修改。如果要修改,只能将这个 新设置一个新的。 样的话, 一般来说,栏位设置 样在选择画面中能看到两个栏位,传入的值, 解释或者描述,方便使用者的选取。但是本例中将 时显示的还是 是传入值变了,不再是 是 D 和 以不相同。 对于 里一定记住写上 果要关联已经定义的栏位子集,使用 语法为 $ 注意,被关联的栏位的 就是说,被关联的栏位必须在前面先选择。 对于不基于 置如下: 35 解释,或者说明。 36 以上两种算是最普遍的,当然,还有时间型的,设置会计 科目等比较不常见的,最快学习的方法,就是找标准报表类是的画面,看看 如何设置的,这样最快了。 3, 这个画面中, 是你要调用的你已经注册过的 里,同样也是这是 地方,那么这里就填 与你报表中设置的一样。 ,使用 如 80*66 最常规的报表,但是如本图所示,是一个 1000*66的超宽报表,设置 置 空,对于超大报表采用这个。 果直接在打印机打,设置这个,一般放空。 37 左下 于那种超大的报表,跑的特别慢的,用来调整 如图, 否显示 传入报表 的,请把名字与报表参数对应。 个是显示名字,按客户要求来喽。 图 是抓取系统设置的 设值,将 是预设一段 右边写你要抓取得值。 38 4,设置 意数字间隔放宽一些,万一加参数的话,比较方便一些。注意外观,宽度设置合理一些。 39 第五部分: 试策略 1. 參數設定 1,起迄性質的欄位 注意 注意是否顯示 ,是否必須輸入 . 2,注意 不能多不能少 . 3,看看是否有遺漏欄位 . 2. 外觀檢查 照 欄位寬度 ,數值欄位是否靠右 ,文字 時間 欄位是否靠左 . 這個檢查重要 ,但是很不容易看出來 ,尤其是數據量小的時候 . 到底是以甚麼值為換 頁的方法 . 4. 計是否正確? 從變面上選取部份列 顯示的高和寬是否滿足 ,檢查是否需要置換 字符串中的換行符 ” 0)” ,是否有串接 有沒有做 需不需要特殊處理 . 是否是重複 表尾只印第一頁 ,以後不印 ,或者印最後一頁 ,或者還要表尾必須在最下面 ,注意這個問題 ,當然 ,也要注意 ,每頁都印 . 10,有沒有缺資料 ,比如顯示空白的時候 ,要確定是值為空 ,還是欄位抓錯 ,或沒有抓 . 11,注意語言 ,一般採用細明體 10號 , 12,框架採用無色邊框 ,沒有填充 3. 程式檢查 40 重要 ,必須符合規範 ,方便今後維護 . 去 否需要 4,注意 5,連接時 ,是否考慮了攔位值為空的情況 . 6,是否考慮了語言的篩選 ,有些系統存在多種語言的數據 后记 :检查报表,起码要首先能运行。如果运行直接就出错了,还是要通过察看 时候错误非常低级,比较客制 改变了、删除了,布局中栏位的数据来源忘记设置了等等,大多数人出错发生在框架上,很多人对于框架的属性设置还吃不透,请上去再仔细研究一下框架与布局的关系。检查布局时,采用二分法,一半一半的删除报表布局上的框架,找出到底是哪个栏位出错了。 对于能够运行的报表,第一步,起码要把报表上的栏位位置,分页,保证正确性。这里主要是细心,第二步,再看数据是否正确,需要测试案例。这里只是一个大概的方向 性问题,具体做法根据公司的大流程制定合理的测试标准流程。当然,验证过程中,经验足的往往一眼就知道哪里有错误,这个做的多了就是了。 41 第六部分: 据提问,不断更新) 1,在报表字符高度设定的基础上 ,为甚么 相当于一页被切为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论