激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

動(dòng)態(tài)報表的實(shí)現與報表數據的組織(一)

時(shí)間:2024-06-29 12:22:22 計算機畢業(yè)論文 我要投稿
  • 相關(guān)推薦

動(dòng)態(tài)報表的實(shí)現與報表數據的組織(一)

[摘要]本文介紹了一種實(shí)現復雜數據集合的靈活運算、儲存、匯總、查詢(xún)功能和數據的動(dòng)態(tài)組合的簡(jiǎn)單方法,做到“使用一個(gè)軟件,管理所有數據”,提高了工作效率,減少重復勞動(dòng)。
 
 1引言
 為了解決復雜數據集合的靈活運算、儲存、匯總、查詢(xún)功能,設計了一個(gè)數據管理軟件,該軟件可以管理多種報表,每種報表可含有多個(gè)機構,每個(gè)機構內可有多個(gè)數據集合。各種報表可以有自己獨立的運算公式、平衡檢查公式,以及錯誤提示信息。每種報表可以進(jìn)行數據匯總、平均以及其它各種數學(xué)運算,等等。
 如果用戶(hù)用Excel結合Access,可以滿(mǎn)足上述功能,但缺點(diǎn)顯而易見(jiàn),就是使用復雜、數據不安全、維護不便。用PowerBuilder的動(dòng)態(tài)SQL語(yǔ)句生成動(dòng)態(tài)數據窗口,并結合專(zhuān)用的數據庫進(jìn)行數據組織,可以方便地實(shí)現上述功能,下面將軟件設計思路介紹如下。
 2.設計思路
 為了實(shí)現數據的動(dòng)態(tài)組合,軟件需要特設三張表,一張記錄動(dòng)態(tài)表的數據(記為Bbdata),一張記錄動(dòng)態(tài)表行的格式定義(記為Bbhdy),一張記錄動(dòng)態(tài)表列的格式定義(記為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:報表編碼(例:資產(chǎn)負債表為1,損益表為2,等等)
 Bm:報表中數據集合編碼(例:資產(chǎn)負債表1月份報表為1,2月份報表表為2,等等)
 Hs:數據在表中的具體位置所在行數
 Ls:數據在表中的具體位置所在列數
 Value:數據值
 2.Bbhdy表(表2)
Bbbm Hmc Hss Sfjsx 
3 固定資產(chǎn) 1 0 
3 累計資產(chǎn) 2 0 
3 工資支出 3 0 
3 合計支出 4 1 
 字段含義為:
 Bbbm:報表編碼(與Bbdata表的Reportbm字段關(guān)聯(lián))
 Hmc:行項目名稱(chēng)
 Hss:行順序(即:行在報表中的行序)
 Sfjsx:該行是否為計算性行,取值1或0(即:值由其它的行或者常數運算得出)
 3.Bbldy表(表3)
 
 字段含義為:
 Bbbm:報表編碼(與Bbdata表的Reportbm字段關(guān)聯(lián))
 Lmc:列項目名稱(chēng)
 Llen:列寬度(即:報表中每列列的寬度)
 Lss:列順序(即:列在報表中的列序)
 Sfjsx:該列是否為計算性列,取值1或0(即:值由其它的列或者常數運算得出)
 下列代碼中的dw_1用于放置動(dòng)態(tài)數據窗口,dw_2為Bbhdy數據庫得出數據窗口,dw_3為Bbldy數據庫得出數據窗口,dw_4為Bbdata數據庫得出數據窗口,調入內存后,進(jìn)行下列算法:
 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()為報表的實(shí)際列數
 model1="0.00 "
 a1=dw_3.object.data[i,2]
 // dw_3.object.data[i,2]為報表的列名稱(chēng)
  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)
 經(jīng)過(guò)上述算法之后,字符串a(chǎn)最終變成動(dòng)態(tài)SQL可辨析的串,上列表格所示的列項目會(huì )被組合為: 'a' 項目,0.00 第一季度,0.00 第二季度,0.00 第三季度,0.00 第四季度,0.00 全年合計,請有興趣的讀者自己驗證。
 接著(zhù)就可以利用動(dòng)態(tài)SQL語(yǔ)句生成動(dòng)態(tài)數據窗口對象:
 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字符串創(chuàng )建動(dòng)態(tài)數據窗口
 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.data[i,5]
  value=dw_4.object.data[i,6]
  dw_1.object.data[hs,ls]=value
 //將Bbdata中的數據填入生成表
 next
 最后,生成的動(dòng)態(tài)報表如表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
 //系統自動(dòng)得出數據集合編碼,取最大值+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.結束語(yǔ)
 該程序在Windows98操作系統和PowerBuilder6.5環(huán)境下調試通過(guò),對數據的管理取得了預期的效果,能實(shí)現數據集合的多維操作,在一定場(chǎng)合下可作為企業(yè)的數據管理系統軟件使用,也可為個(gè)人提供數據管理,使用范圍廣、操作難度小,是一個(gè)功能較好的程序。
 [參考文獻]
 1.《PowerBuilder 7.0編程員指南》,王鵬主編,北京希望電子出版社,2000.12
 2.《POWERBUILDER 7.0高級教程》,馬暉編,電子工業(yè)出版社,2000.1
 

【動(dòng)態(tài)報表的實(shí)現與報表數據的組織(一)】相關(guān)文章:

自動(dòng)站月報表人工與數據審核03-23

我國上市公司關(guān)聯(lián)重組報表性的動(dòng)態(tài)對比研究03-18

Visual Basic6.0下數據庫報表制作技巧12-06

外幣報表折算方法選用的另一標準03-25

上市公司收益質(zhì)量的報表分析03-24

基于iFIX的Excel報表自動(dòng)生成與制作03-07

實(shí)現基于網(wǎng)頁(yè)的數據庫數據導入03-18

實(shí)現動(dòng)態(tài)錄音通知的另類(lèi)方法11-22

淺析報表粉飾的手法及其審計謀略03-23

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频