版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PowerBuilder 概述概述金海華金海華2010年年12月月4日日一、概述概述概述關(guān)于 PowerBuilder PowerBuilder是Sybase公司推出的一個(gè)圖形化的應(yīng)用程序集成開發(fā)環(huán)境,最新版本為12 。雖然現(xiàn)在流行的開發(fā)工具并不是PB,比較其它專門工具而言,并不具有多大優(yōu)勢(shì)。但對(duì)于C/S結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用,PB仍然是好的選擇之一,使用PB可以比較容易地開發(fā)出和數(shù)據(jù)庫打交道的應(yīng)用程序。PowerBuilder運(yùn)行原理開發(fā)支持庫Pblib.dllPbcmp.dllPbudo.dllPbrtc.dll開發(fā)(PBLs)編譯(Pcode,Mcode)應(yīng)用(Application:DLL,
2、Exe,PBD)BugFixing運(yùn)行支持庫PBvm90.dllPBdwe90.dllLibjcc.dllPbo8470.dllPbrtc.dllYouOcx.OCXYouLIb.DLLDBMS發(fā)布(InstallShield)C/S模式圖示DB ServersTCP/IP發(fā)送發(fā)送SQL語句語句到數(shù)據(jù)庫服務(wù)器到數(shù)據(jù)庫服務(wù)器返回返回SQL語句語句查詢結(jié)果到客戶機(jī)查詢結(jié)果到客戶機(jī)WinNT,Linux,UnixMicrosoft SQL ServerORACLESybase,DB2,InformixClientsServersClientsClients1、客戶端運(yùn)行自己的程序,向服務(wù)器發(fā)送SQL
3、請(qǐng)求及取回結(jié)果。2、服務(wù)器偵聽網(wǎng)絡(luò),響應(yīng)請(qǐng)求并返回處理結(jié)果。PowerBuilder開發(fā)界面腳本預(yù)覽菜單工具條對(duì)象屬性面板函數(shù)及事件狀態(tài)條PowerBuilder開發(fā)界面說明:1、PB開發(fā)為標(biāo)準(zhǔn)的MDI方式,即對(duì)應(yīng)不同的開發(fā)對(duì)象,有它不同的菜單及工具條,對(duì)應(yīng)不同的功能;2、可以創(chuàng)建的對(duì)象包括8大類:對(duì)象(窗口、函數(shù)、結(jié)構(gòu)、菜單)數(shù)據(jù)窗對(duì)象(Grid,Free Form,Tabular,Label,N-Up)數(shù)據(jù)庫(Database Profile,Query,Pipeline)工程(Application,Proxy Library,COM CTS,OLE2,Java Proxy) 3、常用工
4、具Library,Editor,Class viewBrowser,DB Profile Editor,Debugger,DW Syntax等二、窗口Window窗口概述1、窗口(Window)是程序和用戶進(jìn)行交互的主要界面,在窗口上可以布置各種不同類型的控件以滿足程序的要求,各控件間相互協(xié)作,完成預(yù)定功能2、一個(gè)窗口可以只被打開一次或者作為一個(gè)實(shí)例變量而被創(chuàng)建(實(shí)例化)然后打開多次。3、任何窗口的最底層基類都是windows,可以逐級(jí)繼承,對(duì)于節(jié)省代碼開支,界面一致性等非常有好處。4、數(shù)據(jù)窗作為標(biāo)準(zhǔn)控件可以直接嵌入到窗口中使用。窗口 - 1.創(chuàng)建有2種方式創(chuàng)建一個(gè)窗口:1.新建: 從菜單中選
5、擇“file-new”,彈出新建向?qū)?,選擇“PB Object-Window”,系統(tǒng)就自動(dòng)創(chuàng)建一個(gè)標(biāo)題為 Untitled 的空窗口。2.繼承:菜單中選擇“Inherit”,彈出可被繼承的祖先清單,選擇一個(gè),系統(tǒng)自動(dòng)從該祖先窗口繼承,新窗口擁有祖先窗口的所有特性及腳本,并可以重載及覆蓋這些屬性或腳本。注意點(diǎn): 基于繼承的窗口,一旦祖先的屬性修改,則該窗口中沒有被重載或覆蓋的部分即自動(dòng)修改,實(shí)際上該窗口分為2部分:祖先和自己。窗口 - 2 窗口的基本屬性窗口的屬性非常多,仔細(xì)理解屬性的具體用途及含義對(duì)用好窗口對(duì)象非常重要。常用屬性:屬性名稱含義標(biāo)題(Title):定義該窗口的標(biāo)題欄;類型(Win
6、dow Type)定義該窗口的類型:Child! 由父窗口打開,并且只能在父窗口范圍內(nèi)存在Main! - 主窗口,常用方式MDI!,MDIhelp! - 多文檔窗口Popup - 彈出式窗口,用來為其它窗口提供支持信息Response! -用于輸入信息,模式窗口菜單(MenuName)對(duì)Main,MDI,mdihelp類型的窗口有效,設(shè)置該窗口的菜單名稱外觀屬性外觀:enabled,visible,titlebar,maxbox,minbox,resizeable,border,backcolor,mdiclientcolor,HscrollBar,VScrollBar等等位置:x,y,wid
7、th,height,pointer菜單: toolbarvisible,toolbaralignment,toolbarx,toolbarY,toolbarWidth,ToolbarHeight運(yùn)行態(tài)屬性(只讀,描述性質(zhì))Control,menuid運(yùn)行態(tài)屬性bringtotop窗口 - 3.窗口支持的控件窗口支持以下常用標(biāo)準(zhǔn)控件1CommandButton命令按鈕(cb_ok,cb_cancel)18HScrollBar水平滾動(dòng)條2PictureButton圖形按鈕(pb_ok,pb_cancel)19VScrollBar垂直滾動(dòng)條3CheckBox檢查框(cbx_choice_1)20HT
8、rackBar 水平導(dǎo)軌4RadioButton收音機(jī)按鈕(單選按鈕)(rb_tes)21VTrackBar 垂直導(dǎo)軌5StaticText靜態(tài)文本(st_notice)22HProgressBar 水平進(jìn)度條6StaticHyperLink文本超級(jí)連接(shl_1)23VProgressBar 垂直進(jìn)度條7Picture圖形(p_1)24DropDownListBox下拉列表框(ddlb_8PictureHyperLink圖形超級(jí)連接(phl_1)25DropDownPictureListBox下拉圖形列表框(ddplb_9GroupBox分組框26ListBox列表框(lb_)10Line
9、線條27PictureListBox圖形列表框11Oval橢圓28ListView列表視圖12Rectangle矩形29TreeView樹13RoundRectangle圓角矩形30Tab標(biāo)簽14SingleLineEdit單行編輯(sle_test)31DataWindow數(shù)據(jù)窗15EditMask掩碼編輯(em_year)32Graph圖表16MultiLineEdit多行編輯33OLEOLE2對(duì)象17RichTextEdit富文本編輯34UserObject用戶自定義控件(對(duì)象)窗口 - 4.窗口常用事件事件是描述一個(gè)窗口或窗口中控件的行為的語法,只有在滿足特定的條件時(shí)才會(huì)觸發(fā)該事件,一
10、般一個(gè)事件反映了某種條件下的某一動(dòng)作。也可以手工方式使系統(tǒng)滿足這些條件從而觸發(fā)這些事件。事件名稱事件含義及用途Open當(dāng)該窗口被用open()函數(shù)打開時(shí)觸發(fā)該事件,一般作為該窗口進(jìn)行初始化處理的入口Close當(dāng)該窗口被關(guān)閉后消失前觸發(fā),可能被close()函數(shù)關(guān)閉,也可能是系統(tǒng)級(jí)關(guān)閉操作,一般用于收尾處理Resize當(dāng)該窗口的大小調(diào)整時(shí)觸發(fā),一般用于調(diào)整界面控件的相對(duì)位置CloseQuery后于Close事件觸發(fā),當(dāng)該窗口準(zhǔn)備關(guān)閉前觸發(fā),可以替代close事件,并可以決定是否可以關(guān)閉Timer由窗口函數(shù)Timer()觸發(fā),到達(dá)指定秒數(shù)后觸發(fā)該事件,一般用于控制。鼠標(biāo)事件Clicked,doub
11、leclicked,mousedown,mousemove,mouseup,rbuttondown拖放事件Dragdrop,dragwithin,dragenter,dragleave鍵盤Key,systemkey其他DDE控制,Other,show,hide, ToolbarMoved,Help窗口 - 5.窗口常用函數(shù) 窗口函數(shù)一般用來控制窗口的行為,取得窗口信息,控制窗口的行為,觸發(fā)特定事件等等函數(shù)名稱函數(shù)含義及用途Open(),openSheet()系統(tǒng)級(jí)函數(shù),用于打開某特定窗口,變參調(diào)用Close()系統(tǒng)級(jí)函數(shù),用戶關(guān)閉某窗口,變參調(diào)用PostEvent在當(dāng)前腳本執(zhí)行完畢后觸發(fā)某事件
12、(后續(xù)某動(dòng)作),變參TriggerEvent立刻觸發(fā)某事件(嵌入某動(dòng)作),變參Parentwindow()系統(tǒng)級(jí)函數(shù),取該窗口或某對(duì)象的父窗口Timer(seconds)開始計(jì)時(shí),如Timer(5,this)表示本窗口在5秒后觸發(fā)Timer事件,變參Hide(),show()隱藏,顯示,setredraw(false)大小及位置Move(x,y),resize(w,h),workspacewidth(),workspaceheight(),workspacex(),workspacey(),setposition鼠標(biāo)Pointerx(),pointery()其他DDE控制系列函數(shù)窗口 - 6.
13、窗口控件操作(一)在界面設(shè)計(jì)中,往往用到非常多的控件放在同一窗口中,一般會(huì)有下列要求:1:對(duì)齊操作包括左、上、下、右,豎向、橫向?qū)R等操作。以第一個(gè)選擇的對(duì)象為基準(zhǔn)2:大小操作包括寬度,高度:3:相對(duì)位置操作水平間距,豎向間距(三個(gè)以上對(duì)象選中時(shí)才有效)4:制表站(tab order)定義當(dāng)運(yùn)行時(shí),用戶按tab在各個(gè)控件上的移動(dòng)順序,一般以10進(jìn)位如 10,20,301405:公用屬性及特有屬性指定字體、文本對(duì)齊方式、前景色、背景色、邊框等:文本色(前景色)背景色邊框窗口 - 7.窗口控件操作(二)其他按鈕功能:保存剪切對(duì)象或文本復(fù)制對(duì)象或文本粘貼對(duì)象或文本撤銷或重做上次的任意操作打開當(dāng)前選中
14、對(duì)象的腳本屬性面板切換到當(dāng)前選中對(duì)象腳本工具按鈕全選選中行及光標(biāo)所在行標(biāo)記為注釋選中行及光標(biāo)所在行標(biāo)記為非注釋查找和替換編譯當(dāng)前腳本粘貼各種語法或原型定義置于最前端置于最后端窗口 - 8.窗口控件的公用屬性每個(gè)控件都有的屬性共7個(gè),這實(shí)際上是可視控件(Control)的最基本屬性Name: 在窗口中唯一標(biāo)記該控件的有效字符串Enabled :使某控件失效或使能,失效后用戶無法操作,但是可以手工觸發(fā)它的事件Visible:可視與否Foreground Color:前景色(按鈕無效)BackgroundColor:背景色Tag:與系統(tǒng)無任何關(guān)系的一個(gè)公用屬性,可以做任何事情Border:邊框類型,
15、枚舉值,有些控件指定了也無效是無效的。位置:在父對(duì)象中的定位(如x,y,width,height,x1,y1,x2,y2等,但屬性名稱不一致)關(guān)于顏色的算法:長(zhǎng)整型(long) ,rgb顏色系統(tǒng)顏色值 = rgb(red,blue,green) = green * 65536 + blue * 256 + red如 紅色( 255) = rgb(255,0,0) = 0 * 65536 + 0 * 256 + 255可以從下拉工具條中直接選取常用顏色及系統(tǒng)顏色窗口 - 9.窗口控件簡(jiǎn)介 命令按鈕類型:Commandbuttom,PictureCommandButton 最常用屬性:defaul
16、t : True時(shí),當(dāng)在窗口中的任意控件上按下回車鍵,就會(huì)觸發(fā)它的clicked事件,同時(shí)邊框加深;cancel : True時(shí),當(dāng)在窗口中的任意控件上按下Escape,就會(huì)觸發(fā)它的clicked事件;text :現(xiàn)實(shí)的文本,如 “確定(&O)” 就是這樣的:PictureCommandButton中PictureName,DisabledPictureName指定有效,失效時(shí)的圖片,但因?yàn)椴恢С滞该?,故用的比較少。Htextalign,VtextAlign:制定水平,垂直方向的文本對(duì)齊方式事件:clicked:最主要事件,在用戶按下并抬起鼠標(biāo)后觸發(fā)。其他事件: rbuttondown
17、,dragdrop,dragenter,dragwithin,dragleave,getfocus,lostfocus等等極少用,一般都在clicked事件中寫腳本。函數(shù):setfocus() :取得焦點(diǎn),一般在別的控件中調(diào)用,如 cb_xxx.post setfocus()classname():取得名稱,如 cb_test.classname() 就返回 “cb_test”hide(),show(),resize(),move()等較少用到。用途:到處都用,但一個(gè)界面上按鈕不易太多,而且布置要合理,用圖片按鈕給用戶比較直接的感覺,但是顏色就固定了。窗口 - 10.窗口控件簡(jiǎn)介 靜態(tài)文本類型
18、:StaticText ,經(jīng)常用,一般用做顯示信息屬性:text:顯示的文本backcolor,textcolor,bordercolor:顏色屬性(底色,前景色,邊框色)事件:clicked,doubleclicked,極少對(duì)它寫腳本函數(shù):同 commandbutton,很少用窗口 - 11.窗口控件簡(jiǎn)介 可編輯類主要有:SingleLineEdit,MultiLineEdit,EditMask,RichTextEdit屬性:SingleLineEdittext:可以修改,其他和statictext一致;MultiLineEdit全部SingleLineEdit屬性和事件,可以折行EditM
19、ask和SingleLineEdit一致,可以制定輸入的格式(mask屬性),如日期型,則mask輸入 yyyy-mm-ddRichTextEdit:類word文檔處理控件,一般較少用到事件:modified:最常用事件,指明做了修改后執(zhí)行什么操作。getfocus:取得焦點(diǎn)后執(zhí)行的操作,一般用來選擇文本,如: this.selecttext(1,len(this.text)其他事件很少用到函數(shù):copy(),paste(),selecttext(),cut(),undo()等等,都是用于文本操作的。其他文本編輯控件都有這些函數(shù),如sle_test.copy()表明將sle_test中選中的文
20、本復(fù)制到剪貼板。用途:除了數(shù)據(jù)窗以外的所有用戶輸入的口子都在這兒,因此用途非常廣,結(jié)合數(shù)據(jù)窗,就可以完成用戶輸入部分的操作了。類型:HScrollBar,Vscrollbar:滾動(dòng)條 HTrackBar,VTrackBar:導(dǎo)軌 HProgressBar,VProgressBar:進(jìn)度條屬性:minposition,maxposition,position:指定最小,最大值,當(dāng)前值 如 hpb_1.position=87 /表明將進(jìn)度條的位置移動(dòng)到87處(不一定代表是 87%, 因?yàn)楹蚼axposition有關(guān))事件:TrackBar,ScrollBar moved:當(dāng)移動(dòng)按鈕或?qū)к墪r(shí)觸發(fā)函數(shù)
21、:TrackBar,ScrollBar setposition(),setrange(), OffsetPos():設(shè)置位置,范圍,相對(duì)移動(dòng)用途:這幾個(gè)控件,一般Hprogressbar較常用,經(jīng)常使用在需要進(jìn)行常時(shí)間運(yùn)行的程序中,顯示當(dāng)前運(yùn)行的總體進(jìn)度,以免用戶以為死機(jī)而reset.(PB是單線程內(nèi)核,即使可以通過yield()函數(shù)來進(jìn)行后臺(tái)處理,但一旦執(zhí)行某運(yùn)算,一般是很難終止的,而且此時(shí)cpu的占用會(huì)非常高,以至用戶以為機(jī)器死了)窗口 - 12.窗口控件簡(jiǎn)介 顯示及控制類窗口 - 13.窗口控件簡(jiǎn)介 下拉列表框類型:DropDownListBox(ddlb),DropDownPictur
22、eListBox(ddplb)屬性:兩者基本相似,ddplb多了一個(gè)圖形顯示及圖形屬性,圖形處理函數(shù)而已,在實(shí)際使用中,基本上沒有多少區(qū)別。Item:指定下拉列表中的項(xiàng)目,一般不能太多,否則就毫無意義。PictureName:按順序指定圖片名稱,然后和item中的pictureindex對(duì)應(yīng)Sorted:是否按item中的文本排序ShowList : =true,則永遠(yuǎn)顯示下拉列表。一般很少用,本來就是想省地方,現(xiàn)在再占用一塊地方,還不如用PictureListBox來的好。事件:selectionchanged當(dāng)選中的對(duì)象改變時(shí)觸發(fā),一般都在這兒寫腳本??梢酝ㄟ^事件的參數(shù)index來得到當(dāng)前
23、選中的是哪一項(xiàng)。函數(shù):DirList():可以直接將某目錄下的文件名全部顯示出來,配合Treeview,可以自己做一個(gè)目錄及文件樹DirSelect():取出由dirlist()生成的列表中當(dāng)前選中的文件名或目錄名;Additem(),Insertitem(),DeleteItem()增加,插入,刪除 itemSelectItem():手工指定選中的itemTotalItems():一共有多少個(gè)itemReset():清除所有itemFindItem():查找符合條件的item用途:用在唯一需要確定某類型的時(shí)候,選項(xiàng)不要超過20個(gè),否則很容易找不到,而且,20個(gè)圖片堆在一起,很難確定那個(gè)是你真
24、正需要選擇的。窗口 - 14.窗口控件簡(jiǎn)介 列表類類型:ListBox,PictureListBox屬性、事件、函數(shù):與下拉列表類基本類似,甚至函數(shù)、事件、都差不多,不過列表類支持多選因此也就多了有關(guān)于多選的其他函數(shù),常用的有3個(gè):state(),判斷某個(gè)item是否為選中,setstate():設(shè)置某項(xiàng)的選中狀態(tài)TotalSelected():一共選中了多少個(gè)用途:一般作為需要用戶可以有多個(gè)選擇余地的地方,但是item不能太多,5個(gè)里面挑一個(gè)好找,50個(gè)里面的話,只有眼花 _窗口 - 14.窗口控件簡(jiǎn)介 視圖類類型:ListView,TreeView這是兩個(gè)僅次于datawindow的復(fù)雜程
25、度和好用程度的兩個(gè)控件,由于有比較豐富的屬性和函數(shù)可調(diào)用,因此可以做出很多效果。屬性:ListView : LargetPicture屬性主要是用來顯示為 LargeIcon!類型而設(shè)的。其他屬性同PictureListBox但是可以指定多個(gè)列,而不是單個(gè)item。 TreeView一個(gè)item可以有3個(gè)圖片:PictureIndex,selectedPictureIndex,StatePictureIndex每個(gè)Item不是單一的文本,而是特別的TreeViewItem,有自己的子屬性如 data,label,pictureindex,selectedpictureindex,level等等
26、事件: SelectionChanged:選中項(xiàng)改變 RbuttonDown:鼠標(biāo)右鍵,一般用來做彈出菜單:menu_xxx.popup(xpos,ypos)函數(shù):圖片類:addpicture(),deletepicture():主要用于動(dòng)態(tài)形成視圖 ListView:add,insert,delete等等,如 TreeView:AddStatePicture(),DeleteStatePicture():處理狀態(tài)圖片AddItem(),DeleteImte(),SetItem:增加,刪除,修改某節(jié)點(diǎn)(Item)InsertItem():指定位置插入某ItemInsertItemLast():
27、在某節(jié)點(diǎn)下級(jí)最后增加下層ItemInsertItemFirst():在某節(jié)點(diǎn)下級(jí)最前插入下層ItemInsertItemSort():在某節(jié)點(diǎn)下級(jí)中按排序插入下層 ItemFindItem():相對(duì)查找,如同層、上層、下層Expanditem(),CollapseItem():展開、折疊指定節(jié)點(diǎn)SelectItem(),SetFirstVisible()選中某節(jié)點(diǎn),使某節(jié)點(diǎn)第一個(gè)可見應(yīng)用:非常廣泛窗口 - 15.窗口控件簡(jiǎn)介 其他其它控件:圖形控件,圖表控件:Line,Oval,Rectangle,RoundRectangle,他們總是處于最底層而不可能覆蓋在其他控件的上方,沒有事件,一般僅做
28、裝飾用。運(yùn)行時(shí)修改它們的屬性就可以實(shí)現(xiàn)各種效果。圖表控件:Graph用來表示系列數(shù)據(jù)。一個(gè)圖表控件可以有一個(gè)或多個(gè)數(shù)據(jù)系列。函數(shù):AddCategory,將一個(gè)Category添加到控件中。AddSeries,在一個(gè)已經(jīng)存在的Category中添加一個(gè)數(shù)據(jù)系列并返回一個(gè)值。AddData和InsertData,利用AddSeries的返回值在一個(gè)已經(jīng)存在的數(shù)據(jù)系列中添加一個(gè)數(shù)據(jù)項(xiàng)。另外用戶還可以直接在數(shù)據(jù)窗口中利用Graph風(fēng)格來顯示圖形化的數(shù)據(jù)。菜單 -1菜單:Menu 應(yīng)用程序中一般都有菜單,原因很簡(jiǎn)單。因?yàn)槿绻宽?xiàng)命令都有按鈕完成,就會(huì)因?yàn)榘粹o過多而使得用戶在使用起來找不到頭緒。而下拉式
29、菜單不但具有占用空間小的優(yōu)點(diǎn),而且層次分明,每項(xiàng)功能都有相應(yīng)的文字提示。所以對(duì)于一個(gè)復(fù)雜的應(yīng)用程序來說,菜單絕對(duì)是必不可少的。PowerBuilder提供了一個(gè)菜單畫板。用戶可在菜單畫板中定義自己需要的菜單項(xiàng)和每個(gè)菜單項(xiàng)相應(yīng)的腳本。創(chuàng)建:文件-新建-對(duì)象-菜單即可進(jìn)入菜單畫板,或文件-繼承,選擇祖先菜單,然后也進(jìn)入菜單畫板。菜單 2屬性:每個(gè)菜單有若干級(jí)聯(lián)的菜單項(xiàng)構(gòu)成,每項(xiàng)成為一個(gè) menu item,每個(gè)item都具有菜單的所有屬性,包括:普通屬性:name:名稱,如果從祖先繼承,則不能修改text:菜單文字,如“文件(&F)”Microhelp:顯示在MDI Help 框架窗口的狀
30、態(tài)欄中的文字Visible,Enable:可見,使能shortcut:快捷鍵,如 CTRL + S,有下級(jí)菜單的菜單沒有快捷鍵工具條屬性:ToolbarItemText:工具條上的文字;ToolbarItemName:工具條圖片;ToolbarItemDownName:工具條下壓圖片;ToolbarItemSpace:工具條前面的空格;ToolbarItemOrder:工具條順序;ToolbarItemIndex:工具條所在的Dock順序窗口 小結(jié)1 窗口是程序的核心界面,應(yīng)用通過各個(gè)窗口,利用窗口中的各種控件和用戶交互,完成數(shù)據(jù)的處理工作;2 一般應(yīng)用都以MDI Frame作為框架程序,3
31、Sheet菜單從Frame菜單繼承或沒有菜單,保證框架界面的統(tǒng)一和完整;4 界面設(shè)計(jì)應(yīng)遵循一定的原則,不是想怎么做就怎么做,必須考慮協(xié)同開發(fā)問題,用以保證整體性和一致性。5 腳本的編寫、函數(shù)、事件的命名都必須考慮規(guī)范性的問題,從一開始養(yǎng)成良好的命名規(guī)范及編寫習(xí)慣,對(duì)己對(duì)人都極有好處。三、數(shù)據(jù)窗口DatawindowDatawindow - 1.基礎(chǔ).1 數(shù)據(jù)窗口是用于查詢、顯示和維護(hù)來自關(guān)系數(shù)據(jù)庫或其他數(shù)據(jù)源(如Excel文件或其他文件)數(shù)據(jù)的對(duì)象。在數(shù)據(jù)窗口中可以定義數(shù)據(jù)的顯示格式、顯示風(fēng)格和其他數(shù)據(jù)屬性,使數(shù)據(jù)對(duì)用戶更加直觀和更有意義。 數(shù)據(jù)窗口最初使用在PB的C/S結(jié)構(gòu)中,為這種模式提供
32、了強(qiáng)有力的數(shù)據(jù)查詢和數(shù)據(jù)維護(hù)功能。隨著PB及其相關(guān)技術(shù)和產(chǎn)品的發(fā)展,PB已經(jīng)不是單一的C/S應(yīng)用開發(fā)工具,已經(jīng)可以適應(yīng)Web開發(fā)等各種需要。Datawindow - 1.基礎(chǔ).2nPowerBuilder數(shù)據(jù)窗口,作為在應(yīng)用程序中的一個(gè)控件;nHTML數(shù)據(jù)窗口,用于web應(yīng)用的瘦客戶端數(shù)據(jù)窗口,提供了大部分的PB數(shù)據(jù)窗的數(shù)據(jù)維護(hù)和編程等功能;n數(shù)據(jù)窗口的ActiveX Web控件,在Powersite內(nèi)部建立Web頁面時(shí)使用的ActiveX控件;nJava版本的數(shù)據(jù)窗口:在PowerJ中建立Java應(yīng)用使用的JavaBeans組件;nDesign-time控件,Powersite使用;n數(shù)據(jù)窗
33、口插件:在瀏覽器中顯示PowerSoft PSR報(bào)表。Datawindow - 2.顯示風(fēng)格和數(shù)據(jù)源顯示風(fēng)格(Style)用于定義數(shù)據(jù)窗口的顯示風(fēng)格和外部特征。Tabular(列表):記錄橫置于頁面,標(biāo)題在所有列的頂端,可以多行數(shù)據(jù);Freeform(自由格式):每列左側(cè)有一個(gè)標(biāo)簽,一屏只顯示一條記錄;Grid(網(wǎng)格):如Excel的sheet格式;Label(標(biāo)簽):每頁有幾個(gè)標(biāo)簽,每個(gè)標(biāo)簽一行;N-UP(分欄):并列顯示;Group(分組):在表頭下按列分組的格式;Composite(組合):嵌套格式Graph(圖表):數(shù)據(jù)的圖形顯示;Crosstab(交叉):行列格式的數(shù)據(jù)表示,列可動(dòng)態(tài)
34、計(jì)算;RichText:多信息文本,文本段落中可以嵌入列;Ole:連接或嵌入到數(shù)據(jù)窗口的OLE對(duì)象于獲取的數(shù)據(jù)關(guān)聯(lián)。數(shù)據(jù)源(Data Source)定義數(shù)據(jù)窗口中數(shù)據(jù)的來源:Quick Select:來源于sql數(shù)據(jù)庫的多表;SQL Select:定義完整的sql語法;Query:通過查詢面板定義的查詢對(duì)象作為數(shù)據(jù)源;Stored procedure:以存儲(chǔ)過程作為數(shù)據(jù)源;External:通過文件輸入或程序代碼生成的數(shù)據(jù)。Datawindow - 3.如何使用數(shù)據(jù)窗.1使用數(shù)據(jù)窗主要包括以下兩個(gè)步驟:一、在datawindow painter或datawindow Builder中創(chuàng)建或編輯
35、一個(gè)數(shù)據(jù)窗口對(duì)象;二、在開發(fā)環(huán)境中,將一個(gè)數(shù)據(jù)窗口控件或組件放在窗口或web頁面中,并把數(shù)據(jù)窗口控件和數(shù)據(jù)窗口對(duì)象關(guān)聯(lián)起來(指定數(shù)據(jù)窗的dataobject屬性) 通過數(shù)據(jù)窗口控件,應(yīng)用程序與在數(shù)據(jù)窗口畫板中定義的數(shù)據(jù)窗口對(duì)象進(jìn)行通訊,通過編寫程序控制數(shù)據(jù)窗口控件和控件所包含的數(shù)據(jù)窗口對(duì)象。程序代碼可以修改、查詢數(shù)據(jù),改變數(shù)據(jù)的表現(xiàn)形式、處理錯(cuò)誤、共享數(shù)據(jù)窗口控件之間的數(shù)據(jù)等等。Datawindow - 4.如何使用數(shù)據(jù)窗.2關(guān)聯(lián):數(shù)據(jù)窗控件是一個(gè)對(duì)象容器。在窗口或其他對(duì)象中,指定某數(shù)據(jù)窗控件的dataobject到某存在的數(shù)據(jù)窗對(duì)象,就可以在窗口中使用該數(shù)據(jù)窗對(duì)象了。命名:dw前綴,如dw_
36、employee對(duì)象:d_employee引用:w_xxx.dw_employeeDatawindow - 4.數(shù)據(jù)訪問數(shù)據(jù)訪問如果某數(shù)據(jù)窗需要和數(shù)據(jù)庫建立聯(lián)系,則該數(shù)據(jù)窗必須指定到某事務(wù)對(duì)象,因此一般通過以下步驟來訪問:1、創(chuàng)建并連接事務(wù)對(duì)象;2、為數(shù)據(jù)窗設(shè)置事務(wù)對(duì)象;3、獲取、修改數(shù)據(jù),保存到數(shù)據(jù)庫;4、斷開數(shù)據(jù)庫連接其中,1,4一般在Application中的open和close事件中處理。2,3示例:dw_control.settransobject(sqlca);/連接事務(wù)dw_control.retrieve() /檢索數(shù)據(jù) .處理數(shù)據(jù)/更新數(shù)據(jù)if dw_control.upda
37、te(true,false) = 1 thencommit using sqlca; /提交數(shù)據(jù)dw_control.resetupdate()elserollback using sqlca; /回滾最近的提交end if加載外部數(shù)據(jù):importClipboard,importfile,importstring函數(shù)提供了獲取外部數(shù)據(jù)的方式Datawindow - 5.數(shù)據(jù)維護(hù)數(shù)據(jù)維護(hù)一個(gè)數(shù)據(jù)窗有三個(gè)緩沖區(qū)用來存放用戶的數(shù)據(jù):主緩沖區(qū)(Primary!):保存未被修改或刪除或過濾出的數(shù)據(jù);過濾緩沖區(qū)(Filted!):被過濾出的數(shù)據(jù);刪除緩沖區(qū)(Deleted!):被用戶刪除的數(shù)據(jù)PB通過這
38、三個(gè)緩沖區(qū)保留用戶所有對(duì)檢索出來的數(shù)據(jù)的操作,然后統(tǒng)一處理為與數(shù)據(jù)庫打交道的sql語法,如insert,delete,update,實(shí)際上就是完成最終的這三種操作。數(shù)據(jù)存取提?。篏etItemDate,GetitemDateTime,GetItemDecimal,GetItemNumber,GetItemString,GetItemTime,GetText寫入:SetItemdw_control.getitemString(20,emp_name)即得到Primary!緩沖區(qū)中第20行的emp_name列的值。setitem(20,emp_name,劉建剛)即設(shè)置Primary!緩沖區(qū)中第20
39、行的emp_name為指定值。也可以用數(shù)據(jù)窗控件的對(duì)象屬性來存取數(shù)據(jù),如上述語法可以對(duì)應(yīng)為:dw_control.object.emp_name20dw_control.object.emp_name20 = 劉建剛其他函數(shù)常用:Accepttext,DeleteRow,Filter,Getrow,InsertRow,Reset,RetrieveRowsCopy,RowsMove,RowsDiscard,RowCount,ModifiedCount,DeletedCount,FiltedCountScrollToRow,ScrollPriorPage,ScrollNextPage,Scroll
40、FirstPage,ScrollLastPageSelectRow,GetItemStatus,SetItemStatus ,SetFilter,SetSort,FindShareData,ShareDataOff,SaveAs,SaveAsAsciiUpdate,ResetUpdateDatawindow - 6.對(duì)象屬性數(shù)據(jù)窗口對(duì)象屬性主要用來存儲(chǔ)控制數(shù)據(jù)窗口行為的有關(guān)信息,這些信息不是數(shù)據(jù)窗口控件的屬性,而是在數(shù)據(jù)窗口控件(容器)中存在的數(shù)據(jù)窗口對(duì)象的屬性。利用Describe和Modify函數(shù)可以用來提取和修改數(shù)據(jù)窗口對(duì)象屬性。如:dw_control.describe(emp_nam
41、e.border)即取得emp_name的邊框?qū)傩曰?dw_control.object.emp_name.border 取出,返回:any類型dw_control.modify(emp_name.border=“2”)即將該邊框設(shè)為0類型(無邊框)PowerBuilder的數(shù)據(jù)窗對(duì)象提供了非常多,相當(dāng)全面的屬性描述,這些對(duì)象的有些屬性可以修改,有些是只讀的,如某數(shù)據(jù)列的編輯格式,一般制作完成后,在數(shù)據(jù)窗口控件中就不能再修改而只能取出他的具體編輯方式。理解這些屬性并充分運(yùn)用好這些屬性,可以極大地?cái)U(kuò)展編程的靈活性和可擴(kuò)展性,這也是數(shù)據(jù)窗對(duì)象學(xué)習(xí)的難點(diǎn),一般難以在短時(shí)間內(nèi)掌握,需要不斷的磨練。Da
42、tawindow - 7.數(shù)據(jù)窗中的錯(cuò)誤二種類型(控件中存在)1、DBError事件,在數(shù)據(jù)窗控件retrieve,update時(shí)出錯(cuò)時(shí)觸發(fā),描述該數(shù)據(jù)窗對(duì)象連接的事務(wù)返回的具體信息,如update時(shí)報(bào)告一致性錯(cuò)誤,列錯(cuò)誤等等,連接錯(cuò)誤,共享錯(cuò)誤等等。2、ItemError事件:當(dāng)某列編輯不符合檢驗(yàn)規(guī)則(validation)時(shí)觸發(fā)該事件四、編程PowerScriptPowerScript 編程 任何程序的編制歸根結(jié)底都需要由代碼完成,雖然可視化編程為我們提供了極大的方便。但是如果沒有完善的代碼,程序就不可能有完善的功能。PowerScript是PowerBuilder的編程語言。我們?cè)趯W(xué)習(xí)時(shí)
43、可能已經(jīng)發(fā)現(xiàn),PowerScript語言與傳統(tǒng)的Basic語言有很多相似之處。PowerScript是一種自由格式的語言,在編寫程序代碼時(shí),編譯器忽略它的空格、縮進(jìn)、空行等,在這方面它又與C語言有幾分相近。在本章中,我們將介紹PowerScrpit的數(shù)據(jù)類型,變量及作用范圍,程序結(jié)構(gòu),以及一些常用函數(shù)和語句,尤其是一些和數(shù)據(jù)庫有關(guān)的操作,將是本章內(nèi)容的重點(diǎn)。PowerScript -變量的類型和作用域 變量是指在程序運(yùn)行過程中可以改變的量,變量在程序運(yùn)行的過程中被賦值,在執(zhí)行各種操作的時(shí)候,變量的值被不斷傳遞,以實(shí)現(xiàn)程序員設(shè)定的各種操作??梢哉f,沒有變量就沒有程序可言,而靈活使用各種不同的變量
44、將使程序設(shè)計(jì)更為簡(jiǎn)潔、高效、安全,條理性也會(huì)更強(qiáng)。在變量聲明時(shí)只需注意四點(diǎn),一是必須以字母開頭;二是標(biāo)識(shí)符不能使用保留字;三是標(biāo)識(shí)符長(zhǎng)度必須小于40;各字符之間不允許有空格。另外還要注意連字符,因?yàn)檫B字符容易和減號(hào)混淆。 在Power-Builder中,所有變量都必須事先聲明才能使用,而且類型固定,一旦聲明之后就不能變化。變量的作用域是指某一變量的使用范圍。早期的BASIC語言中,所有的變量都是全局變量,這樣做有很大的危害,主要是因?yàn)檫^多的全局變量會(huì)引起程序的崩潰,同時(shí)也會(huì)限制為函數(shù)取名的個(gè)數(shù)。在PowerBuilder中,程序的變量分為四個(gè)層次,局部變量、實(shí)例變量、共享變量和全局變量,用戶可
45、以充分利用局部變量和實(shí)例變量以使程序變的簡(jiǎn)潔和高效類型前綴說明示例局部變量Locall僅在某腳本范圍內(nèi)有效li_index實(shí)例變量Instancei依賴于某對(duì)象而存在,在一個(gè)對(duì)象范圍內(nèi),并可以定義此變量對(duì)外部對(duì)象而言的存取權(quán)限,如:限定前綴Private和Protected,默認(rèn)為Public, 可以再細(xì)化為 PrivateWrite、PrivateReadProtectedWrite ,ProtectedReadPUBLIC:is_user_namePRIVATE:is_my_name共享變量Shareds共享變量與實(shí)例變量相似,但有一點(diǎn)區(qū)別,那就是共享變量的值不因?qū)ο蟮年P(guān)閉而改變。聲明的方
46、法是Declare|Shared Variables。ss_window_type全局變量Globalg用戶可以在任何地方訪問它gu_ext_functionPowerScript 數(shù)組及使用 數(shù)組是任何一種程序化語言都必須有的一種數(shù)據(jù)結(jié)構(gòu),與集合和枚舉類型的數(shù)據(jù)結(jié)構(gòu)不同,它是一系列有序數(shù)據(jù)的集合。數(shù)組中的每一個(gè)元素都屬于相同的數(shù)據(jù)類型,并且每一個(gè)元素都有相同數(shù)組名和不同的數(shù)組下標(biāo)。數(shù)組的類型有兩種:一種是一維數(shù)組,另一種是多維數(shù)組。多維數(shù)組必須有一個(gè)固定的大小,而一維數(shù)組的下標(biāo)可以是固定的,也可以是可變的。用戶在聲明一個(gè)數(shù)組時(shí)首先必須聲明的是一個(gè)數(shù)組的類型,然后是數(shù)組名,數(shù)組下標(biāo)。 一維數(shù)組
47、定義: string ls_my_array_1 /不定長(zhǎng)數(shù)組 string ls_my_array_2 10 / 從 ls_my_array1 到 ls_my_array10 共10個(gè)單元 string ls_my_array_3 5 to 24 / 從 ls_my_array5 到 ls_my_array 24 共10個(gè)單元 多維數(shù)組: string ls_my_2d_array1100,200 /定義一個(gè) 100 * 200 的數(shù)組,共20000個(gè)單元 string ls_my_2d_array21-100 , -2 to 97 / 定義一個(gè) 100 * 100 的數(shù)組。 數(shù)組及數(shù)組間的
48、操作: 上界及下界: UpperBound(ls_my_array_1) ,LowerBound(ls_my_array_3) 數(shù)組是否一致 =, 數(shù)組變量類型可以是任意類型,包括窗口,菜單,自定義對(duì)象,控件等等。 PowerScript 結(jié)構(gòu)使用 一個(gè)結(jié)構(gòu)是一個(gè)或幾個(gè)相關(guān)變量的集合,它們有著相同或不同的數(shù)據(jù)類型,但都在同一個(gè)名字下。在有些語言中,例如Pascal和COBOL語言,集合又被叫做記錄。集合允許將一些相關(guān)的數(shù)據(jù)項(xiàng)整合為一個(gè)整體而不是彼此獨(dú)立。比如說,如果將用戶的ID,地址,等級(jí),照片組合為一個(gè)叫做user_struct的結(jié)構(gòu),就可以將這個(gè)變量的集合作為一個(gè)統(tǒng)一的user_struc
49、t結(jié)構(gòu)來使用 結(jié)構(gòu)按存取范圍分為2類:全局結(jié)構(gòu):作為一個(gè)獨(dú)立對(duì)象存放在 PBL 中,可以直接申明并引用。如通過winzard創(chuàng)建一個(gè)Structure對(duì)象,然后在腳本中就可以使用了。譬如已經(jīng)做好了一個(gè)結(jié)構(gòu)叫做 st_user_structure,則程序中應(yīng)當(dāng)如下使用: 一、申明一個(gè)變量(上述四種變量中的一種) 二、指定這個(gè)變量的類型為 st_user_structure 三、引用這個(gè)變量。譬如某事件中:st_user_structure lst_user_structurels_user_structure.user_id = asdfasdfls_user_structure.user_no
50、 = 20對(duì)象結(jié)構(gòu):依賴某對(duì)象而存在,只能在這個(gè)對(duì)象內(nèi)存取,如某窗口內(nèi)定義一個(gè)結(jié)構(gòu)。在View -structure List中可以看到所有在這個(gè)對(duì)象中的結(jié)構(gòu),雙擊該結(jié)構(gòu)可以進(jìn)行詳細(xì)定義。使用方式和全局結(jié)構(gòu)一致對(duì)象內(nèi)部的結(jié)構(gòu)如果申明為Instance變量,則必需加入必需加入PrivatePrivate前綴前綴。PowerScript 常用程序結(jié)構(gòu)IF 判斷: 1if then else.end if 2 if thenelseif thenelseif thenelseend if 3 if then For 循環(huán):For 起點(diǎn) to 終點(diǎn) Step 步長(zhǎng) . Next / 或 End For
51、如:For li_row = 1 to dw_1.rowcount()End forFor li_row = dw_1.rowcount() to 1 step 1dw_1.deleterow(li_Row)End forDo 循環(huán)/ 方式1DO UNTIL conditionstatementblockLOOP/方式2DO WHILE conditionstatementblockLOOP/ 方式3DOstatementblockLOOP UNTIL condition/ 方式4DOstatementblockLOOP WHILE conditionChoose Case CHOOSE CA
52、SE testexpressionCASE expressionlist statementblock CASE expressionlist statementblock . . .CASE expressionlist statementblock CASE ELSE statementblock END CHOOSEGOTOGOTO label.:labelPowerScript 代名詞nThis指代當(dāng)前Script所在的窗口、 用戶對(duì)象、菜單、應(yīng)用程序或控件nParent指代包含當(dāng)前對(duì)象的對(duì)象nSuper指代當(dāng)前類的直系父輩。PowerScript 常用函數(shù)和語句(一) - Messa
53、geboxMessageBox顯示消息提示框,并得到用戶的響應(yīng)原型:MessageBox ( title, text , icon , button , default )中內(nèi)容表示可選參數(shù)Title :標(biāo)題Text : 文本,需要顯示給用戶看的消息,可以是 字符串,數(shù)字,邏輯型;Icon : 消息框中的圖標(biāo),枚舉類型,默認(rèn)是 Information!,可以是如下枚舉類型值:Information! (默認(rèn))StopSign! (錯(cuò)誤終止)Exclamation! (驚嘆號(hào))Question! (問題)None! (沒有圖標(biāo))Button: 顯示的按鈕,枚舉類型,默認(rèn)是 確定ok! (默認(rèn)),
54、確認(rèn)按鈕okcancel! - 確認(rèn) 和 取消 按鈕yesno! 是 和 否 按鈕YesNoCancel 是 否 取消 按鈕RetryCancel 重試 , 取消按鈕AbortRetryIgnore 放棄,重試,忽略 按鈕Default : 上述按鈕中那個(gè)是默認(rèn)的返回: 對(duì)應(yīng)按鈕的位置,如指定按鈕為 okcancel!,用戶按了 確認(rèn),則返回1,按了放棄 則返回2示例:Messagebox(Title,Hello,this is a test,Question!,Okcancel!,2)PowerScript 常用函數(shù)和語句(二) - IS函數(shù)系IS 族函數(shù)和轉(zhuǎn)換函數(shù)以Is開頭的函數(shù)有很多,例
55、如IsNumber、IsDate、IsTime等等,它們用來判斷一個(gè)字符串是否符合某種數(shù)據(jù)類型的格式,它的返回值是一個(gè)布爾類型的值,當(dāng)字符串符合類型要求時(shí),返回值為True,否則返回值為False。諸如此類的函數(shù)統(tǒng)稱為類型判斷函數(shù)。之所以要用到這些函數(shù)是因?yàn)楫?dāng)我們用文本框輸入數(shù)據(jù)時(shí),需要用類型轉(zhuǎn)換函數(shù)將輸入的字符串轉(zhuǎn)化為我們所需要的數(shù)據(jù)類型,如果該字符串與所要類型不匹配,轉(zhuǎn)化時(shí)就會(huì)出現(xiàn)異常錯(cuò)誤。比較好的解決方法是先用類型判斷函數(shù)來檢驗(yàn)輸入的字符串,然后再進(jìn)行類型轉(zhuǎn)化。類型轉(zhuǎn)化函數(shù)的作用是將某個(gè)字符串轉(zhuǎn)化為另一種類型的數(shù)據(jù)格式。常見的類型轉(zhuǎn)化函數(shù)有Integer(將字符串轉(zhuǎn)化為整形),Long(
56、將字符串轉(zhuǎn)化為長(zhǎng)整形),Real(將字符串轉(zhuǎn)化為實(shí)形),Double(將字符串轉(zhuǎn)化為雙精度形),Dec(將字符串轉(zhuǎn)化為十進(jìn)制數(shù))。另外有String函數(shù)將各種不同的數(shù)據(jù)類型轉(zhuǎn)化為字符串,并可以規(guī)定轉(zhuǎn)化的格式。PowerScript 常用函數(shù)和語句(三) - 事件觸發(fā)Trigger ,Post當(dāng)使用Trigger來激活一個(gè)函數(shù)或事件時(shí),它被立即執(zhí)行。它的返回值可以在Script中使用。當(dāng)用戶使用Post來激活一個(gè)函數(shù)或事件時(shí),它被加入到對(duì)象隊(duì)列中并且按順序執(zhí)行。在大多數(shù)情況下,它在當(dāng)前Script完成后被執(zhí)行。但是如果在這段時(shí)間中其它系統(tǒng)事件發(fā)生了,那它可能在隊(duì)列中被排到其它Script之后。它
57、的返回值不能被Script使用。因?yàn)镻ost使得返回值對(duì)調(diào)用者不可見,所以可以把它想象成將函數(shù)或事件調(diào)入一種狀態(tài)。一般情況下,如果需要將所在Script執(zhí)行完畢后再調(diào)用其它函數(shù)或事件,則應(yīng)該使用Post而不是Trigger。TriggerEvent和PostEvent是PowerBuilder中的事件函數(shù),被用來觸發(fā)某一個(gè)特定事件。盡管它們的功能已經(jīng)被Post和Trigger所取代并得到加強(qiáng)。但為了向后兼容,它們?nèi)匀槐槐A袅讼聛?。但是你不能在調(diào)用事件時(shí)傳遞參數(shù)。必須將數(shù)據(jù)通過消息對(duì)象傳遞給事件的數(shù)據(jù)。示例帶參數(shù)的執(zhí)行某個(gè)事件,并且從消息對(duì)象中反饋參數(shù)值。首先帶參數(shù)的執(zhí)行該事件:w_xxx.po
58、stevent(ue_myevent,0,this is a test)在窗口w_xxx的 ue_myevent 事件中接受參數(shù):string ls_passed_stringls_passed_string = Message.stringparmPowerScript 常用函數(shù)和語句(三) -文件操作文件操作在程序設(shè)計(jì)中是不可缺少的??梢杂梦募瘮?shù)來打開一個(gè)文本或Blob文件并對(duì)它進(jìn)行讀寫操作。可以用流模式(Stream!) 或行(Line!) 模式打開一個(gè)文件。在行模式中,文件每次被一行行的讀入,每行之間被回車符和換行符隔開,最后以EOF(文件結(jié)束)為結(jié)束標(biāo)志。在流模式中,文件被整個(gè)讀入
59、,并且換行符和回車符不被寫入文件。用戶一般用流模式將整個(gè)文件讀入到MultilineEditor中,再整個(gè)寫到文件中去。當(dāng)打開文件時(shí),PowerBuilder分給打開的文件一個(gè)獨(dú)特的整數(shù)并且將指針放在文件中你所規(guī)定的地方。你可以用這個(gè)整數(shù)來標(biāo)識(shí)文件以便讀寫或關(guān)閉文件。文件指針規(guī)定了下一次文件讀寫的起始位置并且在每次讀寫完成后由PowerBuilder自動(dòng)更改。文件函數(shù)如下:FileClose : 關(guān)閉一個(gè)打開的文件FileDelete : 刪除一個(gè)文件FileExists : 判斷文件或目錄是否存在FileLength : 得到文件長(zhǎng)度FileOpen : 打開一個(gè)文件,如果不存在,則創(chuàng)建Fi
60、leWrite : 寫入一個(gè)文件FileRead : 從某打開的文件中讀取FileSeek : 移動(dòng)文件中讀寫位置GetFileOpenName : 彈出標(biāo)準(zhǔn)文件打開對(duì)話框,得到一個(gè)需要打開的文件名;GetFileSaveName : 彈出標(biāo)準(zhǔn)文件保存對(duì)話況,得到一個(gè)需要保存的文件名;PowerScript 常用函數(shù)和語句(三) 其他RGB RGB 函數(shù)函數(shù)RGB (紅,綠,蘭) ,RGB(R,G,B)R : 0-255 , 紅色G : 0-255 , 綠色B : 0-255 , 藍(lán)色返回一個(gè)顏色值,長(zhǎng)整形 B * 65526 + G * 256 + R如 rgb(255,0,0 ) = 255,紅色常用顏色
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 防控期間免疫規(guī)劃先進(jìn)事跡(10篇)
- 醫(yī)用產(chǎn)品購銷協(xié)議(35篇)
- 食堂管理整改報(bào)告(3篇)
- 建筑工程一切保險(xiǎn)條款(35篇)
- 文明校園創(chuàng)建的工作總結(jié)
- 計(jì)劃生育藥具工作計(jì)劃
- DB12 3005-2017 建筑類涂料與膠粘劑揮發(fā)性有機(jī)化合物含量限值標(biāo)準(zhǔn)
- 江蘇省淮安市(2024年-2025年小學(xué)五年級(jí)語文)統(tǒng)編版綜合練習(xí)(上學(xué)期)試卷及答案
- 湖南省懷化市(2024年-2025年小學(xué)五年級(jí)語文)統(tǒng)編版專題練習(xí)(下學(xué)期)試卷及答案
- 2024年汽車內(nèi)外飾件項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年國(guó)家公務(wù)員考試行測(cè)真題卷行政執(zhí)法答案和解析
- 《駝鹿消防員的一天》課件
- 小學(xué)思政課《愛國(guó)主義教育》
- 管線工程測(cè)量施工方案(雨污分流管網(wǎng)工程)
- 上海鏈家房地產(chǎn)經(jīng)紀(jì)公司人員激勵(lì)機(jī)制存在的問題與對(duì)策分析
- 醫(yī)院基本建設(shè)存在的問題及對(duì)策
- 農(nóng)機(jī)修理工培訓(xùn)大綱
- 鉆井操作簡(jiǎn)答題資料
- 臨床護(hù)理PBL教學(xué)(PPT課件)(精選干貨)
- 新視野第三冊(cè)網(wǎng)測(cè)習(xí)題和答案資料
- 新時(shí)代企業(yè)戰(zhàn)略管理制度轉(zhuǎn)變與創(chuàng)新
評(píng)論
0/150
提交評(píng)論