一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报表取数方法、装置、存储介质及计算机设备与流程

2022-03-02 01:29:19 来源:中国专利 TAG:
1.本技术涉及办公自动化领域,尤其涉及一种报表取数方法、装置、存储介质及计算机设备。
背景技术
::2.在工程结算或竣工后,需要输出相关的报表记录工程的相关信息,例如:报表包括:费用明细表或竣工工程决算预览表等。报表中具有多个单元格,用户的编制报表时通过鼠标选择单元格,然后利用键盘在选中的单元格中填充对应的内容,例如:数值、字符串或日期等,在报表的行数和列数较多时,如何提高报表取数的效率是目前亟待解决的问题。技术实现要素:3.本技术实施例提供了报表取数方法、装置、存储介质及计算机设备,可以解决报表取数效率不高的问题。所述技术方案如下:4.第一方面,本技术实施例提供了一种报表取数方法,所述方法包括:5.根据业务场景和报表类型选择对应的报表模板;6.在所述报表模板中添加批注;7.对所述批注进行进行解析得到取数规则;8.基于所述取数规则将源数据填充到所述报表模板中;9.在完成数据填充后,根据预设的导出规则从所述报表模板中导出最终报表。10.第二方面,本技术实施例提供了一种报表取数装置,所述装置包括:11.选择单元,用于根据业务场景和报表类型选择对应的报表模板;12.批注单元,用于在所述报表模板中添加批注;13.解析单元,用于对所述批注进行进行解析得到取数规则;14.填充单元,用于基于所述取数规则将源数据填充到所述报表模板中;15.导出单元,用于在完成数据填充后,根据预设的导出规则从所述报表模板中导出最终报表。16.第三方面,本技术实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。17.第四方面,本技术实施例提供一种计算机设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。18.本技术一些实施例提供的技术方案带来的有益效果至少包括:19.在需要输出工程报表时,基于业务场景和报表类型获取报表模板,然后为报表模板添加批注,解析批注得到取数规则,利用取数规则从源数据中获取数据填充到报表模板中,然后导出得到最终报表,本技术采用线下表格批注扩展的方法来定义各种取数规则,即可以提高报表编制的效率,又可以提高报表格式设置的灵活性。附图说明20.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。21.图1是本技术实施例提供的网络架构的示意图;22.图2是本技术实施例提供的报表取数方法的流程示意图;23.图3是本技术实施例提供的配置视角的示意图;24.图4是本技术实施例提供的实现视角的示意图;25.图5是本技术实施例提供的单元格取数的示意图;26.图6是本技术实施例提供的列式报表取数的示意图;27.图7是本技术实施例提供的列行式报表取数的示意图;28.图8是本技术实施例提供的混合式报表取数的示意图;29.图9是本技术提供的一种报表取数装置的结构示意图;30.图10是本技术提供的一种计算机设备的结构示意图。具体实施方式31.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。32.需要说明的是,本技术提供的报表取数方法一般由计算机设备执行,相应的,报表取数装置一般设置于计算机设备中。33.图1示出了可以应用于本技术的报表取数方法或报表取数装置的示例性系统架构。34.如图1所示,系统架构可以包括:计算机设备101和服务器102。计算机设备101和服务器102之间可以通过网络进行通信,网络用于上述各个单元之间提供通信链路的介质。网络可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(wireless-fidelity,wi-fi)通信链路或微波通信链路等。35.其中,服务器102中部署有源数据,源数据中存储有待填充到表格模板中的数据,源数据的形式可以为二维表、数组或其他形式等。36.需要说明的是,计算机设备101和服务器102可以是硬件,也可以是软件。当计算机设备101和服务器102为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当计算机设备101和服务器102为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。37.本技术的计算机设备上可以安装有各种通信客户端应用,例如:视频录制应用、视频播放应用、语音交互应用、搜索类应用、及时通信工具、邮箱客户端、社交平台软件等。38.计算机设备可以是硬件,也可以是软件。当计算机设备为硬件时,可以是具有显示屏的各种计算机设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当计算机设备为软件时,可以是安装上上述所列举的计算机设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。39.当计算机设备为硬件时,其上还可以安装有显示设备和摄像头,显示设备显示可以是各种能实现显示功能的设备,摄像头用于采集视频流;例如:显示设备可以是阴极射线管显示器(cathoderaytubedisplay,简称cr)、发光二极管显示器(light-emittingdiodedisplay,简称led)、电子墨水屏、液晶显示屏(liquidcrystaldisplay,简称lcd)、等离子显示面板(plasmadisplaypanel,简称pdp)等。用户可以利用计算机设备上的显示设备,来查看显示的文字、图片、视频等信息。40.应理解,图1中的计算机设备、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的计算机设备、网络和服务器。41.下面将结合附图2,对本技术实施例提供的报表取数方法进行详细介绍。其中,本技术实施例中的报表取数装置可以是图1所示的计算机设备。42.请参见图2,为本技术实施例提供了一种报表取数方法的流程示意图。如图1所示,本技术实施例的所述方法可以包括以下步骤:43.s201、根据业务场景和报表类型选择对应的报表模板。44.其中,业务场景表示工程的项目;报表类型表示报表的类型,包括预算表、决算表或明细表等,不同的业务场景和报表类型具有不同的报表模板,报表模板中包括多个空白的单元格。报表模板根据单元格的排列方式分为:列式报表、列行式报表和混合报表,列式报表包含多个数据行;列行式报表包括多个数据行和多个数据列;混合报表包含上述两种类型的排列方式。本技术的计算机设备预存储有业务场景、报表类型和报表模板之间的映射关系,以及多个报表模板。45.s202、在报表模板中添加批注。46.其中,基于计算机设备的输入装置在报表模板中添加批注,可以在各个单元格中添加批注、某个数据行的首个单元格中添加批注、或某个数据列的首个单元格中添加批注。批注的格式为json。通过批注可以表示报表模板的显示效果和取数规则,显示效果包括字体大小、背景色或字体型号等,取数规则表示从源数据中取数向报表模板中进行填充的规则。47.在本技术实施例中,批注的参数集包括如下的参数:48.1、开始单元格的序号。举例来说:开始单元格的序号使用“firstcell”来表示,该参数属于字符型参数,表示报表模板中确定的填充范围中首个单元格的序号,例如:开始单元格的序号为“a1”,如果不设置开始单元格的序号,则默认开始单元格为批注所在的单元格。49.2、结束单元格的序号。举例来说,结束单元格的序号使用“lastcell”来表示,该参数属于字符型cas,表示填充范围中最后一个单元格的序号,如果不设置结束单元格的序号,则默认结束单元格为批注所在的单元格。50.3、列拷贝模式,举例来说,列拷贝模式使用“colcopymodel”来表示,该参数属于字符型参数。当受非父级命令列复制新增时,命令列范围恰好等于复制列时,处理模式默认值为copy。可以选值为“copy”、“extend”。“copy”表示此模式会复制一个命令到拷贝出的新列中。“extend”此模式会扩展命令范围,使命令范围包含新列。51.4、行拷贝模式。举例来说,行拷贝模式使用“rowcopymodel”来表示,属于字符型参数,当受非父级命令行复制新增时,命令行范围恰好等于复制行时,处理模式默认值为copy。可以选值为“copy”、“extend”。“copy”表示此模式会复制一个命令到拷贝出的新列中。“extend”此模式会扩展命令范围,使命令范围包含新列。52.5、单元格定位,用于基于当前单元格进行定位。例如:该参数使用“cell”表示,类似celllocation的实例,用于获取确定当前单元格的上下左右等相对位置的单元格坐标,如:当前单元格b2,#cell.left()得到的单元格的序号为b1。53.6、方法添加。例如:该参数使用“#util”表示,类似jxlsutil的实例,用于添加各种外部的工具类,以动态扩展相关功能。54.其中,当批注的首个字符为“=”时,计算机设备识别该批注为公式。55.在本实施例中,根据上述参数集中的一个或多个参数,可以组成area命令、each命令或prop命令。56.1、area命令用于确定报表模板的范围,所述area命令包括结束单元格的序号和保护属性的取值。例如:area命令表示为:jx:area{lastcell:"m12",protected:true},m12为结束单元格的序号,开始单元格为批注所在的单元格,保护属性的参数类型属于boolean,默认为false,当为true时保护整个报表模板,限制对报表结构的改动。57.2、each命令用于执行循环取数,所述each命令包括所述数据源的名称、变量名、结束单元格的序号和填充方向,each命令一般在数据行或数据列的首个中添加。例如:each命令表示为jx:each{item:"compnamelist",var:"data",lastcell:"m12",direction:"down"}。58.①item表示源数据的名称,属于字符型参数,必填参数,确定数据上下文中要循环的列表。59.②var表示变量名,属于字符型参数,必填字段,确定每个元素的变量名,供循环范围引用。60.③direction表示填充方向,属于字符型参数,指定命令的方向,值有"right","down",默认为"down",即向下循环。61.④nocreate属于布尔型参数,默认为false,用于循环时不再创建行或者列(其它循环已创建)。62.另外,每条记录会判断是否为map(数据集,对象),如果为map,添加_idx属性记录行索引;如果不为map则构建map{data:本行数据,_idx:本行索引}63.3、prop命令用于编辑单元格的属性,表示是否对单元格的属性进行修改。例如:包含prop命令包含editable参数,属于布尔型参数boolean,默认为false。64.s203、对批注进行进行解析得到取数规则。65.其中,本技术的批注支持java语法,例如:批注为json格式,可以利用spring框架对批注进行解析得到取数规则,本技术配置有线下表格组件,线下表格组件利用spring框架自动识别和解析批注。66.s204、基于取数规则将源数据填充到报表模板中。67.其中,取数规则用于确定源数据中的取数范围和报表中的填充范围,基于取数规则将指定的数据填充到报表模板中指定的位置。另外,本技术支持配置视角和实现视角,在配置视角下,表格中会显示批注;在实现视角下,表格中会隐藏批注,显示解析批注后得到的表格。68.例如:参见图3所示的配置视角下的表格,以及参见图4所示的实现视角下的表格。图表3的表格中显示有批注,表4的表格中隐藏批注,直接显示取数后的表格。69.在本实施例中,本技术的取数规则可以实现单元格取数、列式报表取数、列行式报表取数和混合式报表取数。70.其中,单元格取数表示以单元格为粒度定义取数规则,实现一次取数和填充。71.例如:参见图5所示,在方框所示的单元格中填充经办人的数值和审核人的数值。72.列式报表取数表示以数据列为粒度规则,每列的数据内容固定,数据组装报表时按列填充,填充方向可在规则中定义。例如:参见图6所述的列式报表取数。73.列行式报表取数表示同时以数据行和数据列定义取数规则,报表在行与列都有数据维度,一般报表模板固定其中的列或行,要求报表组装时根据实际数据内容补齐未固定的行或列,并展示行列维度交集的值。例如:参见图7所示的列行式报表取数。74.混合报表取数表示报表中同时包含上述三种报表取数类型中多种的情形。例如:参见图8所示的混合式报表取数的示意图。75.s205、在完成数据填充后,根据预设的导出规则从报表模板中导出最终报表。76.其中,在完成数据填充后,将报表模板中的数据进行非结构化存储,基于导出规则将单个子表或多个子表导出,在导出多个子表时,将多个子表进行压缩处理后再导出。可选的,本技术在报表前台预览时支持预览组件界面修改编辑,如果是金额字段,表内或表间(多sheet页签)的取数规则的批注支持实时刷新取值计算,更新后会覆盖保存。77.本技术实施例,在需要输出工程报表时,基于业务场景和报表类型获取报表模板,然后为报表模板添加批注,解析批注得到取数规则,利用取数规则从源数据中获取数据填充到报表模板中,然后导出得到最终报表,本技术采用线下表格批注扩展的方法来定义各种取数规则,即可以提高报表编制的效率,又可以提高报表格式设置的灵活性。78.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。79.请参见图9,其示出了本技术一个示例性实施例提供的报表取数装置的结构示意图,以下简称装置9。该装置9可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分。装置9包括:选择单元901、批注单元902、解析单元903、填充单元904和导出单元905。80.选择单元901,用于根据业务场景和报表类型选择对应的报表模板;81.批注单元902,用于在所述报表模板中添加批注;82.解析单元903,用于对所述批注进行进行解析得到取数规则;83.填充单元904,用于基于所述取数规则将源数据填充到所述报表模板中;84.导出单元905,用于在完成数据填充后,根据预设的导出规则从所述报表模板中导出最终报表。85.在一个或多个可能的实施例中,所述取数规则包括如下参数中的一个或多个:86.开始单元格的序号、结束单元格的序号、列拷贝模式、行拷贝模式、单元格定位和方法添加。87.在一个或多个可能的实施例中,所述取数规则包括的参数组成如下的命令:88.area命令、each命令或prop命令;89.其中,所述area命令用于确定所述报表模板的范围,所述area命令包括结束单元格的序号和保护属性的取值;90.所述each命令用于执行循环取数,所述each命令包括所述数据源的名称、变量名、结束单元格的序号和填充方向;91.所述prop命令用于编辑单元格的属性。92.在一个或多个可能的实施例中,所述导出规则包括:导出所述报表模板中的一个子表,或选择所述报表模板中的多个子表,将所述多个子表进行压缩处理后导出。93.在一个或多个可能的实施例中,所述取数规则用于执行单元格取数、列式报表取数、列行式报表取数或混合式报表取数。94.在一个或多个可能的实施例中,在添加批注时,基于配置视角显示所述报表模板;在导出最终报表后,基于实现视角显示所述最终报表。95.在一个或多个可能的实施例中,所述批注为json格式。96.需要说明的是,上述实施例提供的装置9在执行报表取数方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报表取数装置与报表取数方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。97.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。98.本技术实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2所示实施例的方法步骤,具体执行过程可以参见图2所示实施例的具体说明,在此不进行赘述。99.本技术还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的报表取数方法。100.请参见图10,为本技术实施例提供了一种计算机设备的结构示意图。如图10所示,所述计算机设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。101.其中,通信总线1002用于实现这些组件之间的连接通信。102.其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。103.其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。104.其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个终端1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行终端1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。105.其中,存储器1005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用程序。106.在图10所示的计算机设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的应用程序,并具体执行如图2所示的方法,具体过程可参照图2所示,此处不再赘述。107.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。108.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献