


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、影院售票系統(tǒng)開(kāi)發(fā)中的問(wèn)題與處理技術(shù)0 引 言隨著現(xiàn)代計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展 , 設(shè)計(jì)可靠、便 捷、高效的計(jì)算機(jī)管理售票系統(tǒng)代替?zhèn)鹘y(tǒng)的售票方式越來(lái)越受到 人們的重視。方便、可視、快捷的查詢、統(tǒng)計(jì)能使管理者實(shí)時(shí)準(zhǔn) 確地掌握影院的經(jīng)營(yíng)狀況 ,并對(duì)售票人員進(jìn)行監(jiān)督和管理 , 亦為 高級(jí)管理人員提供了準(zhǔn)確、 科學(xué)的決策依據(jù)。 采用智能化售票提 高了電影院的售票效率和管理水平。 在此針對(duì)影院售票工作、 管 理與發(fā)展要求 , 給出了影院售票系統(tǒng)設(shè)計(jì)結(jié)構(gòu)及主要完成功能。Delphi是基于窗口和面向?qū)ο蟮木幊谭椒?與Windows操作系統(tǒng) 結(jié)合 , 具有強(qiáng)大的數(shù)據(jù)庫(kù)技術(shù)支持和快速的編譯速度。在數(shù)據(jù)庫(kù) 技
2、術(shù)方面 , 其功能尤為突出。 因此使用 Delphi 設(shè)計(jì)影院售票系統(tǒng) 不僅可視性好 , 而且使用方便 , 易于操作。1 影院售票系統(tǒng)總體設(shè)計(jì)與主要功能模塊設(shè)計(jì) 影院售票系統(tǒng)的總體設(shè)計(jì)思路采用樹(shù)狀結(jié)構(gòu)。 在整個(gè)售票系 統(tǒng)中實(shí)現(xiàn)了不同用戶登陸、 管理和影院售票廳的仿真。 可以實(shí)現(xiàn) 售票、打印及各個(gè)電影售出票價(jià)信息查詢、統(tǒng)計(jì)等功能。該系統(tǒng) 采用模塊化設(shè)計(jì)思想 ,主要由 6個(gè)功能模塊組成 ,分別為用戶登 陸模塊、主窗體模塊、售票窗體模塊、統(tǒng)計(jì)模塊、查詢模塊、報(bào) 表打印模塊。 本文僅給出主要模塊的功能及其關(guān)鍵部分設(shè)計(jì)的實(shí) 現(xiàn)方法。1.1 用戶登錄及密碼輸入模塊程序啟動(dòng)后 , 管理員通過(guò)輸入密碼登陸系統(tǒng)
3、。登錄及密碼輸 入模塊用于限制操作員的權(quán)限 , 完成的主要功能有程序啟動(dòng)、輸 入用戶名和密碼 ,若輸入正確則進(jìn)入系統(tǒng)主窗體界面 , 輸入錯(cuò)誤 則彈出錯(cuò)誤提示窗口 , 以保證用戶的合法性及系統(tǒng)的安全性。系 統(tǒng)登陸界面設(shè)計(jì)如圖 1 所示。1.2 系統(tǒng)主窗體設(shè)計(jì) 系統(tǒng)主窗體模塊是程序設(shè)計(jì)中主要窗體設(shè)計(jì)之一。 它包括用 戶對(duì)影院售票要求的所有信息的錄入及售票廳仿真、售票統(tǒng)計(jì)、 報(bào)表預(yù)覽三大功能模塊。主窗體設(shè)計(jì)是供一般管理人員進(jìn)行操 作。一般管理人員需依據(jù)高級(jí)管理者的要求輸入相關(guān)信息 , 如電 影名稱及票價(jià)、開(kāi)場(chǎng)時(shí)間、日期等 , 預(yù)先進(jìn)行參數(shù)設(shè)置。在影院 售票廳仿真設(shè)計(jì)中 ,用按鈕模擬影院中的實(shí)際座位
4、, 用戶可以實(shí) 時(shí)點(diǎn)擊座位進(jìn)行選擇售票 , 并且可以與主窗體之間切換。統(tǒng)計(jì)模 塊可通過(guò)輸入相關(guān)信息統(tǒng)計(jì)出某部電影在某段時(shí)間售出的總票 數(shù)和相應(yīng)價(jià)錢(qián)。 同樣通過(guò)報(bào)表預(yù)覽按鈕便可以查到該段時(shí)間的售 票情況??傊?, 系統(tǒng)的主窗體是所有模塊互動(dòng)的中心 ,主窗體設(shè)計(jì) 如?T ?2所示。2 影院售票系統(tǒng)開(kāi)發(fā)過(guò)程中遇到的問(wèn)題及解決方法2.1 系統(tǒng)開(kāi)發(fā)中遇到的問(wèn)題采用 Delphi 完成售票系統(tǒng)的開(kāi)發(fā) , 并對(duì) Delphi 整個(gè)開(kāi)發(fā)環(huán) 境和關(guān)鍵組件的使用技巧進(jìn)行了探索應(yīng)用 , 在設(shè)計(jì)中遇到了一些實(shí)際問(wèn)題。(1) 在修改數(shù)據(jù)表中字段電影信息值后,ComboBox控件的下拉列表內(nèi)容沒(méi)有顯示修改后的數(shù)據(jù) , 要
5、使表中修改后的字段數(shù)據(jù) 在ComboBoX空件中得以更新,必須先重啟售票系統(tǒng),然后才可以 將ComboBox下拉列表中的內(nèi)容更新為表中修改后的數(shù)據(jù);(2) 用于顯示表中字段“電影院名稱”及“電影名稱”的方法,使用ComboBoX空件和使用DBCombobo控件結(jié)果是不同的;(3) DBComboBox只顯示數(shù)據(jù)表中的第一條記錄;(4) ComboBox 控件下拉列表內(nèi)容有重復(fù) , 如圖 3 所示;5) Rave 報(bào)表設(shè)計(jì)中的問(wèn)題。2.2 問(wèn)題解決方法2.2.1 解決修改數(shù)據(jù)表里的某一字段數(shù)據(jù) 當(dāng)修改了數(shù)據(jù)表中的某一字段數(shù)據(jù)后 , 售票窗口卻不能馬上 更新相應(yīng)的數(shù)據(jù) , 它需要重新啟動(dòng)系統(tǒng)后 ,
6、 方可實(shí)現(xiàn)數(shù)據(jù)的更新 , 這無(wú)疑會(huì)大大降低使用人員的工作效率 , 給用戶帶來(lái)很大的不 變。要解決這一問(wèn)題 , 首先要知道創(chuàng)建窗體的 FormCreate 事件以 及顯示窗體的FormShow事件這兩者各自的功能及其區(qū)別。 FormCreate 事件代碼是在應(yīng)用系統(tǒng)啟動(dòng)時(shí)就已經(jīng)被加載 , 而 FormShow事件代碼是在該窗體顯示時(shí)才被調(diào)用。如果把更新數(shù)據(jù)的代碼放在 FormCreate 事件中 , 那么當(dāng)數(shù) 據(jù)表修改以后 , 由于該窗體在應(yīng)用系統(tǒng)啟動(dòng)時(shí)就已經(jīng)創(chuàng)建 , 也就 是說(shuō)它對(duì)應(yīng)的事件代碼已經(jīng)執(zhí)行過(guò)了 , 所以當(dāng)數(shù)據(jù)表中的數(shù)據(jù)被 修改后,在ComboBox列表框中的數(shù)據(jù)就不能實(shí)時(shí)刷新,必須
7、重啟 售票系統(tǒng) , 才能執(zhí)行放在 FormCreate 中的更新數(shù)據(jù)事件代碼。 售 票窗體數(shù)據(jù)才能得以更新。解決的方法是將更新數(shù)據(jù)的代碼添加到 FormShow事件代碼 中,用以更新顯示數(shù)據(jù)。運(yùn)行結(jié)果表明,添加到FormShow事件代 碼后的系統(tǒng)能夠完全解決該問(wèn)題。從而實(shí)現(xiàn)了 ComboBo洌表框 中數(shù)據(jù)的動(dòng)態(tài)實(shí)時(shí)刷新。代碼編寫(xiě)如下 :2.2.2 ZK( 顯示表中字段 DBComboBo與 ComboBox不同方 法DBComboBo控件是繼承了 ComboBoX屬性的控件,并添加了 屬性DataSource,增加了數(shù)據(jù)庫(kù)的連接。使用 DBComboBo控件 可以省去大量的代碼 , 使用時(shí)更加
8、方便 , 因此設(shè)計(jì)系統(tǒng)時(shí) , 首先想 到使用DBComboBo控件來(lái)選擇“電影院名稱”及“電影名 稱”。然而設(shè)計(jì)過(guò)程中發(fā)現(xiàn),使用DBComboBo控件來(lái)選擇售票的 “電影院名稱”和“電影名稱”時(shí) , 當(dāng)用戶選擇了 DBComboBox 下拉列表中某一項(xiàng)時(shí) , 數(shù)據(jù)表中的內(nèi)容會(huì)隨著選擇的內(nèi)容而變化 這與設(shè)計(jì)要求不符。為了滿足設(shè)計(jì)要求,選擇使用ComboBoX空件的下拉列表顯 示表中的字段數(shù)據(jù)“電影院名稱”及“電影名稱” , 通過(guò)編寫(xiě)事 件代碼可以讀出數(shù)據(jù)表中相應(yīng)字段的數(shù)據(jù) , 并寫(xiě)入到 ComboBox 的下拉列表中 , 完成動(dòng)態(tài)添加其下拉列表內(nèi)容。具體實(shí)現(xiàn)代碼如 下:在程序開(kāi)發(fā)過(guò)程中,有時(shí)出現(xiàn)
9、選用的DBComboBo組件與數(shù) 據(jù)表連接后 , 在程序運(yùn)行過(guò)程中發(fā)現(xiàn)它只顯示數(shù)據(jù)表中的第一條 記錄,無(wú)法顯示對(duì)應(yīng)數(shù)據(jù)表中相應(yīng)字段的所有記錄。這是因?yàn)?DBComboBo下拉列表中的內(nèi)容要通過(guò)遍歷數(shù)據(jù)表的記錄來(lái)獲得 所有記錄。該情況可以通過(guò)在 FormCreate 中添加以下代碼予以 解決 4 。但是這種解決方法不能使數(shù)據(jù)實(shí)時(shí)更新。若將其添加 到FormShow中,可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)刷新。224動(dòng)態(tài)添加ComboBoX空件下拉列表內(nèi)容動(dòng)態(tài)添加ComboBoX空件下拉列表內(nèi)容時(shí),內(nèi)容出現(xiàn)重復(fù)問(wèn) 題,可以使用SQL語(yǔ)句中限制字distinct 來(lái)篩選掉重復(fù)選項(xiàng)。具 體實(shí)現(xiàn)代碼如下 :這樣可以將“
10、table ”表中“ name字段數(shù)據(jù)不重復(fù)出現(xiàn)的 記錄篩選出來(lái)。2.2.5 Rave 5.0 報(bào)表設(shè)計(jì)器使用中問(wèn)題與解決方法(1) Rave 5.0 報(bào)表設(shè)計(jì)器是 Delphi 7.0 版本新加入的組件。報(bào)表設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用程序中的重要組成部分 , 報(bào)表格式復(fù) 雜多樣 , 報(bào)表的生成也是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)中較煩瑣的一項(xiàng)工 作。 Delphi 7.0 版本新加入的 Rave 5.0 報(bào)表設(shè)計(jì)器是可視化報(bào) 表設(shè)計(jì)工具。它能夠在許多環(huán)境中創(chuàng)建各種報(bào)表 ,給開(kāi)發(fā)帶來(lái)很 大的方便。Rave報(bào)表組件位于Delphi 7組件面版的Rave頁(yè)面 上, 它們都是非可視化的組件。 這些組件分為四種類(lèi)型 : 引擎
11、類(lèi)組 件、格式轉(zhuǎn)換類(lèi)組件、數(shù)據(jù)連接類(lèi)組件和 RvProject 組件。(2) Rave 報(bào)表的字段名不能輸入中文及解決方法。 在報(bào)表設(shè)計(jì)中 , 如果所連接的數(shù)據(jù)表中字段名為中文時(shí) , 在 創(chuàng)建報(bào)表中就會(huì)出現(xiàn)字段名不能出現(xiàn)在字段列表框中供選擇的 問(wèn)題。因?yàn)?Rave 到目前為止 , 還不能支持字段名為非英文。 所以 必須給每一個(gè)中文字段設(shè)置一個(gè)對(duì)應(yīng)的英文別名 , 通過(guò)其別名對(duì) 其進(jìn)行管理。打開(kāi)報(bào)表設(shè)計(jì)器主界面 , 新建一個(gè) New Date Object, 完成之 后在項(xiàng)目樹(shù)中打開(kāi)數(shù)據(jù)視圖條目 ,選擇剛被創(chuàng)建的 DateView1, 見(jiàn) 圖4。通過(guò)屬性面板,在Name重新命名數(shù)據(jù)表中的中文字段輸
12、入 對(duì)應(yīng)的英文名 , 然后在點(diǎn)擊鼠標(biāo)右鍵選 Refresh, 依次類(lèi)推 , 如圖 5所示 , 即可加入所有字段 , 如圖 6所示。HT5” KJZ圖 6 界面(三)HT5(3) Rave report 報(bào)表設(shè)計(jì)中如何獲取當(dāng)前頁(yè)數(shù)和總頁(yè)數(shù)。 在完成報(bào)表設(shè)計(jì)后 , 為了信息顯示更完整 , 通常在報(bào)表打印 時(shí)給出所打印的當(dāng)前頁(yè)數(shù)和總頁(yè)數(shù)。該問(wèn)題可以通過(guò)報(bào)表組件 Report 頁(yè)面上的 DataText 獲得。 DataText 顯示了數(shù)據(jù)集中的字 段。打開(kāi) Rave report 報(bào)表設(shè)計(jì)器 , 選取報(bào)表組件 Report 頁(yè)面上 的 DataText 放于報(bào)表中頁(yè)數(shù)和總頁(yè)數(shù)的相應(yīng)位置 , 并將其 DataView 屬性設(shè)為 DataView1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水務(wù)數(shù)字化轉(zhuǎn)型的實(shí)例計(jì)劃
- 增強(qiáng)幼兒動(dòng)手能力的教學(xué)活動(dòng)計(jì)劃
- 數(shù)字工具在項(xiàng)目管理中的作用計(jì)劃
- 學(xué)生能力培養(yǎng)策略計(jì)劃
- 體育鍛煉與健康促進(jìn)方案計(jì)劃
- 2025年臘八節(jié)幼兒園活動(dòng)標(biāo)準(zhǔn)教案
- 胸腔積液的護(hù)理問(wèn)題與護(hù)理措施
- 倉(cāng)庫(kù)服務(wù)創(chuàng)新的實(shí)踐探索計(jì)劃
- 創(chuàng)意寫(xiě)作社團(tuán)創(chuàng)作訓(xùn)練計(jì)劃
- 員工招聘管理專題培訓(xùn)
- 辦公用品申購(gòu)單
- 檢驗(yàn)流程圖樣板
- 《新課標(biāo)高中化學(xué)學(xué)業(yè)水平考試合格考知識(shí)點(diǎn)總結(jié)》
- 帶電子手表去學(xué)校的檢討
- 2022年春新冀人版科學(xué)五年級(jí)下冊(cè)全冊(cè)課件
- 導(dǎo)熱油使用操作規(guī)程
- 感受態(tài)細(xì)胞的制備(DH5α大腸桿菌)
- 中油即時(shí)通信安裝手冊(cè)(二廠)
- 分度頭的使用(課堂PPT)
- Reach REX錄播服務(wù)器CF系列技術(shù)白皮書(shū)V
- 玄靈玉皇寶經(jīng)
評(píng)論
0/150
提交評(píng)論