网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 动态报表的实现与报表数据的组织(一)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

动态报表的实现与报表数据的组织(一)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
动态报表的实现与报表数据的组织(一)

[摘要]本文介绍了一种实现复杂数据集合的灵活运算、储存、汇总、查询功能和数据的动态组合的简单方法,做到“使用一个软件,管理所有数据”,提高了工作效率,减少重复劳动。
 
 1引言
 为了解决复杂数据集合的灵活运算、储存、汇总、查询功能,设计了一个数据管理软件,该软件可以管理多种报表,每种报表可含有多个机构,每个机构内可有多个数据集合。各种报表可以有自己独立的运算公式、平衡检查公式,以及错误提示信息。每种报表可以进行数据汇总、平均以及其它各种数学运算,等等。
 如果用户用Excel结合Access,可以满足上述功能,但缺点显而易见,就是使用复杂、数据不安全、维护不便。用PowerBuilder的动态SQL语句生成动态数据窗口,并结合专用的数据库进行数据组织,可以方便地实现上述功能,下面将软件设计思路介绍如下。
 2.设计思路
 为了实现数据的动态组合,软件需要特设三张表,一张记录动态表的数据(记为Bbdata),一张记录动态表行的格式定义(记为Bbhdy),一张记录动态表列的格式定义(记为Bbldy),格式分别如下:
 1.Bbdata表(表1)
Agency Reportbm Bm Hs Ls Value 
100 2 2 1 2 1348895.00 
100 2 2 1 3 15740.00 
100 2 2 1 4 1326505.00 
100 2 2 1 5 23436.00 
100 2 2 1 6 2592.00 
 字段含义为:
 Agency:报表机构编码(例:假定分公司A为1,分公司B为2,等等)
 Reportbm:报表编码(例:资产负债表为1,损益表为2,等等)
 Bm:报表中数据集合编码(例:资产负债表1月份报表为1,2月份报表表为2,等等)
 Hs:数据在表中的具体位置所在行数
 Ls:数据在表中的具体位置所在列数
 Value:数据值
 2.Bbhdy表(表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.Bbldy表(表3)
 
 字段含义为:
 Bbbm:报表编码(与Bbdata表的Reportbm字段关联)
 Lmc:列项目名称
 Llen:列宽度(即:报表中每列列的宽度)
 Lss:列顺序(即:列在报表中的列序)
 Sfjsx:该列是否为计算性列,取值1或0(即:值由其它的列或者常数运算得出)
 下列代码中的dw_1用于放置动态数据窗口,dw_2为Bbhdy数据库得出数据窗口,dw_3为Bbldy数据库得出数据窗口,dw_4为Bbdata数据库得出数据窗口,调入内存后,进行下列算法:
 integer i,j,hs,ls
 string model1,model2,a,a1
 decimal value
 model1=""
 model2=""
 a="'a' 项目,"
 for i=1 to  dw_3.rowcount()
 // dw_3.rowcount()为报表的实际列数
 model1="0.00 "
 a1=dw_3.object.data[i,2]
 // dw_3.object.data[i,2]为报表的列名称
  j=0
 do while j <= len(a1)
   j++
   if right(left(a1,j),1)=" " then
      a1=Replace(a1,1,j,trim(left(a1,j)))
      j=j - 1
   end if
  loop
   model2=model2+model1+a1+","
 next
 a=a+model2
 a=left(a,len(a) - 1)
 经过上述算法之后,字符串a最终变成动态SQL可辨析的串,上列表格所示的列项目会被组合为: 'a' 项目,0.00 第一季度,0.00 第二季度,0.00 第三季度,0.00 第四季度,0.00 全年合计,请有兴趣的读者自己验证。
 接着就可以利用动态SQL语句生成动态数据窗口对象:
 new_sql = "SELECT "+a+" from reportbm"
 // reportbm为报表编码表
 new_syntax=sqltrans.SyntaxFromSQL(new_sql,'Style(Type=grid)',error_syntaxfromSQL)
 dw_1.Create(new_syntax, error_create)
 //根据SQL字符串创建动态数据窗口
 for i=1 to dw_2.rowcount()
 dw_1.insertrow(0)
 dw_1.object.data[dw_1.rowcount(),1]=dw_2.object.data[i,2]
 //根据行元素的多少在生成的数据窗口中插入行,并在第一列输入行项目
 next
 for i=1 to dw_4.rowcount()
  hs=dw_4.object.data[i,4]
  ls=dw_4.object

首页 上一页 1 2 下一页 尾页 1/2/2

动态报表的实现与报表数据的组织(一)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:公交车乘客信息系统研究 下一篇:4月10号:建设项目招投标信息管理..
推荐论文 本专业最新论文
Tags:动态 报表 实现 数据 组织 2010-04-10 08:44:50【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有