动态报表的实现与报表数据的组织(二)
 .data[i,5]
  value=dw_4.object.data[i,6]
  dw_1.object.data[hs,ls]=value 
 //将Bbdata中的数据填入生成表
 next
 最后,生成的动态报表如表4所示,调整列宽度、颜色、是否可为空等属性的代码不再赘述。
 如要在上表中输入新数据并将之保存为一组数据集合,代码如下:
 integer bm,i,j,hs,ls,value
 SELECT max(bm)
 INTO :bm
 FROM bbdata
 where reportbm=:num
 //num为已知报表编码
 USING sqltrans;
 if isnull(bm) then
  bm=1 
 else
  bm++
 end if
 //系统自动得出数据集合编码,取最大值+1
 for i=1 to hs
  for j=2 to ls+1
 //hs为报表行数,ls为报表列数
  value= dw_1.object.data[i,j]
   if not isnull(value) then
    INSERT INTO bbdata(agency,reportbm,bm,hs,ls,value)
    VALUES (:agency,:num,:bm,:i,:j,:value) 
   using sqltrans;
    commit using sqltrans;
   end if
  next
 next
 3.结束语
 该程序在Windows98操作系统和PowerBuilder6.5环境下调试通过,对数据的管理取得了预期的效果,能实现数据集合的多维操作,在一定场合下可作为企业的数据管理系统软件使用,也可为个人提供数据管理,使用范围广、操作难度小,是一个功能较好的程序。
 [参考文献]
 1.《PowerBuilder 7.0编程员指南》,王鹏主编,北京希望电子出版社,2000.12
 2.《POWERBUILDER 7.0高级教程》,马晖编,电子工业出版社,2000.1
  
动态报表的实现与报表数据的组织(二)由毕业论文网(www.huoyuandh.com)会员上传。


