CN109388632A - 一种分页加载分级数据的实现方法 - Google Patents
一种分页加载分级数据的实现方法 Download PDFInfo
- Publication number
- CN109388632A CN109388632A CN201811183685.2A CN201811183685A CN109388632A CN 109388632 A CN109388632 A CN 109388632A CN 201811183685 A CN201811183685 A CN 201811183685A CN 109388632 A CN109388632 A CN 109388632A
- Authority
- CN
- China
- Prior art keywords
- data
- display
- ranked
- level
- paging
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000011068 loading method Methods 0.000 claims abstract description 19
- 238000001914 filtration Methods 0.000 claims description 29
- 238000012216 screening Methods 0.000 claims description 5
- 229910052709 silver Inorganic materials 0.000 description 2
- 239000004332 silver Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分页加载分级数据的实现方法,首先通过定义分级数据的数据库设计;表单加载数据采用分级分页加载方式,并以层级设置过滤条件;表单数据加载完成后,给出路径提示;根据路径提示,进行数据上下级之间切换;用户根据实际需要以各显示列为条件进行过滤;用户根据实际需要设置每页显示条数,以满足用户预览查询数据的需求。本发明和现有技术相比,不受数据量影响,提高了数据加载性能,兼顾了树形结构的所有功能,提高了程序的易用性和健壮性。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种分页加载分级数据的实现方法。
背景技术
计算机软件系统中维护的诸多数据存在上下级关系,需要分级管理。比如中国区域划分,首先划分多个省,每个省可划分为不同的市,每个市又有多个县、区…对于这种上下级关系,可通过分级的树形结构来体现,使用Path(分级码)、Layer(级数)及ParentID(上级)进行明确记录。对于这种分级设计,前台传统的展示方式是通过树形结构依次展示各级节点,由于树的特殊性,不能进行分页及过滤,当数据量越来越大时,树型结构加载的性能问题就越来越明显。
发明内容
本发明的技术任务是针对以上不足之处,提供一种分页加载分级数据系统及其的实现方法。
本发明解决其技术问题所采用的技术方案是:一种分页加载分级数据的实现方法,其特征在于,具体方法包括:
首先通过分级数据的数据库设计;
表单加载数据采用分级分页加载方式,并以层级设置过滤条件;
表单数据加载完成后,给出路径提示;
根据路径提示,进行数据上下级之间切换;
用户根据实际需要以各显示列为条件进行过滤;
用户根据实际需要设置每页显示条数,以满足用户预览查询数据的需求。
进一步的,优选的方法为,
使用Path分级码、Layer级数以及Isdetail是否明细进行明确记录数据的级次关系,进行分级数据的数据库设计,用于后台存储数据信息;通过Path分级码、Layer级数字段确定一个数据在分级树中的位置。
进一步,优选的方法为,
所述的数据上下级之间切换,包括选中显示下级按钮,根据Path分级码进行数据过滤,显示Layer=当前选中Layer+1的数据,并给出路径提示;
选中显示上级按钮,根据Path分级码进行数据过滤,显示Layer=当前选中Layer-1的数据,并给出路径提示;若当前为顶级数据,则不执行操作。
进一步,优选的方法为,
选中显示顶级按钮,则显示Layer=1的数据,即首次加载时显示的分级数据;
选中显示全部按钮,则不进行过滤,分页显示各级所有数据。
进一步,优选的方法为,
用户根据实际需要以各显示列为条件进行过滤,所述的过滤方式包括模糊查找和精确查找;
所述的模糊查找是通过自动过滤行列表中第一行为过滤行,用户输入过滤条件,按列进行模糊查询;
所述的精确查找是通过过滤器进行数据筛选条件的设定。
一种分页加载分级数据的系统,包括分级默认加载单元、数据上下级切换单元、数据过滤单元以及分页设置单元;
分级默认加载单元,包括设置级数为过滤条件,根据分级码进行数据过滤;加载数据采用分级分页的加载方式,默认加载一级数据并对一级数据进行分页显示;
数据上下级切换单元,包括在当前数据的下级数据以及返回当前数据的上级数据间自由切换;
数据过滤单元,包括用户根据实际需要以各显示列为条件进行过滤;
分页设置单元,用户根据实际需要设置每页显示条数,以满足用户预览查询数据的需求。
进一步,优选的结构为,
所述的数据上下级切换单元,包括上一级数据显示模块、下一级数据显示模块、顶级数据显示模块以及全部数据显示模块;
上一级数据显示模块,用于显示当前数据层级减一的层级的数据;
下一级数据显示模块,用于显示当前数据层级加一的层级的数据;
顶级数据显示模块,用于显示首次加载时显示的分级数据;
全部数据显示模块,用于分页显示各级所有数据。
进一步,优选的结构为,
数据过滤单元包括模糊查询模块和精确查询模块;
模糊查询模块,用于通过自动过滤行列表中第一行为过滤行,用户输入过滤条件,按列进行模糊查询;
精确查询模块,用于通过过滤器进行数据筛选条件的设定。
本发明的一种分页加载分级数据的实现方法和现有技术相比,有益效果如下:
1、本发明打破了传统分级树形结构加载数据不能对数据进行分页和过滤的局限;
2、对分级数据逐级加载,默认加载一级数据并对一级数据进行分页显示,同时支持过滤和自定义每页显示条数,从而很好的解决性能问题;
3、可通过双击数据行或点击“显示下级”获取其下级数据,通过ESC或点击“显示上级”,显示其上级数据,通过“显示全部”按钮,方便用户全局查找数据,置有“显示顶级”,快速返回一级数据;
4、各级数据的灵活切换和过滤查找,不受数据量影响,提高了数据加载性能,兼顾了树形结构的所有功能,提高了程序的易用性和健壮性。
附图说明
下面结合附图对本发明进一步说明。
附图1为分页加载分级数据的实现方法的原理框图。
具体实施方式
本发明为一种分页加载分级数据的实现方法,采用分级数据逐级加载的方式,默认加载一级数据,并对一级数据进行分页显示,同时支持过滤及自定义每页条数,从而解决传统方式不支持分页、过滤带来的性能问题。以银行数据为例。银行字典数据表是对银行名称、分级码、级数Layer、是否明细等所有数据的存储,数据初始加载时以Layer=1为过滤条件从数据库抽取数据分页显示,通过双击或点击“显示下级”触发显示二级银行数据,以BankPath like 所选银行的BankPath,Layer=2为过滤条件分页显示二级数据,依此类推,通过点击ESC或“显示上级”触发显示上级银行,以Layer=当前Layer-1为过滤条件分页加载上级银行数据。通过点击“显示顶级”触发显示一级银行,数据显示及过滤与初始加载一致。通过点击“显示全部”无过滤条件分页加载全部数据。
下面结合附图1和具体实施例对本发明作进一步说明。
实施例1:
银行定义分级数据的数据库设计,用于后台存储银行各种信息,包括银行的级别、上下级关系等记录。通过分级码(BankPath)、级数(Layer)、是否明细(Isdetail)来描述级次关系。
BankPath四位一级,其值为其上级数据的BankPath+四位顺序码,每级位数为4*Layer。Layer(层级)为1则为四位顺序码。
Layer表示银行层级,最多支持九级。
Isdetail表示该银行是否有下级数据,有下级时为“0”,反之为“1”。
通过BankPath和Layer字段可以确定一个银行在分级树中的位置。
银行定义分级数据数据表结构部分字段如表1所示。
表1. 银行定义数据表结构
列 名 | 别 名 | 数据类型 | 注 释 |
BankID | 银行ID | varchar(20) | ID字段,该表的主键字段。 |
FullName | 银行名称 | varchar(60) | 银行的全称。 |
ShortName | 简称 | varchar(40) | 银行的简称。 |
BankPath | 分级码 | varchar(36) | 银行分级路径,最大支持36位。 |
Layer | 层级 | smallint | 银行层级,最大为9。 |
IsDetail | 是否明细 | char(1) | 记录该银行是否有下级,有为0,没有为1。 |
Lhh | 联行号 | varchar(15) | 联行号。 |
TopBankCode | 总行号 | varchar(30) | 总行号。 |
BranchBankCode | 分行号 | varchar(30) | 分行号。 |
数据分级默认加载,指页面首次加载时分级数据显示。
银行定义表单加载数据采用分级分页加载方式,每页条数默认为100条,以Layer=1为过滤条件。表单加载完成,给出路径提示:当前显示的是顶级银行,双击显示行可显示下级数据。此方式加载数据,每次最多取数100条,从而避免了后台数据量过大带来的性能问题。
数据上下级之间切换:选中列表中数据双击或点击“显示下级”按钮,根据BankPath(分级码)进行数据过滤,过滤并显示BankPath like 当前选中银行的BankPath并且 Layer=当前选中银行Layer+1的银行数据;并给出路径提示:当前显示的是XX银行下的X级银行。
点击ESC可显示上级,双击显示行显示其下级数据。选中当前数据点击ESC或点击“显示上级”,过滤并显示Layer=当前Layer-1的银行数据,同样给出路径提示,若当前为顶级银行,则不执行操作。
点击“显示顶级”,显示Layer=1的银行数据,同首次加载。
点击“显示全部”,不进行过滤,分页显示各级所有银行数据。
数据过滤及分页设置:用户可根据需要以各显示列为条件进行过滤。过滤方式有两种:一种是通过自动过滤行列表中第一行为过滤行,用户输入过滤条件,按列进行模糊查询。另一种是通过过滤器进行数据筛选条件设定,支持每列使用等于、不等于、包含、不包含、模糊查询等各种方式的查询。可自行设置每页显示条数,满足用户预览、查询数据的需求。
在开发部分阶段,通过传递查询条件对数据进行过滤,以显示下级时获取过滤条件为例说明,具体实现过程如下所示:
//获取过滤条件
private void GetFilter()
{
exps.Clear();
int layer = Convert.ToInt32(FormState["Layer"]);
//显示全部时,layer赋值为0
if (layer !=0)
{
Express exp = new Express();
exp.Relation = " and ";
exp.Field = "Layer";
exp.Compare = " = ";
exp.Value = FormState["Layer"].ToString();
exps.Add(exp);
}
Express exp0 = new Express();
exp0.Relation = " ";
exp0.Field = "BankPath";
exp0.Compare = " like ";
exp0.Value = FormState["ParentPath"] + "%";
exps.Add(exp0);
filter.FilterCondition = ExpressParser.Serialize(exps);
//获取每页显示条数,当改变过滤条件时,显示条数不变
int PageSize = FirstMainRepeat.VisualComponent.PageNavigator.PageSize;
filter.Pagination = new Pagination(PageSize, 1);
banksURI.Filter = filter;
DefaultInstanceData.LoadData(banksURI);
Reload();
if (layer == 0)
{
CurrentLayer.VisualComponent.Text = "当前显示的是所有层级银行,用户追加的数据为一级数据。";
}
else if (layer == 1)
{
CurrentLayer.VisualComponent.Text = "当前显示的是顶级银行,双击选中行可显示其下级数据。";
}
else if (layer > 1)
{
//通过银行ID获取fullname
var parameters = new object[1];
parameters[0] = FormState["ParentPath"];
string Result = RESTFulService.Invoke<string>(state,assembly, className_Base, "GetFullnameByPath", false, parameters);
if (!string.IsNullOrEmpty(Result))
{
CurrentLayer.VisualComponent.Text = "当前显示的是" +Result + "下的" + layer + "级的银行,点击ESC可显示上级,双击选中行显示其下级数据。";
}
}
}
其中,上述代码中通过参数FormState["ParentPath"]和FormState["Layer"]分别记录要显示数据的上级分级码和本级的级数,点击“显示全部”时,FormState["Layer"]=0,不添加过滤条件。Layer!=0时,以BankPath like FormState["ParentPath"] + "%" &&Layer=FormState["Layer"] 为条件过滤下级数据。filter.Pagination = newPagination(PageSize, 1);定义分页情况,其中参数PageSize代表每页显示条数,是用户自定义的,第二个参数默认为1,即加载第一页数据。最后传递过滤条件并加载数据。通过CurrentLayer.VisualComponent.Text显示当前显示银行的路径。
显示上级银行,显示顶级银行,显示全部银行等思路大体类似,在此不再详细说明。
在操作部分阶段,初次加载界面时显示1级银行,若要为某个银行增加下级,通过双击此银行进入下级后,即可进行正常新增保存操作。当需要新增一级银行时,无论当前加载的是几级数据,通过点击“返回顶级”即可回到一级银行,执行操作。若当前显示数据较多时,用户需要修改某数据,在第一行输入查询条件即可快速定位到此数据。当数据上下级关系不明确时,可以通过点击“显示全部”,输入过滤条件找到相应数据同时获取了上下级关系。
目前本发明已经成功应用于ERP企业管理软件基础数据模块中,并实际应用于银行定义中,受到了使用者的好评。通过本方法,对分级数据进行分页逐级加载,很好的规避了传统树形结构加载分级数据带来的性能问题,各级数据间灵活切换,支持过滤查找,提高了程序的易用性和健壮性。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
Claims (8)
1.一种分页加载分级数据的实现方法,其特征在于,具体方法包括:
首先通过分级数据的数据库设计;
表单加载数据采用分级分页加载方式,并以层级设置过滤条件;
表单数据加载完成后,给出路径提示;
根据路径提示,进行数据上下级之间切换;
用户根据实际需要以各显示列为条件进行过滤;
用户根据实际需要设置每页显示条数,以满足用户预览查询数据的需求。
2.根据权利要求1所述的一种分页加载分级数据的实现方法,其特征在于,
使用Path分级码、Layer级数以及Isdetail是否明细进行明确记录数据的级次关系,进行分级数据的数据库设计,用于后台存储数据信息;通过Path分级码、Layer级数字段确定一个数据在分级树中的位置。
3.根据权利要求1所述的一种分页加载分级数据的实现方法,其特征在于,
所述的数据上下级之间切换,包括选中显示下级按钮,根据Path分级码进行数据过滤,显示Layer=当前选中Layer+1的数据,并给出路径提示;
选中显示上级按钮,根据Path分级码进行数据过滤,显示Layer=当前选中Layer-1的数据,并给出路径提示;若当前为顶级数据,则不执行操作。
4.根据权利要求3所述的一种分页加载分级数据的实现方法,其特征在于,选中显示顶级按钮,则显示Layer=1的数据,即首次加载时显示的分级数据;
选中显示全部按钮,则不进行过滤,分页显示各级所有数据。
5.根据权利要求1所述的一种分页加载分级数据的实现方法,其特征在于,用户根据实际需要以各显示列为条件进行过滤,所述的过滤方式包括模糊查找和精确查找;
所述的模糊查找是通过自动过滤行列表中第一行为过滤行,用户输入过滤条件,按列进行模糊查询;
所述的精确查找是通过过滤器进行数据筛选条件的设定。
6.一种分页加载分级数据的系统,其特征在于,包括分级默认加载单元、数据上下级切换单元、数据过滤单元以及分页设置单元;
分级默认加载单元,包括设置级数为过滤条件,根据分级码进行数据过滤;加载数据采用分级分页的加载方式,默认加载一级数据并对一级数据进行分页显示;
数据上下级切换单元,包括在当前数据的下级数据以及返回当前数据的上级数据间自由切换;
数据过滤单元,包括用户根据实际需要以各显示列为条件进行过滤;
分页设置单元,用户根据实际需要设置每页显示条数,以满足用户预览查询数据的需求。
7.根据权利要求6所述的一种分页加载分级数据的系统,其特征在于,
所述的数据上下级切换单元,包括上一级数据显示模块、下一级数据显示模块、顶级数据显示模块以及全部数据显示模块;
上一级数据显示模块,用于显示当前数据层级减一的层级的数据;
下一级数据显示模块,用于显示当前数据层级加一的层级的数据;
顶级数据显示模块,用于显示首次加载时显示的分级数据;
全部数据显示模块,用于分页显示各级所有数据。
8.根据权利要求6所述的一种分页加载分级数据的系统,其特征在于,数据过滤单元包括模糊查询模块和精确查询模块;
模糊查询模块,用于通过自动过滤行列表中第一行为过滤行,用户输入过滤条件,按列进行模糊查询;
精确查询模块,用于通过过滤器进行数据筛选条件的设定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811183685.2A CN109388632A (zh) | 2018-10-11 | 2018-10-11 | 一种分页加载分级数据的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811183685.2A CN109388632A (zh) | 2018-10-11 | 2018-10-11 | 一种分页加载分级数据的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109388632A true CN109388632A (zh) | 2019-02-26 |
Family
ID=65427147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811183685.2A Pending CN109388632A (zh) | 2018-10-11 | 2018-10-11 | 一种分页加载分级数据的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388632A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134888A (zh) * | 2019-04-03 | 2019-08-16 | 广州朗国电子科技有限公司 | 树形结构节点检索方法、装置、存储介质及服务器 |
CN110134893A (zh) * | 2019-04-03 | 2019-08-16 | 广州朗国电子科技有限公司 | 一种基于云端信息发布系统的多机构检索显示方法及装置 |
CN112860692A (zh) * | 2021-01-29 | 2021-05-28 | 城云科技(中国)有限公司 | 一种数据库表结构转换方法、装置及其电子设备 |
CN116680450A (zh) * | 2023-06-06 | 2023-09-01 | 智研汇(上海)科技有限公司 | 树形数据结构及其分页加载方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013954A (zh) * | 2005-12-14 | 2007-08-08 | 阿尔卡特朗讯公司 | 用于被管理对象的类属列表的图形用户界面 |
US20110093500A1 (en) * | 2009-01-21 | 2011-04-21 | Google Inc. | Query Optimization |
CN102779183A (zh) * | 2012-07-02 | 2012-11-14 | 华为技术有限公司 | 数据查询的方法、设备及系统 |
-
2018
- 2018-10-11 CN CN201811183685.2A patent/CN109388632A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013954A (zh) * | 2005-12-14 | 2007-08-08 | 阿尔卡特朗讯公司 | 用于被管理对象的类属列表的图形用户界面 |
US20110093500A1 (en) * | 2009-01-21 | 2011-04-21 | Google Inc. | Query Optimization |
CN102779183A (zh) * | 2012-07-02 | 2012-11-14 | 华为技术有限公司 | 数据查询的方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
李洪营: ""基于模型驱动的Web表单开发工具的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134888A (zh) * | 2019-04-03 | 2019-08-16 | 广州朗国电子科技有限公司 | 树形结构节点检索方法、装置、存储介质及服务器 |
CN110134893A (zh) * | 2019-04-03 | 2019-08-16 | 广州朗国电子科技有限公司 | 一种基于云端信息发布系统的多机构检索显示方法及装置 |
CN110134893B (zh) * | 2019-04-03 | 2022-05-31 | 广州朗国电子科技股份有限公司 | 一种基于云端信息发布系统的多机构检索显示方法及装置 |
CN110134888B (zh) * | 2019-04-03 | 2022-05-31 | 广州朗国电子科技股份有限公司 | 树形结构节点检索方法、装置、存储介质及服务器 |
CN112860692A (zh) * | 2021-01-29 | 2021-05-28 | 城云科技(中国)有限公司 | 一种数据库表结构转换方法、装置及其电子设备 |
CN116680450A (zh) * | 2023-06-06 | 2023-09-01 | 智研汇(上海)科技有限公司 | 树形数据结构及其分页加载方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388632A (zh) | 一种分页加载分级数据的实现方法 | |
US6199059B1 (en) | System and method for classifying and retrieving information with virtual object hierarchy | |
US7567964B2 (en) | Configurable search graphical user interface and engine | |
US5806066A (en) | Method of integrating schemas of distributed heterogeneous databases | |
US6839719B2 (en) | Systems and methods for representing and editing multi-dimensional data | |
US6003034A (en) | Linking of multiple icons to data units | |
CN102541529B (zh) | 一种查询页面生成装置和方法 | |
US20060173906A1 (en) | Model repository | |
CN106649225A (zh) | 一种基于json自定义的报表生成系统及方法 | |
US7093207B1 (en) | Data analysis flow engine | |
Hobbs et al. | Oracle 10g data warehousing | |
CA2893912C (en) | Systems and methods for optimizing data analysis | |
CA2588562A1 (en) | Method and apparatus for information retrieval | |
CN101706813B (zh) | 一种基于自适应机制的地图符号库管理系统及方法 | |
CN101452487A (zh) | 一种数据加载的方法、系统及数据加载装置 | |
CN101788904A (zh) | 交互行为的智能显示方法及其系统 | |
CN100367278C (zh) | 历史数据归档和查询装置及方法 | |
CN100447781C (zh) | 用于将可扩展标记语言映射到n维数据结构的方法和系统 | |
JPH04237374A (ja) | データベース・システム及び分析方法 | |
CN101833511A (zh) | 数据管理方法、装置和系统 | |
Bruno et al. | Interactive physical design tuning | |
US5881380A (en) | Device and method for data management based on values | |
CN105678616A (zh) | 一种纳税人精细化分析方法、系统及税务数据管理系统 | |
CN106779909A (zh) | 物料匹配方法和装置 | |
Gallo et al. | Data warehouse design and management: theory and practice |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190226 |
|
RJ01 | Rejection of invention patent application after publication |