CN101046825A - 一种报表填写后数据入库的方法 - Google Patents
一种报表填写后数据入库的方法 Download PDFInfo
- Publication number
- CN101046825A CN101046825A CN 200710097822 CN200710097822A CN101046825A CN 101046825 A CN101046825 A CN 101046825A CN 200710097822 CN200710097822 CN 200710097822 CN 200710097822 A CN200710097822 A CN 200710097822A CN 101046825 A CN101046825 A CN 101046825A
- Authority
- CN
- China
- Prior art keywords
- data
- report
- attribute
- cell
- record
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机信息处理技术领域,涉及一种报表填写后数据入库的方法,具体涉及一种能够将经过填写后的报表上的数据按合理规则写入关系数据库的处理方法。该方法首先用非线性报表生成方法设计报表模板,然后确定需要写入数据的数据表及字段,其次在报表单元格上设置更新属性,在报表扩展计算并进行填写后根据更新属性将报表上数据经过计算写入数据库表中。本发明提供数据入库方法具有库表任意关联、自动扩展以及数据有来有去、来去无关、一来多去等优点。
Description
技术领域
本发明属于计算机信息处理技术领域,涉及一种报表填写后数据入库的方法,具体涉及一种能够将经过填写后的报表上的数据按合理规则写入关系数据库的处理方法。
背景技术
报表填写是很常见的业务需求,然而填写本身并不是目的,对填写的数据进行分析利用才是目的。在目前的技术手段下,一般需要将数据写入开放的、数据结构具有业务意义的关系数据库后才能方便利用。因此,数据入库是报表填写过程中一个非常重要的处理环节。
传统的填写解决方案一般有如下三种方式处理数据入库:
1.采用中间文件,将填写的结果写入一个中间数据文件(经常就是直接使用EXCEL填报),某些填报方案一般会提供少量一些基于这些中间文件的统计汇总,但要完全利用则仍须将数据结构化成后转存到关系数据库中。而将非结构化的数据转成可以体现业务规则的结构化数据是非常困难的工作,没有通用的方法,需要为每种报表编写相应程序去处理。
2.写入固定的数据结构,填报方案提供一种″万能″的数据结构将填好的数据写入,其数据结构常常是只有“行号”、“列号”、“数值”三个字段(或类似),这种方案虽然声称能够自动入库,但只是物理地把数据写入了数据库而已,数据结构完全没有体现业务规则,在将来使用时仍然要进行再次转换的工作。
3.事先根据业务规则设计要保存的数据结构,然后根据数据结构设计要填写的报表,每个要填写单元格的数据都有唯一对应数据库的字段,这样在入库时就可以直接写成结构化的数据。这种入库机制较为合理,但报表必须根据数据结构设计,库表对应关系过于非常简单,导致报表不可自由绘制,只能提供简单的几种死板表样,难以满足用户需求。
这些入库方式的主要问题是无法解决能体现业务规则的数据库表与报表单元格之间的匹配矛盾,从而导致报表设计或者数据入库的配合困难。
发明内容
本发明的目的在于针对传统填写入库方案的缺陷,提供一种新型的动态库表关联方法来处理报表填写后的数据入库问题,通俗地讲,即是使数据入库方案具有如下的能力:
任意匹配,自动扩展:数据库表列与报表的单元格之间可以进行任何匹配,设计报表样式时无需考虑数据结构,反之设计数据结构时也只需要考虑业务规则而不必考虑报表样式,任意的报表样式和数据结构之间均能建立对应关系。并且这些对应关系有自动扩展的能力,即有规律的表区只要设置一遍基本的对应关系,表区中其它单元格与数据库的对应关系可自动扩展出来。如行式表填报时,只需要设置某一行的库表对应关系,其它行均可自动扩展,而交叉表则只要设计某一格的对应关系即可,其它格也可自动扩展。
有来有去,来去无关,一来多去:单元格中的数据都有来源,现实中常常需要制作多级汇总填报表,某一中间层的填报表是先由下级统计出来的,而非空表格,这样就要求单元格的数据要有个来源;填写的数据要入库,则需要有个去处,来源和去处是无关的,如可以将从甲表中统计出来的结果修改后填入乙表;而且一个单元格的去处可以有多个(来源显然不可能有多个),可以同时写入乙表、丙表等等。
本发明的技术方案如下,一种报表填写后数据入库的方法,包括如下步骤:
(1)采用非线性报表生成方法设计要填写的报表模板;
(2)确定需要将数据写入的数据库表及其上的字段;
(3)在报表模板的某些单元格中设置更新属性;
(4)扩展计算报表并在其单元格内填写数据;
(5)根据更新属性将报表上的数据计算后写入数据库表中。
进一步,在上述数据入库的方法中,步骤(2)中数据表可以是多个,并且允许来自不同的数据库。
更进一步,这些数据表与步骤(1)中用于设计报表模板的数据集无关,从而保证数据的来去无关。
进一步,在上述数据入库的方法中,步骤(3)中的更新属性是一个由多个更新数据表及更新字段和与之对应的更新表达式构成的数组,其中更新数据表和更新字段来自步骤(1)中确定的数据表和字段,而更新表达式则是一个符合非线性报表生成方法规则的单元格运算表达式(经常可以是仅取出某单元格值的简单表达式)。
进一步,在上述数据入库的方法中,步骤(4)中扩展计算报时,更新属性作为单元格的属性将一起被扩展复制,从而保证入库机制的自动扩展。
进一步,在上述数据入库的方法中,步骤(5)中针对每一个有更新属性的单元格,计算其更新属性中每一个更新数据表上的更新字段对应的更新表达式,将计算结果作为字段的记录值形成相应更新数据表的一条记录写入到数据表中。
更进一步,在将计算出来的记录写入更新数据表时,如果根据主码判断原记录在数据表中已存在,则生成UPDATE语句修改原记录,否则将生成INSERT语句插入一条新记录。
再进一步,如果某有更新属性的单元格在填写过程中被删除,则基于填写前(未删除时)的报表用上述同样方法计算出该单元格对应的更新表及相应记录,并据此生成DELETE语句在数据表中删除相应记录。
本发明的有益效果在于:使得报表填写后数据入库方法具有如下能力:
(1)任意匹配、自动扩展
方法中的更新属性可以定义在任何单元格上,对更新数据表和字段也没有任何限制,这样保证了报表的单元格与数据库表列之间的任意匹配。同时,在步骤(4)扩展计算报表时更新属性会一起被自动扩展复制。
(2)有来有去、来去无关、一来多去
方法中报表上的数据是由非线性报表生成方法计算出来,因而具有来源;步骤(5)中在保存数据时并不关心报表上单元格的格值是否被修改,也不考查单元格值的计算方法(即数据来源),并且同时可将同一批格值保存到多个更新数据表中,从而做到数据来源与去向无关,并可有多处去向。
附图说明
图1为采用非线性报表生成方法设计的用于填写的报表模板。
图2为图1的报表模板计算扩展的的结果。
图3为图2的表格经过填写后的结果。
图4是本发明所述方法的流程图。
具体实施方式
下面结合说明书附图给出的具体案例说明本发明的实施方式。
例:一个主从式多源填写表的设计、填写及入库过程。
(1)采用非线性报表生成方法设计要填写的报表模板;
设计的报表模板如图1所示。
其中C4和B10是纵向扩展格,B4、B6、B7、B8、B9、B10的左主格均设置为C4,从而形成一个主从表格。
(2)确定需要将数据写入的数据库表及其上的字段;
设要写入的数据表及其结构为:
create table″CONTRACT″( ---合同表
″CONTRACTNO″CHAR(20), ---合同号
″CUSTOMERID″CHAR(10), ---客户ID
″AMOUNT″DECIMAL(16,2), ---金额
″FINISHED″CHAR(1), ---是否完成
″PAYAMOUNT″DECIMAL(16,2) ---共付金额
″PAYMENT″CHAR(1), ---付款方式
″SIGNDATE″TIMESTAMP, ---签定日期
″TRANSPORTDATE″TIMESTAMP, ---发货日期
″TRANSPORT″CHAR(10), ---港口
″TRANSPORTMETHOD″CHAR(1), ---运输方式
″SALESMAN″CHAR(10), ---销售员
);
需要更新的字段有:
CONTRACTNO,CUSTOMERID,AMOUNT,PAYMENT,SIGNDATE,TRANSPORTDATE,TRANSPORT,TRANSPORTMETHOD,SALESMAN。
create table″CONTRACTDETAIL″( ---合同明细表
″CONTRACTNO″CHAR(20), ---合同号
″PRODUCTID″CHAR(10), ---产品ID
″AMOUNT″DECIMAL(16,2), ---金额
″PRICE″DECIMAL(16,2), ---单价
″QUANTITY″DECIMAL(16), ---销售数量
″QUANTITYUNIT″CHAR(10) ---数量单位
);
需要更新的字段为:
CONTRACTNO,PRODUCTID,AMOUNT,PRICE,QUANTITY,QUANTITYUNIT。
(3)在报表模板的某些单元格中设置更新属性;
在C4上设置更新属性如下:
更新数据表 | 更新字段 | 对应表达式 |
CONTRACT | CONTRACTNO | C4 |
CUSTOMERID | C5 | |
AMOUNT | E4 | |
PAYMENT | G4 | |
SIGNDATE | C6 | |
TRANSPORTDATE | E7 | |
TRANSPORT | C7 | |
TRASNPORTMETHOD | G7 | |
SALEMAN | G6 |
在B10上设计列新属性如下:
更新数据表 | 更新字段 | 对应表达式 |
CONTRACTDETAIL | CONTRACTNO | C4 |
PRODUCTID | B10 | |
AMOUNT | G10 | |
PRICE | F10 | |
QUANTITY | D10 | |
QUANTITYUNIT | E10 |
(4)扩展计算报表并在其单元格内填写数据;
计算扩展后的报表如图2所示。
在其上修改客户名称/运输方式/签定日期/发货港口/发货日期,以及产品的单价等数据,并新增一种产品的记录,修改结果如图3所示。
(5)根据更新属性将报表上的数据计算后写入数据库表中。
结合数据库中已有数据,C4(被扩展成1个)的更新属性将生成如下1条SQL语句:
update contract
set amount=17200,customerid=′6′,contractno=′quiee0010′,
payment=null,salesman=null,signdate=′2007-02-01
00:00:00′,transport=′上海港′,transportdate=′2007-02-03
00:00:00′,transportmethod=′2′
where contractno=′quiee0010′
B10(被扩展重复多个,其中有3行内填有有效数据)的更新属性将生成如下3条SQL语句:
update contractdetail
set amount=6000,contractno=′quiee0010′,price=1000.00,
productid=′4′,quantity=6.0,quantityunit=′吨′
where contractno=′quiee0010′and productid=′4′
update contractdetail
set amount=4800,contractno=′quiee0010′,price=2400.00,
productid=′5′,quantity=2.0,quantityunit=′吨′
where contractno=′quiee0010′and productid=′5′
insert into contractdetail
(contractno,productid,amount,price,quantity,quantityunit)
values(′quiee0010′,′1′,6400,800.00,8.0,′吨′)
执行这几条SQL语句即可正确完成数据的入库操作。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种报表填写后数据入库的方法,包括如下步骤:
(1)采用非线性报表生成方法设计要填写的报表模板;
(2)确定需要将数据写入的数据库表及其上的字段;
(3)在报表模板的某些单元格中设置更新属性;
(4)扩展计算报表并在其单元格内填写数据;
(5)根据更新属性将报表上的数据计算后写入数据库表中。
2.根据权利要求1所述的数据入库方法,其特征在于:步骤(2)中所述的用于写入数据的数据表为多个,来自相同或不同的数据库,且与步骤(1)中用于设计报表模板的数据集无关。
3.根据权利要求1所述的数据入库方法,其特征在于:步骤(3)中的更新属性是一个由多个更新数据表及更新字段和与之对应的更新表达式构成的数组,其中更新数据表和更新字段来自步骤(1)中确定的数据表和字段,更新表达式是一个符合非线性报表生成方法规则的单元格运算表达式。
4.根据权利要求1所述的数据入库方法,其特征在于,步骤(4)中扩展计算报时,更新属性作为单元格的属性将一起被扩展复制。
5.根据权利要求1所述的数据入库方法,其特征在于,步骤(5)中针对每一个有更新属性的单元格,计算其更新属性中每一个更新数据表上的更新字段对应的更新表达式,将计算结果作为字段的记录值形成相应更新数据表的一条记录写入到数据表中。
6.根据权利要求5所述的数据入库方法,其特征在于:在将计算出来的记录写入更新数据表时,如果根据主码判断原记录在数据表中已存在,则生成UPDATE语句修改原记录,否则将生成INSERT语句插入一条新记录。
7.根据权利要求1和5所述的数据入库方法,其特征在于:如果某有更新属性的单元格在填写过程中被删除,则基于填写前的报表计算出该单元格对应的更新表及相应记录,并生成DELETE语句在数据表中删除相应记录。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710097822 CN101046825A (zh) | 2007-04-18 | 2007-04-18 | 一种报表填写后数据入库的方法 |
CN2008100890737A CN101261641B (zh) | 2007-04-18 | 2008-04-17 | 一种报表填写后数据入库的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710097822 CN101046825A (zh) | 2007-04-18 | 2007-04-18 | 一种报表填写后数据入库的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101046825A true CN101046825A (zh) | 2007-10-03 |
Family
ID=38771433
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710097822 Pending CN101046825A (zh) | 2007-04-18 | 2007-04-18 | 一种报表填写后数据入库的方法 |
CN2008100890737A Expired - Fee Related CN101261641B (zh) | 2007-04-18 | 2008-04-17 | 一种报表填写后数据入库的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100890737A Expired - Fee Related CN101261641B (zh) | 2007-04-18 | 2008-04-17 | 一种报表填写后数据入库的方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN101046825A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277272B (zh) * | 2008-05-16 | 2010-12-15 | 北京航空航天大学 | 一种海量广播数据入库的实现方法 |
CN102004790A (zh) * | 2010-12-09 | 2011-04-06 | 向心力信息技术股份有限公司 | 一种高吞吐量数据报表导出的方法 |
CN101261622B (zh) * | 2008-05-12 | 2011-12-07 | 金蝶软件(中国)有限公司 | 一种数据分拆方法及装置 |
CN102722512A (zh) * | 2011-12-30 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种数据库客户端远程维护展示数据库的方法 |
CN102982439A (zh) * | 2012-11-12 | 2013-03-20 | 中国电子科技集团公司第十五研究所 | 生成电子公文的方法及电子公文生成系统 |
CN102722514B (zh) * | 2011-12-30 | 2017-11-10 | 新奥特(北京)视频技术有限公司 | 一种远程动态创建数据库的方法 |
CN112015623A (zh) * | 2020-08-27 | 2020-12-01 | 百度时代网络技术(北京)有限公司 | 报表数据处理的方法、装置、设备及可读存储介质 |
CN112257401A (zh) * | 2020-12-22 | 2021-01-22 | 畅捷通信息技术股份有限公司 | 一种数据对象的自适应扩展方法、装置及存储介质 |
CN118277389A (zh) * | 2024-05-31 | 2024-07-02 | 四川省交通勘察设计研究院有限公司 | 一种服务于外业调查的表单设计与报表输出的方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020089A (zh) * | 2011-09-27 | 2013-04-03 | 深圳市金蝶友商电子商务服务有限公司 | 一种将excel文件中的数据导入数据库的方法及装置 |
CN103020032B (zh) * | 2012-12-28 | 2016-09-14 | 无锡城市云计算中心有限公司 | 云计算系统中的报表生成方法 |
-
2007
- 2007-04-18 CN CN 200710097822 patent/CN101046825A/zh active Pending
-
2008
- 2008-04-17 CN CN2008100890737A patent/CN101261641B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261622B (zh) * | 2008-05-12 | 2011-12-07 | 金蝶软件(中国)有限公司 | 一种数据分拆方法及装置 |
CN101277272B (zh) * | 2008-05-16 | 2010-12-15 | 北京航空航天大学 | 一种海量广播数据入库的实现方法 |
CN102004790A (zh) * | 2010-12-09 | 2011-04-06 | 向心力信息技术股份有限公司 | 一种高吞吐量数据报表导出的方法 |
CN102722512A (zh) * | 2011-12-30 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种数据库客户端远程维护展示数据库的方法 |
CN102722514B (zh) * | 2011-12-30 | 2017-11-10 | 新奥特(北京)视频技术有限公司 | 一种远程动态创建数据库的方法 |
CN102722512B (zh) * | 2011-12-30 | 2018-03-16 | 新奥特(北京)视频技术有限公司 | 一种数据库客户端远程维护展示数据库的方法 |
CN102982439A (zh) * | 2012-11-12 | 2013-03-20 | 中国电子科技集团公司第十五研究所 | 生成电子公文的方法及电子公文生成系统 |
CN112015623A (zh) * | 2020-08-27 | 2020-12-01 | 百度时代网络技术(北京)有限公司 | 报表数据处理的方法、装置、设备及可读存储介质 |
CN112015623B (zh) * | 2020-08-27 | 2024-04-12 | 百度时代网络技术(北京)有限公司 | 报表数据处理的方法、装置、设备及可读存储介质 |
CN112257401A (zh) * | 2020-12-22 | 2021-01-22 | 畅捷通信息技术股份有限公司 | 一种数据对象的自适应扩展方法、装置及存储介质 |
CN118277389A (zh) * | 2024-05-31 | 2024-07-02 | 四川省交通勘察设计研究院有限公司 | 一种服务于外业调查的表单设计与报表输出的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101261641B (zh) | 2011-06-22 |
CN101261641A (zh) | 2008-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101046825A (zh) | 一种报表填写后数据入库的方法 | |
CN104778540B (zh) | 一种建材装备制造bom管理方法及管理系统 | |
CN103279542B (zh) | 数据导入处理方法及数据处理装置 | |
CN101828182B (zh) | 报告oltp数据的无etl零冗余系统和方法 | |
CN102117306B (zh) | Etl数据处理过程的监控方法及其系统 | |
JP5826831B2 (ja) | データマート自動化 | |
CN102426582B (zh) | 数据操作管理装置和数据操作管理方法 | |
US20120124081A1 (en) | Method and system for providing data migration | |
CN103902439B (zh) | 一种测试用例的管理方法、装置及系统 | |
CN101789021A (zh) | 一种通用可配置的数据库数据迁移方法 | |
US20140214753A1 (en) | Systems and methods for multi-source data-warehousing | |
WO2014106046A2 (en) | Systems and methods for multi-source data-warehousing | |
CN104778236A (zh) | 一种基于元数据的etl实现方法及系统 | |
CN113610595B (zh) | 一种报审价信息化管理方法及系统 | |
AU2014101659A4 (en) | Metadata automated system | |
CN111078766A (zh) | 一种基于多维理论的数据仓库模型建设系统及方法 | |
CN115577883A (zh) | 碳资产管理方法及系统、电子设备及存储介质 | |
Hinrichs et al. | An ISO 9001: 2000 Compliant Quality Management System for Data Integration in Data Warehouse Systems. | |
CN102779092B (zh) | 引用检查系统和引用检查方法 | |
WO2024065407A1 (zh) | 生产排程方法、电子设备及存储介质 | |
JP2014085930A (ja) | 生産計画生成装置、生産計画生成方法、プログラム、及び記録媒体 | |
CN110597899B (zh) | 项目经费管理方法及系统 | |
CN1808388A (zh) | 基于对象存储库的粘贴链接处理方法和粘贴链接处理器 | |
CN115983736B (zh) | 一种基于主从关系的主数据建模方法 | |
Li et al. | Commoncube-based conceptual modeling of ETL processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |