|
導讀數據庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。所謂“數據庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應... 數據庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。所謂“數據庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數據集合。 4. 保存報表格式,這可以通過Cb_savereport按鈕的clicked事件實現。 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 //從硬盤臨時文件讀取數據保存到數據庫表中 emp_id_pic = of_readbmpfile(ls_filename) //該函數將二進制文件內容讀到大文本對象中 UPDATEBLOB dyn_report SET memo = :Emp_id_pic where dwobject = :is_dwobject; //更新數據庫 sqlca.autocommit = false 5. 動態報表的實現。通過數據窗口dw_print的clicked事件捕獲數據窗口中的對象,并將對象名存放在實例變量is_dwobject中,為下一步修改報表做準備。 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 //設置為可以拖動和改變大小 this.modify(ls_dwoname+“.Resizeable=‘”+“1’”) this.modify(ls_dwoname+“.moveable=”+“1”) case “LINE” //直線對象不能通過設置Resizeable和moveable屬性進行調整,必須通過其他途徑 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()函數就可以實現基本的動態報表操作,這一類的文章較多,PB中也有大量的例子可直接使用,在此不再贅述。 6. 在cb_exit按鈕的clicked()事件中加入:close(parent)。 7. 在應用的open事件中加入: open(w_temp)。然后保存并運行,全部工作到此結束! 本程序在PB7.0、Oracle 8.05下調試通過。 全新的路由器不僅讓你更穩定快速地連接無線網絡,更可以讓家中的智能設備連接在一起。 |
溫馨提示:喜歡本站的話,請收藏一下本站!