《數據窗口對象》doc版.doc_第1頁
《數據窗口對象》doc版.doc_第2頁
《數據窗口對象》doc版.doc_第3頁
《數據窗口對象》doc版.doc_第4頁
《數據窗口對象》doc版.doc_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論