CN114118018B - 一种跨平台的电子报表的实现方式 - Google Patents
一种跨平台的电子报表的实现方式 Download PDFInfo
- Publication number
- CN114118018B CN114118018B CN202111414982.5A CN202111414982A CN114118018B CN 114118018 B CN114118018 B CN 114118018B CN 202111414982 A CN202111414982 A CN 202111414982A CN 114118018 B CN114118018 B CN 114118018B
- Authority
- CN
- China
- Prior art keywords
- data
- report
- template
- text box
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000007405 data analysis Methods 0.000 claims abstract description 14
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种跨平台的电子报表的实现方式,包括以下步骤:根据不同报表的特征,将报表定义为不同的类型;对应不同类型的报表,定义不同的报表排布描述规则,并采用JSON数据格式进行描述,生成JSON描述文件,并定义不同的数据接口区分报表的类型;定义不同类型的报表的数据解析方法;通过web服务端发送服务请求,包括报表的JSON描述文件和接口,客户端根据接口确定报表的类型,根据报表的类型采用对应的解析方法对JSON描述文件进行解析,根据解析结果生成并展示对应的报表,并将该报表返回web服务端。
Description
技术领域
本发明涉及一种跨平台的电子报表的实现方式,属于报表生成技术领域。
背景技术
现有票据业务发展庞大,票据类型复杂多变。传统的报表模式是制作一个报表模板,模板中创建数据标识,再将数据根据标识映射到报表上。
例如申请号为“CN202011352039.1”的发明专利公开了一种表格自动生成方法、终端设备及存储介质,通过维护表格模板及相应的表格列配置信息,实现表格的展示与录入;录入的数据采用关系型数据库键值形式进行保存,简化了现有编辑器解析odt文档的步骤;同时相关的配置信息采用JSON数据结构保存。
上述现有技术存在的问题是,对于日益增多的票据需求,这需要耗费大量的模板制作成本。且对于具有相同特征的同一类票据,需要重复制作同一类型的仅有细微差别的模板,浪费不必要的人力成本。
发明内容
为了解决上述现有技术中存在的问题,本发明提出了一种跨平台的电子报表的实现方式,根据报表特征将报表进行分类,并定义不同的描述规则采用JSON数据对各类型的报表进行描述,可满足复杂多样化的票据需求,且最大化减少人工制作模板的时间。
本发明的技术方案如下:
一种跨平台的电子报表的实现方式,包括以下步骤:
根据不同报表的特征,将报表定义为不同的类型;
对应不同类型的报表,定义不同的报表排布描述规则,并采用JSON数据格式进行描述,生成JSON描述文件,并定义不同的数据接口区分报表的类型;
定义不同类型的报表的数据解析方法;
通过web服务端发送服务请求,包括报表的JSON描述文件和接口,客户端根据接口确定报表的类型,根据报表的类型采用对应的解析方法对JSON描述文件进行解析,根据解析结果生成并展示对应的报表,并将该报表返回web服务端。
作为优选实施方式,所述根据不同报表的特征,将报表定义为不同的类型的步骤具体为:
将不具有明显特征的报表,归类为需要制作模板的报表;
将纯表格形式的报表,归类为自定义报表;
将报表中的信息仅有位置信息不一样的报表,归类为点阵报表;
将报表中存在多组具有相同制作方法子报表的报表,归类为多子报表。
作为优选实施方式,对于需要制作模板的报表,定义的报表排布描述规则为:
预先设计XML格式的报表模板;
JSON数据格式包括模板加载地址以及模板打印数据;
描述的数据至少包括一行,每行数据在JSON数据格式的同一层级;对于每行数据采用“数据标识:数据内容”的键值对描述方式;每行报数据中至少包括一组键值对,多组键值对表示为多列数据;
在模板中需要展示数据的位置填写对应的数据标识。
作为优选实施方式,对于需要制作模板的报表,数据解析方法为:
解析JSON数据,提取并保存JSON数据中的模板打印数据字段信息;
通过模板加载地址加载报表模板,使用XML解析器以反向序列化方式解析模板,使用父子关系描述模板中的包含关系,并添加相应的属性,得到模板信息;
根据得到的模板信息和模板打印数据字段信息,将模板打印数据字段信息映射到模板上。
作为优选实施方式,对于自定义报表,定义的报表排布描述规则为:
将报表分为报表头和详细网格两部分;
在报表头中描述主标题和表头子标题的信息,表头子标题至少有一个,描述的信息包括内容和对齐方式;
在详细网格中描述标题栏、数据栏和页脚信息;
标题栏信息包括标识、展示内容、对齐方式、数据格式、数据类型、占用宽度和子标题信息;通过JSON数据格式的层级关系对子标题信息进行扩展;
数据栏信息包括至少一行数据,每行数据在JSON数据格式的同一层级;对于每行数据采用“数据标识:数据内容”的键值对描述方式;每行报数据中至少包括一组键值对,多组键值对表示为多列数据;数据栏信息中的数据标识与对应标题栏信息中的标识一致。
作为优选实施方式,对于自定义报表,数据解析方法为:
准备一初始模板,初始模板包括以下若干带:页眉、数据带头、数据带、页脚;页眉中防止两个文本框,一文本框用于存放主标题,另一文本框用于存放副标题;数据带头和数据带中各放置一个文本框,记录初始列位置;页脚用于记录页数相关信息;每个带和文本框均设置唯一的对象名称;
解析初始模板,获得模板信息;
解析JSON数据中的主标题、表头子标题、标题栏、数据栏、页脚的字段信息;
根据带和文本框的对象名称找到主标题对应的文本框,将主标题内容设置到对应的文本框;
根据带和文本框的对象名称找到表头子标题对应的文本框,若JSON数据中携带多个表头子标题,则实时添加文本框,文本框的位置信息由表头子标题的对齐方式决定,将内容设置到对应的文本框内;
根据带和文本框的对象名称找到标题栏对应的文本框,根据JSON数据中的标题栏字段找出标题栏的层级关系,根据占有宽度和展示内容计算出每个标题所占的矩形范围,依据层级关系和位置依次添加文本框,并将对应的展示内容设置到对应的文本框内;
根据带和文本框的对象名称找到数据栏对应的文本框,根据每个标题所占的矩形范围,依次添加文本框,并将每个标题对应的数据标识设置到对应的文本框内;
根据带和文本框的对象名称找到页脚对应的文本框,并根据JSON数据的内容,将对应的属性设置到对应的文本框内;
通过上述步骤得到自定义报表的模板信息;
获取打印数据字段信息,将打印数据字段信息映射至模板上;将文本框中的内容从数据标识依次替换为打印数据。
作为优选实施方式,对于点阵报表,定义的报表排布描述规则为:
通过JSON数据格式描述至少一组数据信息,每组数据信息包括是否换行、展示内容、字体大小、纵向偏移、横向偏移、展示区域宽度。
作为优选实施方式,对于点阵报表,数据解析方法为:
准备一初始模板,初始模板包含一个数据带,数据带下放置一个文本框;带和文本框均设置唯一的对象名称。
解析初始模板;
根据对象名称找到对应数据带下的文本框,解析JSON数据中的展示内容、字体大小、纵向偏移、横向偏移、展示区域宽度信息,根据位置信息添加和放置文本框,并将展示内容和宽度设置到对应的文本框里。
作为优选实施方式,对于多子报表,定义的报表排布描述规则为:
JSON数据格式包括多子模板加载地址、打印数据、子报表数据和打印控制信息;
多子模板中嵌套了子模板;
打印数据描述非嵌套子模板区域外的数据;
子报表数据描述子模板区域内的数据;
打印控制信息描述子模板数据展示的顺序;
打印数据和子报表数据在同一层级;打印数据仅包含一组数据,子报表数据包含至少一组数据,数据的数量对应嵌套子模板的数量。
作为优选实施方式,对于多子报表,数据解析方法为:
预设计多子报表模板,多子报表模板中描述每个子模板的位置信息,以及对应的字段信息;
解析JSON数据,解析打印数据获取非嵌套子模板区域外的数据,解析子报表数据获取子模板区域范围内的数据,得到打印数据字段信息;
解析多子报表模板,得到模板信息;
将打印数据字段信息映射到多子报表模板上;将文本框中的内容从数据标识依次替换为打印数据。
本发明具有如下有益效果:
1、本发明一种跨平台的电子报表的实现方式,根据报表特征将报表进行分类,并定义不同的描述规则采用JSON数据对各类型的报表进行描述,可满足复杂多样化的票据需求,且最大化减少人工制作模板的时间。
2、本发明一种跨平台的电子报表的实现方式,通过web服务端提出服务请求,并接收由客户端生成的报表,可兼容windows和国产化系统。
3、本发明一种跨平台的电子报表的实现方式,用JSON数据格式描述报表排布描述规则,可扩展性高。
附图说明
图1为本发明实施例一的方法流程图;
图2为本发明实施例中需要制作模板的报表的样例图;
图3为本发明实施例中自定义报表的样例图;
图4为本发明实施例中点阵报表的样例图;
图5为本发明实施例中多子报表的样例图;
图6为本发明实施例中需要制作模板的报表模板示例图;
图7为本发明实施例中自定义报表的初始模板示例图;
图8为本发明实施例中通过初始模板和数据源生成自定义报表模板的示例图;
图9为本发明实施例中点阵报表的初始模板示例图;
图10为本发明实施例中多子报表的报表模板示例图;
图11为本发明实施例四中服务请求从web服务端到客户端再返回web服务端的处理流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
实施例一:
参见图1,一种跨平台的电子报表的实现方式,包括以下步骤:
根据不同报表的特征,将报表定义为不同的类型;
对应不同类型的报表,定义不同的报表排布描述规则,并采用JSON数据格式进行描述,生成JSON描述文件,并定义不同的数据接口区分报表的类型;
定义不同类型的报表的数据解析方法;
通过web服务端发送服务请求,包括报表的JSON描述文件和接口,客户端根据接口确定报表的类型,根据报表的类型采用对应的解析方法对JSON描述文件进行解析,根据解析结果生成并展示对应的报表,并将该报表返回web服务端。
实施例二:
本实施例与实施例一的区别之处在于,所述根据不同报表的特征,将报表定义为不同的类型的步骤具体为:
参见图2,将不具有明显特征的报表,仍采用制作模板的方式,将这类报表归类为需要制作模板的报表;
参见图3,将纯表格形式的报表,模板上的区别仅有标题内容、副标题内容、标题栏列数、标题栏维数、标题栏内容,将这类报表归类为自定义报表;
参见图4,将报表中的信息仅有位置信息不一样的报表,将这类报表归类为点阵报表;
参见图5,将报表中存在多组具有相同制作方法子报表的报表,将这类报表归类为多子报表。
作为本实施例的优选实施方式,对于需要制作模板的报表,定义的报表排布描述规则为:
参见图6,预先设计XML格式的报表模板;
JSON数据格式包括模板加载地址以及模板打印数据;
描述的数据至少包括一行,每行数据在JSON数据格式的同一层级;对于每行数据采用“数据标识:数据内容”的键值对描述方式;每行数据中可以有多组键值对,用来表示多列数据;
在模板中需要展示数据的位置填写对应的数据标识。
作为本实施例的优选实施方式,对于需要制作模板的报表,数据解析方法为:
解析JSON数据,提取并保存JSON数据中的模板打印数据字段信息;
通过模板加载地址加载报表模板,使用XML解析器以反向序列化方式解析模板,使用父子关系描述模板中的包含关系,并添加相应的属性,得到模板信息;
根据得到的模板信息和模板打印数据字段信息,将模板打印数据字段信息映射到模板上。若有多组打印数据,为每组数据实时添加一个数据带,并添加文本框,文本框的个数和属性与带有数据标识的数据带中文本框的个数和属性一致。
作为本实施例的优选实施方式,对于自定义报表,定义的报表排布描述规则为:
将报表分为报表头和详细网格两部分;
在报表头中描述主标题和表头子标题的信息,表头子标题至少有一个,描述的信息包括内容和对齐方式;
在详细网格中描述标题栏、数据栏和页脚信息;
标题栏信息包括标识、展示内容、对齐方式、数据格式、数据类型、占用宽度和子标题信息;通过JSON格式的层级关系可以扩展多个子标题信息,子标题里包含的信息格式与主标题一致,通过子标题的层级信息表示标题栏的维数;
以上这些标题栏信息都用来自定义生成模板。数据栏信息与需要制作模板的报表数据类似,也是采用“数据标识:数据内容”的键值对方式,也支持多行数据展示,每行数据在JSON的同一层级,其中,数据栏信息的数据标识要与标题栏信息里面的标识一样,表示对应在哪一列标题下面的数据。除此之外,还阐述了标题是否每页重复显示、标题背景颜色、页脚背景颜色信息。
作为优选实施方式,对于自定义报表,数据解析方法为:
参见图7,首先准备一初始模板,初始模板包括以下若干带:页眉、数据带头、数据带、页脚;页眉中防止两个文本框,一文本框用于存放主标题,另一文本框用于存放副标题;数据带头和数据带中各放置一个文本框,记录初始列位置;页脚用于记录页数相关信息;每个带和文本框均设置唯一的对象名称;初始模板不携带内容信息;
解析初始模板,获得模板信息;
解析JSON数据中的主标题、表头子标题、标题栏、数据栏、页脚的字段信息;
根据带和文本框的对象名称找到主标题对应的文本框,将主标题内容设置到对应的文本框;
根据带和文本框的对象名称找到表头子标题对应的文本框,若JSON数据中携带多个表头子标题,则实时添加文本框,文本框的位置信息由表头子标题的对齐方式决定,将内容设置到对应的文本框内;
根据带和文本框的对象名称找到标题栏对应的文本框,根据JSON数据中的标题栏字段找出标题栏的层级关系,根据占有宽度和展示内容计算出每个标题所占的矩形范围,依据层级关系和位置依次添加文本框,并将对应的展示内容设置到对应的文本框内;
根据带和文本框的对象名称找到数据栏对应的文本框,根据每个标题所占的矩形范围,依次添加文本框,并将每个标题对应的数据标识设置到对应的文本框内;
根据带和文本框的对象名称找到页脚对应的文本框,并根据JSON数据的内容,将对应的属性设置到对应的文本框内;
参见图8,根据初始模板和数据源自动生成自定义报表的模板,获取自定义报表的模板信息;
获取打印数据字段信息,将打印数据字段信息映射至模板上;若有多组打印数据,为每组数据实时添加一个数据带,并添加文本框,文本框的个数和属性与带有数据标识的数据带中文本框的个数和属性一致;将文本框中的内容从数据标识依次替换为打印数据,最后展示页面。
作为本实施例的优选实施方式,对于点阵报表,定义的报表排布描述规则为:
通过JSON数据格式描述至少一组数据信息,每组数据信息包括是否换行、展示内容、字体大小、纵向偏移、横向偏移、展示区域宽度。通过纵向偏移位置和横向偏移位置确定数据在报表中的位置,以及其它附加信息最终展示出类似存折的报表
作为本实施例的优选实施方式,对于点阵报表,数据解析方法为:
参见图9,准备一初始模板,初始模板包含一个数据带,数据带下放置一个文本框;带和文本框均设置唯一的对象名称。
解析初始模板;
根据对象名称找到对应数据带下的文本框,解析JSON数据中的展示内容、字体大小、纵向偏移、横向偏移、展示区域宽度信息,根据位置信息添加和放置文本框,并将展示内容和宽度设置到对应的文本框里;
最后展示页面。
作为本实施例的优选实施方式,对于多子报表,这类报表也是需要制作模板的,参见图10,与需要制作模板的报表的模板区别是模板中又嵌套了子模板,定义的报表排布描述规则为:
JSON数据格式包括多子模板加载地址、打印数据、子报表数据和打印控制信息;
多子模板中嵌套了子模板;
打印数据描述非嵌套子模板区域外的数据;
子报表数据描述子模板区域内的数据;
打印控制信息描述子模板数据展示的顺序;
打印数据和子报表数据在同一层级;打印数据仅包含一组数据,子报表数据下可以有多组数据,有多少组数据就代表嵌套了多少个子模板。
作为本实施例的优选实施方式,对于多子报表,数据解析方法为:
预设计多子报表模板,多子报表模板中描述每个子模板的位置信息,以及对应的字段信息;
解析JSON数据,解析打印数据获取非嵌套子模板区域外的数据,解析子报表数据获取子模板区域范围内的数据,得到打印数据字段信息;
解析多子报表模板,得到模板信息;
将打印数据字段信息映射到多子报表模板上;若有多组打印数据,为每组数据实时添加一个数据带,并添加文本框,文本框的个数和属性与带有数据标识的数据带中文本框的个数和属性一致;然后将文本框中的内容从数据标识依次替换为实际的打印数据;
最后展示页面。
实施例三:
在本发明的任一实施例中,对于任一报表模板,采用的是XML格式。模板中不同区域功能采用不同的带类型进行划分,每种带类型具有各自的功能。每个带都有对象名称信息,通过对象名称来标识和找到对应的带。模板主要分为以下几种带类型:
表头,展示位置为报表开头,只能在第一页展示,一个模板只能设置一个表头;
表脚,展示位置为报表结尾,只能在最后一页展示,一个模板只能设置一个表脚;
页眉,展示位置为每页的报表开头,一个模板只能设置一个页眉,默认页眉展示位置在表头之前,也可通过属性设置让其展示在表头之后;
页脚,展示位置为每页的报表底部,一个模板只能设置一个页脚;
数据带,展示位置由数据带放置位置决定,一个模板可以有多个数据带;
数据带头,连接数据带,展示位置为数据带前,一个数据带只能有一个数据带头;
数据带脚,连接数据带,展示位置为数据带后,一个数据带只能有一个数据带脚;
还有其它比较少用的数据带类型:子细节带、子细节带头、子细节带脚、组带头、组带脚、分离带,这里不再赘述。
每页下面可以添加多个带,每种带类型下皆可添加文本框、条码、二维码、图表、图像、线等组件。每个带可以添加多个组件,通过拖放方式在带中添加组件。每个带和组件都携带有内容、位置、颜色等各种基本属性。由XML格式记录这些包含关系和属性信息。其中,组件的位置指的是在带中的相对位置,而非在页面中的位置。
实施例四:
参见图11,本实施例相较于其他实施例的区别在于,提出从web服务端,到客户端中的报表引擎,再到web服务端的流程,具体如下:
由web端发送服务请求,客户端监听到请求时,解析服务请求;
在客户端中查找对应模块,将JSON数据和命令参数传递下去;
调用相应的动态库处理方法,本地动态库调用报表引擎中的外设接口;
外设接口根据传递下来的数据,查找对应的解析模块,对数据进行解析,将解析结果一层层传递回给web端。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (1)
1.一种跨平台的电子报表的实现方式,其特征在于,包括以下步骤:
根据不同报表的特征,将报表定义为不同的类型;
对应不同类型的报表,定义不同的报表排布描述规则,并采用JSON数据格式进行描述,生成JSON描述文件,并定义不同的数据接口区分报表的类型;
定义不同类型的报表的数据解析方法;
通过web服务端发送服务请求,包括报表的JSON描述文件和接口,客户端根据接口确定报表的类型,根据报表的类型采用对应的解析方法对JSON描述文件进行解析,根据解析结果生成并展示对应的报表,并将该报表返回web服务端;
所述根据不同报表的特征,将报表定义为不同的类型的步骤具体为:
将不具有明显特征的报表,归类为需要制作模板的报表;
将纯表格形式的报表,归类为自定义报表;
将报表中的信息仅有位置信息不一样的报表,归类为点阵报表;
将报表中存在多组具有相同制作方法子报表的报表,归类为多子报表;
对于需要制作模板的报表,定义的报表排布描述规则为:
预先设计XML格式的报表模板;
JSON数据格式包括模板加载地址以及模板打印数据;
描述的数据至少包括一行,每行数据在JSON数据格式的同一层级;对于每行数据采用“数据标识:数据内容”的键值对描述方式;每行数据中至少包括一组键值对,多组键值对表示为多列数据;
在模板中需要展示数据的位置填写对应的数据标识;
对于自定义报表,定义的报表排布描述规则为:
将报表分为报表头和详细网格两部分;
在报表头中描述主标题和表头子标题的信息,表头子标题至少有一个,描述的信息包括内容和对齐方式;
在详细网格中描述标题栏、数据栏和页脚信息;
标题栏信息包括标识、展示内容、对齐方式、数据格式、数据类型、占用宽度和子标题信息;通过JSON数据格式的层级关系对子标题信息进行扩展;
数据栏信息包括至少一行数据,每行数据在JSON数据格式的同一层级;对于每行数据采用“数据标识:数据内容”的键值对描述方式;每行报数据中至少包括一组键值对,多组键值对表示为多列数据;数据栏信息中的数据标识与对应标题栏信息中的标识一致;
对于点阵报表,定义的报表排布描述规则为:
通过JSON数据格式描述至少一组数据信息,每组数据信息包括是否换行、展示内容、字体大小、纵向偏移、横向偏移、展示区域宽度;
对于多子报表,定义的报表排布描述规则为:
JSON数据格式包括多子模板加载地址、打印数据、子报表数据和打印控制信息;
多子模板中嵌套了子模板;
打印数据描述非嵌套子模板区域外的数据;
子报表数据描述子模板区域内的数据;
打印控制信息描述子模板数据展示的顺序;
打印数据和子报表数据在同一层级;打印数据仅包含一组数据,子报表数据包含至少一组数据,数据的数量对应嵌套子模板的数量;
对于需要制作模板的报表,数据解析方法为:
解析JSON数据,提取并保存JSON数据中的模板打印数据字段信息;
通过模板加载地址加载报表模板,使用XML解析器以反向序列化方式解析模板,使用父子关系描述模板中的包含关系,并添加相应的属性,得到模板信息;
根据得到的模板信息和模板打印数据字段信息,将模板打印数据字段信息映射到模板上;
对于自定义报表,数据解析方法为:
准备一初始模板,初始模板包括以下若干带:页眉、数据带头、数据带、页脚;页眉中放置两个文本框,一文本框用于存放主标题,另一文本框用于存放副标题;数据带头和数据带中各放置一个文本框,记录初始列位置;页脚用于记录页数相关信息;每个带和文本框均设置唯一的对象名称;
解析初始模板,获得模板信息;
解析JSON数据中的主标题、表头子标题、标题栏、数据栏、页脚的字段信息;
根据带和文本框的对象名称找到主标题对应的文本框,将主标题内容设置到对应的文本框;
根据带和文本框的对象名称找到表头子标题对应的文本框,若JSON数据中携带多个表头子标题,则实时添加文本框,文本框的位置信息由表头子标题的对齐方式决定,将内容设置到对应的文本框内;
根据带和文本框的对象名称找到标题栏对应的文本框,根据JSON数据中的标题栏字段找出标题栏的层级关系,根据占有宽度和展示内容计算出每个标题所占的矩形范围,依据层级关系和位置依次添加文本框,并将对应的展示内容设置到对应的文本框内;
根据带和文本框的对象名称找到数据栏对应的文本框,根据每个标题所占的矩形范围,依次添加文本框,并将每个标题对应的数据标识设置到对应的文本框内;
根据带和文本框的对象名称找到页脚对应的文本框,并根据JSON数据的内容,将对应的属性设置到对应的文本框内;
通过上述步骤得到自定义报表的模板信息;
获取打印数据字段信息,将打印数据字段信息映射至模板上;将文本框中的内容从数据标识依次替换为打印数据;
对于点阵报表,数据解析方法为:
准备一初始模板,初始模板包含一个数据带,数据带下放置一个文本框;带和文本框均设置唯一的对象名称;
解析初始模板;
根据对象名称找到对应数据带下的文本框,解析JSON数据中的展示内容、字体大小、纵向偏移、横向偏移、展示区域宽度信息,根据位置信息添加和放置文本框,并将展示内容和宽度设置到对应的文本框里;
对于多子报表,数据解析方法为:
预设计多子报表模板,多子报表模板中描述每个子模板的位置信息,以及对应的字段信息;
解析JSON数据,解析打印数据获取非嵌套子模板区域外的数据,解析子报表数据获取子模板区域范围内的数据,得到打印数据字段信息;
解析多子报表模板,得到模板信息;
将打印数据字段信息映射到多子报表模板上;将文本框中的内容从数据标识依次替换为打印数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111414982.5A CN114118018B (zh) | 2021-11-25 | 2021-11-25 | 一种跨平台的电子报表的实现方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111414982.5A CN114118018B (zh) | 2021-11-25 | 2021-11-25 | 一种跨平台的电子报表的实现方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114118018A CN114118018A (zh) | 2022-03-01 |
CN114118018B true CN114118018B (zh) | 2024-02-06 |
Family
ID=80373267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111414982.5A Active CN114118018B (zh) | 2021-11-25 | 2021-11-25 | 一种跨平台的电子报表的实现方式 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118018B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117577259B (zh) * | 2024-01-16 | 2024-04-09 | 智业软件股份有限公司 | 一种基于LibreOffice生成轻量级文书套件的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661460A (zh) * | 2009-09-18 | 2010-03-03 | 上海宝信软件股份有限公司 | 管理系统报表生成方法和装置 |
CN102339314A (zh) * | 2011-09-24 | 2012-02-01 | 国网电力科学研究院 | 一种基于xml的跨终端的数据表单描述与展现方法 |
CN108664245A (zh) * | 2018-04-27 | 2018-10-16 | 厦门南讯软件科技有限公司 | 一种基于json自描述结构的网页界面生成方法及装置 |
CN110929489A (zh) * | 2019-11-18 | 2020-03-27 | 有时数联科技(北京)有限公司 | 一种表单生成及表单数据处理方法及系统 |
CN112818043A (zh) * | 2021-01-26 | 2021-05-18 | 四川天翼网络服务有限公司 | 一种基于json自描述的数据源报表生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10540153B2 (en) * | 2016-12-03 | 2020-01-21 | Thomas STACHURA | Spreadsheet-based software application development |
-
2021
- 2021-11-25 CN CN202111414982.5A patent/CN114118018B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661460A (zh) * | 2009-09-18 | 2010-03-03 | 上海宝信软件股份有限公司 | 管理系统报表生成方法和装置 |
CN102339314A (zh) * | 2011-09-24 | 2012-02-01 | 国网电力科学研究院 | 一种基于xml的跨终端的数据表单描述与展现方法 |
CN108664245A (zh) * | 2018-04-27 | 2018-10-16 | 厦门南讯软件科技有限公司 | 一种基于json自描述结构的网页界面生成方法及装置 |
CN110929489A (zh) * | 2019-11-18 | 2020-03-27 | 有时数联科技(北京)有限公司 | 一种表单生成及表单数据处理方法及系统 |
CN112818043A (zh) * | 2021-01-26 | 2021-05-18 | 四川天翼网络服务有限公司 | 一种基于json自描述的数据源报表生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114118018A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6901427B2 (en) | Font sharing system in which data representing a character string can be communicated between a client computer and a server wherein only layout frames are displayed in a preview area of a display screen | |
US8386943B2 (en) | Method for query based on layout information | |
CN109857670B (zh) | 一种基于通用模板的测试报告自动生成方法 | |
CN114118018B (zh) | 一种跨平台的电子报表的实现方式 | |
CN111723555B (zh) | 平面排版方法及系统 | |
CN107193791A (zh) | 基于暂态数据交换通用格式的动作报告可视化展示方法 | |
CN109726369A (zh) | 一种基于标准文献的智能模板化题录技术实现方法 | |
CN114791988A (zh) | 一种基于浏览器的pdf文件解析方法、系统、存储介质 | |
US8788926B1 (en) | Method of content filtering to reduce ink consumption on printed web pages | |
CN113011129A (zh) | 一种通用doc和docx及indd文档排版引擎及方法 | |
CN1138383A (zh) | 检查小批量印刷应用的印刷指令的方法和系统 | |
US20090106651A1 (en) | Rendering Data From A Server For Display In A Web Browser On A Client Computer | |
CN109582928B (zh) | Pdf报表数据提取方法及装置 | |
US20060095838A1 (en) | Object-oriented processing of tab text | |
JP3308153B2 (ja) | マルチメディア情報高次元化表示システム | |
CN103605640B (zh) | 表单适配方法和装置 | |
CN111045614B (zh) | 流水报表打印方法、套打文件生成方法、客户端及服务器 | |
KR101984058B1 (ko) | 에스브이지파일 포맷을 이용한 템플릿 적용 시스템 및 방법 | |
CN112199929A (zh) | 表格处理方法、装置、存储介质及电子设备 | |
DE102008010264A1 (de) | Verfahren und Vorrichtung zur seitenweisen Bereitstellung eines elektronischen Dokumentes als Computergrafik | |
US20100188674A1 (en) | Added image processing system, image processing apparatus, and added image getting-in method | |
US6147769A (en) | Display of selected printer response for distinct applications | |
US8271874B2 (en) | Method and apparatus for locating and transforming data | |
US20130104014A1 (en) | Viewer unit, server unit, display control method, digital comic editing method and non-transitory computer-readable medium | |
US10606928B2 (en) | Assistive technology for the impaired |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |