在线看毛片视频-国产免费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>
  • 台湾无码一区二区| 粉嫩av一区二区三区天美传媒| 国产91在线视频观看| 午夜一级免费视频| 欧美性猛交xxx乱久交| 少妇一晚三次一区二区三区| 亚洲小视频在线播放| 午夜探花在线观看| 国产日韩视频在线播放| www亚洲国产| 今天免费高清在线观看国语| 欧美国产日韩在线视频| 天堂中文av在线| 制服丝袜中文字幕第一页| 国产成人在线综合| 97超碰人人爱| 人体内射精一区二区三区| 黄色大片中文字幕| 色综合天天色综合| 中文字幕一区二区三区四区五区人| 毛毛毛毛毛毛毛片123| www.-级毛片线天内射视视| 国产盗摄视频在线观看| 91网站在线观看免费| 北条麻妃在线一区| 国内av一区二区| 欧美精品久久久久久久自慰| 日韩精品 欧美| 精品日韩久久久| 国产精品三级一区二区| 欧美网站免费观看| 欧美xxxxxbbbbb| 成熟丰满熟妇高潮xxxxx视频| 国产一级片黄色| 国产精品波多野结衣| 日本福利视频在线| 深爱五月综合网| 久草精品在线播放| 日本xxxxx18| 国产一区二区在线免费播放| 青青草综合在线| 色片在线免费观看| 国产96在线 | 亚洲| 波多野结衣三级在线| 亚欧在线免费观看| 99999精品视频| 日本中文字幕在线视频观看 | 最新av免费在线观看| 超碰超碰超碰超碰超碰| 亚洲天堂av线| 欧美成人一区二区在线观看| 成人午夜免费剧场| 中文 日韩 欧美| 久久99999| 美女福利视频在线| 国产特级黄色大片| 成年人视频网站免费| 日韩精品aaa| 天天久久综合网| 看看黄色一级片| 国产又大又黄又猛| 一本色道无码道dvd在线观看| 五月丁香综合缴情六月小说| 国产精品视频网站在线观看| 想看黄色一级片| 午夜啪啪免费视频| 一级一片免费播放| 路边理发店露脸熟妇泻火| 天天操精品视频| 色婷婷777777仙踪林| 欧美极品少妇无套实战| 国产女人18毛片| 日韩五码在线观看| 日韩av三级在线| 精品久久久久久中文字幕2017| 俄罗斯av网站| 亚洲一区二区三区四区五区xx| 男女激情无遮挡| 免费看污污网站| 久久久久久综合网| 男女h黄动漫啪啪无遮挡软件| 色姑娘综合天天| 国产视频在线观看网站| 国产日韩av网站| 欧美综合在线观看视频| 成人性生生活性生交12| 亚洲日本黄色片| 久久这里只有精品18| 青青草原av在线播放| 久久综合伊人77777麻豆最新章节| 亚洲欧美日韩一级| 久久香蕉视频网站| 亚洲精品中文字幕无码蜜桃| 九九九在线观看视频| 天天操天天干天天玩| 真实国产乱子伦对白视频| 欧美在线观看成人| 在线播放av中文字幕| 亚洲精品蜜桃久久久久久| 亚洲成人福利在线观看| 国产在线拍揄自揄拍无码| 国自产拍偷拍精品啪啪一区二区| 亚洲精品高清无码视频| 男人草女人视频| 黄在线观看网站| 99久re热视频精品98| 国产极品美女高潮无套久久久| 一区二区三区四区毛片| 欧美aⅴ在线观看| 91大学生片黄在线观看| 97xxxxx| www.国产福利| 免费看的黄色大片| 日韩不卡视频一区二区| 午夜精品久久久内射近拍高清| 亚洲成人动漫在线| 午夜免费看毛片| 黄色免费观看视频网站| 日韩不卡一二区| 在线播放免费视频| 欧美美女性视频| 亚洲xxxx2d动漫1| 国产xxxxx视频| 久久精品视频16| 国产一级大片免费看| 国产成人精品免费看在线播放 | 日日碰狠狠躁久久躁婷婷| 国自产拍偷拍精品啪啪一区二区| 中文字幕超清在线免费观看| 潘金莲激情呻吟欲求不满视频| 日韩 欧美 高清| 成人三级视频在线播放| 国产精品少妇在线视频| 欧美精品自拍视频| 成人黄色av片| 国产日韩av网站| 91专区在线观看| 成人久久久久久久久| 欧美色图另类小说| 青青在线视频观看| 中文字幕欧美人妻精品一区| 无码人妻丰满熟妇区毛片18| 国产素人在线观看| av动漫在线看| 欧美日韩一区二区在线免费观看| aaaaaa亚洲| 日本高清一区二区视频| 永久免费在线看片视频| 日本国产中文字幕| 国产中文字幕免费观看| 一级黄色香蕉视频| 午夜精品久久久久久久99热影院| 日韩成人精品视频在线观看| 久久久九九九热| www.国产亚洲| 97xxxxx| 午夜激情视频网| 霍思燕三级露全乳照| 久久午夜夜伦鲁鲁一区二区| 一级黄色免费在线观看| 少妇av一区二区三区无码| 五月婷婷激情久久| 黄色特一级视频| 狠狠躁狠狠躁视频专区| www.69av| www午夜视频| 91九色丨porny丨国产jk| 国产精品天天av精麻传媒| 亚洲欧美日韩三级| 欧美 亚洲 视频| 欧美婷婷精品激情| 免费在线观看视频a| 一个色综合久久| 日本五级黄色片| 五月婷婷之综合激情| 欧美男女爱爱视频| 经典三级在线视频| 五月天av在线播放| 欧美a v在线播放| 青青青青在线视频| 黄色免费高清视频| 日韩欧美在线免费观看视频| 99视频精品全部免费看| 欧美wwwwwww| 久章草在线视频| 青青草视频在线免费播放| 日韩不卡视频一区二区| 精品国产乱码久久久久久1区二区| 成人在线视频一区二区三区| 在线观看国产一级片| 欧美三级午夜理伦三级| 欧美二区在线视频| 91网站在线观看免费| 好色先生视频污| 99热都是精品| 欧美性猛交内射兽交老熟妇| 欧美日韩在线免费观看视频| 天天插天天操天天射| 亚洲黄色av网址| 在线黄色免费观看|