动态报表的实现与报表数据的组织(一)[摘要]本文介绍了一种实现复杂数据集合的灵活运算、储存、汇总、查询功能和数据的动态组合的简单方法,做到“使用一个软件,管理所有数据”,提高了工作效率,减少重复劳动。 1引言 为了解决复杂数据集合的灵活运算、储存、汇总、查询功能,设计了一个数据管理软件,该软件可以管理多种报表,每种报表可含有多个机构,每个机构内可有多个数据集合。各种报表可以有自己独立的运算公式、平衡检查公式,以及错误提示信息。每种报表可以进行数据汇总、平均以及其它各种数学运算,等等。 ess,可以满足上述功能,但缺点显而易见,就是使用复杂、数据不安全、维护不便。用PowerBuilder的动态SQL语句生成动态数据窗口,并结合专用的数据库进行数据组织,可以方便地实现上述功能,下面将软件设计思路介绍如下。 为了实现数据的动态组合,软件需要特设三张表,一张记录动态表的数据(记为Bbdata),一张记录动态表行的格式定义(记为Bbhdy),一张记录动态表列的格式定义(记为Bbldy),格式分别如下: (表1)Agency Reportbm Bm Hs Ls Value 100 2 2 1 2 100 2 2 1 3 100 2 2 1 4 100 2 2 1 5 100 2 2 1 6 字段含义为: Agency:报表机构编码(例:假定分公司A为1,分公司B为2,等等) Reportbm:报表编码(例:资产负债表为1,损益表为2,等等) Bm:报表中数据集合编码(例:资产负债表1月份报表为1,2月份报表表为2,等等) Hs:数据在表中的具体位置所在行数 Ls:数据在表中的具体位置所在列数 Value:数据值 (表2)Bbbm Hmc Hss Sfjsx 3 固定资产 1 0 3 累计资产 2 0 3 工资支出 3 0 3 合计支出 4 1 字段含义为: Bbbm:报表编码(与Bbdata表的Reportbm字段关联) Hmc:行项目名称 Hss:行顺序(即:行在报表中的行序) Sfjsx:该行是否为计算性行,取值1或0(即:值由其它的行或者常数运算得出) (表3) 字段含义为: Bbbm:报表编码(与Bbdata表的Reportbm字段关联) Lmc:列项目名称 Llen:列宽度(即:报表中每列列的宽度) Lss:列顺序(即:列在报表中的列序) Sfjsx:该列是否为计算性列,取值1或0(即:值由其它的列或者常数运算得出) 下列代码中的dw_1用于放置动态数据窗口,dw_2为Bbhdy数据库得出数据窗口,dw_3为Bbldy数据库得出数据窗口,dw_4为Bbdata数据库得出数据窗口,调入内存后,进行下列算法: integeri,j,hs,ls stringmodel1,model2,a,a1 decimalvalue model1="" model2="" a="'a'项目," fori=1to () //()为报表的实际列数 model1="" a1=[i,2] //
计算机毕业论文动态报表的实现与报表数据的组织一 来自淘豆网www.taodocs.com转载请标明出处.