一种基于动态页面对表格进行个性化设置的方法及系统与流程

文档序号:20680718发布日期:2020-05-08 18:22阅读:173来源:国知局
一种基于动态页面对表格进行个性化设置的方法及系统与流程
本发明涉及数据处理领域,并且更具体地,涉及一种基于动态页面对表格进行配置个性化设置的方法及系统。
背景技术
:表格控件在web开发中十分常见,是管理信息系统的常用组件,并且主要用于各种业务数据的编辑与展示。作为视图层的重要组成部分,表格的格式(如列宽、列标题等)往往在开发过程中已经被设置好,用户不能进行修改。但是每个用户的客户端环境(如显示器大小、分辨率)、对数据的关注点及习惯偏好等是不同的,往往需要定制个性化的表格格式。因此表格单一的数据展示功能已不能满足用户的需要,在用户体验方面不够友好。技术实现要素:本发明针对上述问题,提供了一种表格格式个性化设置的方案,用户可以通过特定的格式设计界面设置表格格式,可配置的内容包括列的显示与隐藏,列标题,列宽,列对齐方式和列顺序;还可以通过直接拖拽表头实现列宽调整,表头顺序调整。用户配置信息会保存到数据库,用户再次加载页面时会根据当前登录用户读取上次的配置信息,动态修改表格信息进行显示。根据本发明的一个方面,提供一种基于动态页面对表格进行个性化设置的方法,所述方法包括:当接收到针对页面的处理请求时,获取页面缓存,查找页面中是否有表格,若有,查找是否存在该表格的配置信息缓存,根据所述处理请求确定所述选定表格的表格标识符和用户的请求方标识符,基于所述表格标识符确定所述选定表格的表格信息是否在系统缓存中;当确定所述选定表格的表格信息不在系统缓存中时,基于请求方标识符在定制数据库中进行检索,以获取与用户相关联的并且在表格设置页面中与预定表格相对应的定制设置;按照定制设置在表格设置页面中对预定表格进行初始化呈现,在初始化呈现后,接收来自用户的修改信息;对所述修改信息进行解析以确定至少一个配置项,在表格设置页面中对多个配置项进行个性化设置,以利用每个配置项对选定表格进行配置;将经过配置的选定表格的配置信息设置为选定表格的定制设置,将所述定制设置存储在定制数据库中,将经过配置的选定表格存储在系统缓存中。在将经过配置的选定表格存储在系统缓存中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。在将经过配置的选定表格存储在关系数据库中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。加载时基于动态页面生成机制,选定表格的配置信息的读取和/或设置在服务侧进行。所述配置项包括:列名称、列顺序、列宽度和/或显示状态。响应于接收到针对选定表格的重置指示,对将选定表格的配置项还原为初始状态。调用表格控件的接口,获取表头信息并传递给表格设置页面,以使得表格设置页面记载并显示表头信息。当选定表格涉及复合表头时,表格设置页面将使用树形列表来加载表格信息;在保存配置信息时,使用预定格式的字符串并按照数组结构来保存选定表格的格式信息,数组结构的每个元素代表一列的格式信息,包括列标识符、列名称、列宽度、显示状态、数据对齐方式和序号。以预定的时间间隔检测用户调整列宽,以预定的时间间隔检测用户调整列顺序,以预定的时间间隔来发送至少一个选定表格的列宽信息和/或选定表格的列顺序信息。将调整列宽、调整列顺序和表格设计的信息存储与关系数据库的三个字段中。在保存表格设置页面的配置信息时,清空列宽字段和列顺序字段,以体现列宽和列顺序的优先级。在保存配置信息后,关闭表格设置页面,获取表格设置页面返回的配置数据,调用表格控件的接口,即时刷新选定表格的视图。基于从系统缓存中读取的表格配置信息并基于动态页面生成机制,获取页面缓存,并根据表格配置信息修改页面中的选定表格并返回给用户。在加载与选定表格相关联的页面时,先获取列标题、对齐方式和显示状态的页面配置;在设置列宽时,若列宽的存储字段不为空,则使用列宽字段的宽度属性修改页面,否则使用定制设置中的列宽;在设置列顺序时,若列顺序的存储字段不为空,则使用列顺序的字段修改页面,否则使用定制设置中的列顺序。遍历所保存的列信息,根据字段属性获取页面中的列标签;当序号n字段小于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的前面;当序号n字段大于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的后面;否则不进行处理。通过在列标签上添加显示属性;将显示属性设置为0,显示属性为0则表示显示状态为隐藏;将显示属性设置为1,显示属性为1则表示显示状态为显示。根据本发明的另一个方面,提供一种基于动态页面对表格进行个性化设置的系统,所述系统包括:确定装置,当接收到针对页面的处理请求时,获取页面缓存,查找页面中是否有表格,若有,查找是否存在该表格的配置信息缓存,根据所述处理请求确定所述选定表格的表格标识符和用户的请求方标识符,基于所述表格标识符确定所述选定表格的表格信息是否在系统缓存中;检索装置,当确定所述选定表格的表格信息不在系统缓存中时,基于请求方标识符在定制数据库中进行检索,以获取与用户相关联的并且在表格设置页面中与预定表格相对应的定制设置;呈现装置,按照定制设置在表格设置页面中对预定表格进行初始化呈现;解析装置,初始化呈现后,接收来自用户的修改信息,对所述修改信息进行解析以确定至少一个配置项;处理装置,在表格设置页面中对多个配置项进行个性化设置,以利用每个配置项对选定表格进行配置;设置装置,将经过配置的选定表格的配置信息设置为选定表格的定制设置,将所述定制设置存储在定制数据库中,将经过配置的选定表格存储在系统缓存中。在将经过配置的选定表格存储在系统缓存中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。在将经过配置的选定表格存储在关系数据库中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。加载时基于动态页面生成机制,选定表格的配置信息的读取和/或设置在服务侧进行。所述配置项包括:列名称、列顺序、列宽度和/或显示状态。响应于接收到针对选定表格的重置指示,对将选定表格的配置项还原为初始状态。调用表格控件的接口,获取表头信息并传递给表格设置页面,以使得表格设置页面记载并显示表头信息。当选定表格涉及复合表头时,表格设置页面将使用树形列表来加载表格信息;在保存配置信息时,使用预定格式的字符串并按照数组结构来保存选定表格的格式信息,数组结构的每个元素代表一列的格式信息,包括列标识符、列名称、列宽度、显示状态、数据对齐方式和序号。以预定的时间间隔检测用户调整列宽,以预定的时间间隔检测用户调整列顺序,以预定的时间间隔来发送至少一个选定表格的列宽信息和/或选定表格的列顺序信息。将调整列宽、调整列顺序和表格设计的信息存储与关系数据库的三个字段中。在保存表格设置页面的配置信息时,清空列宽字段和列顺序字段,以体现列宽和列顺序的优先级。在保存配置信息后,关闭表格设置页面,获取表格设置页面返回的配置数据,调用表格控件的接口,即时刷新选定表格的视图。基于从系统缓存中读取的表格配置信息并基于动态页面生成机制,获取页面缓存,并根据表格配置信息修改页面中的选定表格并返回给用户。在加载与选定表格相关联的页面时,先获取列标题、对齐方式和显示状态的页面配置;在设置列宽时,若列宽的存储字段不为空,则使用列宽字段的宽度属性修改页面,否则使用定制设置中的列宽;在设置列顺序时,若列顺序的存储字段不为空,则使用列顺序的字段修改页面,否则使用定制设置中的列顺序。遍历所保存的列信息,根据字段属性获取页面中的列标签;当序号n字段小于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的前面;当序号n字段大于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的后面;否则不进行处理。通过在列标签上添加显示属性;将显示属性设置为0,显示属性为0则表示显示状态为隐藏;将显示属性设置为1,显示属性为1则表示显示状态为显示。本发明基于动态页面生成机制设计了一套表格格式个性化设计的存储与展示方案,通过本发明用户可以灵活配置满足自己需求的表格格式,提高了用户体验。在系统效率方面,本发明优化了存储结构,并使用了缓存和动态页面加载,提高了系统的空间效率和时间效率。在提高用户使用体验的情况下兼顾了系统性能。附图说明通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:图1为根据本发明优选实施方式的基于动态页面对表格进行个性化设置的方法的流程图;图2为根据本发明优选实施方式的基于动态页面对表格进行个性化设置的系统的结构示意图;图3为根据本发明优选实施方式的学生信息的表头与对应的表格设计页面的示意图;以及图4为根据本发明优选实施方式的对优先级进行处理的方法的流程图。具体实施方式现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属
技术领域
的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。除非另有说明,此处使用的术语(包括科技术语)对所属
技术领域
的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。图1为根据本发明优选实施方式的基于动态页面对表格进行处理的方法的流程图。方法从步骤101处开始。在步骤101,当接收到针对页面的处理请求时,获取页面缓存,查找页面中是否有表格,若有,查找是否存在该表格的配置信息缓存,根据所述处理请求确定所述选定表格的表格标识符和用户的请求方标识符,基于所述表格标识符确定所述选定表格的表格信息是否在系统缓存中。在步骤102,当确定所述选定表格的表格信息不在系统缓存中时,基于请求方标识符在定制数据库中进行检索,以获取与用户相关联的并且在表格设置页面中与预定表格相对应的定制设置。在步骤103,按照定制设置在表格设置页面中对预定表格进行初始化呈现,在初始化呈现后,接收来自用户的修改信息。在步骤104,对所述修改信息进行解析以确定至少一个配置项。在步骤105,在表格设置页面中对多个配置项进行个性化设置,以利用每个配置项对选定表格进行配置。在步骤106,将经过配置的选定表格的配置信息设置为选定表格的定制设置,将所述定制设置存储在定制数据库中,将经过配置的选定表格存储在系统缓存中。在将经过配置的选定表格存储在系统缓存中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。在将经过配置的选定表格存储在关系数据库中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。加载时基于动态页面生成机制,选定表格的配置信息的读取和/或设置在服务侧进行。所述配置项包括:列名称、列顺序、列宽度和/或显示状态。响应于接收到针对选定表格的重置指示,对将选定表格的配置项还原为初始状态。调用表格控件的接口,获取表头信息并传递给表格设置页面,以使得表格设置页面记载并显示表头信息。当选定表格涉及复合表头时,表格设置页面将使用树形列表来加载表格信息;在保存配置信息时,使用预定格式的字符串并按照数组结构来保存选定表格的格式信息,数组结构的每个元素代表一列的格式信息,包括列标识符、列名称、列宽度、显示状态、数据对齐方式和序号。以预定的时间间隔检测用户调整列宽,以预定的时间间隔检测用户调整列顺序,以预定的时间间隔来发送至少一个选定表格的列宽信息和/或选定表格的列顺序信息。将调整列宽、调整列顺序和表格设计的信息存储与关系数据库的三个字段中。在保存表格设置页面的配置信息时,清空列宽字段和列顺序字段,以体现列宽和列顺序的优先级。在保存配置信息后,关闭表格设置页面,获取表格设置页面返回的配置数据,调用表格控件的接口,即时刷新选定表格的视图。基于从系统缓存中读取的表格配置信息并基于动态页面生成机制,获取页面缓存,并根据表格配置信息修改页面中的选定表格并返回给用户。在加载与选定表格相关联的页面时,先获取列标题、对齐方式和显示状态的页面配置;在设置列宽时,若列宽的存储字段不为空,则使用列宽字段的宽度属性修改页面,否则使用定制设置中的列宽;在设置列顺序时,若列顺序的存储字段不为空,则使用列顺序的字段修改页面,否则使用定制设置中的列顺序。遍历所保存的列信息,根据字段属性获取页面中的列标签;当序号n字段小于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的前面;当序号n字段大于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的后面;否则不进行处理。通过在列标签上添加显示属性;将显示属性设置为0,显示属性为0则表示显示状态为隐藏;将显示属性设置为1,显示属性为1则表示显示状态为显示。本发明的实施例提供了在动态页面生成机制下的表格格式设计与展示方法。本发明的实施例是基于一种动态页面加载机制实现的,这种机制与传统的jsp开发不同。当web容器启动时,该机制会读取开发者编写的html文件,调用jsoup的接口进行解析并缓存到服务器中并提供访问接口。当服务器接收到该页面的访问请求时,会从缓存中获取html页面,并调用预留给开发者的接口,开发者可以动态的修改页面内容,然后再返回给浏览器端。表格的格式设计是基于既有的前端表格控件支持,用户通过与表格设计页面进行交互,能按自己的习惯定制表格的格式,具体包括:修改列名称,修改列顺序,修改列宽度,控制列的显示和隐藏,还能通过重置按钮将表格格式还原为最初的状态。本发明此处着重于解决如何将用户对表格的设置存储起来,实现用户设置的记忆性。本发明应用的一般场景是,在显示数据表格的页面上定义一个表格设计按钮,绑定点击事件,当用户点击按钮时,通过前端接口弹出表格设计页面,同时调用表格控件的接口,获取表头信息传递给表格设计页面,表格设计页面接收到表头信息后加载到列表中。图3展示了一个学生信息的表头与对应的表格设计页面。图3为根据本发明优选实施方式的学生信息的表头与对应的表格设计页面的示意图。本发明除了可以设置普通表头的格式外,还支持复合表头的设计。当数据表格使用复合表头时,表格设计页面将使用树形列表加载表格信息。当用户点击确定按钮后,配置信息将发送到后台并保存。本发明在保存用户设置时,使用了json格式的字符串来保存表格格式信息,由于表格包含多列数据,所以要用一个数组结构进行保存,数组的每个元素代表一列的格式信息,包括列id,列名称,列宽度,是否隐藏,数据对齐方式和序号,如[{field:‘student_no’,header:‘学号’,width:100,visible:true,align:left,seq:1},...]具体信息如下表所示:属性说明field列id,列的唯一标识header列名称,显示在ui界面width列宽度,可以是数字,百分比visible是否隐藏列,值为布尔类型align该列数据的对齐方式,取值包括left,center,rightseq该列在同级节点中的顺序由于本发明基于动态页面生成机制,后台接收到表格配置信息后,可以通过调用后台接口获取到页面缓存,然后通过jsoup获取页面的表格部分,将配置信息与页面表格进行对比,只保留发生变化的部分,节省存储空间,在将配置信息保存到数据库的同时在缓存中进行备份,提高加载效率。用户除了表格设计页面外,还可以通过直接拖拽表格的方式调整表格的列宽和列顺序。该方法绑定了表格的拖拽事件,当拖拽调整列宽时,前台会向后台发送当前的表格列宽信息;当拖拽调整列顺序时,前台会向后台发送当前表格的列顺序信息,由于效率原因,数据发送并不是即时的,而是经过几秒后统一发送。后台接收到数据后,同样会从缓存中获取页面原始信息进行比对,只保存变化的部分。拖拽调整列宽、拖拽调整列顺序、表格设计的信息并不是存储在同一个字段中,而是分别存储与数据库的三个字段中。这样设计考虑的是表格设计存储的信息是数组结构,占用空间较大,而实际应用中表格设计并不是每个表格都会用到,相比较下,拖拽列宽和表头的情况可能更多。当单独保存拖拽列宽和表头顺序的数据时,可以使用简化的json结构,如{student_no:100,student_name:100,...}和{student_no:0,student_name:1,...},相比表格设计信息,这种数据结构更加简单、轻量。由于列宽和列顺序存在于多个字段,所以加载页面时存在优先级问题,因此当保存表格设计页面的配置信息时,需要清空拖拽列宽字段和拖拽列顺序字段,具体加载方式在配置信息加载部分说明。配置信息保存后,表格设计页面关闭,表格将获取表格设计页面返回的配置数据,调用表格控件的接口,即时刷新表格视图。当刷新页面或者重新访问表格页面时,系统将从缓存中读取表格配置信息,基于动态页面生成机制,可以获取到页面缓存,并根据表格配置信息和jsoup接口修改页面中的表格配置后返回给用户。配置信息加载具体涉及到以下问题:列宽和列顺序的优先级。由于列宽和列顺序存在于多个字段,所以加载页面时存在优先级问题。图4为根据本发明优选实施方式的对优先级进行处理的方法的流程图。如图4所示,加载页面时先获取表格设计字段的列标题、对齐方式、是否隐藏3个属性修改页面配置,设置列宽时,若拖拽列宽的存储字段不为空,则使用拖拽列宽字段的宽度属性修改页面,否则使用表格设计中列宽;同样,设置列顺序时,若拖拽列顺序的存储字段不为空,则使用拖拽列顺序的字段修改页面,否则使用表格设计中的列顺序。列排序算法。保存用户配置信息时,列顺序用seq字段标识,加载页面时需要利用这些信息将列重新排序。具体做法是,遍历保存的列信息,根据field属性获取页面中的列标签。当seq字段小于页面中该列所处的顺序时(即用户将该列调整到更靠前的位置),使用jsoup接口将该列的html标签移动到当前页面第seq个标签的前面;当seq字段大于页面中该列所处的顺序时(即用户将该列调整到更靠后的位置),使用jsoup接口将该列的html标签移动到当前页面第seq个标签的后面;否则不做处理。由于在用户进行表格设计时,记录用户移动列操作的先后顺序比较困难,所以需要在保存时记录所有顺序发生改变的列,而不是仅仅记录用户移动的列,在某些情况下数据库中保存的数据可能比较多。但这种排序算法简单有效,不依赖用户操作的先后顺序,先取哪一列的配置信息进行排序都不影响最终的排序结果,都能保证最后的排序是正确的。关于隐藏列的处理。在页面开发过程中,开发者经常在表格中编写一些隐藏列,通过在列标签上添加属性,如visible=false,实现列的隐藏。这些列用于记录后台信息,不会显示在页面上,不应被用户观察到。同样的,这些隐藏列也不应出现在表格设计页面。由于本发明允许用户对列进行隐藏,而再次打开表格设计页面时被用户隐藏的列仍然需要显示在表格设计页面,所以需要区分开发者隐藏的列和用户隐藏的列。基于页面动态加载机制,在加载页面时,加载用户自定义的表格配置信息前,系统通过页面缓存获取原始页面信息,visible=false的列添加allowdesign属性,并赋值false,标识该列不能被设计,这样,当调用前端接口打开表格设计页面时,可以通过判断allowdesign属性来确定是否将该列显示在表格设计页面。本发明的实施例提供了丰富的个性化设置的方式,用户可以通过表格设计页面设置列标题、列宽、列对齐方式、列顺序和列显示状态,也可以通过拖拽设置表格列宽和表头顺序,照顾了不同用户的操作习惯。表格配置信息通过json保存到关系数据库中,只保存变化的内容,提高空间效率,并且在内存中设置缓存,提高时间效率;页面加载时基于动态页面生成机制,表格的配置信息读取与设置完全在后台完成,不必发送多余的ajax请求。图2为根据本发明优选实施方式的基于动态页面对表格进行个性化设置的系统的结构示意图。系统包括:确定装置201、检索装置202、呈现装置203、解析装置204、处理装置205以及设置装置206。确定装置201,当接收到针对页面的处理请求时,获取页面缓存,查找页面中是否有表格,若有,查找是否存在该表格的配置信息缓存,根据所述处理请求确定所述选定表格的表格标识符和用户的请求方标识符,基于所述表格标识符确定所述选定表格的表格信息是否在系统缓存中。检索装置202,当确定所述选定表格的表格信息不在系统缓存中时,基于请求方标识符在定制数据库中进行检索,以获取与用户相关联的并且在表格设置页面中与预定表格相对应的定制设置。呈现装置203,按照定制设置在表格设置页面中对预定表格进行初始化呈现。解析装置204,初始化呈现后,接收来自用户的修改信息,对所述修改信息进行解析以确定至少一个配置项。处理装置205,在表格设置页面中对多个配置项进行个性化设置,以利用每个配置项对选定表格进行配置。设置装置206,将经过配置的选定表格的配置信息设置为选定表格的定制设置,将所述定制设置存储在定制数据库中,将经过配置的选定表格存储在系统缓存中。在将经过配置的选定表格存储在系统缓存中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。在将经过配置的选定表格存储在关系数据库中时,动态页面仅根据经过配置的选定表格相比于配置之前的选定表格的改变内容对配置之前的选定表格进行修改。加载时基于动态页面生成机制,选定表格的配置信息的读取和/或设置在服务侧进行。所述配置项包括:列名称、列顺序、列宽度和/或显示状态。响应于接收到针对选定表格的重置指示,对将选定表格的配置项还原为初始状态。调用表格控件的接口,获取表头信息并传递给表格设置页面,以使得表格设置页面记载并显示表头信息。当选定表格涉及复合表头时,表格设置页面将使用树形列表来加载表格信息;在保存配置信息时,使用预定格式的字符串并按照数组结构来保存选定表格的格式信息,数组结构的每个元素代表一列的格式信息,包括列标识符、列名称、列宽度、显示状态、数据对齐方式和序号。以预定的时间间隔检测用户调整列宽,以预定的时间间隔检测用户调整列顺序,以预定的时间间隔来发送至少一个选定表格的列宽信息和/或选定表格的列顺序信息。将调整列宽、调整列顺序和表格设计的信息存储与关系数据库的三个字段中。在保存表格设置页面的配置信息时,清空列宽字段和列顺序字段,以体现列宽和列顺序的优先级。在保存配置信息后,关闭表格设置页面,获取表格设置页面返回的配置数据,调用表格控件的接口,即时刷新选定表格的视图。基于从系统缓存中读取的表格配置信息并基于动态页面生成机制,获取页面缓存,并根据表格配置信息修改页面中的选定表格并返回给用户。在加载与选定表格相关联的页面时,先获取列标题、对齐方式和显示状态的页面配置;在设置列宽时,若列宽的存储字段不为空,则使用列宽字段的宽度属性修改页面,否则使用定制设置中的列宽;在设置列顺序时,若列顺序的存储字段不为空,则使用列顺序的字段修改页面,否则使用定制设置中的列顺序。遍历所保存的列信息,根据字段属性获取页面中的列标签;当序号n字段小于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的前面;当序号n字段大于页面中列所处的顺序时,将该列的标签移动到当前页面的n个标签的后面;否则不进行处理。通过在列标签上添加显示属性;将显示属性设置为0,显示属性为0则表示显示状态为隐藏;将显示属性设置为1,显示属性为1则表示显示状态为显示。已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。通常地,在权利要求中使用的所有术语都根据他们在
技术领域
的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1