版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 分類號 密級</p><p> 畢 業(yè) 設(shè) 計(論 文)</p><p> 題 目 大型機房空位指示系統(tǒng)設(shè)計 </p><p> 英文題目 The Design of the System to Show the Unused Comput
2、ers in Computer-rooms</p><p> 畢業(yè)設(shè)計(論文)任務(wù)書</p><p> 發(fā)出任務(wù)書日期: 2006年3月4日 </p><p> 指導(dǎo)教師簽名: 教研室主任簽名: </p><p><b> 摘 要<
3、/b></p><p> “大型機房空位指示系統(tǒng)”是一個能顯示各個大型機房中每臺電腦正在使用或空閑狀態(tài)的情況,能夠?qū)γ颗_電腦都能準(zhǔn)確定位顯示。用戶只要在服務(wù)器上通過軟件界面上各種窗口和菜單的控件按鈕,就能切換進(jìn)入查看機房的界面,就能很快知道任意一臺機器的使用情況,方便了機房管理員對每臺電腦的管理,減輕了他們的工作強度。</p><p> 本論文主要研究在PowerBuilder的
4、圖形開發(fā)環(huán)境下訪問Oracle數(shù)據(jù)庫,編輯設(shè)計一個能夠給用戶一個簡潔友好的對數(shù)據(jù)進(jìn)行查看的可視化平臺。</p><p> 該軟件的設(shè)計思路是判斷機器是否在用,看數(shù)據(jù)庫中的標(biāo)志位(計算機登陸系統(tǒng)時,會記錄在數(shù)據(jù)庫中的),根據(jù)據(jù)庫接口相數(shù)據(jù)庫中標(biāo)志位的位置又可以確定計算機的實際位置,然后與PowerBuilder的數(shù)連接,通過數(shù)據(jù)庫窗口顯示在軟件的界面上,最后是軟件的測試,能在Windows平臺上進(jìn)行運行。 <
5、;/p><p> 關(guān)鍵詞:PowerBuilder; Oracle數(shù)據(jù)庫; 應(yīng)用程序; ODBC; 控件;</p><p><b> ABSTRACT</b></p><p> The system can show whether each computer is used in many rooms, and can tell the a
6、ccurate position of each computer. The user can access the interface of inquiring computer rooms by various function button in the software interface, and can find out whether a computer is used. It conveniences the cont
7、rollers to manage the computers, and relieves their working burden.</p><p> My paper mainly studied how to access Oracle database in PowerBuilder, and design a simple and friendly visible interface for user
8、 to find out data.</p><p> The thought of software design is followed. Firstly, judge whether the computer is used and see the sign in database. Secondly, determine the position of computer by the sign in d
9、atabase. And then join the interface of PowerBuilder, and display the result in software interface. At last, compile the software, and build the application running in Windows.</p><p> Key words: PowerBuild
10、er; Oracle Database; Application; ODBC; Control;</p><p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 系統(tǒng)設(shè)計的特點和意義1</p><p> 1.2 開發(fā)工具現(xiàn)狀及
11、發(fā)展趨勢1</p><p> 1.3 開發(fā)工具的介紹1</p><p> 1.3.1 PowerBuilder介紹1</p><p> 1.3.2 Oracle數(shù)據(jù)庫介紹2</p><p> 2 系統(tǒng)的設(shè)計5</p><p><b> 2.1 思路5</b><
12、/p><p> 2.2 流程圖5</p><p> 3 系統(tǒng)界面的設(shè)計6</p><p> 3.1 安裝和認(rèn)識Powerbuilder9.06</p><p> 3.2 新建一個主窗口6</p><p> 3.3 創(chuàng)建菜單欄8</p><p> 3.4 主窗口和菜單
13、關(guān)聯(lián)10</p><p> 3.5 新建機房窗口11</p><p> 3.6 刪除窗口12</p><p> 3.7 圖形窗口13</p><p> 4 數(shù)據(jù)庫的連接15</p><p> 4.1 PowerBuilder與數(shù)據(jù)庫的關(guān)系15</p><p>
14、4.2 PowerBuilder與數(shù)據(jù)庫的連接15</p><p> 4.3 PB內(nèi)置Oracle數(shù)據(jù)庫接口的使用方法15</p><p> 4.4 數(shù)據(jù)庫的創(chuàng)建與連接18</p><p><b> 結(jié) 論20</b></p><p><b> 致 謝21</b><
15、/p><p><b> 參考文獻(xiàn)22</b></p><p><b> 附 錄23</b></p><p><b> 1 緒論</b></p><p> 1.1 系統(tǒng)設(shè)計的特點和意義</p><p> 隨著計算機科學(xué)技術(shù)和網(wǎng)絡(luò)通訊技術(shù)的迅
16、猛發(fā)展,計算機性能的逐漸增強,價格的逐漸降低,各大專院校的計算機實驗室也在不斷地擴大,一般院校的計算機實驗室少則幾百臺,多則上千臺計算機。這使得如何管理好這些計算機成為一個比較傷腦筋的問題。目前,絕大多數(shù)機房還處于原始的人工管理階段,而且大部分機房為了提高資源的利用率,都在業(yè)余時間對學(xué)生開放,這都為機房的管理增加了難度。開發(fā)一個既能保證學(xué)生上機方便又有利于機房管理的、比較實用的機房管理系統(tǒng)很有必要。</p><p&g
17、t; 本系統(tǒng)能顯示各個大型機房中每臺電腦正在使用或空閑狀態(tài)的情況,能夠?qū)γ颗_電腦都能準(zhǔn)確定位顯示。用戶只要在服務(wù)器上通過軟件界面上各種窗口和菜單的控件按鈕,就能切換進(jìn)入查看機房的界面,就能很快知道任意一臺機器的使用情況,提高機房的管理效率和管理質(zhì)量,降低管理人員的勞動強度,節(jié)約了人力資源。</p><p> 通過這次設(shè)計,綜合性地運用大學(xué)4年內(nèi)所學(xué)計算機方面的知識去分析、解決問題。在設(shè)計過程中,所學(xué)知識得到疏
18、理和運用,它既是一次檢閱,又是一次鍛煉。在作完畢業(yè)設(shè)計后,自己會感到實踐動手、動筆能力得到鍛煉,增強了即將跨入社會去競爭,去創(chuàng)造的自信心。</p><p> 1.2 開發(fā)工具現(xiàn)狀及發(fā)展趨勢</p><p> 設(shè)計這個系統(tǒng)的主要是在Windows XP環(huán)境下用PowerBuilder和Oracle數(shù)據(jù)庫兩個工具做成的。</p><p> PowerBuilde
19、r(以下簡稱PB)是數(shù)據(jù)庫應(yīng)用軟件的開發(fā)工具,是開發(fā)C/S體系結(jié)構(gòu)的一個很不錯的工具。但是,技術(shù)的發(fā)展對開發(fā)工具也提出了更多的要求。目前,PB還提供了對當(dāng)前熱門開發(fā)技術(shù)的支持,比如,.NET、Web Service、J2EE等等,并且還提供了B/S體系結(jié)構(gòu)應(yīng)用軟件的開發(fā),以及對第三方Web服務(wù)器、EJB服務(wù)器等的支持。對第三方服務(wù)器的支持標(biāo)志著Sybase公司對PB發(fā)展策略的巨大調(diào)整。原來Sybase一直不支持第三方服務(wù)器,只能將應(yīng)用部
20、署在EA Server上。雖然EA Server的理念還是不錯的,但是畢竟不能算是主流服務(wù)器。所以,限制了PB在B/S開發(fā)上的推廣,給人的感覺仍然是一個數(shù)據(jù)庫應(yīng)用軟件和C/S應(yīng)用軟件的開發(fā)工具,所以導(dǎo)致了很少新人加入,只有那些老的PB程序員忠誠的維護(hù)著PB。目前則完全不一樣了,WSDL、SOAP、Web Service、.NET等的強大支持,對Web Logic、Tomcat、EA Server等服務(wù)器的支持,使得PB成為一個開發(fā)的開發(fā)
21、環(huán)境,再加上眾所周知的優(yōu)秀C/S開發(fā)能力、功能強大的Data Window控件,所有這些必將帶來P</p><p> 1.3 開發(fā)工具的介紹</p><p> 1.3.1 PowerBuilder介紹</p><p> PB是著名的數(shù)據(jù)庫應(yīng)用開發(fā)工具生產(chǎn)廠商Sybase公司推出的產(chǎn)品,它完全按照客戶機/服務(wù)器體系結(jié)構(gòu)研制設(shè)計,在客戶機/服務(wù)器結(jié)構(gòu)中,它使用
22、在客戶機中,作為數(shù)據(jù)庫應(yīng)用程序的開發(fā)工具而存在。由于PB采用了面向?qū)ο蠛涂梢暬夹g(shù),提供可視化的應(yīng)用開發(fā)環(huán)境,使得我們利用PB,可以方便快捷地開發(fā)出利用后臺服務(wù)器中的數(shù)據(jù)和數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫應(yīng)用程序。</p><p> PowerBuilder的特點:</p><p> 1、它支持應(yīng)用系統(tǒng)同時訪問多種數(shù)據(jù)庫,其中既包括Oracle Sybase之類的大型數(shù)據(jù)庫,又包括FOXPRO之
23、類支持ODBC接口的小型數(shù)據(jù)庫,PB是完全可視化的數(shù)據(jù)庫開發(fā)工具,它提供了大量的控件,大大加快了項目的開發(fā)速度,也使開發(fā)者更容易掌握數(shù)據(jù)庫的開發(fā)。</p><p> 2、它使用的編程語言叫做工Power Script,它也是一種高級的,結(jié)構(gòu)化的編程語言。Power Script提供了一套完整的嵌入式SQL語句,開發(fā)人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問數(shù)據(jù)庫的能力??梢哉f
24、PB既適合初學(xué)者快速學(xué)習(xí)數(shù)據(jù)庫的開發(fā),又可以讓有經(jīng)驗的開發(fā)人員開發(fā)出功能強大的數(shù)據(jù)庫,是一種適用面非常廣的開發(fā)工具。</p><p> 3、PB是一個用來進(jìn)行客戶/服務(wù)器開發(fā)的完全的可視化開發(fā)環(huán)境。使用PB,你可以用一種可視的直觀的方式來創(chuàng)建應(yīng)用程序的用戶界面和數(shù)據(jù)庫接口。這是一個總的概念,實際上是開發(fā)人員使用PB去開發(fā)應(yīng)用程序,由于所開發(fā)的各種應(yīng)用程序充分利用了圖形用戶接口(GUI)的優(yōu)點,所以PB被認(rèn)為是一
25、個圖形工具。</p><p> 4、在客戶/服務(wù)器結(jié)構(gòu)的應(yīng)用中,PB具有描述多個數(shù)據(jù)庫連接與檢索的能力。特別是PB能從大多數(shù)流行的RDBMS中存取數(shù)據(jù),且不管數(shù)據(jù)存放在什么地方;另外,各種應(yīng)用程序又可以獨立于RDBMS,因為PB可以使用數(shù)據(jù)庫的標(biāo)準(zhǔn)操作語言SQL(結(jié)構(gòu)化查詢語言)進(jìn)行。</p><p> 5、使用PB,可以很容易地開發(fā)出功能強大的圖形界面的訪問服務(wù)器數(shù)據(jù)庫的應(yīng)用程序,P
26、B提供了建立符合工業(yè)標(biāo)準(zhǔn)的應(yīng)用程序(例如訂單登記、會計及制造系統(tǒng))所需的所有工具。</p><p> 6、PB應(yīng)用程序由窗口組成,這些窗口包含用戶與之交互的控件。開發(fā)人員可以使用所有標(biāo)準(zhǔn)空間(如按鈕、復(fù)選框、下拉式列表框或編輯框)以及PB提供的特殊的使應(yīng)用程序更易于開發(fā)和使用的控件。</p><p> 7、通常人們把PB看成是一種開發(fā)工具,實際上它比其他工具強得多,是一種強有力的開發(fā)環(huán)
27、境。開發(fā)人員不僅能用它來開發(fā)用戶容易使用的各種應(yīng)用程序還可以通過PB修改數(shù)據(jù)庫,利用400多個內(nèi)部定義函數(shù),可以開發(fā)能和其他應(yīng)用程序進(jìn)行的各種應(yīng)用程序。</p><p> 8、PB正在成為客戶/服務(wù)器應(yīng)用開發(fā)的標(biāo)準(zhǔn)。相對于其他任何客戶/服務(wù)器開發(fā)環(huán)境,PB使開發(fā)人員的工作更快、成本更低、質(zhì)量更高、功能更強。</p><p> 9、PB為應(yīng)用開發(fā)提供了全面綜合性的支持,可以分別概括為如下
28、幾點:事件驅(qū)動的應(yīng)用程序;功能強大的編程語言與函數(shù);面向?qū)ο蟮木幊?;跨平臺開發(fā);開放的數(shù)據(jù)庫連結(jié)系統(tǒng)。</p><p> 10、PB開發(fā)環(huán)境由一系列集成的圖形畫板(Painter)組成,應(yīng)用開發(fā)人員通過簡單的鼠標(biāo)操作即可設(shè)計、建立、交互檢驗和測試客戶/服務(wù)器應(yīng)用程序。</p><p> 1.3.2 Oracle數(shù)據(jù)庫介紹</p><p> Oracle是以高
29、級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,通俗地講它是用方便邏輯管理的語言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一[2]。</p><p><b> 數(shù)據(jù)庫的特點:</b></p><p> 1、Oracle引入了共享SQL和多線索服務(wù)器體系結(jié)構(gòu)。這就減少了Oracle的資源占用,并增強了Ora
30、cle的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶,而在高檔平臺上可以支持成百上千個用戶。</p><p> 2、提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。</p><p> 3、支持大量多媒體數(shù)據(jù),如二進(jìn)制圖形、聲音、動畫以及多維數(shù)據(jù)結(jié)構(gòu)等。</p><p> 4、提供了與
31、第三代高級語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操縱。加上它有許多優(yōu)秀的前臺開發(fā)工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速開發(fā)生成基于客戶端PC 平臺的應(yīng)用程序,并具有良好的移植性。</p><p> 5、提供了新的分布式數(shù)據(jù)庫能力??赏ㄟ^網(wǎng)絡(luò)較方便地讀寫遠(yuǎn)端數(shù)據(jù)庫里的數(shù)據(jù),并有對稱復(fù)制的
32、技術(shù)。</p><p><b> 存儲結(jié)構(gòu):</b></p><p><b> 1、物理結(jié)構(gòu)</b></p><p> Oracle數(shù)據(jù)庫在物理上是存儲于硬盤的各種文件。它是活動的,可擴充的,隨著數(shù)據(jù)的添加和應(yīng)用程序的增大而變化。</p><p> 下圖為Oracle數(shù)據(jù)庫擴充前后在硬盤上存
33、儲結(jié)構(gòu)的示意圖1-1:</p><p> 圖1-1數(shù)據(jù)庫擴充前后在硬盤上存儲結(jié)構(gòu)</p><p><b> 2、邏輯結(jié)構(gòu)</b></p><p> Oracle數(shù)據(jù)庫在邏輯上是由許多表空間構(gòu)成。主要分為系統(tǒng)表空間和非系統(tǒng)表空間。非系統(tǒng)表空間內(nèi)存儲著各項應(yīng)用的數(shù)據(jù)、索引、程序等相關(guān)信息。我們準(zhǔn)備上馬一個較大的Oracle應(yīng)用系統(tǒng)時,應(yīng)該創(chuàng)建
34、它所獨占的表空間,同時定義物理文件的存放路徑和所占硬盤的大小。</p><p> 下圖1-2為Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)與物理結(jié)構(gòu)的對照關(guān)系: </p><p> 圖1-2數(shù)據(jù)庫邏輯結(jié)構(gòu)與物理結(jié)構(gòu)的對照關(guān)系</p><p> 3.分布式數(shù)據(jù)庫管理</p><p><b> 1、原理</b></p>
35、<p> 物理上存放于網(wǎng)絡(luò)的多個Oracle數(shù)據(jù)庫,邏輯上可以看成一個單個的大數(shù)據(jù)庫。用戶可以通過網(wǎng)絡(luò)對異地數(shù)據(jù)庫中的數(shù)據(jù)同時進(jìn)行存取,而服務(wù)器之間的協(xié)同處理對于工作站用戶及應(yīng)用程序而言是完全透明的:開發(fā)人員無需關(guān)心網(wǎng)絡(luò)的連接細(xì)節(jié)、無需關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)接點中的具體分布情況、也無需關(guān)心服務(wù)器之間的協(xié)調(diào)工作過程。</p><p> 下圖為Oracle分布式數(shù)據(jù)庫原理示意圖1-3:</p>&
36、lt;p> 圖1-3分布式數(shù)據(jù)庫原理示意圖</p><p><b> 2、過程</b></p><p> 由網(wǎng)絡(luò)相連的兩個Oracle數(shù)據(jù)庫之間通過數(shù)據(jù)庫鏈接(DB-LINKS)建立訪問機制,相當(dāng)于一方以另一方的某用戶遠(yuǎn)程登錄所做的操作。但Oracle采用的一些高級管理方法,如同義詞(SYNONME)等使我們覺察不到這個過程,似乎遠(yuǎn)端的數(shù)據(jù)就在本地。數(shù)據(jù)庫
37、復(fù)制技術(shù)包括:實時復(fù)制、定時復(fù)制、儲存轉(zhuǎn)發(fā)復(fù)制。對復(fù)制的力度而言,有整個數(shù)據(jù)庫表的復(fù)制,表中部分行的復(fù)制。在復(fù)制的過程中,有自動沖突檢測和解決的手段。</p><p><b> 2 系統(tǒng)的設(shè)計</b></p><p><b> 2.1 思路</b></p><p> 在設(shè)計軟件之前,首先要確定軟件的主要結(jié)構(gòu),然后
38、要查閱收集相關(guān)的資料。每個軟件都有它自己獨特的顯示風(fēng)格以及整齊有序的窗口顯示排列。我想設(shè)計的風(fēng)格是簡潔明了,易于操作。幾乎不帶任何圖片和動畫的修飾。比如在一號機房的一臺機器上,學(xué)生進(jìn)入機器系統(tǒng)前是要輸入賬號和密碼的,然后才能使用電腦。在數(shù)據(jù)庫里已經(jīng)預(yù)先存儲了每臺機器的IP號和相對應(yīng)的機器號,這時機器就向書庫發(fā)送了信息,記錄這臺電腦在數(shù)據(jù)庫里的占位符就改變,假如“1”代表使用,“0”代表沒使用。然后只要服務(wù)器訪問數(shù)據(jù)庫,查尋里面每臺電腦占
39、位符的情況,就能在軟件的界面上顯示出電腦的使用情況。下面顯示的是軟件實現(xiàn)功能的關(guān)系圖2-1。</p><p> 圖2-1軟件實現(xiàn)功能的關(guān)系圖</p><p><b> 2.2 流程圖</b></p><p> 在開始設(shè)計軟件之前,必須將要實現(xiàn)功能的內(nèi)容用一個線框流程圖表示出來。比如,什么時候進(jìn)行跳轉(zhuǎn),跳到什么地方,如何返回等等??雌饋?,
40、似乎小題大做,可是這個過程是非常重要的,哪怕非常簡單,都會大大提高工作效率。首先是數(shù)據(jù)庫先對所有的機器進(jìn)行掃描,記錄機器的發(fā)送到數(shù)據(jù)庫里的信息,然后對數(shù)據(jù)進(jìn)行分析比較,確定機器對應(yīng)的占位符情況,就可以反映出相應(yīng)IP的機器使用情況,最后服務(wù)器通過訪問數(shù)據(jù)庫里的信息,調(diào)用出顯示機器狀態(tài)的圖片,可以非常直觀地表示出來(一種是正在使用的圖片,另一種是空閑狀態(tài)的圖片)。下面就是本軟件設(shè)計的大致流程圖2-2。</p><p>
41、;<b> 圖2-2流程圖</b></p><p> 3 系統(tǒng)界面的設(shè)計</p><p> 3.1 安裝和認(rèn)識Powerbuilder9.0 </p><p> 1.我安裝的是Powerbuilder9.0企業(yè)版,和其它軟件一樣,安裝時有安裝向?qū)Ы缑?、安裝授權(quán)界面、用戶安裝屬性和安裝位置設(shè)置界面等。</p><p
42、> 2.想學(xué)號一種開發(fā)工具,首先需要了解該軟件的特征,知道它的優(yōu)點,懂得該軟件的使用場合并熟悉它的工作環(huán)境。PB9.0正常啟動后,出現(xiàn)主窗口,從上往下包含標(biāo)題、菜單、工具欄、系統(tǒng)樹、工作區(qū)、剪貼窗口、輸出窗口和狀態(tài)欄等部件,在打開編程文件時,在工作區(qū)中將彈出編輯畫板和相應(yīng)的編輯畫板屬性窗口[3]。下面就是它的主窗口圖3-1。</p><p><b> 圖3-1主窗口圖</b><
43、;/p><p> 3.2 新建一個主窗口</p><p> 窗口在WINDOWS應(yīng)用程序中是一個極為重要的概念,它提供了應(yīng)用程序同用戶之間交互的非常直觀的界面,目前許多的WINDOWS下的開發(fā)工具都提供了可視化開發(fā)窗口對象的方法,使得開發(fā)一個窗口對象變得非常容易,下面就開始創(chuàng)建這里的應(yīng)用程序中要用到的主窗口。創(chuàng)建一個窗口的一般步驟如下:</p><p> 單擊菜
44、單欄的File,選擇下拉菜單的New項,選擇其中的“PB Object”選項頁,然后選擇其中的Window圖標(biāo)。如圖3-2。 </p><p><b> 圖3-2創(chuàng)建窗口圖</b></p><p> 點擊OK按鈕之后出現(xiàn)新建窗口的“窗口畫板”,此時對該窗口進(jìn)行編輯。如圖3-3。</p><p> 圖3-3軟件的窗口畫板</p>
45、<p> 在窗口上單擊右鍵并選擇屬性(Properties)命令,將彈出的窗口屬性設(shè)置為主窗口(即將Window Type設(shè)置為main)。在屬性窗口中的General標(biāo)簽中將Title中的內(nèi)容(txt)改為“大型機房空位指示系統(tǒng)”,并且在下面的屬性里分別設(shè)置窗口的大?。?834,1728),圖標(biāo)(),顯示位置(屏幕居中),和背景顏色“藍(lán)色”,在Script腳本欄里寫上命令“open(w_main)”。將設(shè)置好的窗口進(jìn)行
46、存盤,通過選擇菜單的Save按鈕保存,保存名是“w_main”,如圖3-4。</p><p> 圖3-4命名后的保存</p><p> 在建立窗口時,如果窗口的類型是mdihelp,則在窗口底部有一個狀態(tài)欄,它用來顯示菜單的Micro Help或程序執(zhí)行的狀態(tài)信息。如果窗口類型為mdi,則窗口的底部沒有狀態(tài)欄,這時設(shè)計的Micro Help無效[5]。</p><p
47、> 3.3 創(chuàng)建菜單欄</p><p> 在應(yīng)用程序所有的窗口中,出了子窗口和彈出窗口外還應(yīng)該有菜單。菜單是和當(dāng)前活動窗口的命令或者選項相關(guān)聯(lián)的列表。菜單中的每個選項稱為菜單項,菜單項顯示在菜單欄中或者顯示在下拉或?qū)盈B菜單中[4]。</p><p> 單擊菜單欄的File,選擇下拉菜單的New項,選擇其中的“PB Object”選項頁,然后選擇其中的Menu圖標(biāo),單擊OK進(jìn)入
48、菜單編輯畫板,如圖3-5。</p><p> 圖3-5菜單編輯窗口</p><p> 對于菜單編輯窗口,并沒有直接的菜單創(chuàng)建按鈕,創(chuàng)建菜單只能通過Insert→Insert Submenu Item逐項插入,然后根據(jù)需要對所插入的選項編寫腳本代碼來觸發(fā)事件[6]。</p><p> 我的菜單有三個主項,分別是文件(其下拉菜單項是新建,打開,關(guān)閉),編輯(其下拉
49、菜單項是圖形查看機房,列表查看機房,刪除機房),幫助(其下拉菜單項是軟件功能,關(guān)于軟件,顯示文字,顯示提示)。</p><p> 顯示文字是,菜單項設(shè)置Toolbar中圖標(biāo)的中文顯示,當(dāng)鼠標(biāo)放在圖標(biāo)上時可以彈出文字標(biāo)注,來解釋當(dāng)前圖標(biāo)的作用;顯示提示是,顯示菜單的圖標(biāo),當(dāng)選中是就在菜單欄下面一行顯示設(shè)置的圖標(biāo),沒選中時就不顯示。實現(xiàn)他們功能的腳本分別是:</p><p> applic
50、ation app</p><p> app=getapplication()</p><p> this.checked=not this.checked</p><p> app.toolbartext=this.checked</p><p><b> 顯示文字</b></p><p&g
51、t; application app</p><p> app=getapplication()</p><p> this.checked=not this.checked</p><p> app.toolbartips=this.checked</p><p><b> 顯示提示</b></p>
52、;<p> 對菜單項進(jìn)行專門的快捷鍵設(shè)置,需要修改菜單的屬性窗口。以菜單項“新建&N”為例,在菜單的屬性對話框中Shortcut Key的N,在其下方的復(fù)選框中選擇Shortcut Shift。其中N前面加一個“&”符號是為了讓N有個下劃線[7]。</p><p> 菜單的Micro Help是在設(shè)計菜單對象時設(shè)定的。由于菜單獨立的PB對象,所以設(shè)計菜單時和任何一個窗口或窗口類型
53、都沒有關(guān)系,也就是說,每個菜單都可以設(shè)置Micro Help,為菜單設(shè)置好的在程序運行時能否發(fā)揮作用則取決于該菜單所粘連的窗口類型,只有窗口類型為mdihelp時才有意義。它在畫板Properties視窗的General標(biāo)簽頁中輸入。在運行應(yīng)用程序時,當(dāng)鼠標(biāo)光標(biāo)移動到相應(yīng)的菜單項或相應(yīng)的工具欄中的圖標(biāo)并稍停片刻,在窗口底部的狀態(tài)欄中就可以看到相應(yīng)的提示信息。如圖3-6所示。</p><p> 圖3-6窗口的狀態(tài)
54、欄</p><p> 創(chuàng)建完之后需要存盤,保存為m_main。軟件整體關(guān)聯(lián)以后還要用到,再進(jìn)行修改。</p><p> 3.4 主窗口和菜單關(guān)聯(lián)</p><p> 需要和菜單關(guān)聯(lián)的窗口必須為MDI格式,然后在窗口的屬性界面中的菜單屬性和已建好的菜單關(guān)聯(lián)起來[8],如圖3-7。</p><p> 圖3-7關(guān)聯(lián)菜單窗口</p>
55、;<p> 設(shè)置好各個選項后,可以直接通過點擊菜單Run→Run運行該程序,程序暫時運行是的界面如圖3-8。</p><p><b> 圖3-8系統(tǒng)的界面</b></p><p> 3.5 新建機房窗口</p><p> 新建機房窗口,它的作用是當(dāng)用戶點擊菜單項的新建控件時,能彈出一個窗口,里面有三個SingleLine
56、Edit控件,三個StaticText控件,和兩個Button控件。只要用戶在這窗口里輸入新建機房里電腦的排列(如n行,m列),然后點擊確定,就能彈出想建機房的窗口了;也可以點取消,來關(guān)閉當(dāng)前的新建窗口。圖3-9。</p><p> 圖3-9新建機房窗口</p><p> 在這里,我還對輸入的行和列的數(shù)目進(jìn)行了限制,因為根據(jù)現(xiàn)在自己使用的電腦性能來看,新建窗口的數(shù)字不可能很大,容易造成
57、死機。我限定的行和列都不能超過100[9]。具體腳本如下:圖3-10。</p><p> 圖3-10消息提示窗口</p><p> if trim(sle_2.text)="" or trim(sle_3.text)="" then</p><p> messagebox("提示","請輸入
58、機房的行和列!")</p><p> if trim(sle_2.text)="" then</p><p> sle_2.setfocus()</p><p><b> else</b></p><p> sle_3.setfocus()</p><p>&
59、lt;b> end if</b></p><p><b> else</b></p><p> if long(sle_2.text)>100 or long(sle_3.text)>100 then</p><p> if long(sle_2.text)>100 then</p>&
60、lt;p> messagebox("提示","您輸入超過設(shè)計范圍,請輸入小于100的行!")</p><p> sle_2.setfocus()</p><p> sle_2.selecttext(1,len(sle_2.text))</p><p><b> else</b></p&
61、gt;<p> messagebox("提示","您輸入超過設(shè)計范圍,請輸入小于100的列!")</p><p> sle_3.setfocus()</p><p> sle_3.selecttext(1,len(sle_3.text))</p><p><b> end if</b>
62、;</p><p><b> else</b></p><p> close(w_new)</p><p> open(w_a_pic)</p><p><b> end if</b></p><p><b> end if</b><
63、/p><p><b> 3.6 刪除窗口</b></p><p> 刪除窗口的作用是,刪除已經(jīng)建有的機房。當(dāng)它彈出窗口時會顯示所有已經(jīng)建好的機房,以列表形式排列,前面都帶有復(fù)選框,來提供選擇。每個復(fù)選框都和相應(yīng)的機房對應(yīng),當(dāng)前面打勾確定關(guān)聯(lián),不打勾取消關(guān)聯(lián)。按下刪除建按鈕時,就可以進(jìn)行刪除了。這里,我為了在使用時可能進(jìn)行誤操作,寫了一個用來再次確定的提示窗口[10]
64、。圖3-11。其腳本是:</p><p> if cbx_1=ture or cbx_2=ture</p><p> messagebox("確定刪除","是否確定刪除當(dāng)前選擇的房?",exclamation!,okcancel!,2)</p><p><b> then</b></p>
65、<p> delete cbx_1</p><p> delete cbx_2</p><p><b> end if</b></p><p><b> else</b></p><p> close(w_del)</p><p><b>
66、 圖3-11刪除窗口</b></p><p><b> 3.7 圖形窗口</b></p><p> 創(chuàng)建一個圖形窗口的目的是以圖片方式代表每臺電腦的狀態(tài),他一共有兩種狀態(tài)(使用狀態(tài),空閑狀態(tài))。它是所有窗口中設(shè)計比較難,花設(shè)計時間比較多的地方。它有以下幾個難點。</p><p> 1.先識別服務(wù)器顯示器的分辨率,因為不是所有
67、的顯示器設(shè)置的分辨率是相同的,有的是1024×768的,有的是800×600的,這就很難確定象素來設(shè)置窗口的大小,如果不進(jìn)行這部分工作的話,圖片的顯示和排列就不正常[11]。</p><p> 2.顯示窗口應(yīng)該設(shè)置成多大。經(jīng)過多次試驗,如果設(shè)置的機房中機器數(shù)量比較少的話,狀態(tài)圖片在整個窗口中顯示和排列完全沒問題;但是如果機器的數(shù)量比較多時,圖片也就多了,整個窗口不可能都顯示出來。經(jīng)過翻閱大量
68、資料和別人的例子中,發(fā)現(xiàn)其實在很多窗口中都是用 滑塊來彌補窗口有限而不能顯示全部內(nèi)容,這能完全解決我設(shè)計的問題。</p><p> 3.為了能方便確定哪臺機器,我設(shè)計了在每個圖片上都有相應(yīng)的號碼,這個號碼和機房的機器號是一樣的。每個號碼和它下面的圖片是對應(yīng)的,圖片在哪,號碼就跟隨到哪,這就能實現(xiàn)動態(tài)顯示的功能了。</p><p> 4.要使顯示機器狀態(tài)的圖片放到指定的位置,并且能顯示兩
69、個狀態(tài)。其實我把圖片都放到一個圖片框里,每個框都有兩張圖,一張是使用狀態(tài)的圖,另一張是空閑狀態(tài)的圖,只要從數(shù)據(jù)庫中得到機器狀態(tài)的信息,編寫腳本使兩張圖片交替顯示(當(dāng)?shù)玫綑C器正在使用的信息時,命令顯示使用狀態(tài)的圖片是可視狀態(tài),顯示空閑狀態(tài)的圖片為隱藏狀態(tài),反之亦然)。下面是這個只能通過自己編寫算法,來確定圖片框的位置:</p><p> 1.當(dāng)m×n,n≥2且m≥2時</p><p&
70、gt; (L-2l-an)÷(n-1)=x</p><p> ?。╓-u-d-am)÷(m-1)=y</p><p> 2.當(dāng)1×n,n≥2時</p><p> (L-2l-an)÷(n-1)=x</p><p> ?。╓- a)÷2=y</p><p> 3.
71、當(dāng)m×1,m≥2時</p><p><b> (L-a)÷2=x</b></p><p> (W-u-d-am)÷(m-1)=y</p><p> 其中W是窗口的高度,L是窗口的寬,a是圖片框的寬和高(它是個正方形),m是框的行數(shù),n是框的列數(shù),l是框到窗口左右邊的距離,u是框到窗口上邊的距離,d是框到窗口下
72、邊的距離,這些數(shù)據(jù)在編寫腳本時可以根據(jù)顯示的效果而反復(fù)調(diào)整,以達(dá)到較好的顯示效果。其暫時的效果如圖3-12。</p><p> 圖3-12暫時的效果如圖</p><p> 到這里所有的界面設(shè)計基本上完成了,下面要解決的問題是和數(shù)據(jù)庫的連接。</p><p><b> 4 數(shù)據(jù)庫的連接</b></p><p>
73、4.1 PowerBuilder與數(shù)據(jù)庫的關(guān)系</p><p> 兩者是“配合”與“協(xié)調(diào)”的關(guān)系,PB完成數(shù)據(jù)請求、數(shù)據(jù)表現(xiàn)、菜單。界面等方面的工作;而數(shù)據(jù)庫服務(wù)器則是完成數(shù)據(jù)的存儲管理、安全管理、并發(fā)控制、事務(wù)管理、完整性維護(hù)、查詢優(yōu)化等工作。因此PB完成的主要是表示邏輯和部分應(yīng)用邏輯方面的工作,而數(shù)據(jù)庫服務(wù)器完成的是事務(wù)邏輯管理和數(shù)據(jù)存取方面的工作。</p><p> 4.2
74、PowerBuilder與數(shù)據(jù)庫的連接</p><p> 數(shù)據(jù)庫前端開發(fā)工具與后臺數(shù)據(jù)庫管理系統(tǒng)的連接方式是一個很重要的課題。PB提供了兩種訪問后臺數(shù)據(jù)庫的方式,一種是通過ODBC標(biāo)準(zhǔn)接口的方式,第二種是通過專用的接口與后臺的數(shù)據(jù)庫相連。</p><p> ODBC的中文名字是開放式數(shù)據(jù)庫連接,它是微軟公司提出的數(shù)據(jù)庫連接標(biāo)準(zhǔn),使用ODBC方式連接數(shù)據(jù)庫的第一步是創(chuàng)建數(shù)據(jù)源,比如我們可
75、以利用WINDOWS下控制面板中的“32 BIT ODBC”選項來創(chuàng)建驅(qū)動某種數(shù)據(jù)庫的數(shù)據(jù)源,創(chuàng)建好數(shù)據(jù)源之后,我們就可以在本地計算機中利用定義好的數(shù)據(jù)源存取后臺數(shù)據(jù)庫中的數(shù)據(jù)了。</p><p> 我們還可以通過專用接口同后臺的數(shù)據(jù)庫相連,由于專用接口是針對特定的后臺數(shù)據(jù)庫管理系統(tǒng)而設(shè)計,因此這種方式存取數(shù)據(jù)的速度要比采用ODBC方式存取數(shù)據(jù)的速度要快一些,如果我們的應(yīng)用程序只是針對特定類型的后臺數(shù)據(jù)庫,當(dāng)然
76、是采用專用接口訪問后臺數(shù)據(jù)更快一些。PB與數(shù)據(jù)庫管理系統(tǒng)的關(guān)系如圖4-1。</p><p> 圖4-1PB與數(shù)據(jù)庫管理系統(tǒng)</p><p> 4.3 PB內(nèi)置Oracle數(shù)據(jù)庫接口的使用方法</p><p> 這次設(shè)計選用Oracle數(shù)據(jù)庫有兩個原因,一是因為系統(tǒng)使用的對象是大型機房,其中一個機房就有幾百、幾千臺機器,它的數(shù)據(jù)量很大,而Oracle正是適合大
77、數(shù)據(jù)量的環(huán)境;二是因為PB本身內(nèi)置有Oracle數(shù)據(jù)庫接口,并且和上面講到的采用專用接口訪問后臺數(shù)據(jù)更快一些[12]。</p><p> PB提供了兩種與Oracle連接的接口:Power Soft內(nèi)置的數(shù)據(jù)庫接口(native database interface)和ODBC接口。我使用的是內(nèi)置的Oracle數(shù)據(jù)庫接口,如圖4-2。</p><p> 圖4-2內(nèi)置的Oracle數(shù)據(jù)庫
78、接口</p><p> 假定已安裝Oracle客戶端應(yīng)用程序??捎胹qlplus或tnsping等是否能連接到oracle數(shù)據(jù)庫,如果沒有問,可在oracle客戶端程序目錄下tnsname.ora文件中找到。另外保證搜索路徑已包括應(yīng)用程序的安裝目錄(如c:\orawin\bin)。</p><p> 進(jìn)入PB的database profiles畫筆,可看到所有已安裝的數(shù)據(jù)庫接口,選擇“
79、oracle”,點擊“new”按鈕,進(jìn)入database profile setup對話框。在“connection”頁輸入信息,profile name為該database profile起一個有意義的名稱;server:tns:servername,其中servername為上述數(shù)據(jù)庫別名(服務(wù)器名),如tns:ora73;login id:oracle數(shù)據(jù)庫中實際的用戶名,由于PB初次連接到數(shù)據(jù)庫時要自動建立五個系統(tǒng)表(power
80、builder catalog table:pbcattbl,pbcatcol,pbcatedt,pbcatfmt,pbcatvld,存儲表的擴展屬性),因此第一個連接到oracle的用戶必須具有建表、給public角色授權(quán)等權(quán)限。例如可用system用戶進(jìn)行第一次連接,此后的連接對用戶則無特殊要求;password:該用戶的口令。設(shè)置上述內(nèi)容后,即可連上oracle。圖4-3所示。</p><p> 圖4-3
81、數(shù)據(jù)庫連接配置</p><p> 為優(yōu)化數(shù)據(jù)庫連接,還可設(shè)置下列選項,prompt for database information:連接時是否提示用戶輸入用戶名和口令;generate trace:啟動db跟蹤工具,跟蹤連接;thread safe:開發(fā)需要多線程環(huán)境支持的分布式應(yīng)用時,選擇該項。缺省為未選,適用于非分布應(yīng)用;pbdbms:與存儲過程調(diào)用方式有關(guān)的參數(shù);commit on disconnect
82、:斷開連接時,指定提交或回退未提交的事務(wù);case sensitive:連接的oracle服務(wù)器是否區(qū)分大小寫。注意該項選中時,所有主鍵、包含主鍵的表名、外鍵必須全為大寫字符。Power builder catalog tables owner:指定擁有PB系統(tǒng)表的用戶,缺省為“system”。如果要使用多種顯示格式或有效性規(guī)則,可以在不同的用戶下建立幾套系統(tǒng)表;table criteria:指定滿足哪些條件的表、視圖和同義詞可在“se
83、lect tables”對話框中顯示出來。例如dev用戶下銷售子系統(tǒng)的表都以sale開頭,則可以用sale%、dev、“table”、“view”指定只顯示dev用戶以sale開頭</p><p> 4.4 數(shù)據(jù)庫的創(chuàng)建與連接</p><p> 為了能測試一下最后效果,我在數(shù)據(jù)庫里建一張表,里面記錄了6臺機器的信息,其中pc_no表示機器號,ip_addr表示機器的IP地址,use_
84、flag表示使用狀態(tài),在測試時,可以手動修改use_flag的值,保存之后,然后看在PB界面最終效果[13]。如圖4-4。</p><p><b> 圖4-4數(shù)據(jù)庫表</b></p><p> 在PB的目標(biāo)文件的腳本編輯器里輸入數(shù)據(jù)庫的連接代碼。然后編譯運行[14]。</p><p> SQLCA.DBMS = "ODBC&qu
85、ot;</p><p> SQLCA.AutoCommit = False</p><p> SQLCA.DBParm = "ConnectString='driver=Oracle Microsoft Access Driver (*.mdb);DBQ=c:\1.mdb'"</p><p><b> CONNEC
86、T;</b></p><p> IF SQLCA.SQLCode <> 0 THEN</p><p> MessageBox("數(shù)據(jù)庫連接失敗","請與管理員聯(lián)系。錯誤號:" + String(SQLCA.SQLCode) + "~r~n錯誤原因:" + SQLCA.SQLErrText)</p&
87、gt;<p><b> RETURN</b></p><p><b> else</b></p><p> MessageBox("數(shù)據(jù)庫連接成功","現(xiàn)在進(jìn)入系統(tǒng)... ...")</p><p><b> end if</b></
88、p><p> open(w_main)</p><p> 運行后出現(xiàn)了連接成功的提示框[15]。圖4-5。</p><p> 圖4-5連接成功的提示</p><p> 這是假設(shè)機房6臺機器的情況,我把數(shù)據(jù)庫里的use_flag值都寫成“1”表示機房不在使用,下面是不在使用時候的效果圖4-6。</p><p> 圖
89、4-6不在使用時候的效果圖</p><p> 我又把數(shù)據(jù)庫里的use_flag值都寫成“0”表示機房正在使用,下面是正在不在使用時候的效果圖4-7。</p><p> 圖4-7正在不在使用時候的效果圖</p><p> 這里的最終顯示效果正是預(yù)期想得到的,而且又在數(shù)據(jù)庫里修改了幾組use_flag值,結(jié)果顯示都正確。</p><p>&
90、lt;b> 結(jié) 論</b></p><p> 整個設(shè)計基本上達(dá)到了最初的設(shè)計目標(biāo),最終的測試結(jié)果也比較滿意。唯一的缺陷是沒有真正在大型的機房進(jìn)行測試,最后只能在自己的電腦里測試,而且機器性能不太好,只顯示了6臺機器的情況。</p><p> 這次設(shè)計最難的地方是顯示情況的狀態(tài)圖和數(shù)據(jù)庫中的信息相對應(yīng)的調(diào)試,其次是界面的設(shè)計和各種彈出窗口腳本的編寫,查了很多資料,自
91、己也想了很多。</p><p> 通過這次畢業(yè)設(shè)計使我掌握了PB的是具體使用,也初步了解了Oracle數(shù)據(jù)庫(設(shè)計的重點不在數(shù)據(jù)庫方面,只在里面建立了幾個表進(jìn)行簡單的連接)。體會到設(shè)計軟件不是一件容易的事情,要查閱相當(dāng)多的資料,進(jìn)行無數(shù)次的上機操作和調(diào)試。</p><p><b> 致 謝</b></p><p> 衷心感謝**老師在我
92、做畢設(shè)期間給予的悉心指導(dǎo)。老師開闊敏銳的思維、嚴(yán)謹(jǐn)治學(xué)的作風(fēng)及認(rèn)真工作的態(tài)度使我在論文研究中獲益頗多;老師以人為本,寬厚真誠,濃厚的人文精神使我在人生旅途中受益非淺。</p><p> 無法用言語感激我的父母和親戚寄予我的深切厚望和支持。</p><p> 最后,衷心感謝在百忙之中抽出時間審閱本論文的專家教授。</p><p><b> 參考文獻(xiàn)&l
93、t;/b></p><p> [1] 鄭阿奇. PowerBuilder實用教程. 北京:電子工業(yè)出版社,2002,102-103.</p><p> [2] 東方華人. Oracle 9i入門與提高. 北京:清華大學(xué)出版社,2004,96-97.</p><p> [3] 焦虹. PowerBuilder 7.0 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)教程. 北京:
94、清華大學(xué)出版社,2002,134-135.</p><p> [4] 王蓉. PowerBuilder 7.0 應(yīng)用開發(fā)技術(shù)詳解. 北京:電子工業(yè)出版社,2002,75-76.</p><p> [5] 張振坤. PowerBuilder精彩編程200例. 北京:機械工業(yè)出版社,2004,105-106.</p><p> [6] 崔巍. PowerBu
95、ilder 8.0 數(shù)據(jù)庫開發(fā)入門. 北京:清華大學(xué)出版社,2002,39-40.</p><p> [7] 魯焱. PowerBuilder 9.0 程序設(shè)計. 北京:中國鐵道出版社,2005,66-67.</p><p> [8] 達(dá)通電腦科技. http://www.study01job.com/index.php.</p><p> [9] 中國
96、PB程序員俱樂部. http://www.easybetter.com/.</p><p> [10] Rajesh Palani. Linux Porting Guide. Embedded Systems Design,2001.</p><p> [11] 張見青. 數(shù)據(jù)庫開發(fā)指南. 北京:科技出版社,2001年.</p><p> [12] 楊愛林.
97、PowerBuilder 8.0 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)教程. 北京:清華大學(xué)出版社,2002,34.</p><p> [13] 范永開. Linux應(yīng)用開發(fā). 北京:人民郵電出版社,2006,139-140.</p><p> [14] 孟慶昌. Linux教程. 北京:電子工業(yè)出版社,2004,74-75.</p><p> [15] 吳建. PowerBu
98、ilder數(shù)據(jù)庫應(yīng)用. 北京:清華大學(xué)出版社,2004,56-57.</p><p><b> 附 錄</b></p><p><b> 屏幕大小識別</b></p><p> environment lenv_system </p><p> getenvironment(len
99、v_system) </p><p> newheight=lenv_system.ScreenHeight //取當(dāng)前屏幕分辨率的高度 </p><p> newwidth=lenv_system.ScreenWidth //取當(dāng)前屏幕分辨率的寬度 </p><p> oldheight=768 //假設(shè)程序員
100、屏幕分辨率為1024*768 </p><p> oldwidth=1024 </p><p> This.y=This.y*newheight/oldheight \\然后有多少個控件就寫多少 </p><p> This.x =This.x*newwidth/oldwidth </p><p> This.width
101、=This.width*newwidth/ oldwidth </p><p> This.height=This.height*newheight/oldheight </p><p> st_title.y=st_title.y*newheight/oldheight </p><p> st_title.x=st_title.x*newwid
102、th/oldwidth </p><p> st_title.width=st_title.width* newwidth/oldwidth </p><p> st_title.height=st_title.height* newheight/oldheight </p><p> st_title.textsize=st_title.text
103、size*newheight/oldheight </p><p> 在不同分辨率下自動調(diào)整程序界面</p><p> f_windowscreen(this,1024,768)</p><p> global type f_windowscreen from function_object</p><p><b> e
104、nd type</b></p><p> forward prototypes</p><p> global function integer f_windowscreen (readonly window arwin, integer arx, integer ary)</p><p> end prototypes</p>&l
105、t;p> global function integer f_windowscreen (readonly window arwin, integer arx, integer ary);environment env</p><p> int ii_Screenwidth,ii_Screenheight</p><p> double WRadio,HRadio,Radio&
106、lt;/p><p> int ii_WinBolderwidth,ii_WinBolderheight</p><p> getenvironment(env)</p><p> ii_WinBolderwidth=arwin.width - arwin.workspacewidth()//取得窗體邊框的寬度</p><p> ii_Wi
107、nBolderheight=arwin.height - arwin.workspaceheight()</p><p> ii_Screenwidth=env.screenwidth</p><p> ii_Screenheight=env.screenheight//獲取需要調(diào)整的計算機分辨率//</p><p> WRadio=ii_Screenwidt
108、h/arx //標(biāo)準(zhǔn)認(rèn)為屏幕分辨率為arx*ary</p><p> HRadio=ii_Screenheight/ary//計算出屏幕相對arx*ary分辨率的變化</p><p> Radio=min(WRadio,HRadio)</p><p> if Radio=1.0 then //如果分辨率是arx*ary</p><p>
109、<b> return 0</b></p><p><b> end if</b></p><p> if (arwin.WindowType=MDIHelp!) or (arwin.WindowType=MDI!) then </p><p> arwin.resize(arwin.workspacewidth(
110、)*Radio,arwin.workspaceheight()*Radio)</p><p><b> return 0</b></p><p><b> else</b></p><p> arwin.hide()</p><p> arwin.width=(arwin.width - i
111、i_WinBolderwidth)*Radio + ii_WinBolderwidth</p><p> arwin.height=(arwin.height - ii_WinBolderheight)*Radio + ii_WinBolderheight</p><p><b> int i</b></p><p> dragobjec
112、t temp//用于取各種控件</p><p> windowobject song[]</p><p> song[]=arwin.control[]</p><p> for i=1 to upperbound(song)</p><p> temp=arwin.control[i]//調(diào)整控件大小和位置</p>&
113、lt;p> temp.width=temp.width*Radio</p><p> temp.x=temp.x*Radio</p><p> temp.height=temp.height*Radio</p><p> temp.y=temp.y*Radio</p><p> choose case typeof(temp)
114、</p><p><b> case tab!</b></p><p><b> tab mtab</b></p><p><b> mtab=temp</b></p><p> mtab.textsize=mtab.textsize*Radio//設(shè)置字體大小<
115、/p><p> case commandbutton!</p><p> commandbutton cb</p><p><b> cb=temp</b></p><p> cb.textsize=cb.textsize*Radio</p><p> case singlelineedit
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大型機房建設(shè)系統(tǒng)全套設(shè)計方案
- 大型機房環(huán)境溫度監(jiān)測系統(tǒng)設(shè)計.pdf
- 大型機房監(jiān)控系統(tǒng)技術(shù)方案書
- 大型機房監(jiān)控系統(tǒng)技術(shù)方案書
- 基于PLC的大型機房智能管理系統(tǒng)的設(shè)計與開發(fā).pdf
- 淺談綜合布線系統(tǒng)在大型機房的應(yīng)用
- 機房管理系統(tǒng)畢業(yè)設(shè)計
- [vb畢設(shè)]大型機房學(xué)生上機管理系統(tǒng)ac
- 畢業(yè)設(shè)計---機房上機管理系統(tǒng)設(shè)計與實施
- 機房溫濕度監(jiān)控系統(tǒng)設(shè)計畢業(yè)設(shè)計
- vb+access大型機房學(xué)生上機管理系統(tǒng)(源代碼+系統(tǒng))
- 畢業(yè)設(shè)計----大型啟閉系統(tǒng)傳動設(shè)計
- 機房溫濕度監(jiān)控系統(tǒng)設(shè)計畢業(yè)設(shè)計
- vb042大型機房學(xué)生上機管理系統(tǒng)ac
- 畢業(yè)設(shè)計---無人值守機房綜合監(jiān)控系統(tǒng)
- 畢業(yè)設(shè)計——計算機機房空調(diào)系統(tǒng)的設(shè)計
- 機房溫濕度測控系統(tǒng)畢業(yè)設(shè)計
- vb042大型機房學(xué)生上機管理系統(tǒng)ac
- 大型停車場指示系統(tǒng)課程設(shè)計
- 大型停車場指示系統(tǒng)課程設(shè)計
評論
0/150
提交評論