




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、B程序設(shè)計第7章高級窗口控第第7章高級窗口控件章高級窗口控件7.1高級窗口控件在應(yīng)用中的地位高級窗口控件在應(yīng)用中的地位7.2高級窗口控件的基本知識與用法高級窗口控件的基本知識與用法7.3數(shù)據(jù)窗口控件數(shù)據(jù)窗口控件7.4高級窗口控件應(yīng)用實例高級窗口控件應(yīng)用實例小結(jié)小結(jié)B程序設(shè)計第7章高級窗口控7.1 高級窗口控件在應(yīng)用中的地位高級窗口控件在應(yīng)用中的地位 本章介紹的控件和第三章的控件相比較,在使用本章介紹的控件和第三章的控件相比較,在使用方法和界面上都稍微復(fù)雜一些,但它們在實際應(yīng)方法和界面上都稍微復(fù)雜一些,但它們在實際應(yīng)用中也是比較常用的。用好這些控件,可以完成用中也是比較常用的。用好這些控件,可以
2、完成簡單控件不能完成的功能,從而減少很多編程工簡單控件不能完成的功能,從而減少很多編程工作,如富文本在運行作,如富文本在運行PowerBuilder程序過程中,程序過程中,不啟動寫字板或不啟動寫字板或Word處理器,就可以處理用戶輸處理器,就可以處理用戶輸入的文本,或調(diào)用一些文本進行編輯入的文本,或調(diào)用一些文本進行編輯;數(shù)據(jù)窗口控數(shù)據(jù)窗口控件是件是PowerBuilder中的一個核心控件,是否能夠中的一個核心控件,是否能夠熟練使用熟練使用PowerBuilder進行項目開發(fā)在很大程度進行項目開發(fā)在很大程度上決定于如何更好地使用該控件。所以認真學(xué)習上決定于如何更好地使用該控件。所以認真學(xué)習這些高
3、級窗口控件,不僅可以豐富窗口知識,減這些高級窗口控件,不僅可以豐富窗口知識,減少系統(tǒng)編程量,也可以為操作者提供更直觀、方少系統(tǒng)編程量,也可以為操作者提供更直觀、方便、快捷的操作功能便、快捷的操作功能B程序設(shè)計第7章高級窗口控7.2 高級窗口控件的基本知識與用法高級窗口控件的基本知識與用法 7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框 7.2.2 圖片(圖片(Picture)與圖片超鏈接)與圖片超鏈接(PictureHyperLink) 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 7.2.4 富文本(富文本(RichTextEdit) 7.2.5 OLE控件控件B程序設(shè)計第7章
4、高級窗口控7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框 1.下拉列表框 下拉列表框控件實際上是單行編輯器與列表框的組合,可以從該控件中選擇內(nèi)容。當允許編輯該控件中的內(nèi)容時(可將控件的AllowEdit屬性設(shè)為True),可以像單行編輯器一樣在該控件中輸入或者修改文本內(nèi)容,如圖71所示。B程序設(shè)計第7章高級窗口控7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框 (1)屬性 下拉列表框的屬性實際上是列表框和單行編輯器屬性的綜合,如圖72和圖73所示。B程序設(shè)計第7章高級窗口控7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框 (2)事件 下拉列表框
5、控件的事件也綜合了單行編輯器與列表框的事件部分。 比較常用的事件如下: SelectionChanged事件:該事件在用戶從下拉列表框中選擇列表項時被觸發(fā)。它的用法同列表框,讀者可以參考列表框部分。 注意 當在編輯框中修改文本時,不會觸發(fā)該事件。B程序設(shè)計第7章高級窗口控7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框 DoubleClicked事件:用戶雙擊下拉式列表框中的列表項時觸發(fā)該事件。該事件的用法同列表框。讀者可以參考列表框部分。 注意 該事件只有在下拉式列表框的ShowList屬性為True時,才能起作用。 Modified事件:該事件在用戶修改編輯框部分的文本,并
6、且使該控件失去焦點時才被觸發(fā)。 B程序設(shè)計第7章高級窗口控7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框(3)函數(shù) 在下拉列表框的常用函數(shù)中,與列表框相似的有:AddItem()、DeleteItem()、FindItem()、InsertItem()和SelectItem();與單行編輯器相似的有:ReplaceText()、SelectedLength()和SelectedStart()。B程序設(shè)計第7章高級窗口控7.2.1 下拉列表框與下拉圖片列表框下拉列表框與下拉圖片列表框 2.下拉圖片列表框 該列表框與下拉列表框相似,兩者的區(qū)別在于前者可以在列表項中同時顯示圖片和文
7、本,就像圖片列表一樣。實際上是圖片列表框與單行編輯器的組合,如圖74所示。 B程序設(shè)計第7章高級窗口控7.2.2 圖片(圖片(Picture)與圖片超鏈)與圖片超鏈接(接(PictureHyperLink) 1.圖片 PowerBuilder的圖片控件提供了對圖像的支持。利用圖片控件可以顯示BMP、RLE、JPG、GIF、WMF等格式的圖像,如圖75所示。B程序設(shè)計第7章高級窗口控7.2.2 圖片(圖片(Picture)與圖片超鏈)與圖片超鏈接(接(PictureHyperLink) 圖片的屬性如圖76所示,其中圖片文件名稱可以直接在PictureName編輯欄中輸入,也可以點擊其右側(cè)的“.”
8、按鈕進行選擇。 B程序設(shè)計第7章高級窗口控7.2.2 圖片(圖片(Picture)與圖片超鏈)與圖片超鏈接(接(PictureHyperLink) 2.圖片超鏈接 圖片超鏈接控件是PowerBuilder提供的用于開發(fā)“Internet”網(wǎng)絡(luò)應(yīng)用程序的控件,如圖77所示。B程序設(shè)計第7章高級窗口控7.2.2 圖片(圖片(Picture)與圖片超鏈)與圖片超鏈接(接(PictureHyperLink) 該控件訪問“Internet”網(wǎng)絡(luò)是通過屬性中的URL(地址屬性)來實現(xiàn)的,如圖78所示。B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 統(tǒng)計圖是一種用圖形來表示數(shù)據(jù)的控件,
9、具有直觀、形象和概括地表現(xiàn)數(shù)據(jù)的特點,同時具有易于查看、統(tǒng)計和分析等優(yōu)點,被各行各業(yè)廣泛使用。 1.統(tǒng)計圖的結(jié)構(gòu) 在實際應(yīng)用中經(jīng)常設(shè)計標題(Title)、值軸(Value軸)、分類軸(Category軸)、序列(Series)、圖例(Legend)等,通過對這幾項的設(shè)置來改變圖形的外觀,從而適應(yīng)具體應(yīng)用的需要。B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 2.統(tǒng)計圖的種類 PowerBuilder提供了17種統(tǒng)計圖,可以粗略劃分為平面圖形和立體圖形兩大類,也可以更細致地劃分為6類,即:條狀圖、列圖和線圖;餅圖;堆積圖;散點圖;三維圖;其他。圖79為條狀圖B程序設(shè)計第7章
10、高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 3.統(tǒng)計圖的屬性 在屬性窗口中Graph控件的標簽頁有四個,分別用來設(shè)置常用屬性、軸屬性、文字屬性和其他屬性。如圖710所示為統(tǒng)計圖的General標簽頁。B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 4.函數(shù) Graph控件提供了豐富的函數(shù),用來控制數(shù)據(jù)的提取、外觀的調(diào)整以及與用戶的交互等,下面根據(jù)實際應(yīng)用情況介紹幾個常用函數(shù)的用法。 (1)AddCategory函數(shù) 為圖形控件添加一個分類軸,只有當分類軸的數(shù)據(jù)類型為String時才可以使用該函數(shù)。 語法格式為: ControlName.AddCategory(C
11、ategoryName) 其中,ControlName為圖形名稱,CategoryName為要添加的分類軸名稱。返回值類型為整型,成功時值為新加分類軸的序號;失敗時值為-1。例如:為圖形控件gr1添加名稱為“OK”的分類軸。 gr1.AddCategory(OK) B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) (2)AddSeries函數(shù) 為圖形控件添加一個系列軸。語法格式為: ControlName.AddSeries(SeriesName) 其中,SeriesName為要添加的軸名稱。函數(shù)執(zhí)行成功后,返回新添加的系列軸的索引號,如果已經(jīng)有同名系列軸存在,則返回同名系
12、列軸的索引號。例如:為圖形控件gr1添加名稱為“123”的系列軸。 Integer Number Number=gr1.AddSeries(123) B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) (3)AddData函數(shù) 該函數(shù)可以向圖形控件的數(shù)據(jù)軸添加數(shù)據(jù)。語法格式為: ControlName.AddData(SeriesNumber,DatavalueCategoryValue) 其中,CategoryValue為添加數(shù)據(jù)在分類軸上的分類值。例如:添加數(shù)據(jù)300到圖形控件gr1的“123”系列軸。 Integer Number Number=gr1.FindSeri
13、es(123) gr1.AddData(Number,300)B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 5.統(tǒng)計控件的編程 綜合前面所學(xué)的內(nèi)容,設(shè)計如圖711所示的統(tǒng)計圖。該統(tǒng)計圖為產(chǎn)品銷售情況一覽表,主要產(chǎn)品有“茶杯”、“地毯”和“毛巾”。B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 分別將三種產(chǎn)品按第一季度、第二季度和第三季度劃分的不同銷售量利用條形圖來顯示。其操作步驟如下: (1)在PowerBuilder工作區(qū)中,創(chuàng)建窗口,名稱為w Graph。選擇窗口畫板菜單Insert.Control.Graph。這時將統(tǒng)計圖控件插入新建的w G
14、raph窗口中。B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) (2)在窗口畫板中添加靜態(tài)文本框st1(顯示形式),下拉列表框ddlb show(為下拉列表添加下拉選項),如圖712所示。B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph)(3)編寫代碼: 在窗口w Graph的Open事件中編寫如下代碼 /當運行此窗口時統(tǒng)計圖將按下列設(shè)置在窗口中顯示gr1.Reset(All!)Integer Number Number=Gr1.Addseries(地毯) gr1.AddData(Number,800,1季度)gr1.AddData(Number,700
15、,2季度)gr1.AddData(Number,710,3季度)Number=Gr1.AddSeries(毛巾)gr1.AddData(Number,700,1季度)gr1.AddData(Number,900,2季度)gr1.AddData(Number,500,3季度)Number=Gr1.AddSeries(茶杯)gr1.AddData(Number,260,1季度)gr1.AddData(Number,400,2季度)gr1.AddData(Number,300,3季度)B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph) 下拉列表的SelectionChanged事件
16、 .當鼠標選中某一種統(tǒng)計圖風格時,觸發(fā)該事件。并按該種風格在左側(cè)的統(tǒng)計圖控.件中顯示其外觀。 Choose Case ddlb show.Text CaseArea3Dgr1.GraphType=Area3D! CaseAreaGraph gr1.GraphType=AreaGraph! CaseBar3DGraph gr1.GraphType=Bar3DGraph! CaseBar3DObjGraph gr1.GraphType=Bar3DObjGraph!CaseBarGraph gr1.GraphType=BarGraph! CaseBarStack3DObjGraph gr1.Grap
17、hType=BarStack3DObjGraph! B程序設(shè)計第7章高級窗口控 7.2.3 統(tǒng)計圖(統(tǒng)計圖(Graph)CaseBarStackGraph gr1.GraphType=BarStackGraph! CaseCol3DGraph gr1.GraphType=Col3DGraph! CaseCol3DObjGraph gr1.GraphType=Col3DObjGraph! CaseColGraph gr1.GraphType=ColGraph! CaseLine3D gr1.GraphType=Line3D! CaseLineGraph gr1.GraphType=LineGra
18、ph! CasePie3D gr1.GraphType=Pie3D! CasePieGraph gr1.GraphType=PieGraph!End ChooseB程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit) 該控件是一個功能強大的編輯器,它的功能類似于MultilineEdit,也是一個多行編輯器。它不僅可以編輯純文本格式的文字,而且還可以使用Windows提供的字體、字號和顏色。其外觀如圖713所示。B程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit) 1.屬性 富文本的General標簽頁如圖714所示。在該標簽頁中,可以設(shè)置
19、控件名稱、是否有橫縱向滾動條和是否可以動態(tài)調(diào)整控件的大小等屬性。B程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit) 富文本的主要屬性在Document標簽頁中設(shè)置,如圖715所示。在該標簽頁中可以設(shè)置是否顯示標尺、是否顯示工具欄以及是否顯示頁眉和頁腳等屬性。B程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit)2.函數(shù) 富文本提供豐富的操作函數(shù),下面主要介紹較常用的富文本函數(shù):(1)SaveDocument函數(shù)該函數(shù)是將富文本控件中的內(nèi)容以.rtf或.txt格式保存起來。語法格式為: RteName.SaveDocument(,) 其中,
20、RteName為富文本控件名;為保存文件的名稱;為文件的類型,系統(tǒng)提供參數(shù)有!(.rtf格式)和!(.txt格式)。返回值類型為整型:1表示成功;-1表示不成功。例如:將富文本中的內(nèi)容以.txt格式保存到d:shenhuiproduct.txt內(nèi)的書寫格式:Integer Number Number=rte1.SaveDocument(d:shenhuiproduct.txt,!)B程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit) (2)SelectText函數(shù) 該函數(shù)的主要功能是在富文本控件中選擇一段特定位置的文本。語法格式為: RteName.SelectTe
21、xt(Fromline,F(xiàn)romchar,Toline,TocharBand) 其中,RteName為富文本控件名;Fromline為起始行號;Fromchar為此行中的起始字符號;Toline為結(jié)束行號;Tochar為在此行中的結(jié)束字符號;Band為選擇區(qū)域。 例如:選擇RichText控件中第三行第二個字符至第五行第四個字符的文本為: rte1.SelectText(3,2,5,4) B程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit) (3)DataSource函數(shù) 該函數(shù)是在富文本控件中使用數(shù)據(jù)窗口中的數(shù)據(jù)。語法格式為: RteName.DataSource
22、(DwSource) 其中,RteName為富文本控件名稱;DwSource為數(shù)據(jù)窗口控件或存儲過程的名稱。B程序設(shè)計第7章高級窗口控7.2.4 富文本(富文本(RichTextEdit) 3.富文本應(yīng)用實例 根據(jù)以上所學(xué)的富文本基本知識創(chuàng)建如圖713所示的富文本。該例主要實現(xiàn)在PowerBuilder中運行此窗口時,可以像寫字板一樣設(shè)置字體、字號和字的顏色等。在保存輸入內(nèi)容時,可以選擇兩種不同的保存格式,還可以打印輸入的內(nèi)容B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件 OLE(對象鏈接與嵌入)是一種在應(yīng)用程序中鏈接其他應(yīng)用程序或控件的技術(shù)。利用OLE控件可以在窗口中嵌入OLE兼容的應(yīng)
23、用程序。 在PowerBuilder中,OLE應(yīng)用有兩種類型:一種是在PowerBuilder應(yīng)用程序中嵌入OLE兼容的其他應(yīng)用程序,另一種是在PowerBuilder應(yīng)用程序的窗口中添加OLE自定義控件。 例如可以在窗口中放置OLE控件,并定義該控件連接Microsoft公司的Word和Excel等應(yīng)用軟件,這樣就可以直接利用所鏈接的軟件做各種處理工作了。還可以把自定義控件(ActiveX控件)放置到窗口中,實現(xiàn)PowerBuilder標準控件無法實現(xiàn)的功能。B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件利用OLE控件調(diào)用畫圖的具體步驟: (1)新建一個窗口名稱為w OLE,然后在窗口
24、畫板中單擊菜單“Insert.Control.OLE”,彈出圖716所示對話框。B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件 (2)在彈出對話框中有三個標簽頁,功能分別如下: “Create New”標簽頁:創(chuàng)建或嵌入新的OLE對象。 “Create From File”標簽頁:選擇已經(jīng)存在的OLE對象。 “Insert Control”標簽頁:插入控件。B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件 (3)在三個標簽頁中選擇第一個標簽頁“Create New”,在所列的ObjectType中選擇位圖圖像,如圖716所示B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件單擊圖上
25、的“OK”按鈕,然后在要放置該控件的窗口畫板中單擊,畫圖將被打開,如圖717所示。B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件 (4)圖717中彈出的畫圖和在附件中我們使用的畫圖是一樣的,可以使用畫筆繪制我們所需要的圖形,如圖717所示。如果所需要的內(nèi)容已經(jīng)繪制完成即可關(guān)閉畫圖,這時在PowerBuilder中保存畫板中所畫的內(nèi)容。B程序設(shè)計第7章高級窗口控7.2.5 OLE控件控件 (5)如果在PowerBuilder畫板中OLE控件中的圖形沒畫完或還需要完善時,在畫板中該控件上右擊,在彈出的菜單中選擇“Open”菜單項,這時將重新彈出畫圖,繼續(xù)修改即可。 (6)保存該內(nèi)容,試運行,
26、雙擊OLE控件,OLE服務(wù)器被激活,如圖718所示B程序設(shè)計第7章高級窗口控7.3 數(shù)據(jù)窗口控件數(shù)據(jù)窗口控件 7.3.1 使用數(shù)據(jù)窗口控件使用數(shù)據(jù)窗口控件 7.3.2 設(shè)置數(shù)據(jù)窗口控件的屬性設(shè)置數(shù)據(jù)窗口控件的屬性 7.3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián)件的關(guān)聯(lián) 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù)操縱數(shù)據(jù)窗口的數(shù)據(jù)B程序設(shè)計第7章高級窗口控7.3.1 使用數(shù)據(jù)窗口控件使用數(shù)據(jù)窗口控件在窗口上布置數(shù)據(jù)窗口控件的方法與第五章中布置其他控件的方法相同,如圖719所示。B程序設(shè)計第7章高級窗口控7.3.2 設(shè)置數(shù)據(jù)窗口控件的屬性設(shè)置數(shù)據(jù)窗口控件的屬性 數(shù)據(jù)窗口控件和其他窗口控件
27、一樣,也可以通過設(shè)置它的屬性,來改變它的外觀和動作,使它能更方便地為數(shù)據(jù)處理服務(wù)。當我們向窗口中放置了一個數(shù)據(jù)窗口控件或者選中了窗口上已有的控件后,畫板的“Properties”視圖中就顯示出了該數(shù)據(jù)窗口控件的屬性,如圖720屬性視窗所示。B程序設(shè)計第7章高級窗口控 7.3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián) 在窗口畫板上新添加的數(shù)據(jù)窗口控件為空白框,預(yù)覽時沒有任何內(nèi)容。當數(shù)據(jù)窗口控件要顯示數(shù)據(jù)庫中內(nèi)容時就需要與數(shù)據(jù)窗口對象關(guān)聯(lián), 其中有兩種方式: 1.靜態(tài)關(guān)聯(lián) (1)首先進入窗口畫板,在窗口中插入一個新的數(shù)據(jù)窗口控件(在此之前已創(chuàng)建需要關(guān)聯(lián)的數(shù)據(jù)窗口對象)。B程序設(shè)計第7章高級窗口控 7.
28、3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián) (2)在窗口畫板中右擊數(shù)據(jù)窗口控件,選擇彈出菜單中的“Properties”屬性,或選擇“Views.Properties”屬性,進入圖720所示的屬性視窗。B程序設(shè)計第7章高級窗口控 7.3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián) (3)在屬性視窗的General標簽頁的DataObject編輯框中輸入所要關(guān)聯(lián)的數(shù)據(jù)窗口對象的名稱或者點擊右邊的“Browse.”按鈕,這時會彈出“Select Object”對話框,如圖721所示。B程序設(shè)計第7章高級窗口控 7.3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián) (4)在彈出的對話框中選擇所需的數(shù)據(jù)窗口對象名稱,
29、然后單擊“OK”按鈕,返回到窗口畫板中,并保存所做的修改。 完成上述步驟之后,就將一個數(shù)據(jù)窗口對象與窗口中的一個數(shù)據(jù)窗口控件連接起來。這時在數(shù)據(jù)窗口控件中不再顯示空白,而是顯示數(shù)據(jù)窗口對象的標題信息。B程序設(shè)計第7章高級窗口控 7.3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián) 2.動態(tài)關(guān)聯(lián) 除了可在數(shù)據(jù)窗口控件的屬性對話框中直接設(shè)置數(shù)據(jù)窗口控件所關(guān)聯(lián)的數(shù)據(jù)窗口對象外,在應(yīng)用程序中,也可以動態(tài)地關(guān)聯(lián)數(shù)據(jù)窗口對象。 從上面設(shè)置屬性過程可知,數(shù)據(jù)窗口控件和數(shù)據(jù)窗口對象的關(guān)聯(lián)是利用了數(shù)據(jù)窗口控件的一個名為DataObject的屬性。B程序設(shè)計第7章高級窗口控 7.3.3 數(shù)據(jù)窗口對象與數(shù)據(jù)窗口控件的關(guān)聯(lián)
30、這個屬性的值是一個包含數(shù)據(jù)窗口對象名稱的字符串。在程序中,可以通過動態(tài)地修改這個屬性的值來修改所關(guān)聯(lián)的數(shù)據(jù)窗口對象,即在所要修改的關(guān)聯(lián)數(shù)據(jù)窗口對象的事件中輸入下面的語句: DwControlName.DataObject=d objectname 例如: dw1.DataObject=d dd kehu name 是將數(shù)據(jù)窗口控件dw1中的數(shù)據(jù)窗口對象的名稱改為“d dd kehu name”。其中“d ddkehu name”是在數(shù)據(jù)窗口畫板中已創(chuàng)建的。 B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 1.幾個重要概念(1)緩沖區(qū) 數(shù)據(jù)窗口控件把從數(shù)據(jù)庫中檢索到的數(shù)據(jù)都存放到本地
31、計算機的內(nèi)存中,這塊內(nèi)存就是數(shù)據(jù)窗口控件的緩沖區(qū)。(2)編輯狀態(tài) 當前緩沖區(qū)(Primary)和刪除緩沖區(qū)(Delete)為每一行和每一列的數(shù)據(jù)都維護了一個編輯狀態(tài)值(Edit Status Flag),這個狀態(tài)值是一個叫做DwItemStatus的枚舉類型值。該枚舉類型有四種類型:NotModified!、DataModified!、New!和NewModified!。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (3)編輯控件 在PowerBuilder中,數(shù)據(jù)窗口使用編輯控件(Edit Control)來接收用戶的輸入。編輯控件是PowerBuilder內(nèi)部使用的一個控件。
32、我們不能修改它,只能通過GetText函數(shù)來獲得它的內(nèi)容。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (4)有效性驗證 在數(shù)據(jù)窗口的編輯控件上輸入了某個數(shù)據(jù)項的值后,當用戶將焦點移到下一個可編輯字段上的時候,數(shù)據(jù)窗口就要對輸入的數(shù)據(jù)進行有效性的檢查。 有效性驗證主要是檢查用戶輸入的數(shù)據(jù)與數(shù)據(jù)窗口中該字段的類型是否匹配。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 2.數(shù)據(jù)窗口控件的工作原理 當數(shù)據(jù)窗口控件的內(nèi)容發(fā)生變化時,PowerBuilder將按如下順序進行檢查: 首先:檢查控件的文本是否是正確的數(shù)據(jù)類型,并轉(zhuǎn)換為對應(yīng)列的數(shù)據(jù)類型。例如當前列的數(shù)據(jù)類型是一個數(shù)
33、值類型的數(shù)據(jù),那么PowerBuilder會把控件內(nèi)的文本自動轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)類型,出錯就會觸發(fā)ItemError事件。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 其次:如果控件內(nèi)的文本能夠轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)類型,那么PowerBuilder會使用該列的有效性,對轉(zhuǎn)換后的數(shù)據(jù)進行有效性檢查。如果有效性檢查失敗的話,也會觸發(fā)ItemError事件。例如:如果當前列要求訂貨最低數(shù)量為50,而用戶輸入30,那么就不能通過有效性規(guī)則的檢查。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 最后:通過了上面的檢查之后,PowerBuilder就會觸發(fā)ItemChange事件。一般
34、在這個事件中用戶需輸入自己要檢查的一些規(guī)則B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 3.數(shù)據(jù)庫數(shù)據(jù)操縱函數(shù) (1)數(shù)據(jù)檢索 檢索數(shù)據(jù)使用的是Retrieve()函數(shù),Retrieve()的使用格式為: DwControlName.Retrieve(參數(shù)1,參數(shù)2) DwControlName是數(shù)據(jù)窗口控件的名稱B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (2)數(shù)據(jù)更新 更新數(shù)據(jù)使用Update函數(shù),其語法格式為: DataControlName.Update(Accept,ResetFlag) 其中Accept是一個布爾類型的參數(shù),用來表示數(shù)據(jù)窗口是否在執(zhí)行U
35、pdate函數(shù)操作之前自動執(zhí)行AcceptText()函數(shù)。參數(shù)ResetFlag也是一個布爾類型的參數(shù),用來表示數(shù)據(jù)窗口是否自動重設(shè)Update標志。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (3)InsertRow函數(shù) 該函數(shù)在數(shù)據(jù)窗口控件指定行前插入一行。語法格式為: Dwcontrol.InsertRow(Row) 其中,Dwcontrol是數(shù)據(jù)窗口控件名;Row指定在哪一行前面插入新行。當Row為0時表示在最后一行插入一新行。函數(shù)返回值類型為整型,成功時返回新插入行的行號;不成功時返回-1。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (4)Delet
36、eRow函數(shù) 該函數(shù)將刪除數(shù)據(jù)窗口控件中指定行數(shù)據(jù)。語法格式: Dwcontrol.DeleteRow(Row) 其中,Dwcontrol為數(shù)據(jù)窗口控件名;Row為要刪除數(shù)據(jù)的行號。當Row為0時表示刪除當前行。函數(shù)返回值類型為整型,成功時返回1,不成功時返回-1。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 4.緩沖區(qū)數(shù)據(jù)操縱函數(shù) (1)字段排序 如果對數(shù)據(jù)窗口對象內(nèi)的數(shù)據(jù)進行重新排序,PowerBuilder提供了兩個函數(shù):SetSort()函數(shù)和Sort()函數(shù),格式分別為: DwControlName.SetSort(SortExpression)DwControlNam
37、e.Sort() 其中第一個函數(shù)是用戶用來指定排序表達式的,第二個函數(shù)是按第一個函數(shù)所指的排序表達式來排序的B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (2)數(shù)據(jù)檢索 過濾或檢索數(shù)據(jù)使用函數(shù)SetFilter()和Filter(),其語句格式分別為: dwControlName.SetFilter(Filter Expression)dwControlName.Filter() 其含義與SetSort()函數(shù)一樣。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 5.數(shù)據(jù)行滾動函數(shù) (1)Scroll函數(shù) 該函數(shù)是將數(shù)據(jù)窗口控件上編輯框的內(nèi)容,按指定方向和行數(shù)滾動。語
38、法格式為: DwControlName.Scroll(Number) 其中,Number為滾動的行數(shù),正值為向下滾動,負值為向上滾動。返回值類型為整型,成功時返回控件第一行顯示的數(shù)據(jù)行號;不成功時返回-1B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (2)ScrollToRow函數(shù) 該函數(shù)功能為滾動到數(shù)據(jù)窗口控件的指定行,該函數(shù)改變行數(shù)但不改變列數(shù)。語法格式: DwControlName.ScrollToRow(Row) 其中,Row為指定的行號,返回值類型為整型,成功時返回1;不成功時返回-1。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (3)ScrollNex
39、tRow函數(shù) 該函數(shù)是將數(shù)據(jù)窗口控件中的內(nèi)容滾動到下一行,該函數(shù)改變行數(shù)但不改變列數(shù)。語法格式為: DwControlName.ScrollNextRow() 返回值類型為整型,成功時返回顯示在數(shù)據(jù)窗口中第一個可見行的行號;不成功時返回-1。與該函數(shù)相類似的函數(shù)為ScrollPriorRow函數(shù)(滾動到上一行)和ScrollNextPage函數(shù)(滾動到下一頁),其格式與該函數(shù)相近B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 6.數(shù)據(jù)行操作函數(shù)(1)GetRow函數(shù) 該函數(shù)為獲得數(shù)據(jù)窗口中當前行的行號。語法格式為: DwControlName.GetRow() 返回值類型為整型,成
40、功時返回數(shù)據(jù)窗口當前行的行號,如果沒有當前行,函數(shù)返回0;不成功時返回-1B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (2)GetColumn函數(shù) 該函數(shù)為獲得數(shù)據(jù)窗口中當前列的列號。語法格式為: DwControlName.GetColumn() 返回值類型為整型,成功時返回數(shù)據(jù)窗口當前列的列號,如果沒有當前列,函數(shù)返回0;不成功時返回-1。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) (3)RowCount函數(shù) 該函數(shù)返回數(shù)據(jù)窗口當前所顯示的行數(shù)。語法格式為:DwControlName.RowCount() 函數(shù)返回值類型為整型,成功時返回主緩沖區(qū)中數(shù)據(jù)行數(shù);不成功時返回-1。B程序設(shè)計第7章高級窗口控 7.3.4 操縱數(shù)據(jù)窗口的數(shù)據(jù) 7.數(shù)據(jù)項操縱函數(shù) (1)獲取數(shù)據(jù) 從指定的行和列獲取數(shù)據(jù),可使用PowerBuilder提供的GetItem系列函數(shù)。對于字符串、數(shù)字、日期、時間和小數(shù)等各個類型都有各自對應(yīng)的一個函數(shù)。每個函數(shù)都有同樣的數(shù)據(jù)類型,返回指定行和列的值。B程序設(shè)計第7章高級
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 698.3-2013鋼渣透水混凝土及重混凝土應(yīng)用技術(shù)規(guī)程第3部分:鋼渣重混凝土
- DB31/T 681-2015環(huán)衛(wèi)車技術(shù)與配置要求
- DB31/T 569-2011冷凍小包裝水產(chǎn)品加工技術(shù)規(guī)程
- DB31/T 329.10-2018重點單位重要部位安全技術(shù)防范系統(tǒng)要求第10部分:黨政機關(guān)
- DB31/T 1211-2020集中式空調(diào)系統(tǒng)能效在線監(jiān)測技術(shù)規(guī)范
- 體育產(chǎn)業(yè)股東合法股權(quán)轉(zhuǎn)讓與賽事運營合同
- 觀花盆栽綠色環(huán)保種植與銷售合同
- 限購政策下二手房交易合同模板
- 環(huán)保設(shè)備購銷合同作廢及污染治理協(xié)議
- 股權(quán)轉(zhuǎn)讓與財產(chǎn)擔保融資合同模板
- 基于“生活教育”理念下部編小學(xué)語文教材中“小練筆”教學(xué)策略研究 論文
- 高中生物必修一實驗通知單
- 課件:第四章 社會工作項目的執(zhí)行(《社會工作項目策劃與評估》課程)
- 冷庫施工組織設(shè)計施工方案
- 咯血診斷與治療課件
- 醫(yī)學(xué)影像專業(yè)個人簡歷
- 檢驗科 醫(yī)院感染管理質(zhì)量督查評分表
- 獨立性檢驗 公開課比賽一等獎-完整版獲獎?wù)n件
- 網(wǎng)絡(luò)信息系統(tǒng)癱瘓演練PDCA改進
- 高分子材料成型加工基礎(chǔ)添加劑及配方設(shè)計課件
- 水泥水化熱實驗原始記錄
評論
0/150
提交評論