CN110928962B - 一种基于动态字段的查询报表生成方法 - Google Patents
一种基于动态字段的查询报表生成方法 Download PDFInfo
- Publication number
- CN110928962B CN110928962B CN201911173454.8A CN201911173454A CN110928962B CN 110928962 B CN110928962 B CN 110928962B CN 201911173454 A CN201911173454 A CN 201911173454A CN 110928962 B CN110928962 B CN 110928962B
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 239000000047 product Substances 0.000 description 6
- UWNXGZKSIKQKAH-UHFFFAOYSA-N Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 Chemical compound Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 UWNXGZKSIKQKAH-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 239000013589 supplement Substances 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 (5)
1.一种基于动态字段的查询报表生成方法,其特征在于:通过对数据库字段的动态添加,实现用户自定义扩展表结构,从而使***内的任何一个业务对象都可以做为核算维度,动态添加到科目的核算维度上;具体包括以下步骤:
第一步,首先建立一个模型表ir_model,用于存放***内所有表的基本信息,包括表名及描述;
第二步,建立一个字段信息表ir_model_fields,用于存放***内所有表的字段信息,包括对应的表名、字段名及字段类型;
第三步,创建核算维度基础信息表,用于维护核算维度的基本信息;将核算维度基础信息表的核算维度字段做为维度来源,每个核算维度都对应***内的一个表,多个维度对应一个表,对应的表就是模型表ir_model;
第四步,将核算维度字段动态添加到包括凭证分录表和科目余额表在内的需要用到核算维度的业务表上;
第五步,在科目上维护本科目具体的核算维度;
第六步,在录入凭证时,选择科目后,根据科目所维护的核算维度,动态显示核算维度字段;
在视图层控制核算维度字段动态显示/隐藏时,循环处理所有字段,将所有动态字段取出,与跟科目维护的核算维度进行比较,如果两个字段相匹配,则在核算维度录入视图上显示核算维度字段,否则就隐藏;
在做查询报表时,也要将动态字段全部取出,无论是查询条件还是检索字段,都要将动态字段拼接起来;
第七步,处理动态字段的名称显示;
从字段信息表ir_model_fields中取出动态字段对应的基础信息表的ID,再从模型表ir_model中取出该ID对应的业务表的基础信息——表名,该表名就是动态字段的核算维度名称,把名称赋给报表字段标题,便是该字段的名称,或者在核算维度报表中显示核算信息。
2.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第二步中,每次创建新表,都要把新表的基础信息写入模型表ir_model,把字段信息写入字段信息表ir_model_fields,从而把新表的描述记录到数据库中。
3.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第三步中,核算人员字段对应***内的人员基础信息表,核算的人员都来自人员基础新表;核算部门字段对应***内的部门基础信息表,核算的部门都来自部门基础信息表。
4.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第四步中,在凭证分录表上添加5个动态字段,分别用来核算人员、部门、产品、现金流和往来单位。
5.根据权利要求1所述的基于动态字段的查询报表生成方法,其特征在于:所述第四步中,为核算维度字段定义统一规律的前缀跟后缀。
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 CN110928962A (zh) | 2020-03-27 |
CN110928962B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111986009A (zh) * | 2020-06-30 | 2020-11-24 | 山东浪潮通软信息科技有限公司 | 一种基于弹性域的财务查询报表生成方法及设备、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 | 银联商务股份有限公司 | 一种动态报表的处理方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117731A1 (en) * | 2002-09-27 | 2004-06-17 | Sergey Blyashov | Automated report building system |
CN103020158B (zh) * | 2012-11-26 | 2016-09-07 | 中兴通讯股份有限公司 | 一种报表创建方法、装置和*** |
US9208212B2 (en) * | 2012-12-17 | 2015-12-08 | Sap Ag | Field extensibility in a multi-tenant environment with columnar database support |
-
2019
- 2019-11-26 CN CN201911173454.8A patent/CN110928962B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 金蝶软件(中国)有限公司 | 报表的动态过滤方法及装置 |
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 |
---|
李全彬 ; 刘锦高 ; .网络信息共享***的设计与实现.现代计算机(专业版).2009,(07),全文. * |
王文义,冯伟华.智能报表生成***的研究.郑州大学学报(工学版).2003,(03),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110928962A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7698259B2 (en) | Semantic search in a database | |
Watson et al. | The benefits of data warehousing: why some organizations realize exceptional payoffs | |
Ali et al. | Capability components of supply chain resilience for readymade garments (RMG) sector in Bangladesh during COVID-19 | |
US7865412B1 (en) | Method and system for account tracking | |
Ikra et al. | Islamic banking efficiency literature (2000–2020): a bibliometric analysis and research front mapping | |
CN103678447B (zh) | 多变量交易分类 | |
US20120173381A1 (en) | Process and system for pricing and processing weighted data in a federated or subscription based data source | |
US20040143596A1 (en) | Content distributon method and apparatus | |
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 | |
Kleibert | On the global city map, but not in command? Probing Manila’s position in the world city network | |
Yoshimura et al. | Spatial clustering: Influence of urban street networks on retail sales volumes | |
CN103942702A (zh) | 基于电子名片开展电子商务的***和方法 | |
CN110928962B (zh) | 一种基于动态字段的查询报表生成方法 | |
AU2011353001B2 (en) | System and method for consolidating account data | |
Agarwal | Decision making with association rule mining and clustering in supply chains | |
Scott et al. | New perspectives on 20th-century European retailing | |
Shaw | Manchester united football club: Developing a network orchestration model | |
JP6943407B2 (ja) | 業務管理システム、及び業務管理方法 | |
JP6986845B2 (ja) | 業務支援装置、業務支援方法、業務支援システム、及びプログラム | |
US20030110140A1 (en) | Method for facilitating pricing, sale and distribution of fuel to a customer | |
KR102218238B1 (ko) | Sns를 통하여 획득되는 정보를 이용하는 광고 추천 방법 및 그 장치 | |
US8688609B2 (en) | Transforming a list of purchase types based on a configurable rule | |
KR101686796B1 (ko) | 인터넷 지출 내역 관리 시스템 | |
Purohit et al. | Sustainable social enterprise built by empowering women artisans: A case of Gramshree, India |
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 |