CN110928962A - 一种基于动态字段的查询报表生成方法 - Google Patents
一种基于动态字段的查询报表生成方法 Download PDFInfo
- Publication number
- CN110928962A CN110928962A CN201911173454.8A CN201911173454A CN110928962A CN 110928962 A CN110928962 A CN 110928962A CN 201911173454 A CN201911173454 A CN 201911173454A CN 110928962 A CN110928962 A CN 110928962A
- Authority
- CN
- China
- Prior art keywords
- accounting
- field
- fields
- dimension
- dynamic
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000018109 developmental process Effects 0.000 description 7
- 239000000047 product Substances 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明特别涉及一种基于动态字段的查询报表生成方法。该基于动态字段的查询报表生成方法,通过对数据库字段的动态添加,实现用户自定义扩展表结构,从而使系统内的任何一个业务对象都可以做为核算维度,动态添加到科目的核算维度上。该基于动态字段的查询报表生成方法,解决了传统数据库字段不可动态添加,客户需求需要进行二次开发,扩展性不方便的问题,通过对数据库字段的动态添加,实现了用户自定义扩展表结构,减少了二次开发的工作量,加快了系统实施的进度。
Description
技术领域
本发明涉及关系型数据库开发技术领域,特别涉及一种基于动态字段的查询报表生成方法。
背景技术
基于关系型数据库的传统管理系统开发模式,基本都是遵循预先定义好数据库表结构,再进行开发,实现业务功能。例如传统的财务系统,辅助核算维度都是预先定义好的,例如核算部门、核算往来单位、核算人员、核算产品等,即便是预留的字段也是提前在表结构里定义完成的。
当客户不满足于系统提供的这些辅助核算维度,需要增加核算维度时,只能找软件开发商,提需求,进行二次开发;跟核算维度有关的查询、报表都要修改;测试要进行多次回归测试,才能覆盖应用场景,工作量会无形中增加很多,而且要收取客户费用,也会无形中增加不满意情绪。
在财务系统中,凭证是一种最主要的业务单据,科目是凭证的明细,用来描述凭证的业务。会计科目对具体的会计要素内容进行分类核算,为了全面、系统的核素与监督各项经济业务的发生情况,有时单一的科目不能满足要求,这时就引入了辅助核算。辅助核算是对账务处理的一种补充,实现更广泛的账务处理,以适应企业和决策的需要。辅助核算一般通过核算项目来实现,是对科目的延伸,相当于设置了科目按核算项目进行更为明细的核算。每个科目都可以设置核算项目,每个核算项目也可以挂在不用的科目下。核算项目一般包括数量核算、外币核算、部门核算、产品核算、项目核算、人员核算等。
按照传统模式开发,技术人员会定义好科目的核算维度,即在科目的表结构上定义好数量、外币、部门、产品、项目、人员等字段,让用户自己去选择,本科目是否核算哪些项目。这些核算项目是固定的,假如用户想核算别的项目,只能进行二次开发。
针对以上情况,本发明提出了一种基于动态字段的查询报表生成方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于动态字段的查询报表生成方法。
本发明是通过如下技术方案实现的:
一种基于动态字段的查询报表生成方法,其特征在于:通过对数据库字段的动态添加,实现用户自定义扩展表结构,从而使系统内的任何一个业务对象都可以做为核算维度,动态添加到科目的核算维度上;具体包括以下步骤:
第一步,首先建立一个模型表(ir_model),用于存放系统内所有表的基本信息,包括表名及描述;
第二步,建立一个字段信息表(ir_model_fields),用于存放系统内所有表的字段信息,包括对应的表名、字段名及字段类型;
第三步,创建核算维度基础信息表,用于维护核算维度的基本信息;将核算维度基础信息表的核算维度字段做为维度来源,每个核算维度都对应系统内的一个表,多个维度对应一个表,对应的表就是模型表(ir_model);
第四步,将核算维度字段动态添加到包括凭证分录表和科目余额表在内的需要用到核算维度的业务表上;
第五步,在科目上维护本科目具体的核算维度;
第六步,在录入凭证时,选择科目后,根据科目所维护的核算维度,动态显示核算维度字段;
第七步,处理动态字段的名称显示。
所述第二步中,每次创建新表,都要把新表的基础信息写入模型表(ir_model),把字段信息写入字段信息表(ir_model_fields),从而把新表的描述记录到数据库中。
所述第三步中,核算人员字段对应系统内的人员基础信息表,核算的人员都来自人员基础新表;核算部门字段对应系统内的部门基础信息表,核算的部门都来自部门基础信息表。
所述第四步中,在凭证分录表上添加5个动态字段,分别用来核算人员、部门、产品、现金流和往来单位。
所述第四步中,为核算维度字段定义统一规律的前缀跟后缀。例如将核算维度字段定义为x_fx_业务表名_id,其中核算人员的字段表示为x_fx_res_partner_id,核算部门字段表示为x_fx_department_id。
所述第六步中,在视图层控制核算维度字段动态显示/隐藏时,循环处理所有字段,将所有动态字段取出,与跟科目维护的核算维度进行比较,如果两个字段相匹配,则在核算维度录入视图上显示核算维度字段,否则就隐藏。
在做查询报表时,也要将动态字段全部取出,无论是查询条件还是检索字段,都要将动态字段拼接起来。
所述第七步中,从字段信息表(ir_model_fields)中取出动态字段对应的基础信息表的ID,再从模型表(ir_model)中取出该ID对应的业务表的基础信息——表名,该表名就是动态字段的核算维度名称,把名称赋给报表字段标题,便是该字段的名称,或者在核算维度报表中显示核算信息。
本发明的有益效果是:该基于动态字段的查询报表生成方法,解决了传统数据库字段不可动态添加,客户需求需要进行二次开发,扩展性不方便的问题,通过对数据库字段的动态添加,实现了用户自定义扩展表结构,减少了二次开发的工作量,加快了系统实施的进度。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该基于动态字段的查询报表生成方法,通过对数据库字段的动态添加,实现用户自定义扩展表结构,从而使系统内的任何一个业务对象都可以做为核算维度,动态添加到科目的核算维度上;具体包括以下步骤:
第一步,首先建立一个模型表(ir_model),用于存放系统内所有表的基本信息,包括表名及描述;
第二步,建立一个字段信息表(ir_model_fields),用于存放系统内所有表的字段信息,包括对应的表名、字段名及字段类型;
所述第二步中,每次创建新表,都要把新表的基础信息写入模型表(ir_model),把字段信息写入字段信息表(ir_model_fields),从而把新表的描述记录到数据库中。
第三步,创建核算维度基础信息表,用于维护核算维度的基本信息;将核算维度基础信息表的核算维度字段做为维度来源,每个核算维度都对应系统内的一个表,多个维度对应一个表,对应的表就是模型表(ir_model);
代码示例如下:dimset_model_id=fields.Many2one('ir.model',string="维度来源",copy=False),这时下拉选择的维度来源,都是来自系统内的表。
所述第三步中,核算人员字段对应系统内的人员基础信息表,核算的人员都来自人员基础新表;核算部门字段对应系统内的部门基础信息表,核算的部门都来自部门基础信息表。
第四步,将核算维度字段动态添加到包括凭证分录表和科目余额表在内的需要用到核算维度的业务表上;
所述第四步中,在凭证分录表上添加5个动态字段,分别用来核算人员、部门、产品、现金流和往来单位。
所述第四步中,为核算维度字段定义统一规律的前缀跟后缀。例如将核算维度字段定义为x_fx_业务表名_id,其中核算人员的字段表示为x_fx_res_partner_id,核算部门字段表示为x_fx_department_id。
第五步,在科目上维护本科目具体的核算维度;
例如1001现金科目,核算往来单位和产品;1002银行科目核算现金流量等。
第六步,在录入凭证时,选择科目后,根据科目所维护的核算维度,动态显示核算维度字段;
在处理核算维度字段动态显示、隐藏时,以往传统处理是直接针对具体的字段,添加显示或者隐藏属性,因为每个字段代表什么核算维度,是提前定义好的,很明确。但是在引入动态字段后,不能直接针对具体的字段去做控制,因为无法判断该字段具体代表什么核算维度。所述第六步中,在视图层控制核算维度字段动态显示/隐藏时,循环处理所有字段,将所有动态字段取出,与跟科目维护的核算维度进行比较,如果两个字段相匹配,则在核算维度录入视图上显示核算维度字段,否则就隐藏。
在做查询报表时,将动态字段全部取出,无论是查询条件还是检索字段,都要将动态字段拼接起来;
第七步,处理动态字段的名称显示。
所述第七步中,从字段信息表(ir_model_fields)中取出动态字段对应的基础信息表的ID,再从模型表(ir_model)中取出该ID对应的业务表的基础信息——表名,该表名就是动态字段的核算维度名称,把名称赋给报表字段标题,便是该字段的名称,或者在核算维度报表中显示核算信息。
以上对本发明实例中的一种基于动态字段的查询报表生成方法进行了详细的介绍。本部分采用具体实例对发明的原理及实施方式进行了阐述,以上实例仅用于帮助理解本发明的核心思想,在不脱离本发明原理的情况下,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
Claims (8)
1.一种基于动态字段的查询报表生成方法,其特征在于:通过对数据库字段的动态添加,实现用户自定义扩展表结构,从而使系统内的任何一个业务对象都可以做为核算维度,动态添加到科目的核算维度上;具体包括以下步骤:
第一步,首先建立一个模型表ir_model,用于存放系统内所有表的基本信息,包括表名及描述;
第二步,建立一个字段信息表ir_model_fields,用于存放系统内所有表的字段信息,包括对应的表名、字段名及字段类型;
第三步,创建核算维度基础信息表,用于维护核算维度的基本信息;将核算维度基础信息表的核算维度字段做为维度来源,每个核算维度都对应系统内的一个表,多个维度对应一个表,对应的表就是模型表ir_model;
第四步,将核算维度字段动态添加到包括凭证分录表和科目余额表在内的需要用到核算维度的业务表上;
第五步,在科目上维护本科目具体的核算维度;
第六步,在录入凭证时,选择科目后,根据科目所维护的核算维度,动态显示核算维度字段;
第七步,处理动态字段的名称显示。
2.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第二步中,每次创建新表,都要把新表的基础信息写入模型表ir_model,把字段信息写入字段信息表ir_model_fields,从而把新表的描述记录到数据库中。
3.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第三步中,核算人员字段对应系统内的人员基础信息表,核算的人员都来自人员基础新表;核算部门字段对应系统内的部门基础信息表,核算的部门都来自部门基础信息表。
4.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第四步中,在凭证分录表上添加5个动态字段,分别用来核算人员、部门、产品、现金流和往来单位。
5.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第四步中,为核算维度字段定义统一规律的前缀跟后缀。
6.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第六步中,在视图层控制核算维度字段动态显示/隐藏时,循环处理所有字段,将所有动态字段取出,与跟科目维护的核算维度进行比较,如果两个字段相匹配,则在核算维度录入视图上显示核算维度字段,否则就隐藏。
7.根据权利要求6所述的基于动态字段的查询报表生成方法,其特征在于:在做查询报表时,也要将动态字段全部取出,无论是查询条件还是检索字段,都要将动态字段拼接起来。
8.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第七步中,从字段信息表ir_model_fields中取出动态字段对应的基础信息表的ID,再从模型表ir_model中取出该ID对应的业务表的基础信息——表名,该表名就是动态字段的核算维度名称,把名称赋给报表字段标题,便是该字段的名称,或者在核算维度报表中显示核算信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911173454.8A CN110928962B (zh) | 2019-11-26 | 2019-11-26 | 一种基于动态字段的查询报表生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911173454.8A CN110928962B (zh) | 2019-11-26 | 2019-11-26 | 一种基于动态字段的查询报表生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928962A true CN110928962A (zh) | 2020-03-27 |
CN110928962B CN110928962B (zh) | 2024-03-26 |
Family
ID=69851946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911173454.8A Active CN110928962B (zh) | 2019-11-26 | 2019-11-26 | 一种基于动态字段的查询报表生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928962B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111986009A (zh) * | 2020-06-30 | 2020-11-24 | 山东浪潮通软信息科技有限公司 | 一种基于弹性域的财务查询报表生成方法及设备、介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117731A1 (en) * | 2002-09-27 | 2004-06-17 | Sergey Blyashov | Automated report building system |
CN101706818A (zh) * | 2009-12-04 | 2010-05-12 | 金蝶软件(中国)有限公司 | 报表的动态过滤方法及装置 |
US7840600B1 (en) * | 2006-12-29 | 2010-11-23 | Izenda, LLC | Systems and methods for interactively creating, customizing, and executing reports over the internet |
US20140172775A1 (en) * | 2012-12-17 | 2014-06-19 | Sap Ag | Field extensibility in a multi-tenant environment with columnar database support |
US20150324423A1 (en) * | 2012-11-26 | 2015-11-12 | Zte Corporation | Report creation method, device and system |
CN105447068A (zh) * | 2014-11-18 | 2016-03-30 | 国网山东省电力公司 | 基于sap系统的动态报表的生成方法及系统 |
CN109669949A (zh) * | 2018-12-27 | 2019-04-23 | 广州云趣信息科技有限公司 | 一种基于数据模型的动态报表生成方法和系统实现 |
CN109785106A (zh) * | 2019-03-05 | 2019-05-21 | 浪潮通用软件有限公司 | 一种erp系统对账方法 |
CN110276059A (zh) * | 2019-06-24 | 2019-09-24 | 银联商务股份有限公司 | 一种动态报表的处理方法和装置 |
-
2019
- 2019-11-26 CN CN201911173454.8A patent/CN110928962B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117731A1 (en) * | 2002-09-27 | 2004-06-17 | Sergey Blyashov | Automated report building system |
US7840600B1 (en) * | 2006-12-29 | 2010-11-23 | Izenda, LLC | Systems and methods for interactively creating, customizing, and executing reports over the internet |
CN101706818A (zh) * | 2009-12-04 | 2010-05-12 | 金蝶软件(中国)有限公司 | 报表的动态过滤方法及装置 |
US20150324423A1 (en) * | 2012-11-26 | 2015-11-12 | Zte Corporation | Report creation method, device and system |
US20140172775A1 (en) * | 2012-12-17 | 2014-06-19 | Sap Ag | Field extensibility in a multi-tenant environment with columnar database support |
CN105447068A (zh) * | 2014-11-18 | 2016-03-30 | 国网山东省电力公司 | 基于sap系统的动态报表的生成方法及系统 |
CN109669949A (zh) * | 2018-12-27 | 2019-04-23 | 广州云趣信息科技有限公司 | 一种基于数据模型的动态报表生成方法和系统实现 |
CN109785106A (zh) * | 2019-03-05 | 2019-05-21 | 浪潮通用软件有限公司 | 一种erp系统对账方法 |
CN110276059A (zh) * | 2019-06-24 | 2019-09-24 | 银联商务股份有限公司 | 一种动态报表的处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
李全彬;刘锦高;: "网络信息共享系统的设计与实现" * |
王文义,冯伟华: "智能报表生成系统的研究" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111986009A (zh) * | 2020-06-30 | 2020-11-24 | 山东浪潮通软信息科技有限公司 | 一种基于弹性域的财务查询报表生成方法及设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110928962B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190073646A1 (en) | Consolidated blockchain-based data transfer control method and system | |
CA3022113A1 (en) | Learning from historical logs and recommending database operations on a data-asset in an etl tool | |
CN103678447B (zh) | 多变量交易分类 | |
Ma et al. | Pricing vulnerable options with jump clustering | |
CN107506412B (zh) | 一种产品信息筛选匹配系统及方法 | |
US11194955B2 (en) | Method and system of a user associating a first webpage web link and second webpage link and viewing of the contents of the webpage links by the selection of the first webpage link | |
Mačerinskienė et al. | Company's intellectual capital impact on market value of Baltic countries listed enterprises | |
CN104765745B (zh) | 对数据库中的加载数据进行逻辑验证的方法和系统 | |
US20170236214A1 (en) | System and methods for implementing a transition to multi-book accounting in a real-time financial management system | |
CN107220266A (zh) | 一种创建业务数据库、业务数据存储和确定业务数据的方法及装置 | |
US20200250745A1 (en) | System and methods for consolidating account data | |
Parinduri et al. | Bank ownership and efficiency in the aftermath of financial crises: Evidence from I ndonesia | |
US20070136352A1 (en) | Reporting row structure | |
Tektüfekçi | A bibliometric analysis of industry 4.0-focused Turkish e-accounting applications | |
US20210272113A1 (en) | Transaction audit system | |
CN110928962A (zh) | 一种基于动态字段的查询报表生成方法 | |
US8103561B2 (en) | Reconciling financial transactions | |
Goestjahjanti et al. | The Role Of Service Quality And Customer Satisfaction On Customer Loyalty Of Mobile Banking Product: An Empirical Study Of Banks In Jakarta | |
Kukreja et al. | Tesco Accounting Misstatements: Myopic Ideologies Overshadowing Larger Organisational Interests. | |
US7865527B2 (en) | Dynamic tables with dynamic rows for use with a user interface page | |
US20080288541A1 (en) | Method, Process, Schema, and Apparatus to Organize and Manage Company Folksonomy | |
JP4935733B2 (ja) | 貸付状況表示プログラム、貸付状況表示装置、貸付状況表示方法 | |
JP2016075989A (ja) | 口座評価システム、口座評価方法及び口座評価プログラム | |
CN113159695A (zh) | 供需交互系统、供应商平台、租户平台及方法 | |
CN112232894A (zh) | 基于增值税发票的数据分析方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240227 Address after: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant after: Inspur Genersoft Co.,Ltd. Country or region after: China Address before: 250100 No. 2877 Kehang Road, Sun Village Town, Jinan High-tech District, Shandong Province Applicant before: SHANDONG INSPUR GENESOFT INFORMATION TECHNOLOGY Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |