在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁面

PB動態(tài)報表格式自由定義的完成

PB動態(tài)報表格式自由定義的完成

更新時間:2025-10-17 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)數(shù)據(jù)庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應(yīng)...
數(shù)據(jù)庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。
在通常的Server/Client方式MIS開發(fā)中,總是有沒完沒了的報表需要制作,調(diào)試報表花費(fèi)的時間也是最多而且乏味,還常常不能滿足客戶的要求。要是能夠讓用戶自己調(diào)整報表的格式和內(nèi)容,然后將它保存下來,程序下次啟動時它自動調(diào)用保存了的報表格式那有多好。本人通過如下方法最終實(shí)現(xiàn)了用的要求。
PB(PowerBuilder)有一種以PSR結(jié)尾的特殊的保存報表的文件格式(本文簡稱作PSR文件)。根據(jù)數(shù)據(jù)窗口可以直接讀取PSR文件生成報表的原理,程序通過生成PSR文件,實(shí)現(xiàn)動態(tài)報表格式的保存。

  一、實(shí)現(xiàn)原理: 

  PB中的報表其實(shí)就相當(dāng)于是數(shù)據(jù)窗口。

  第一步,動態(tài)報表的實(shí)現(xiàn)。通過設(shè)置數(shù)據(jù)窗口對象(dataobject)中文本、列等的Resizeable和moveable屬性為1來實(shí)現(xiàn)對象位置的拖動控制,通過數(shù)據(jù)窗口的Modify函數(shù)實(shí)現(xiàn)對象值的更改(包括增加和刪除)。

  第二步,報表格式的保存。在一個應(yīng)用當(dāng)中,數(shù)據(jù)窗口對象的名稱總是唯一的,將每一個數(shù)據(jù)窗口對象轉(zhuǎn)化成PSR文件存于數(shù)據(jù)庫表中。在窗口打開時,程序先校驗(yàn)報表格式是否存在。如果存在,先將報表格式讀取出來放在一個臨時文件當(dāng)中,然后設(shè)置數(shù)據(jù)窗口(datawindow)的數(shù)據(jù)對象(dataobject)為這個報表文件,然后提取數(shù)據(jù);如果不存在,直接提取數(shù)據(jù)即可。 

  二、實(shí)現(xiàn)過程:

   1、建立一個數(shù)據(jù)庫表用以保存報表格式文件。 
表名:dyn_report 
DwobjectVarchar2(20)數(shù)據(jù)窗口對象名稱Primary key 
RptitleVarchar2(80)報表的標(biāo)題名稱  
MemoLong raw 報表格式  

   2、建立一個窗口w_temp。 定義實(shí)例變量如下:

   string is_dwtype,is_dwobject //保存報表中對象的類型及名稱 

控件名稱 控件含義 
Dw_print數(shù)據(jù)窗口對象 
Cb_exit退出按鈕
Cb_savereport 報表格式保存按鈕 
   
   3、在窗口的OPEN事件中加入如下代碼, 校驗(yàn)報表格式是否存在,如果存在讀取定義好的報表格式到數(shù)據(jù)窗口。

  blob emp_pic
   long ll_handle
   string ls_dwobject,ls_reportfile,ls_path
   ls_dwobject = dw_print.dataobject
   //判斷是否存在該數(shù)據(jù)窗口的報表格式
   select count(*) into:ll_count from dyn_report where dwobject =:ls_dwobject;
   if ll_count>0 then
     //讀取報表格式文件到大文本變量
     selectblob memo into:emp_pic from dyn_report where dwobject =:ls_dwobject;
     //創(chuàng)建psr臨時文件到硬盤
     ls_reportfile = ’\temp7089.psr’
     ll_handle = FileOpen(is_reportfile,StreamMode!,write!,LockWrite!,Replace!)
     FileWrite(ll_handle,emp_pic)
     FileClose(ll_handle)
     dw_print.dataobject = ls_reportfile
     dw_print.settransobject(sqlca)
   else
     Dw_print.settransobject(sqlca)
   End if
   Dw_print.retrieve()
   4、報表格式的保存。通過Cb_savereport按鈕的clicked實(shí)現(xiàn)。
   string ls_filename
   long ll_count
   blob Emp_id_pic
   ls_filename = "temp70201.psr"
   //保存報表格式到硬盤臨時文件
   dw_print.saveas(ls_filename,PSReport! ,false)
   sqlca.autocommit = true
   select count(*) into :ll_count from dyn_report where dwobject =:is_dwobject;
   if ll_count =0 then 
     insert into dyn_report(dwobject,rptitle) 
     values(:is_dwobject,:ls_filename,:ls_path);
   end if
   //從硬盤臨時文件讀取數(shù)據(jù)保存到數(shù)據(jù)庫表中
   emp_id_pic = of_readbmpfile(ls_filename)//該函數(shù)將二進(jìn)制文件內(nèi)容讀到大文本對象中
   //更新數(shù)據(jù)庫
   UPDATEBLOB dyn_report SET memo = :Emp_id_pic where dwobject = :is_dwobject;
   sqlca.autocommit = false


  5、動態(tài)報表的實(shí)現(xiàn)。通過數(shù)據(jù)窗口dw_print的clicked事件捕獲數(shù)據(jù)窗口中對象,并將對象名存放在實(shí)現(xiàn)變量is_dwobject中,為下一步修改報表作準(zhǔn)備。

   string ls_type,ls_dwoname
   //得到對象類型和名稱
   ls_type = trim(upper(dwo.type))
   ls_dwoname = trim(dwo.name)
   is_dwtype = ls_type
   choose case ls_type
     case "TEXT","CommandButton","GROUPBOX"
       is_dwobject = ls_dwoname
       //設(shè)置為可以拖動和改變大小,其它類同
       this.modify(ls_dwoname+".Resizeable=’"+"1’")
       this.modify(ls_dwoname+".moveable="+"1")
     case "LINE" //直線對象不能通過設(shè)置Resizeable和moveable屬性進(jìn)行調(diào)整,必須通過其它路徑
       is_dwobject = ls_dwoname
     case "RECTANGLE","ELLIPSE","GRAPH","BITMAP"
       is_dwobject = ls_dwoname
       this.modify(ls_dwoname+".Resizeable=’"+"1’")
       this.modify(ls_dwoname+".moveable=’"+"1’")
     case "COLUMN","COMPUTE"
       is_dwobject = ls_dwoname
       this.modify(ls_dwoname+".Resizeable=’"+"1’")
       this.modify(ls_dwoname+".moveable=’"+"1’")
   end choose


   然后再通過modify()函數(shù)可以實(shí)現(xiàn)基本的動態(tài)報表操作,這一類的文章較多,PB中也有大量的例子可直接使用,在此這不再累述。

   6、在cb_exit按鈕的clicked()事件中加入:close(parent)。

   7、在應(yīng)用的open事件中加入: open(w_temp)。然后保存并運(yùn)行,大功告成啦!

   8、本程序在PB7.0加Oracle8.05下調(diào)試通過。

全新的路由器不僅讓你更穩(wěn)定快速地連接無線網(wǎng)絡(luò),更可以讓家中的智能設(shè)備連接在一起。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产自产在线视频| 99久久国产宗和精品1上映| 中文字幕无码精品亚洲35| 日本熟妇人妻xxxx| 欧美精品久久久久久久久25p| 天天操天天干天天做| av一区二区三区免费观看| 午夜久久久精品| 北条麻妃69av| 妺妺窝人体色777777| ijzzijzzij亚洲大全| av片中文字幕| 国产日韩欧美精品在线观看| 男人的天堂最新网址| 麻豆传传媒久久久爱| 国产二级片在线观看| 六月婷婷激情综合| 欧美少妇在线观看| 亚洲视频在线不卡| 日本三级福利片| 国产精品无码乱伦| 亚洲va综合va国产va中文| 四虎永久在线精品无码视频| 成人在线免费观看av| 99精品在线免费视频| 欧美在线观看成人| 免费激情视频在线观看| 日本一极黄色片| av网址在线观看免费| 日韩久久一级片| 能看的毛片网站| 亚洲第一狼人区| 欧美日韩中文不卡| 国产精品夜夜夜爽张柏芝| 亚洲自拍偷拍一区二区三区| 懂色av粉嫩av蜜臀av| 青草网在线观看| 97成人在线观看视频| 成人观看免费完整观看| 日韩欧美精品在线观看视频| 999精品网站| 亚洲一区二区福利视频| 久久精品国产精品亚洲精品色| 国产精品h视频| 亚洲av综合色区| 亚洲熟妇av一区二区三区漫画| 欧洲熟妇精品视频| 亚洲精品久久久久久宅男| 色偷偷中文字幕| www.射射射| 人妻有码中文字幕| 交换做爰国语对白| 缅甸午夜性猛交xxxx| 色悠悠久久综合网| 国产大尺度在线观看| 日韩视频第二页| 韩国黄色一级大片| 精品人妻一区二区三区四区在线| 成人高清在线观看视频| 免费不卡av在线| 91插插插影院| 免费黄色日本网站| 日本黄色播放器| 夫妻免费无码v看片| www.国产福利| 黄色片视频在线播放| 国产又粗又长又爽视频| 91最新在线观看| 国产freexxxx性播放麻豆| 亚洲老女人av| 99热在线这里只有精品| 国产树林野战在线播放| 91日韩视频在线观看| 奇米精品一区二区三区| 亚洲综合伊人久久| the porn av| 国产免费成人在线| 17c丨国产丨精品视频| 91亚洲一区二区| 日韩av.com| 无码少妇一区二区三区芒果| 国内少妇毛片视频| 久久免费一级片| 91视频福利网| 午夜一区二区视频| 一区二区三区 欧美| 国产自偷自偷免费一区| aa免费在线观看| 亚洲色欲综合一区二区三区| 久久久久久久久久网| 国产欧美123| 国产精品国产三级国产专区51| 男女啪啪的视频| 亚洲美女自拍偷拍| 亚洲怡红院在线| 日日干日日操日日射| 99视频在线免费| 污污的网站18| 亚洲午夜精品一区| 国产无色aaa| 国产精品久久成人免费观看| 深夜做爰性大片蜜桃| av动漫在线免费观看| 国产一区二区三区小说| 免费拍拍拍网站| av观看免费在线| 91视频免费版污| www.99av.com| 一级黄色片在线免费观看| 国产一区一区三区| 999一区二区三区| 日韩免费一级视频| 手机在线免费观看毛片| 日本成人xxx| 欧美 日韩 国产 高清| 超碰影院在线观看| 免费黄频在线观看| 国产精品无码免费专区午夜| 精品国产一区三区| 手机版av在线| 成人国产在线看| 黑人糟蹋人妻hd中文字幕| 天天干天天操天天玩| 好色先生视频污| 精品www久久久久奶水| 中文字幕第三区| 337p粉嫩大胆噜噜噜鲁| 福利视频999| 黄色免费视频大全| 亚洲第一天堂久久| 成人免费在线小视频| 午夜大片在线观看| 大陆极品少妇内射aaaaa| 中文字幕第17页| 俄罗斯av网站| 免费国产成人看片在线| 日韩一级免费在线观看| 伊人再见免费在线观看高清版 | 精品一二三四五区| wwww.国产| 北条麻妃69av| 日本大胆人体视频| 99中文字幕在线| 国产精品无码专区av在线播放 | 午夜啪啪免费视频| 91看片就是不一样| 99在线观看视频免费| 亚洲日本黄色片| 国产又黄又猛又粗又爽的视频| 18岁网站在线观看| 国内av一区二区| 黄色国产小视频| av之家在线观看| 欧美乱大交xxxxx潮喷l头像| 久久久久久久久久毛片| 五月婷婷丁香综合网| 天堂…中文在线最新版在线| av久久久久久| 在线无限看免费粉色视频| 香蕉视频禁止18| 久久久久久三级| 色一情一乱一伦一区二区三区日本 | 国产专区在线视频| 午夜激情影院在线观看| 在线免费观看视频黄| 亚洲熟妇av一区二区三区| av在线com| 欧美精品卡一卡二| 91免费黄视频| 青青草原成人网| 久久久久人妻精品一区三寸| 2018国产在线| a√天堂在线观看| 黄色a级片免费| 日韩av片网站| 中文字幕免费高清在线| www.污污视频| 国产一级片91| 毛片在线视频播放| 青青在线视频免费| 九九九九九九九九| 18视频在线观看娇喘| 三上悠亚免费在线观看| 岛国大片在线播放| 国产青青在线视频| 天堂中文视频在线| 黄色www在线观看| 成年人深夜视频| 女人喷潮完整视频| 天天爽夜夜爽一区二区三区| 国产超碰在线播放| 91精品一区二区三区四区| 久久综合色视频| 性chinese极品按摩| 黄频视频在线观看| 成人一级片网站| 色综合五月婷婷| 无码精品a∨在线观看中文| 国产一二三四在线视频| 日韩中文在线字幕|