版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.z..--可修编-自由报表技术红皮书NC-UAP6.0用友NC-UAPDATE\"yyyy-MM-dd"6/12/2022-.z.目录第一章前言11.背景12.入门12.1自由报表的新建12.2自由报表的格式设计42.3语义模型的使用62.4可扩展区域82.5数据预览功能132.6分析功能153.小结18第二章根本功能181.可扩展区域管理182.排序223.筛选234.固定成员245.分组276.分组统计287.排名函数318.TopN分析339.穿插38第三章分析功能综合应用411.分组功能应用411.1列表中的多级分组421.2穿插表结合分组应用452.数据依赖处理区域拼接46第四章报表发布节点481.报表发布482.发布后节点49第五章穿透和联查501.报表穿透502.报表联查512.1接口TraceDataInterface512.2注册方式522.3联查的执行522.4工具方法52第六章报表节点的扩展531.查询动作扩展532.查询条件553.区域条件564.业务格式575.格式调整器596.工具方法60第七章辅助开发工具621.手工导入导出622.安装盘脚本632.1构造平台中支持自由报表〔以及语义模型〕的脚本导出632.2发布的报表节点导出633.安装程序64-.z.前言背景为满足各类用户在报表分析方面的综合要求,NC报表产品IUFO从5.5版本开场提供了一个分析型报表的解决方案:自由报表。本文针对V6自由报表功能进展介绍,但是使用了局部5.6版本的产品截图,后续会逐步替换。自由报表具有以下特点:针对企业不同业务角色,提供多样使用方式:报表数据查询人员可以在报表数据查询结果上直接构建分析型报表,而不需具备较深技术背景;专业的分析报表设计人员则可以全面使用设计功能实现复杂报表的定义和发布;支持多种数据来源:系统置报表数据提供者和多种语义模型提供者,还支持注册其他类型语义模型提供者,多来源数据都可以在一自由报表中进展数据分析和展现;报表支持多区域模型,多个区域按照数据分析结果各自动态展开;多区域和多数据来源之间均可以设置依赖关系,能灵活组合拼装出各类样式的复杂报表;格式设计和报表展现效果一致:各种数据分析和格式设置都在设计界面有直观展现,特别是穿插表的设计方式突破以往,能够可视化的直接定义维度指标及各类展现效果;提供了分析图表功能:提供了各类常见图表分析功能;分析功能和交互性加强:全面支持排序/过滤/分组/统计/穿插/排名函数/TopN等分析功能,并具有页维度和待定参数等交互特性。支持数据追踪:自由报表中的明细数据和统计数据都支持追踪到原始数据。针对大数据量的处理:利用数据库的处理能力进展多级汇总数据的处理,展现层在电子表格中实现平滑分页,可以分页加载明细数据。入门使用自由报表的根本流程介绍。自由报表的新建选择自由报表功能节点,就会出现如下界面:接下来我们选中左面目录树中的一个目录,选择工具栏上的“新增〞,如下列图:报表卡片界面中填写“自由报表名称〞、“自由报表编码〞,如下列图:点击工具栏中“保存〞之后,该目录下的报表列表中就会出现刚刚新建的报表,如下列图:自由报表的格式设计在自由报表界面选中需要格式设计操作的报表,点击工具栏中的“格式设计〞如下列图:报表的“格式设计〞主界面如下:主界面中主要包含菜单、工具栏、自由报表导航区域、数据显示区域以及语义模型视图等局部。如下列图:语义模型的使用点击“数据集视图区域〞上方的工具栏中的“插入语义模型〞,出现选择语义模型界面,如下列图,选中已经定义好的语义模型“user〞。点击“确定〞,报表设计界面的语义模型信息框中就会出现被选择的语义模型,如下列图:可扩展区域可扩展区域是为了放置语义模型的区域,有两种定义方式,一种是选中一定区域,然后右键菜单中选择“设置可扩展区域〞,如下列图:可扩展区域定义界面如下列图,填写相应的信息。点击“确定〞之后,数据显示区域就会出现此可扩展区域,如下列图:拖动右面语义模型信息框中语义模型的元数据,放入设置的可扩展区域中,如下列图:设置可扩展区域的另一种方式:直接拖动右面语义模型信息框中的语义模型,放入数据显示区域,如下列图:数据预览功能定义完可扩展区域,并且放置语义模型之后,就可以对数据进展查看了,点击工具栏中的“预览〞按钮,如下列图:点击“预览〞之后,数据就会显示在数据显示区域,如下列图:分析功能以排序功能为例,介绍分析功能的使用方法选中可扩展区域中的*一元数据,然后选择工具栏上的数据分析功能按钮,如下列图:点击工具栏中的“排序〞,数据显示区域显示如下:点击“预览〞,会看到数据按升序来显示,如下列图。如果此时保存了报表格式,则报表浏览时也会按照此排序设置进展报表数据展开。小结自由报表基于语义模型,以电子表格的方式进展报表格式设计,并可以设置各种分析功能。在报表浏览状态依然可以更改各类分析功能,到达实时交互分析数据的效果。根本功能可扩展区域管理下面详细介绍可扩展区域的定义,拆分,合并,移动,复制,删除等管理介绍。定义可扩展区域选择一个区域,右键设置可扩展区,即可定义个可扩展区。各设置项说明:可扩展区名称:用于标识和区分各可扩展区,为空时系统默认名称为其扩展区域。可扩展区域:标记可扩展区在自由报表中的区域。扩展方向:标记区域是横向扩展还是纵向扩展。限定区域大小:中选择“固定大小〞时,可通过“限定行数〞和“限定列数〞来限制可扩展区扩展后的区域大小。扩展依赖:定义当前区域扩展时依赖的可扩展区域以及依赖扩展点。依赖具体规则参见2.2扩展规则介绍局部的扩展依赖介绍。拆分可扩展区域定义好可扩展区域后,可以对可扩展区域按行或按列进展区域拆分,将当前可扩展区拆分成两个可扩展区域。合并可扩展区域选中两个或两个以上的可扩展区域,可以对这多个可扩展区域进展区域合并,可以指定新合并区域的名称,并指定要合并到主合并区域,用于可扩展区模型的处理。管理可扩展区域右键管理可扩展区域,用于快速管理多个可扩展区域,包括添加,修改,删除等管理功能。移动可扩展区域可通过修改可扩展区域的区域设置来进展区域移动,也可以直接剪切然后粘贴来移动可扩展区域。复制可扩展区域全选可可扩展区域,然后复制,粘贴即可完成可扩展区域的复制粘贴。可以用ctrl+c,ctrl+v进展快速操作。排序可以针对*个扩展区域中的语义模型设置多个排序字段,支持设置排序字段的升降序。在排序字段上显示升序或降序标记,重复点击按照升序、降序、取消排序的顺序依次变化。多个排序字段时按照从上至下,从左至右的顺序确定排序次序。假设有分组,则在组排序,对分组字段也可以排序,也可以按照分组统计字段进展排序排序前:排序操作按钮排序前排序后:排序操作按钮排序前排序后的结果排序后的结果筛选可以针对*个扩展区域中的语义模型设置筛选,支持使用语义模型的待定参数,给参数设置默认值,在数据态下可以重新设置筛选条件值。支持页维度。根据选定的扩展区,设置筛选条件,筛选条件作为单独的功能,在格式态和数据态下都可以使用。语义模型的待定参数可以针对使用语义模型的区域设置默认值。参数值设置与筛选条件作为两个菜单项,在数据态和格式态都可以使用。在从格式态切换到数据态时以及翻开报表预览数据时自动出参数值设置界面。支持从语义模型中拖拽字段到页头形成页维度,页维度相当于给所有使用了与页维度一样语义模型的区域设置了筛选条件。语义模型设置的待定参数与扩展区域的筛选条件以及页维度一起筛选数据。图例如下:第一步:点击“点击“筛选条件〞第二步:增加一条筛选条件增加一条筛选条件浏览数据:数据已经按条件进展了过滤数据已经按条件进展了过滤固定成员对于自由报表的数据展现,我们还提供了一种叫做“固定成员〞的功能。当对*个字段设置固定成员后,顾名思义就是在数据展现的时候会按照该字段设置的几个固定的成员和其顺序来展现数据。其类似于筛选〔如同SQL中的in〕但又不同于筛选,如果查询的数据中没有固定成员中*个成员,在展现的时候仍然会出现该固定成员,只不过其他的字段没有记录而已。比方用户希望只展现单位1、单位2、单位3的数据,则就可以通过对单位设置固定成员来实现用户希望看到的数据。固定成员的设置过程如下:1、翻开任意的一自由报表,选中扩展区域中的任何一个字段,在工具栏中选择“固定成员设置〞按钮,可对所选择的字段进展固定成员设置。如下列图1图12、如下列图2是固定成员设置的对话框。当用户选中“固定成员〞复选框后就可以对所选择的字段设置固定成员了。用户可通过“添加〞、“删除〞按钮增加和删除固定成员,同时可以通过“读取数据〞按钮装载数据库中存在的所有成员;通过“向上〞、“向下〞按钮调整固定成员的顺序,同时可以通过固定成员列表的表头来对固定成员进展排序,点击“成员〞表头就会按成员值进展排序,点击“显示名称〞表头就会按成员显示名称进展排序;可以编辑成员的显示名称来改变成员在数据展现的时候的显示名称。图23、设置完固定成员后,在自由报表中浏览出的数据就仅仅含固定成员的数据记录,如果数据库中没有*个成员的记录就会出现空行〔下列图的302单位的数据就是〕,如下列图3。图34.如果想取消字段的固定成员设置,可在固定成员设置对话框中重新选中“默认成员〞复选框,就取消了固定成员设置。如图4、图5图4图55.以上演示的是普通的行列表的字段的固定成员的设置,穿插表纬度的固定成员设置是一样的操作。注意:不能对统计字段〔一般是数值型的字段〕设置固定成员如果设置固定成员的时候修改了成员的显示名称,然后又取消了固定成员设置,但是设置的显示名称仍然会生效,除非在默认成员设置列表中将该成员与显示名称记录删除。分组可以针对*个扩展区域中的语义模型设置分组,支持多个分组字段,支持分组统计字段,支持分组细节数据的穿插。在一个扩展区域,如果设置分组字段,则根据分组字段,将数据分组。如果有2个以上的分组字段,则根据分组字段所在的位置确定分组次序,处于最外层的字段作为第一分组顺序。如果多个分组字段在1行,则根据多个分组字段的组合值分组。可指定放置在区域中的语义模型字段为分组字段;可在扩展区域的单元中直接定义分组统计函数〔会隐含确定一个分组字段〕,支持的统计函数列表:求和、计数、平均、最大、最小;设置了多个分组字段时,按照它们放置的位置从上到下、从左到右,作为其分组顺序;分组字段和统计函数可以指定是否自动合并单元分组操作的界面如下:分组操作按钮分组前分组操作按钮分组前分组后:分组操作后分组操作后分组统计自由报表的分组统计,就是对自由报表的分组数据进展统计分析,分为合计、计数、平均、最大、最小五种类型。建立自由报表,进入格式设计,创立行列区。然后对扩展区进展分组:将字段拖入扩展区,插入统计函数:其中,合计、平均是针对数据型,对分组数据进展求和和求平均值;计数是对分组数据进展进展数目统计,最大和最小是对求分组数据的最大值和最小值。数据预览,计数函数:排名函数排名函数用于计算出*个报表数据在指定围的排名。自由报表在多级分组区域中支持对明细数据字段或者分组统计字段计算排名。排名函数的设置 此功能按钮位于工具栏中,如图1-1所示。图1-1图1-2 设置界面如图1-2,“从大到小〞表示按照数据从大到小进展排名;“允许并列〞表示数据大小一样时排名一样;“排名围〞可以在语义模型的字段中进展选择,如果选择了*个分组字段,则表示在此分组级次中进展排名,如果非分组字段或者不选择,则为所有数据围进展排名。明细字段的排名函数 图2-1是自由报表的格式设计界面,我们选中F4单元的“货币资金〞字段,将其设置为排名函数〔设置容同图1-2〕。图2-1图2-2 图2-2是报表浏览效果,F列就是计算出的货币资金在单位围的从大到小排名。 如果设置了“允许并列〞,并且将排名围设置成空〔所有数据围排名〕,则报表效果有所变化,见图2-3:图2-3分组统计字段的排名函数 如图3-1,我们也可以将按单位统计的货币资金小计〔F5单元格〕设置为排名函数,这次我们设置的是从小到大进展排名。图3-1报表浏览效果见图3-2,红色字体的就是货币资金单位小计的排名。图3-2TopN分析TopN分析是一种常见的报表数据分析功能,可以按照数据大小过滤出前N行用户最关注的业务数据。自由报表在多级分组区域中支持TopN分析功能,在明细数据字段或者分组统计字段上均可设置。TopN分析的设置 此功能按钮位于工具栏中,如图1-1所示。图1-1图1-2设置界面如图1-2,“数据分析行数〞表示用户关注的数据行数;可选择数据排列方式;“补足行数〞的意思是当数据缺乏时,是否要用空数据补足数据分析行数,这个设置有助于报表结果的工整和美观;设置“显示“其他〞〞表示多于分析行数的数据会进展汇总并显示为“其他〞行。设置完成后,在所设置的单元格的右上角会显示topN标记:图1-3在明细数据中设置了TopN分析的效果 图2-1是自由报表的格式设计界面,我们选中“货币资金〞字段,为其设置TopN分析〔设置容同图1-2〕。图2-1图2-2图2-3我们比照一下设置前后的报表浏览效果〔分别是图2-2和图2-3〕,可以发现,货币资金值最大的前3行数据依然显示,而其他数据行汇总后显示成了一行数据。分组报表中明细数据设置TopN分析的应用效果 这一次,我们对数据按照单位编码进展分组,图3-1显示区域中已经设置单位编码字段为分组字段。图3-1图3-2图3-3我们再来比照一下设置前后的报表浏览效果〔分别是图3-2和图3-3〕,可以发现,每个分组部货币资金值最大的前3行数据依然显示,而其他数据行汇总后显示成了一行数据。如果我们在TopN分析中选择“补足行数〞,就会发现报表变得非常工整了,见图3-4:图3-4分组报表中对小计字段设置TopN分析的应用效果 可扩展区域中已经设置了按照单位编码进展分组,如图4-1所示。我们对按单位统计的货币资金小计〔D5单元格〕设置TopN分析,为了数据比照方便,这次的分析行数设置为2。图4-1图4-2图4-3我们再来比照一下设置前后的报表浏览效果〔分别是图4-2和图4-3〕,单位货币资金小计值最大的前2个分组数据依然显示,而其他分组数据小计汇总后显示成了一行数据。需要注意的规则 为了用户设置方便,我们并不限制设置TopN分析的字段个数。但是实际上在每个分组级次中,只有检测到的第一个TopN分析生效。例如图2-1中的一个普通列表,如果对后面的4个字段都设置了TopN,最终的报表展示也是图2-3的效果,系统会将统一级次的其他TopN分析自动置成不启用。穿插穿插表制作一般流程:选定适宜的区域设置成扩展区域;将语义模型中的数据通过拖拽操作放置在设置好的扩展区域中的相应位置;根据需要选择适当的穿插点设置穿插区域;设置好穿插表后进展数据的浏览;扩展区域的设置选中区域鼠标右键点击设置可扩展区域,如下列图:点击确定如下列图所示扩展区域字段的设置将语义模型中的字段通过拖拽操作放置在设置好的扩展区域中的相应位置如下列图:穿插区域字段的设置选中扩展设置好的扩展区域进展穿插区域的设置,如下列图:A1:C5为穿插区域、B2及货币资金为穿插点、B2:C5为指标区域,穿插点相当于行列维度坐标轴的原点(穿插区)进展穿插区域数据的浏览点击浏览后数据展现如下列图,同一单位同一年度不同月份的合计值分析功能综合应用自由报表还支持设置区域之间的数据依赖关系,各种分析功能结合起来,灵活应用就可以组装出较为复杂的报表。分组功能应用分组常见的应用有两种,一是对列表中的分组应用;二是对穿插表结合分组应用。列表中的多级分组如下一组数据〔图1〕,直接预览时数据就是自由展现,则用户就需要对数据利用单位名称、币种、会计期间等字段进展一些分组加工以便能让更容易对数据进展分析比拟。图1首先我们先对单位名称字段设置分组,则数据按单位进展分组,并且得出按单位分组合计值图2图3在单位下还有币种和会计期间字段,可以根据需要再设置分组,对数据继续细化〔图4、图5〕。图4图5另外一种格式展现效果如下〔图6〕是1单位2009年3月的销售清单,为了更直观的掌握销售情况可以进展如下多层分组〔图7〕。图6格式设计如下:图7数据展现如下〔图8〕:图8穿插表结合分组应用图1中的数据用穿插表展示时,分组也可以和穿插表结合在一起使用〔图9〕图9展示如下:图10数据依赖处理区域拼接用户可能会需要设计一些较为复杂的统计表,例如数据来源于不同的系统,或者对于数据有不同的统计口径,而这些数据又要集中表达在一统计报表中。V5.5之前的产品,如果用户想处理复杂数据,只能利用查询引擎的功能,做数据表的关联或者定义复合查询,然后才能把一个查询引入到报表中来。查询的设计太过复杂,针对一个查询的报表设计的灵活性和直观性又都比拟差。V55自由查询中使用多个可扩展区域的数据依赖功能解决了这个难题。穿插表是一种常用的报表统计样式。自由报表叉表的设计比拟直观:在一个可扩展区域,可以拖入行列维度字段和设置统计指标,并可以直接设置各类指标名称和单元格式。还可以设置是否显示行列标题。由此,对于复杂的统计报表,我们给出的解决方案是:根据报表数据容,将其拆分成多块,这样每一块的数据来源单一且统计口径简单。每一块都可以利用一个可扩展区域来设置,而各块之间,只要通过设置数据依赖关系,并且选择性地隐藏*些块的行列表头,就能使这些数据对应起来,最终拼接成一个无缝复杂报表。穿插表如图3-01,单个穿插表的设计界面比拟直观。图3-01穿插表的设计界面图3-02是穿插表的数据浏览结果。图3-02穿插表展开效果复杂报表的拼接如图3-03,设置两个穿插表,并设置其数据依赖关系,同时设置右边的区域“不显示行表头〞。数据依赖关系的容是〔地区名称依赖于区域1.地区名称 客商名称依赖于区域1.客商名称〕图3-03两个区域设置数据依赖关系如图3-04,这样的两个穿插表最终浏览结果看起来就是一个统计表啦。图3-04拼接的展开效果报表发布节点报表发布在自由报表管理功能中,可以对设计好的自由报表进展“发布节点〞,对于第一次发布的节点,可以在发布向导中同时进展功能和菜单的设置。如果希望将多自由报表继续发布到同一个功能节点,则可以选择“追加〞方式,然后选择一个已有节点进展发布即可。发布设置界面如下:发布后节点自由报表发布后的节点成为一个普通NC功能,功能注册、菜单注册和功能权限控制都是NC统一机制管理的。这个节点我们一般称之为一个报表节点。报表节点中的多报表共用查询条件,这意味着查询条件或者查询方案的变化会作用到本节点的所有报表上面。报表节点的典型界面如下:报表节点的主要交互方式:翻开节点节点所有报表在右边以多页签形式翻开,显示报表根本格式,但是不加载报表数据。点击查询根据节点的查询模板配置等容,如果有查询条件输入界面,则弹出界面供用户设置。根据查询条件进展报表数据的加载和显示。选择查询方案对于左侧面板显示的用户已保存的查询方案,鼠标点击时直接按照查询方案容进展报表数据加载和显示。切换报表页签按照当前的查询条件/查询方案容,进展对应报表数据加载和显示。穿透和联查报表穿透自由报表穿透是指按照用户在报表格式中设定的穿透规则,进展关联报表的数据查看。报表穿透暂时没有提供业务扩展机制。目前支持两种方式:穿透到单自由报表直接浏览;穿透到自由报表发布后节点。报表联查报表联查是根据业务需要进展当前报表的关联数据查看等动作,这是一个业务扩展机制,需要业务产品根据扩展机制进展联查功能的开发。接口TraceDataInterfacepackagepackagenc.pub.smart.tracedata;/***业务联查接口,由业务组根据具体业务去实现**authorwanyonga**/publicinterfaceTraceDataInterface{ ITraceDataOperator[]provideTraceDataOperator();}联查操作接口ItraceDataOperator主要方法有:/***业务联查菜单下注册菜单项的名字**return*/publicStringgetMenuItemName();/***扩展追踪动作**return*/publicAction[]ctreateE*tensionActions();/***执行业务联查各业务模块根据需求执行联查操作**paramcontainer*联查过程中弹出对话框等需要的父组件。*paramparam*联查参数*/publicvoidtraceData(Containercontainer,TraceDataParamparam);注册方式业务模块需要首先将接口TraceDataInterface的实现类注册到iufo_tracedataregister表中。然后在“报表平台-〉分析建模-〉语义模型管理〞节点中,为已经建立的语义模型配置联查接口实现类。联查的执行报表节点中,如果引用的语义模型中配置了联查接口实现类的话,会在联查菜单下出现具体业务联查菜单项,每个菜单项会调用到对应的联查动作Action。工具方法在报表节点进展报表切换,可使用报表平台提供的工具方法:publicclassFreeReportFuncletUtil{/***在发布后节点切换报表显示**paramcontainer*paramreportID*paramdrillParam*return*/publicstaticbooleanshowReport(Containercontainer,StringreportID,FreeReportDrillParamdrillParam)方法参数说明:Containercontainer:父窗口。StringreportID:目标报表的id。FreeReportDrillParamdrillParam:自由报表翻开时的穿透参数。穿透参数是自由报表进展报表数据加载的一种参数条件。在报表执行的时候,如果发现上下文中有报表穿透参数,则会执行查询交互接口IQueryAction的doQueryByDrill方法。此方法具体容详见第六章的扩展机制介绍。如果需要翻开另一个报表节点,则推荐使用下面的工具方法:publicclassFreeReportFuncletUtil{/***通过联查参数翻开报表节点中的指定报表**paramfuncode*paraminitData*return*/publicstaticbooleanopenReportNode(Stringfuncode,FuncletInitDatainitData)方法参数说明:Stringfuncode:目标节点的功能编码。FuncletInitDatainitData:这是UAP封装的翻开节点时的初始数据对象。对于报表节点的翻开,要求这个FuncletInitData对象的initData属性实现IReportNodeInitData接口,便于从中获取穿透参数:/***自由报表发布节点的初始数据对象接口,用于传递报表穿透参数*/publicinterfaceIReportNodeInitData{/***返回自由报表通用的穿透参数**return*/publicFreeReportDrillParamgetReportDrillParam();}报表节点的扩展除了上面介绍的联查外,报表节点支持以查询菜单的动作为入口的一系列业务扩展机制。查询动作扩展查询动作接口为:.IQueryAction,主要完成查询菜单和查询方案等界面交互功能。其实现类应该在client中。报表平台提供了此接口的默认实现:.DefaultQueryAction。/***“查询〞交互的扩展*/publicinterfaceIQueryAction{publicstaticfinalStringKEY_IQUERYACTION=IQueryAction.class.getName();/***“查询〞菜单的执行动作**paramparent*paramconte*t*paramreportModel*paramoldCondition*return*/publicabstractIQueryConditiondoQueryAction(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel, IQueryConditionoldCondition);/***查询交互的对话框,需要从中获取查询方案面板**paramparent*paramconte*t*paramreportModel*paramoldCondition*return*/publicabstractQueryConditionDLGgetQueryConditionDlg(Containerparent,IConte*tconte*t, AbsAnaReportModelreportModel,IQueryConditionoldCondition);/***根据指定查询方案进展查询**paramparent*paramconte*t*paramreportModel*paramqueryScheme*return*/publicabstractIQueryConditiondoQueryByScheme(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel, IQuerySchemequeryScheme);/***根据外部送入的穿透参数进展查询**paramparent*paramconte*t*paramreportModel*paramdrillParam*return*/publicabstractIQueryConditiondoQueryByDrill(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel, FreeReportDrillParamdrillParam);/***页维度过滤的事件处理**paramparent*paramconte*t*paramreportModel*/publicabstractvoiddoPageDimFilter(Containerparent,IConte*tconte*t,AbsAnaReportModelreportModel);}查询条件查询扩展中查询交互、按方案查询和按穿透参数查询三个方法的返回值都是查询条件.IQueryCondition。报表执行过程中会使用此查询条件,并将其放在上下文中进展传递。例如语义模型执行时就可以使用键值FreeReportConte*tKey.KEY_IQUERYCONDITION从上下文中获取此条件对象。此接口的实现类应该在public中。报表平台提供了此接口的默认实现:.BaseQueryCondition。/***“查询〞交互返回的条件**/publicinterfaceIQueryConditione*tendsSerializable,Cloneable{/***是否继续本次查询**returnboolean*/publicabstractbooleanisContinue();/***返回针对各个区域的条件设置**paramareaName报表扩展区域名称*paramsmartModel引用的语义模型*returnIAreaCondition*/publicabstractIAreaConditiongetAreaConditions(StringareaName,SmartModelsmartModel);/***返回报表格式模型的调节器**returnIReportAdjustor*/publicabstractIReportAdjustorgetReportAdjustor();/***返回业务逻辑对报表单元格式〔包括精度〕的处理器**returnIBusiFormat*/publicabstractIBusiFormatgetBusiFormat(StringareaName,SmartModelsmartModel);}区域条件自由报表中语义模型的执行是以扩展区域为单位的,所以查询条件中需要针对每个扩展区域获取其语义模型执行条件。此接口的实现类应该在public中。报表平台提供了此接口的默认实现:.BaseAreaCondition。/***为报表中各个区域设置的“查询〞条件**/publicinterfaceIAreaCondition{/***返回额外设置的语义模型描述器数组,包括:排序、筛选、汇总等*returnDescriptor[]*/publicabstractDescriptor[]getAllDescriptors();/***返回外部设置的报表区域参数数组*returnParameter[]*/publicabstractParameter[]getParameters();}业务格式业务格式接口.IBusiFormat,用于实现业务逻辑对报表数据的特殊格式要求。此接口的实现类应该在public中。/***业务逻辑对报表格式的处理接口**/publicinterfaceIBusiFormat{publicstaticintBUSIFORMAT_TYPE_NONE=0;//没有业务格式publicstaticintBUSIFORMAT_TYPE_COLUMN=1;//整列〔字段〕使用同样的业务格式publicstaticintBUSIFORMAT_TYPE_ROW=2;//业务格式和行数据相关/***返回报表区域中,指定语义模型字段的业务格式类型,请使用本接口的常量定义**paramareaPK*paramsmartID*paramfldName*return*/publicabstractintgetFormatType(StringfldName);/***返回指定字段的整列精度,如果不需要重新指定则请返回TableConstant.UNDEFINED**paramareaPK*paramsmartID*paramfldName*return*/publicabstractintgetColumnDigital(StringfldName);/***根据行数据返回指定字段的精度,如果不需要重新指定则请返回TableConstant.UNDEFINED**paramareaPK*paramsmartID*paramfldName*paramrowData*return*/publicabstractintgetDataDigital(StringfldName,IRowDatarowData);/***返回字段新的整列格式**paramareaPK*paramsmartID*paramfldName*paramoldFormat*return*/publicabstractIFormatgetColumnFormat(StringfldName,IFormatoldFormat);/***根据行数据返回字段对应新的单元格式**paramareaPK*paramsmartID*paramfldName*paramrowData*paramoldFormat*return*/publicabstractIFormatgetDataFormat(StringfldName,IRowDatarowData,IFormatoldFormat);}格式调整器格式调整器接口.IReportAdjustor,用于实现根据查询条件动态更改报表格式的要求。但是一旦业务代码进展了格式调整,意味着用户自己定义的报表格式一定会有损失,请慎重使用。此接口的实现类应该在public中。/***自由报表格式模型调节器*/publicinterfaceIReportAdjustor{/***进展单个扩展区域的格式模型调整**paramconte*t*paramareaPK*paramreportModel*/publicabstractvoiddoAreaAdjust(IConte*tconte*t,StringareaPK,IAreaConditionareaCond,AbsAnaReportModelreportModel);/***进展报表格式模型的调整**paramconte*t*paramreportModel*/publicabstractvoiddoReportAdjust(IConte*tconte*t,AnaReportModelreportModel);}如果业务逻辑需要对报表数据进展再加工处理,则可用上面的格式调整器同时实现报表数据调整接口.IReportDataAdjustor。/***自由报表数据模型的业务代码扩展**/publicinterfaceIReportDataAdjustore*tendsIReportAdjustor{/***进展穿插表头的处理**paramconte*t*paramareaPK*paramreportModel*/publicabstractCrossTableModeldoAdjustCrossHeader(StringareaPK,IConte*tconte*t,CrossTableModelcrossTabel, AbsAnaReportModelreportModel);}工具方法格式调整器中如果需要设置报表格式,建议使用报表平台统一提供的工具类:/***区域容设置工具类*/publicclassAreaContentSetUtil{/***根据区域容设置重新设置扩展区**paramareaContentSet*paramanaModel*return*/publicstaticbooleanresetE*CellByAreaContent(AreaContentSetareaContentSet,AbsAnaReportModelanaModel);/****将扩展区域的语义模型参数增加为报表参数,并设置该扩展区域参数的值取新报表参数的值.**paramareaname扩展区域名称*paramanaModel报表模型*paramdoSetParamValue是否设置该扩展区域参数的值取新报表参数的值*return*/publicstaticbooleanaddReportParameter(AbsAnaReportModelanaModel,booleandoSetParamValue);/***根据穿插区容设置重新设置穿插区**paramcrossAreaContentSet*paramanaModel*return*/publicstaticbooleanresetCrossAreaByCrossAreaContent(CrossAreaContentSetcrossAreaContentSet, AbsAnaReportModelanaModel);/***根据区域容设置*些字段进展隐藏**paramareaContentSet*paramanaModel*return*/publicstaticbooleanresetE*CellByHideFields(AreaContentSetareaContentSet,booleanhideCalcFields,AbsAnaReportModelanaModel);/***直接设置表格中指定单元位置的容**paramcellInfos*paramanaModel*return*/publicstaticbooleanresetCellInfo(E*CellInfoSetcellInfos,AbsAnaReportModelanaModel);/****直接设置页维度工程**paramsmartID*paramcondItems*return*/publicstaticbooleanresetReportCondition(StringsmartID,ReportConditionItem[]condItems,booleanclear, AbsAnaReportModelanaModel);/****设置指定字段的固定成员**paramfieldName*paramfi*Values*return*/publicstaticbooleansetFi*Values(StringareaPK,StringfieldName,Fi*ValueInfo[]fi*Values,AbsAnaReportModelanaModel);辅助开发工具手工导入导出自由报表提供报表格式和语义模型的导出和导入工具,目前挂接在开发平台-〉报表平台-〉自由报表-预置节点。根据配置文件容将指定的目录名中的所有容导出到指定路径下,并可从指定路径中进展导入。在开发环境下,导入导出配置文件放在BI模块的resources目录下,分别是e*perties(导出配置文件),perties(导入配置文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金山职业技术学院马克思主义基本原理概论期末考试真题汇编
- 基于大数据的人力资源招聘优化方案
- 地产开发项目风险评估及控制方案
- 2026年婚庆婚礼策划师沟通技巧调研
- 国货美妆在东南亚跨境电商的销量及用户评价调研
- 新能源汽车金融的贷款利率调研
- 2026年乡镇光伏安装工人流失率降低调研
- 宠物零食在县域市场的消费需求及品牌偏好调研分析
- 连锁零售店员培训教材与考核方案
- 物业绿色节能改造实施方案
- 2025 AHA 心肺复苏与心血管急救指南 - 第6部分:儿童基本生命支持解读
- 2026年大庆医学高等专科学校单招职业技能测试模拟测试卷附答案
- 中央财经大学金融学院行政岗招聘1人(非事业编制)参考笔试题库及答案解析
- 临床试验风险最小化的法律风险防范策略
- 2025年酒店总经理年度工作总结暨战略规划
- 《基础护理学(第七版)》考前强化模拟练习试题库500题(含答案)
- 《水电工程水生生态调查与评价技术规范》(NB-T 10079-2018)
- GB/T 16770.1-2008整体硬质合金直柄立铣刀第1部分:型式与尺寸
- 义务教育体育与健康课程标准(2022年版)
- 湖南省乡镇卫生院街道社区卫生服务中心地址医疗机构名单目录
- 《Hadoop》数据分析系统
评论
0/150
提交评论