温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
数据
挖掘
自定义
多维
报表
生成
数据库与大数据技术本栏目责任编辑:王力Computer Knowledge and Technology电脑知识与技术第19卷第4期(2023年2月)第19卷第4期(2023年2月)E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.19,No.4,February2023基于数据挖掘的自定义多维报表生成彭 成(中国石油化工股份有限公司石油勘探开发研究院,北京 100083)摘要:为灵活展示多表数据及字段内层级关系,基于数据挖掘实现报表的多维度层级化建立。首先通过绑定多表数据库字段及添加逻辑关系限定,将多个源表的数据在同一单元内关联展现;进一步设定父子关系挖掘字段,以多列来层次化显示父子关系挖掘字段对应的数据内容,反映数据内容之间的父子关系,以挖掘深度获取绑定字段的多级父对象;同时实现了报表模板和单元数据筛选、排序、聚集等展现方式。结合实例,验证了多维报表生成效果,为灵活挖掘展示数据内容提供了技术支持。关键词:多维度;数据挖掘;报表生成;逻辑关系限定;父子关系挖掘中图分类号:P618.13,TP311.1文献标识码:A文章编号:1009-3044(2023)04-0069-03开放科学(资源服务)标识码(OSID):1 引言报表可以帮助企业访问、格式化数据,并把数据信息以安全可靠的方式呈现给使用者1-3。利用计算机处理数据和界面设计的功能来生成、展示报表,其主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离4-6。然而对于现有的报表生成工具,在生成报表时,受限于数据库的库表结构,无法灵活设置填充到报表单元的数据内容,一般只能简单罗列一张或多张源表的数据内容,不能灵活展示多表数据7-8。大多报表生成工具在对数据内容进行筛选、排序、聚集设置时,只提供了让用户自己输入数据库查询语句的方法9,而实现这些功能所对应的数据库查询语句比一般查询语句更为复杂,使软件的易用性降低10。同时,对于数据内容存在层级关系的字段,需要按照层级依次填充报表单元,即对单一字段进行数据挖掘,然后分级展示到多个报表单元。现有报表工具并未支持对单一字段中的层级关系的挖掘和展示。因此,针对上述问题,需要一种新的报表生成方法以更灵活地挖掘并展示数据内容。2 多维报表设置与生成2.1 表头及字段绑定如图1所示,首先设置待生成的多维度报表的结构。此步骤包括单元格的合并与拆分,构建所需的表头等。然后将报表中各单元与数据库字段进行绑定。绑定到报表单元的数据库字段所对应的数据内容可以来自多个源表。报表结构及表头设置绑定数据字段绑定挖掘字段添加逻辑限定设定挖掘深度数据筛选条件设置展现设置查询数据填充数据升/降序排列单元格聚集生成报表打印读取模板模板存储图1报表配置和生成流程2.2 逻辑关系限定在绑定多表数据库字段后,可以对数据库字段添加逻辑关系限定,用来关联包含相应逻辑连接的数据库字段从而增加该单元的数据维度,通过关联包含相应逻辑连接的数据库字段可以达到将多个源表的数据在同一单元内关联展现的目的。逻辑关系限定的添加通过条件限定语句来实现,用以确定各数据库字段对应的数据内容之间的逻辑关系。使展现在报表内的不同的源表可以相互关联,从而更加灵活地展示数据内容。在此情况下,报表单元内不止有本体数据内容,还包含与本体数据内容有一定逻辑联系的关联数据内容,从而达到在同一单元内展现多源表数据内容的目的,并且由于关联数据内容是本体数据内容基于一收稿日期:2022-07-10基金项目:国家页岩油重大专项“陆相页岩油资源和选区评价技术与软件实现”(2017ZX05049-001-007);中科院A类战略性先导科技专项“深层油气勘探定量评价软件平台”(XDAXX010405)作者简介:彭成(1990),男,吉林榆树人,高级工程师,硕士,主要研究方向为石油勘探专业软件研发。69DOI:10.14004/ki.ckt.2023.0175本栏目责任编辑:王力数据库与大数据技术Computer Knowledge and Technology电脑知识与技术第19卷第4期(2023年2月)第19卷第4期(2023年2月)定逻辑关系的衍生,基于此,报表的数据挖掘能力得到体现。2.3 父子挖掘字段绑定父子关系挖掘字段包括标识字段、内容字段、父标识字段和子标识字段。其中,内容字段为与本体数据内容对应的数据库字段,父标识字段、子标识字段为反映父子关系的字段,标识字段为父子关系挖掘字段的标识字段。对于对应数据内容存在父子关系的数据库字段,通过指定内容字段获取本体数据内容,通过指定反映父子关系的两个字段,以及标识字段,来获取此字段中不同数据间的父子关系。通过父子关系字段来得到绑定字段所对应的数据内容间的层次关系,再通过标识字段将父子关系与绑定字段每行数据一一对应。通过限定父子关系挖掘字段的挖掘深度来确定基于父系或子系逻辑关系的附加数据库字段的维度。挖掘深度,即获取绑定字段的几级父/子对象。2.4 筛选及展现设置接下来对报表单元进行数据筛选条件设置。数据筛选条件的设置如逻辑关系限定的添加一样,都是通过条件语句来实现。对报表单元添加数据展现设置,包括升/降序排列设置、单元格聚集设置。可以对特定数据内容进行值的限定以过滤数据;可以自行设置表头行列大小及内容,并可以进行单元格的合并与拆分。从而无须通过输入数据库查询语句来实现多表字段的绑定以及数据内容的筛选、排序、聚集的设置。数据展现设置还包括数据挖掘设置,用于确定单元对本体数据内容或附加数据内容的数据展现方式。针对绑定了父子关系挖掘字段的单元,数据挖掘设置用于确定报表单元对父子关系挖掘字段对应的本体数据内容或附加数据内容的数据展现方式。单元以多个列来层次化显示父子关系挖掘字段对应的数据内容,反映数据内容之间的父子关系。2.5 查询及结果展现基于数据筛选条件设置在数据库中查询每个数据库字段对应的本体数据内容和关联的数据库字段对应的关联数据内容。返回的查询结果,基于表头结构、表头内容将查询到的本体数据内容和关联数据内容填充到对应的单元中,从而生成多维度报表。针对绑定了父子关系挖掘字段的单元,首先在数据库中查询每个父子关系挖掘字段所对应的本体数据内容并基于挖掘深度查询每个父子关系挖掘字段所对应的相应维度的附加数据内容;然后将所述本体数据内容和所述附加数据内容填充到对应的所述单元中。对于已填充数据内容的单元进一步根据数据展现设置对单元内数据进行数据展现,如升/降序排列、单元格聚集等。2.6 模板存储及利用生成的报表可以打印输出,也可以基于报表的生成过程中的操作流程信息建立自定义的报表操作流程模板并存储所述报表操作流程模板。报表操作流程信息包含表头内容、报表的结构、数据筛选条件设置、数据展现设置、绑定在不同单元上的数据库字段或父子关系挖掘字段、添加在数据库字段上的逻辑关系限定。系统将这些信息重新组合以生成对应的报表操作流程模板并存储到相应的数据库中,实现持久化,以便多次使用。3 报表设置及生成实例3.1 表头及字段绑定以生成不同级别地质类型的含油气性信息报表为例,首先如图2所示编辑报表的表头内容并如图3所示设置报表结构。结构设置是单元格的合并与拆分,选中多个单元格后可以进行合并,选中占多行或多列的单元格后可以进行拆分。图2表头设置软件效果图3合并、拆分单元格然后对不同的单元绑定不同的数据库字段。绑定字段的数据结构包括下面几个部分:字段绑定于报表的第几列,字段信息,是否对查询结果进行排序,是否对查询结果进行聚集,排序的优先级别。绑定数据库字段的过程是先选定报表的某一列,然后选取需要绑定的数据库源表,最后选择数据库字段,完成列和数据库字段的对应绑定,此操作会将已绑定的数据库字段信息存储到对应的数据结构中。3.2 父子挖掘字段绑定接下来绑定父子关系挖掘字段。绑定父子关系挖掘字段需要指定4个字段,前2个字段(父标识字段、子标识字段)为反映父子关系的字段,后两个字段(标识字段、内容字段)为绑定字段的标识字段及绑定字段本身。通过父子关系字段来得到绑定字段所含内容间的层次关系,再通过标识字段将父子关系与绑定字段每行数据一一对应。例如,设定父子关系的两个字段为父ID、ID,设定标识字段及内容字段为ID、Name。这样根据父ID、ID就可以得到不同ID之间的父子层次关系,然后根据ID、Name两个字段将ID与Name对应上,就可以得到不同Name间的父子层次关系。指定4个字段后,再给出挖掘深度,即获取已绑定数据库字段的几级父亲。默认0为绑定字段字段本身,1为绑定字段的一级父对象,以此类推。70数据库与大数据技术本栏目责任编辑:王力Computer Knowledge and Technology电脑知识与技术第19卷第4期(2023年2月)第19卷第4期(2023年2月)3.3 数据展示及筛选接下来如图4所示对已绑定的数据库字段和父子关系挖掘字段进行数据展示设置。其包含升/降序设置和聚集设置。图4数据展现设置如图5所示通过条件限定语句进行数据筛选条件设置和/或对数据库字段添加逻辑关系限定。在例子中,条件语句采用“where”语句。“where”限定条件数据结构包含以下几个部分:左侧字段信息,右侧字段信息,判断符,判断值。对于第一种操作,会将所选的两个字段填充到左侧字段信息,右侧字段信息中;对于第二种操作,会将所选的字段填充到左侧字段信息中,将判断符(=,=,=)及判断值填充进去。图5数据筛选条件设置3.4 查询语句创建系统会构建生成报表的SQL语句,语句的“select”部分包括每个绑定字段的字段名称及所属表名称及每个父子关系挖掘字段的标识字段名称及所属表名称,格式为“表名.字段名”;“from”部分为它们所对应的数据库表;“where”部分为“where”限定条件数据结构中所含的语句,多条限定语句通过“and”来连接。3.5 查询结果挖掘及展现执行生成的查询语句并返回结果集,填充到绑定字段所对应的列中。对于父子关系挖掘字段,得到标识字段的结果记录的值(把这个记录值赋值给变量value)后,根据挖掘深度(假设值为n),在父标识字段、子标识字段中,需要进行n次遍历来查找到此值的n级父对象的标识值。其具体的实现方法为:在子标识字段中寻找值为value的行,得到其行号(假设行号为a),然后获取父标识字段中行号为a的行的记录值,并将此记录值赋值给value,此时value的值便是一级父对象的标识值。接下来以这个新value重复执行上述操作,进行n次操作后便得到了n级父对象的标识值。然后在标识字段、内容字段中,根据n级父对象标识值,得到标识值所对应的内容字段的值,将这个值填充到报表中绑定父子关系挖掘字段所对应的列里。接下来,系统按照绑定字段和父子关系挖掘字段中所含的升/降序信息及排序优先级,对报表数据部分进行排序。聚集的实现方法为对指定过聚集的列,遍历它的行,并将相邻的同值单元格合并。至此,如图6所示,最终的报表已经生成完毕并显示出来。报表的设置可以存为模板供重复使用。图6多维度报表生成效果4 结论本文基于数据挖掘实现报表的多维度层级化建立,将多个源表的数据在同一单元内关联展现,可以灵活地展示多表数据。以多列来层次化显示父子关系挖掘字段对应的数据内容,并可以获取绑定字段的多级父对象,具有较强的数据展现能力。同时实现了报表模板和单元数据筛选、排序、聚集等展现方式,以及模板化以多次利用,减少用户操作步骤,提高了自定义报表的易用性、实用性。参考文献:1 关宏昊.大型企业集团财务合并报表系统的性能研究J.电子技术与软件工程,2021(19):160-161.2 丁雪,王奇.财务报表的企业画像生成信息系统应用J.内蒙古科技与经济,2021(15):72-73.3 姜秀斌,沈彬,吴涛,等.FPSO船体结构建造Piece Mark进度报表开发与应用J.现代计算机,2021(18):138-141.4 毛燠锋,潘玉春,朱玉付.基于报表和模板的报告生