《數(shù)據(jù)窗口對象》doc版.doc_第1頁
《數(shù)據(jù)窗口對象》doc版.doc_第2頁
《數(shù)據(jù)窗口對象》doc版.doc_第3頁
《數(shù)據(jù)窗口對象》doc版.doc_第4頁
《數(shù)據(jù)窗口對象》doc版.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

/數(shù)據(jù)窗口對象的數(shù)據(jù)源-PB提供5種數(shù)據(jù)源:Quick Select(快速選擇類型)、SQL Select(SQL選擇類型)、Query(查詢類型)、External(外部類型)和Stored Procedure(存儲過程類型)-Quick Select只能從一個(gè)數(shù)據(jù)表或者視圖中選取數(shù)據(jù)(無關(guān)聯(lián)的表或者視圖)?-SQL Select1、選擇表可以一次選擇多個(gè)表2、選擇字段Select All /選擇所有字段Select Tables /重新選擇表Convert to Syntax /進(jìn)入SQL語法狀態(tài)Compute /計(jì)算字段,右鍵-Columns /選擇字段 右鍵-Functions /選擇函數(shù)3、指定檢索條件Retrieval Arguments /定義檢索參數(shù)變量的類型和名稱where /檢索條件,右鍵-Columns /選擇字段 右鍵-Functions /選擇函數(shù) 右鍵-Arguments /選擇參數(shù) 右鍵-Value /選擇值 右鍵-Select /從其他表中選擇-QueryPB可以將特定的SQL語句保存為Query對象,不同的Query數(shù)據(jù)源的數(shù)據(jù)窗口都可以使用這些已經(jīng)保存好的SQL語句來提取數(shù)據(jù)-External當(dāng)和不存在于數(shù)據(jù)庫中的數(shù)據(jù)打交道或者要利用數(shù)據(jù)窗口的某些特性但不進(jìn)行數(shù)據(jù)處理時(shí),使用此數(shù)據(jù)源。無SQL語句。-Stored Procedure使用已經(jīng)定義好的存儲過程來做數(shù)據(jù)源-/數(shù)據(jù)窗口對象的顯示樣式-數(shù)據(jù)窗口對象顯示樣式有11種:Grid、Tabular、Group、Freefrom、Label、N-Up、Crosstab、Graph、Composite、RichText、OLE2.0-Grid:字段橫向排列在detail band中,標(biāo)簽橫向排列在header band中,和字段相對應(yīng),字段和字段之間有網(wǎng)格線分隔,類似于電子表格。在數(shù)據(jù)窗口的預(yù)覽狀態(tài)下可以調(diào)整字段的順序,并且自動反饋到數(shù)據(jù)窗口的設(shè)計(jì)狀態(tài)中,調(diào)整字段順序時(shí),對應(yīng)的標(biāo)簽順序也相應(yīng)地自動調(diào)整。缺省情況下,字段不能隨意移動,只能在detail band中做上下移動。這種顯示樣式的數(shù)據(jù)窗口布局整齊,但不能靈活地安排字段、標(biāo)簽、表頭的布局,所以常用來顯示數(shù)據(jù)或錄入數(shù)據(jù),而很少用來做報(bào)表。Grid顯示樣式的數(shù)據(jù)窗口中,表頭只能和標(biāo)簽放置在同一個(gè)header band中,在放置表頭處仍然有網(wǎng)格線。-Tabular:當(dāng)剛剛創(chuàng)建這種樣式的數(shù)據(jù)窗口時(shí),字段、標(biāo)簽的布局和 Grid顯示樣式的數(shù)據(jù)窗口相同,都是橫向排列的,但是字段之間沒有網(wǎng)格線分隔。字段和標(biāo)簽的布局可以隨意調(diào)整,在header band中的標(biāo)簽可以隨意拖放到detail band中,detail band中的字段也可以拖動到header band中。這種顯示格式的數(shù)據(jù)窗口布局安排非常靈活,開發(fā)人員可以根據(jù)需要設(shè)計(jì)字段和標(biāo)簽的布局,然后手工畫線制作表格,在制作中國式報(bào)表時(shí)經(jīng)常使用,雖然比較煩瑣,但是表格比較美觀,比較適合中國式報(bào)表的要求,另外,這種格式的數(shù)據(jù)窗口在數(shù)據(jù)錄入、查詢時(shí)也經(jīng)常使用。-Group:Group分組顯示樣式的數(shù)據(jù)窗口可以指定按哪個(gè)(或哪些)字段進(jìn)行分組,可以用指定的分組條件將數(shù)據(jù)分組顯示,并且允許為每組指定一些計(jì)算。例如,要顯示某公司在各地區(qū)的銷售數(shù)據(jù),可以按地區(qū)分組,為每個(gè)分組指定統(tǒng)計(jì)計(jì)算,在地區(qū)改變時(shí)顯示地區(qū)的銷售總金額。當(dāng)選擇多個(gè)字段時(shí),這幾個(gè)字段共同作為分組的條件,而不是以每個(gè)字段都創(chuàng)建一個(gè)分組。使用Group類型只能創(chuàng)建一個(gè)分組,要創(chuàng)建多個(gè)分組必須在DataWindow畫板中完成。-Freefrom:前面討論的三種顯示樣式都是一次可以顯示多行數(shù)據(jù)的。對于比較重要的數(shù)據(jù),用戶可能需要一次只編輯一行這時(shí)可以使用Freefrom顯示樣式的數(shù)據(jù)窗口。該類型的數(shù)據(jù)窗口將標(biāo)簽放置在字段的左例,字段和標(biāo)簽放置在同一個(gè)detail band中,先從上到下再從左到右依次排列。實(shí)際上,這種顯示樣式的數(shù)據(jù)窗口布局也很靈活,可以隨意安排字段和標(biāo)簽的位置。這種顯示樣式的數(shù)據(jù)窗口在卡片式數(shù)據(jù)的錄入和顯示方面也經(jīng)常使用。-Label:如果用戶想要生成郵件標(biāo)簽,可以使用Label顯示樣式的數(shù)據(jù)窗口來實(shí)現(xiàn)。-N-Up:這是可以在同一頁上顯示多列相同字段的一種特殊的顯示樣式。當(dāng)要顯示的字段比較少或者不同行之間的數(shù)據(jù)需要做比較時(shí),經(jīng)常使用這種顯示樣式。使用向?qū)Э梢詣?chuàng)建N-up顯示樣式的數(shù)據(jù)窗口,需要指定的一個(gè)重要參數(shù)是每行重復(fù)顯示的字段的次數(shù),也就是Number of rows per detail band,缺省為2。該參數(shù)的大小視需要顯示的字段總長度和報(bào)表使用的打印紙寬度而定。N-up顯示樣式的數(shù)據(jù)從左到右顯示。另外,當(dāng)選中行數(shù)據(jù)時(shí),并不能選中實(shí)際上看到的一整行,而是邏輯上的一行。-CrossTab:當(dāng)需要做數(shù)據(jù)統(tǒng)計(jì)和分析時(shí),最好使用CrossTab顯示樣式的數(shù)據(jù)窗口,雖然報(bào)表在顯示格式方面不適合中國人的口味,但還沒有哪個(gè)C/S數(shù)據(jù)庫開發(fā)軟件將數(shù)據(jù)統(tǒng)計(jì)分析做得如此之好。使用CrossTab顯示樣式可以創(chuàng)建復(fù)雜的分類統(tǒng)計(jì)表,不管是表頭分類還是行分類。創(chuàng)建CrossTab顯示樣式的數(shù)據(jù)窗口時(shí),有幾個(gè)重要參數(shù)需要指定。這些重要參數(shù)是行、列和統(tǒng)計(jì)值。每個(gè)參數(shù)可以指定多個(gè)字段,也可以使用表達(dá)式。當(dāng)指定多個(gè)字段(或表達(dá)式)時(shí),字段的順序決定在表中的分組順序。比如,統(tǒng)計(jì)某銷售公司某年各個(gè)月份各種產(chǎn)品、不同花色在各個(gè)地區(qū)的銷售情況,可以用月份和地區(qū)作為列,用產(chǎn)品名稱和花色作為行。在Columns列表框中按Month、Region的順序加入字段,沒有Month可以使用表達(dá)式Month(sales_date)來獲取銷售時(shí)的月份。Rows列表框中的字段對應(yīng)數(shù)據(jù)窗口中左側(cè)的表頭,Columns列表框中的字段對應(yīng)數(shù)據(jù)窗口中上面 表頭,Values是出現(xiàn)在數(shù)據(jù)窗口表格單元中的統(tǒng)計(jì)值;Source Data列表框中是可以使用的字段,使用鼠標(biāo)選中并拖動到相應(yīng)的列表框即可。在Rows、Columns、Values三個(gè)列表框中都可以用鼠標(biāo)雙擊已有字段,可以在接下來的對話框中輸入組合表達(dá)式。比如,使用year作為Columns是可以的,也可以雙擊然后在上面的窗口中輸入下面的表達(dá)式:year+年-Graph:Graph顯示樣式的數(shù)據(jù)窗口可以以多種圖形樣式將數(shù)據(jù)顯示出來,例如餅圖、柱狀圖、折線圖等。Graph顯示樣式的數(shù)據(jù)窗口給用戶的感覺是使用方便、表達(dá)直觀。從開發(fā)者的角度來講,創(chuàng)建Graph顯示樣式的數(shù)據(jù)窗口也是很簡單的事情,所以在開發(fā)應(yīng)用程序時(shí)不要忘記這費(fèi)力不多卻很受用戶歡迎的顯示樣式。創(chuàng)建Graph顯示樣式的數(shù)據(jù)窗口時(shí),最重要的參數(shù)是Category、Values及Series。在創(chuàng)建向?qū)е锌梢灾付ㄟ@幾個(gè)參數(shù)。指明這三個(gè)參數(shù)的操作很簡單,在下拉列表框中選擇合適的字段即可。Category可以理解成顯示在橫向坐標(biāo)鈾上的字段,Values可以理解成顯示在縱向坐標(biāo)軸上的字段,而Series是橫向坐標(biāo)軸上同組比較時(shí)的分組標(biāo)準(zhǔn)。-Composite: 這種顯示樣式的數(shù)據(jù)窗口可以將多種類型的、多個(gè)邏輯上毫不相關(guān)的數(shù)據(jù)窗口放置到一起,是一種靈活的數(shù)據(jù)表現(xiàn)形式。因?yàn)镃omposite顯示樣式的數(shù)據(jù)窗口不允許修改其中的數(shù)據(jù),所以不能用于數(shù)據(jù)錄入和數(shù)據(jù)修改,只能在報(bào)表時(shí)使用這種顯示祥式的數(shù)據(jù)窗口。使用這種顯示樣式的數(shù)據(jù)窗口創(chuàng)建報(bào)表,經(jīng)常將對同一問題不同表現(xiàn)形式的數(shù)據(jù)窗口或者是關(guān)系緊密的數(shù)據(jù)放到一起。例如,將幾個(gè)關(guān)鍵數(shù)據(jù)的統(tǒng)計(jì)結(jié)果以Graph顯示樣式顯示在最上面,用CrossTab類型的數(shù)據(jù)窗口將比較詳細(xì)的數(shù)據(jù)統(tǒng)計(jì)結(jié)果顯示在中間,然后是Grid類型的詳細(xì)數(shù)據(jù),這樣的報(bào)表數(shù)據(jù)表現(xiàn)能力要比任何單一的一種數(shù)據(jù)窗口要強(qiáng)得多。-RichText:RichText祥式的數(shù)據(jù)窗口使數(shù)據(jù)庫中的數(shù)據(jù)和文字可以在一起排版,可以方便地特?cái)?shù)據(jù)庫中的數(shù)據(jù)和文字內(nèi)容一起形成文檔、報(bào)告等;提供了很強(qiáng)的文字編輯處理能力,可以很方便地處理文字的多種格式:可以開發(fā)更有表現(xiàn)力的應(yīng)用系統(tǒng),自動生成報(bào)告、文檔資料,省去了使用PowerBuilder的應(yīng)用程序卻需要切換到其他文字處理軟件中的麻煩。-OLE 2.0:OLE是Object Link and Embedding的字頭縮寫,表示對象鏈接和嵌入。使用這種技術(shù),可以將其他軟件的功能引入到PowerBuilder開發(fā)的應(yīng)用程序中。PowerBuilder中不僅提供了OLE 2.0顯示樣式的數(shù)據(jù)窗口,而且在窗口中提供了OLE 2.0控件。例如,在數(shù)據(jù)庫中保存的圖像在OLE 2.0顯示樣式的數(shù)據(jù)窗口中,可以借助一些專門的圖像處理軟件來處理,并可以把處理結(jié)果返回保存到數(shù)據(jù)庫中。只有當(dāng)數(shù)據(jù)庫的表中包含blob類型的字段時(shí),才有必要使用OLE 2.0顯示樣式的數(shù)據(jù)窗口。將blob類型的字段作為OLE 2.0列,在處理其中的數(shù)據(jù)時(shí),可以直接觸發(fā)調(diào)用相關(guān)的軟件進(jìn)行處理,并能夠?qū)⑻幚斫Y(jié)果返回保存到數(shù)據(jù)庫中。例如,某字段中保存的是Excel文檔,可以創(chuàng)建OLE 2.0顯示樣式的數(shù)據(jù)窗口,當(dāng)雙擊該字段時(shí)可以調(diào)用Excel,然后在Excel中編輯處理數(shù)據(jù),保存編輯結(jié)果返回到數(shù)據(jù)窗口時(shí),可以將結(jié)果反映到數(shù)據(jù)窗口中。創(chuàng)建OLE 2.0顯示樣式的數(shù)據(jù)窗口,需要指定三類參數(shù)。Source Data框中顯示的是所有可用字段,可以使用鼠標(biāo)選中并拖動到其他兩個(gè)列表框中;Group by列表框中顯示的是用來分組的字段,由于OLE 2.0數(shù)據(jù)窗口的特殊性,它的分組不在設(shè)計(jì)時(shí)創(chuàng)建,只能在向?qū)е袆?chuàng)建;Target Data框中顯示的是在數(shù)據(jù)窗口中要顯示的字段,使用了分組,則對該框中的字段做統(tǒng)計(jì)(字符串型的列將統(tǒng)計(jì)記錄數(shù),數(shù)值型的列將統(tǒng)計(jì)累加和),沒有使用分組,則直接顯示它們的值。接下來要設(shè)置的是和OLE對象關(guān)系緊密的內(nèi)容-/數(shù)據(jù)窗口對象的畫板、band和層次-數(shù)據(jù)窗口畫板整個(gè)數(shù)據(jù)窗口畫板由6個(gè)視窗構(gòu)成,分別是:Design:設(shè)計(jì)數(shù)據(jù)窗口對象視窗,可以使用菜單Design-Options來改變Design窗口的外觀Preview:預(yù)覽數(shù)據(jù)窗口的外觀,顯示相應(yīng)表中的對應(yīng)的數(shù)據(jù),及對數(shù)據(jù)的各種操作Control List:數(shù)據(jù)窗口中所有的部件構(gòu)成的一個(gè)列表Data:顯示此數(shù)據(jù)窗口對象所對應(yīng)的表中的各個(gè)字段的值Properties:屬性Column Specification:該視窗是個(gè)比較重要的視窗,可以增加、刪除、修改列的初始值、檢驗(yàn)表達(dá)式或者校驗(yàn)信息-數(shù)據(jù)窗口對象的band數(shù)據(jù)窗口用帶-band將其分隔成四部分:Header:出現(xiàn)在每頁的頂端,用于顯示標(biāo)題和列的題頭Detail:包含了數(shù)據(jù)窗口對象的主體,顯示了各行的數(shù)據(jù)和相關(guān)的標(biāo)簽。在DataWindow對象高度的范圍內(nèi),細(xì)節(jié)條能夠按照需要自動擴(kuò)大任意倍Footer:出現(xiàn)在每頁的底端,用來顯示文本和頁號Summary:出現(xiàn)在DataWindow對象的最后一頁,用來為整個(gè)數(shù)據(jù)窗口對象顯示總計(jì)和總和-數(shù)據(jù)窗口對象的層次數(shù)據(jù)窗口分為三個(gè)層次,即背景層(background)、帶層(band)和前景層(foreground)。在數(shù)據(jù)窗口上放置的部件可以屬于任意一個(gè)層次,但如果設(shè)計(jì)不當(dāng),數(shù)據(jù)顯示會凌亂不堪。通常情況下,背景層放置繪圖對象以設(shè)置漂亮的背景;帶層放置字段、計(jì)算域、標(biāo)簽等和報(bào)表內(nèi)容緊密相關(guān)的內(nèi)容,在運(yùn)行狀態(tài)下,PowerBuilder會自動格式化帶層;前景層放置一些無需打印的內(nèi)容,最典型的是Graph部件。 設(shè)置部件屬于哪個(gè)層的方法是首先選中部件,然后在屬性視窗中進(jìn)入到Positon屬性頁,修改該部件的Layer屬性,在Layer下拉列表框中選擇適當(dāng)?shù)膶蛹纯伞?不管哪個(gè)層上的對象,鼠標(biāo)右鍵彈出菜單中都有Send to Back和Bring to Font兩個(gè)選項(xiàng)。這兩個(gè)功能和層之間有什么關(guān)系呢?沒有任何關(guān)系!不管部件屬于哪個(gè)層,都可以使用這兩個(gè)菜單項(xiàng),使用完后部件也不會屬于其他的層,只是重疊部件的前后關(guān)系發(fā)生了變化。所以當(dāng)部件沒有重疊時(shí),使用這兩個(gè)菜單選項(xiàng)沒有什么意義,雖然這兩個(gè)菜單選項(xiàng)也可以使用。 選中數(shù)據(jù)窗口上的部件不區(qū)分層。也就是說,選中操作不受層的影響,可以同時(shí)選中不同層上的部件。當(dāng)設(shè)置了較大的背景圖片時(shí),可能不能使用拖動鼠標(biāo)來直接選中多個(gè)對象,因?yàn)橥蟿訒r(shí),鼠標(biāo)的起點(diǎn)可能就在背景圖片上。解決方法是在所有操作都完成后再放置背景圖片,也可首先將背景圖片剪切掉,進(jìn)行其他操作后再粘貼圖片,或者先將背景圖片拖到?jīng)]有其他對象的位置上,操作完成后再將圖片背景拖放到原來位置-/數(shù)據(jù)窗口對象及字段的修改屬性數(shù)據(jù)窗口只能修改一個(gè)數(shù)據(jù)表。當(dāng)數(shù)據(jù)窗口的數(shù)據(jù)來源于不止一個(gè)數(shù)據(jù)表時(shí),可以用腳本控制數(shù)據(jù)窗口的修改屬性來對數(shù)據(jù)表逐個(gè)進(jìn)行修改。當(dāng)數(shù)據(jù)窗口是用來接受用戶的手工錄入數(shù)據(jù)時(shí),應(yīng)該設(shè)置兩方面的屬性才能確保數(shù)據(jù)窗口能夠用來修改數(shù)據(jù)表。一個(gè)是修改數(shù)據(jù)窗口的修改屬性,另一個(gè)是用戶可以修改的字段的相關(guān)屬性值-數(shù)據(jù)窗口對象的修改屬性Rows-Update Properties如果數(shù)據(jù)窗口對應(yīng)的數(shù)據(jù)表中定義了主鍵或者唯一性索引,則數(shù)據(jù)窗口創(chuàng)建時(shí)默認(rèn)的就是允許修改,并且正確設(shè)置了所有的修改屬性。否則就需要手工進(jìn)行設(shè)置。當(dāng)增加、刪除、或者重新選擇了字段時(shí),PB將數(shù)據(jù)窗口的的修改屬性為不允許,這時(shí)也應(yīng)該進(jìn)行手工設(shè)置。Allow Updates:允許更新。Table to Update:指定要被更新的表。Where Clause for Update/Delete:配置如何在Update和Delete SQL語句中構(gòu)造where子句1、Key Columns 當(dāng)開發(fā)單用戶應(yīng)用程序或者用戶都以加鎖方式訪問數(shù)據(jù)庫時(shí)可以選中該選項(xiàng)。該選項(xiàng)表示數(shù)據(jù)窗口只使用在“Unique Key Column”列表框中指定的唯一列進(jìn)行數(shù)據(jù)更新。使用這種方式來修改數(shù)據(jù)庫,并發(fā)性很高,不同的用戶都可以并發(fā)地訪問數(shù)據(jù)庫,但是數(shù)據(jù)的完整性卻非常差。因此要保護(hù)數(shù)據(jù)完整性,只有在單用戶程序或者加鎖訪問方式下才使用這種修改方式。如:在add_book(通訊錄)數(shù)據(jù)表中定義了4個(gè)字段,id為主鍵,name,address,telephone三個(gè)字段為可修改字段,有如下一條數(shù)據(jù)(001,陳,杭州,1395813)。若想把name改為“萬”,數(shù)據(jù)窗口產(chǎn)生如下的update語句:update add_book set name = 萬 where id = 0012、Key and Updateable Columns 這種修改方式是默認(rèn)的修改方式,它用主鍵列和可以修改的列來創(chuàng)建where子句,具有很高的數(shù)據(jù)完整性,但是并發(fā)性不是太好。推薦使用這種修改方式。保存數(shù)據(jù)時(shí)將產(chǎn)生如下的SQL語句:update add_book set name = 萬 where id = 001 and name = 陳 and address = 杭州 and telephone = 13958133、Key and Modified Columns 該方法是上面兩種方法的折中,當(dāng)不同的用戶并發(fā)修改同一行數(shù)據(jù)的不同字段時(shí),都能成功修改,所以它的并發(fā)性有了一定的限制,數(shù)據(jù)的完整性比第一種修改方式有所提高。這種修改方式使用主鍵和數(shù)據(jù)發(fā)生了變化的列來產(chǎn)生where子句。保存數(shù)據(jù)時(shí)產(chǎn)生如下的SQL語句:update add_book set name = 萬 where id = 001 and name = 陳Key Modification:該組框用來指定當(dāng)用戶修改了主鍵時(shí),數(shù)據(jù)窗口如何來更新數(shù)據(jù)表中的主鍵字段。有兩種選擇Use Delete then Insert和Use Update。第一個(gè)選項(xiàng)是先刪除原有的主鍵值,然后再使用新的主鍵值插入一個(gè)完整的行。使用這種更新主鍵的方式可以減少組織數(shù)據(jù)的工作量,但在數(shù)據(jù)庫中各個(gè)數(shù)據(jù)表之間存在父子制約關(guān)系,并且依賴該主鍵的外部鍵被指定為級聯(lián)刪除時(shí),操作就不會成功的。因?yàn)榧壜?lián)刪除方式要求當(dāng)依賴主鍵的外部鍵有數(shù)據(jù)時(shí)就不能刪除主鍵。當(dāng)DBMS允許更新主鍵列時(shí),可以使用第二個(gè)選項(xiàng),該選項(xiàng)直接修改主鍵值,所以防止了級聯(lián)刪除帶來的操作不成功的問題。Updateable Columns:指定被更新的字段。當(dāng)數(shù)據(jù)窗口中的字段來自不止一個(gè)數(shù)據(jù)表時(shí),這時(shí)一定要選擇同一個(gè)表中的字段,因?yàn)橐粋€(gè)數(shù)據(jù)窗口一次只能更新一個(gè)數(shù)據(jù)表,當(dāng)數(shù)據(jù)窗口中增添了字段時(shí),新增添的字段往往是不允許修改的,一定要在該列表框中選擇該字段。Unique Key Column:選擇唯一標(biāo)識一行的列。如果在定義數(shù)據(jù)表時(shí)定義了主鍵,單擊右面的“Primary Key”按鈕可以在該列表框中選中主鍵。Identity Column:該下拉列表框用于為下拉列表框中所指定的列(通常是主鍵列)生成序號,當(dāng)且僅當(dāng)DBMS支持序號生成時(shí)該作用才有效-數(shù)據(jù)窗口對象字段的修改屬性*相關(guān)屬性數(shù)據(jù)窗口中字段的相關(guān)屬性:1、字段的Tab Order值2、字段的Protect屬性3、字段的DisplayOnly屬性4、字段的Visible屬性 上述屬性前3個(gè)中任意一個(gè)都可以讓用戶無法修改字段中的數(shù)據(jù):最后一個(gè)屬性決定字段是否可見,不可見的字段不管其他屬性如何設(shè)置用戶都無法修改字段中的數(shù)據(jù)。 當(dāng)字段的Tab Order值為0時(shí),肯定不能獲得焦點(diǎn),但是非0時(shí)也不一定能獲得焦點(diǎn),還得看字段的Protect屬性是否設(shè)置為1;當(dāng)字段的Tab Order值不為0,Protect屬性不為1并且字段的Visible屬性為True時(shí),肯定可以獲得焦點(diǎn)。DisplayOnly屬性和焦點(diǎn)是否能夠獲得無關(guān)(即選中Displayonly時(shí)可以選中字段,可以復(fù)制,但不能更新)。*數(shù)據(jù)保護(hù)可以用以下三種方法將字段設(shè)置為用戶不可修改的字段:(1)在數(shù)據(jù)窗口設(shè)計(jì)時(shí)將這些字段的TabOrder值置為0,以使該字段不能獲得焦點(diǎn),用戶無法選中和編輯該字段。(2)將字段的DisplayOnly屬性設(shè)置為True。該字段可以獲得焦點(diǎn),可以選中該字段,還可以拷貝復(fù)制該字段的內(nèi)容,但不能編輯該字段中的內(nèi)容。(3)設(shè)置字段的Protect屬性。字段的Protect屬性如果設(shè)置為“1”,則該字段的TabOrder值即使不是0也不會得到焦點(diǎn)。使用該屬性可以保護(hù)一些重要的數(shù)據(jù)。-/數(shù)據(jù)窗口對象的字段操作-字段的編輯類型PB提供了六種編輯類型:1)Edit是字段的缺省編輯類型,可以用于所有類型的字段上。2)CheckBox編輯類型在這里是一種狀態(tài)選擇,可以為其規(guī)定選中和非選中狀態(tài)時(shí)的文字,當(dāng)字段的輸入內(nèi)容非此即彼時(shí),可以使用這種編輯類型。3)DropDownDW是一種用來限制用戶輸入數(shù)據(jù)的非常好的編輯方式,用戶只能通過選擇錄入數(shù)據(jù),并且選擇的數(shù)據(jù)來自其他數(shù)據(jù)窗口的某字段,從而可以確保數(shù)據(jù)的一致性和正確性。當(dāng)錄入外部鍵時(shí),經(jīng)常使用這種編輯類型。使用這種方式可以增強(qiáng)程序的適應(yīng)性和靈活性。4)DropDownListBox在外觀上和DropDownDW類型相同,但它的數(shù)據(jù)不會發(fā)生變化,是固定的,適合用來錄入諸如學(xué)歷、省份、月份等范圍固定的數(shù)據(jù)項(xiàng)。5)EditMask經(jīng)常用來錄入整型或日期型數(shù)據(jù)。它底優(yōu)勢在于可以給用戶提供清晰的數(shù)據(jù)格式,對用戶的操作有很強(qiáng)的提示性;還可以為該編輯類型設(shè)置Spin,以便用鼠標(biāo)單擊上下箭頭來增大或減小數(shù)據(jù)。6)Radio Buttons在錄入取值為比較小范圍內(nèi)的數(shù)據(jù)經(jīng)常使用,用戶使用鼠標(biāo)進(jìn)行選擇操作即可錄入數(shù)據(jù),操作比較方便。-字段的編輯格式1、Limit - 限制輸入長度可以規(guī)定在該字段中輸入的信息長度,缺省是字段在數(shù)據(jù)表中定義的長度。如果在數(shù)據(jù)窗口創(chuàng)建以后又添加了字段,這時(shí)缺省長度是0,這時(shí)用戶所能輸入的長度取決于編輯框的長度(如果沒有設(shè)置字段的AutoHorz Scroll屬性或者設(shè)置了該屬性并且Limit屬性為0,則用戶輸入的最大長度取決于編輯框所能接受的最大長度),應(yīng)該手工修改其限制長度為字段在表中定義的長度。修改方法是,在字段屬性窗口的Edit頁Limited輸入框中輸入一個(gè)整數(shù)即可2、Display Only - 不允許用戶修改選中字段對應(yīng)屬性窗口中的Display Only選項(xiàng)即可。在程序運(yùn)行時(shí),該字段中的內(nèi)容可以顯示,并且可以獲得焦點(diǎn),但是用戶不能修改字段的內(nèi)容,從而起到保護(hù)數(shù)據(jù)的作用。建議使用這種方式來保護(hù)字段中的數(shù)據(jù),雖然不能編輯字段內(nèi)容,但可以選中并復(fù)制,比設(shè)置字段的Tab Order值有更多的靈活性3、Required - 必須輸入有些信息要求用戶必須輸入,這時(shí)可以選中字段的Required屬性。不輸入數(shù)據(jù)就無法離開該字段。4、Password - 密碼輸入選中字段屬性窗口中Edit頁上的Password屬性即可,字段上數(shù)據(jù)顯示為“*”號5、Format - 格式屬性視圖中Edit屬性頁中包含F(xiàn)ormat屬性,并且還有一個(gè)專門的Format屬性頁。Edit屬性頁的Format屬性可以設(shè)置字段編輯時(shí)的顯示格式,F(xiàn)ormat屬性頁中的Format設(shè)置字段不被編輯時(shí)的顯示格式。Format的設(shè)置:Numbers:可以使用“0”、“#”、“.”和一些算術(shù)符號來表示,使用保留字“general”或者“Currency”時(shí),PB將使用操作系統(tǒng)的設(shè)置格式。關(guān)于操作系統(tǒng)的格式,Windows可以在控制面板的區(qū)域設(shè)置中修改。General 5 -5 0.50 5 -5 10.00 5.00 -5.00 0.50#,#0 5 -5 1#,#0.00 5.00 -5.00 0.50$#,#0;($#,#0) $5 ($5) $1$#,#0;-$#,#0 $5 -$5 $1$#,#0;RED($#,#0) $5 ($5) $1$#,#0.00;($#,#0.00) $5.00 ($5.00) $0.50$#,#0.00;RED($#,#0.00)$5.00 ($5.00) $0.500% 500% -500% 50%0.00% 500.00% -500.00% 50.00%0.00E+00 5.00E+00 -5.00E+00 5.00E-01Strings:可以用兩部分來表示該類型數(shù)據(jù)的顯示,前面是必需部分,后面是NULL時(shí)表示?!啊贝硪粋€(gè)字符。如:red()-Dates:使用幾個(gè)特定的字母代表特定的含義,它們的組合構(gòu)成Data類型的格式。d 表示天的數(shù)字,沒有前綴0 9dd 表示天的數(shù)字,有前綴0 09ddd 星期幾的英文縮寫 Mondddd 星期幾的英文全稱 Mondaym 沒有前綴0的月份 6mm 有前綴0的月份 06mmm 月份的英文縮寫 Junmmmm 月份的英文全稱 Juneyy 兩位數(shù)字表示的年份 97yyyy 四位數(shù)字表示的年份 1997兩位的年份如果小于50,PB則認(rèn)為是21世紀(jì);大于50則認(rèn)為是20世紀(jì)。比如,“85”表示的年份PB認(rèn)為是“1985”年;“40”表示的年份PB認(rèn)為是“2040”。Times:使用幾個(gè)特定的字母代表特定的含義,它們的組合構(gòu)成Time類型的格式。h 沒有前綴0的表示小時(shí)的數(shù)字hh 有前綴0的表示小時(shí)的數(shù)字m 沒有前綴0的表示分鐘的數(shù)字,必須出現(xiàn)在h或者h(yuǎn)h之后mm 有前綴0的表示分鐘的數(shù)字,必須出現(xiàn)在h或者h(yuǎn)h之后s 沒有前綴0的表示秒的數(shù)字,必須出現(xiàn)在m或者mm之后ss 有前綴0的表示秒的數(shù)字,必須出現(xiàn)在m或者mm之后ffffff 沒有0前綴的毫秒,必須出現(xiàn)在s或者ss之后AM/PM 兩個(gè)大寫的縮寫字母,代表上午和下午am/pm 兩個(gè)小寫的縮寫字母,代表上午和下午A/P 一個(gè)大寫的縮寫字母,代表上午和下午a/p 一個(gè)小寫的縮寫字母,代表上午和下午6、Auto Selection - 自動選中當(dāng)字段獲得焦點(diǎn)時(shí),自動選中當(dāng)前行字段中的內(nèi)容,這在需要刪除或者拷貝時(shí)用處比較大。選中字段對應(yīng)屬性窗口中Edit頁上的auto selection即可。7、設(shè)置滾動條Auto Horz Scroll-自動橫向滾動Auto Vert Scroll-自動縱向滾動Horz Scroll Bar -橫向滾動條Vert Scroll Bar -縱向滾動條8、Use Code Table - 使用Code Table使用Code Table可以自動轉(zhuǎn)換用戶的輸入信息,也可以校驗(yàn)用戶的輸入信息是否正確。a)選中字段的Use Code Table屬性b)在Code Table中定義代碼表,該輸入框中包括兩列,Display Value用來進(jìn)行顯示,Data Value是和該顯示值對應(yīng)的實(shí)際值,是保存在數(shù)據(jù)庫中的值。c)選中Validate選項(xiàng),從而可以確保用戶的輸入必須是代碼表中定義了的,否則就出現(xiàn)報(bào)錯(cuò)信息。9、Show Focus Rectangle - 顯示焦點(diǎn)邊框焦點(diǎn)邊框就是當(dāng)字段獲得焦點(diǎn)時(shí),在字段編輯框的周圍顯示一個(gè)矩形邊框,可以醒目地提醒用戶當(dāng)前的輸入位置,這是一個(gè)比較好的界面,建議使用該屬性。選中字段對應(yīng)屆性窗口Edit頁中的Show Focus Rectangle即可。Tabular默認(rèn)選中10、Accelerator - 設(shè)置加速度可以為字段設(shè)置加速鍵,以便很快捷地定位到特定的字段上。只要在字段對應(yīng)屬性窗口Edit頁的Accelerator編輯框中輸入字母或數(shù)字即可,只能輸入一個(gè)字符。加速鍵由Alt和所輸入的字母或數(shù)字構(gòu)成。程序運(yùn)行時(shí),使用加速鍵可以將焦點(diǎn)馬上轉(zhuǎn)移到有該加速鍵的字段上。11、Case - 選擇大小寫可以給字符型字段指定大寫、小寫、還是原樣顯示輸入內(nèi)容。在字段對應(yīng)的屬性窗口Edit頁中的Case下拉列表框中選擇即可。Up代表始終大寫,Any代表原樣,Lower代表小寫。-增加和刪除字段進(jìn)入數(shù)據(jù)窗口對象的SQL Select畫板后可以對字段進(jìn)行以下三種操作:1、增加字段2、刪除字段3、重選字段。取消某字段,再重新選中該字段。這看起來好像沒有什么作用。實(shí)際上,這樣做可以同步數(shù)據(jù)窗口對象和數(shù)據(jù)表的定義。當(dāng)創(chuàng)建了數(shù)據(jù)窗口后又修改了該數(shù)據(jù)窗口對象對應(yīng)數(shù)據(jù)表中某字段的定義,例如,增加了字段的長度,這是應(yīng)該保證字段和數(shù)據(jù)窗口中的定義一致,使用上面的方法就可以做到數(shù)據(jù)的一致*當(dāng)添加字段時(shí),PB不能正確設(shè)定新添加字段的默認(rèn)屬性,必須認(rèn)真檢查新添加的屬性,最重要的屬性是Limit的大小以及Show Focus Rectangle、Auto Selection和Auto Horz Scroll屬性是否選中。如果數(shù)據(jù)窗口對應(yīng)的數(shù)據(jù)表中既沒有定義主鍵也沒有定義唯一性索引,并且數(shù)據(jù)窗口還是用來進(jìn)行數(shù)據(jù)錄入的,這時(shí)不管是刪除了數(shù)據(jù)窗口中的字段或添加了字段,還是重新選擇了字段,都要仔細(xì)檢查并重新設(shè)置數(shù)據(jù)窗口的Update屬性了,如果數(shù)據(jù)表中定義了主鍵或者唯一性索引,就不用考慮這個(gè)問題了。-字段的顯示順序在大多數(shù)顯示樣式的數(shù)據(jù)窗口中都可以使用鼠標(biāo)拖放直接改變字段的位置,惟獨(dú)grid類型的數(shù)據(jù)窗口在Design窗口中不能。解決方法是,在預(yù)覽窗口中拖動字段到適當(dāng)?shù)奈恢?,Design窗口中的字段順序就會自動做相應(yīng)的調(diào)整。 可以用字段名或者字段號來標(biāo)識一個(gè)字段。例如,產(chǎn)生數(shù)據(jù)窗口的SQL語句是: select name,sex,address from addr_book; 在該數(shù)據(jù)窗口中,name和#1都是指同一個(gè)字段。顯示位置的調(diào)整不會影響字段號,字段號和產(chǎn)生數(shù)據(jù)窗口的SQL語句中字段的順序相對應(yīng),在SQL語句中,第一個(gè)字段對應(yīng)的字段號為#1,依次增加一個(gè)。要調(diào)整字段號的順序,可以進(jìn)入到SQL select畫板,取消所有字段,再按照正確的字段順序重新選擇字段;或者切換到語法狀態(tài),手工修改SQL語法中字段的順序。經(jīng)過這樣的調(diào)整后,可能字段在數(shù)據(jù)窗口中顯示的順序沒有變化,但是字段號卻進(jìn)行了重新分配。因?yàn)樵诖翱谀_本中引用數(shù)據(jù)窗口的數(shù)據(jù)時(shí),有可能用到字段號,在數(shù)據(jù)窗口的計(jì)算域中也有可能用到字段號,所以要保證字段號正確設(shè)定,尤其是習(xí)慣使用字段號引用數(shù)據(jù)時(shí)。-/計(jì)算域是指在數(shù)據(jù)窗口的設(shè)計(jì)狀態(tài)下添加到數(shù)據(jù)窗口中的Computed Field部件,它是一個(gè)數(shù)據(jù)窗口部件,具有部件的屬性特征。計(jì)算字段是指在數(shù)據(jù)窗口對應(yīng)的SQL語句中添加的表達(dá)式,計(jì)算字段是一個(gè)字段,它具有字段的屬性特征。它們的區(qū)別主要體現(xiàn)在腳本中。計(jì)算字段因?yàn)榫哂凶侄蔚奶卣?,所以SetItem等對字段操作的函數(shù)可以用來操作計(jì)算字段而不能來操作計(jì)算域,當(dāng)需要在程序中動態(tài)設(shè)置值時(shí),就應(yīng)該使用計(jì)算字段而不能使用計(jì)算域,典型情況是對計(jì)算出來的值進(jìn)行誤差校正。這兩個(gè)對象都可以使用GetItem一類的函數(shù)來讀取取值。常用函數(shù):條件判斷If ( boolean, truevalue, falsevalue )Case ( column WHEN value1 THEN result1 WHEN value2 THEN result2 . ELSE resultelse )累積,(表格最右面一列各行是某列對應(yīng)行前面所有行的累加和)CumulativeSum(columnfor range)其中,column是列名、列號,或者是由列名、列號、常量、運(yùn)算符,甚至其他函數(shù)構(gòu)成的表達(dá)式,但取值必須是數(shù)值型的。For range是進(jìn)行累積的范圍。大多數(shù)顯示樣式的數(shù)據(jù)窗口都可以使用如下內(nèi)容。All:缺省值,累積指定列的所有取值Group n:在指定的分組內(nèi)對指定字段進(jìn)行累積運(yùn)算。Group是保留字,n代表組號,如1。Page:在頁范圍內(nèi)進(jìn)行累積運(yùn)算。百分比Percent ( column FOR range DISTINCT expres1 , expres2 , . )Percent可以用來計(jì)算某字段在指定范圍內(nèi)當(dāng)前行的取值占該范圍內(nèi)該字段累計(jì)和的比例。其中,column以及For range和上面CumulativeSum函數(shù)中的完全相同。選項(xiàng)DISTINCT用來指定只統(tǒng)計(jì)不相等的字段,表達(dá)式expresX是用來區(qū)分行是否相同的標(biāo)準(zhǔn)。該函數(shù)和表達(dá)式column/sum(column for range)是等價(jià)的。CumulativePercent(columnFOR range)用來計(jì)算當(dāng)前的累積和占總和的比例其中的column和for range和上面的相同。該函數(shù)和下面的表達(dá)式是等價(jià)的:CumulativeSum(column for range)/sum(column for range)引用不同行的數(shù)據(jù)在數(shù)據(jù)窗口的表達(dá)式中,可以直接使用列名數(shù)組引用不同行的字段值,下標(biāo)是一個(gè)相對數(shù),相對于當(dāng)前行而言的。例如,假設(shè)在數(shù)據(jù)窗口中有一列名為

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論