国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

影院售票系統(tǒng)開(kāi)發(fā)中的問(wèn)題與處理技術(shù)

2010-06-22 03:41孫朝云陳寧寧
現(xiàn)代電子技術(shù) 2009年22期
關(guān)鍵詞:窗體數(shù)據(jù)表字段

孫朝云 陳寧寧 趙 軻

摘 要:基于影院售票科學(xué)化管理要求,設(shè)計(jì)影院自動(dòng)售票系統(tǒng),給出系統(tǒng)設(shè)計(jì)的主體結(jié)構(gòu)。系統(tǒng)以Delphi 7.0為前端開(kāi)發(fā)工具,采用模塊化設(shè)計(jì)方法,遵循使用的方便性、安全性和靈活性原則,完成售票系統(tǒng)現(xiàn)代化、可視化管理功能的要求,很好地實(shí)現(xiàn)了售票功能。給出了系統(tǒng)開(kāi)發(fā)中遇到的問(wèn)題及具體解決方法。對(duì)于采用Delphi開(kāi)發(fā)系統(tǒng)的使用者具有重要的參考價(jià)值。

關(guān)鍵詞:售票系統(tǒng);數(shù)據(jù)安全;組合列表框;Rave 5.0計(jì)算機(jī)

中圖分類(lèi)號(hào):TP311

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ù)技術(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)。登錄及密碼輸入模塊用于限制操作員的權(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í)際座位,用戶可以實(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ì)如┩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ù)表中字段電影信息值后,Combo〣ox控件的下拉列表內(nèi)容沒(méi)有顯示修改后的數(shù)據(jù),要使表中修改后的字段數(shù)據(jù)在ComboBox控件中得以更新,必須先重啟售票系統(tǒng),然后才可以將ComboBox下拉列表中的內(nèi)容更新為表中修改后的數(shù)據(jù);

(2) 用于顯示表中字段“電影院名稱”及“電影名稱”的方法,使用ComboBox控件和使用DBCombobox控件結(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)后,方可實(shí)現(xiàn)數(shù)據(jù)的更新,這無(wú)疑會(huì)大大降低使用人員的工作效率,給用戶帶來(lái)很大的不變。要解決這一問(wèn)題,首先要知道創(chuàng)建窗體的FormCreate事件以及顯示窗體的FormShow事件這兩者各自的功能及其區(qū)別。〧ormCreate事件代碼是在應(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í)刷新,必須重啟售票系統(tǒng),才能執(zhí)行放在FormCreate中的更新數(shù)據(jù)事件代碼。售票窗體數(shù)據(jù)才能得以更新。

解決的方法是將更新數(shù)據(jù)的代碼添加到Form㏒how事件代碼中,用以更新顯示數(shù)據(jù)。運(yùn)行結(jié)果表明,添加到FormShow事件代碼后的系統(tǒng)能夠完全解決該問(wèn)題。從而實(shí)現(xiàn)了ComboBox列表框中數(shù)據(jù)的動(dòng)態(tài)實(shí)時(shí)刷新。代碼編寫(xiě)如下:

2.2.2 [ZK(]顯示表中字段DBComboBox與ComboBox不同方法

DBComboBox控件是繼承了ComboBox屬性的控件,并添加了屬性DataSource,增加了數(shù)據(jù)庫(kù)的連接。使用DBComboBox控件可以省去大量的代碼,使用時(shí)更加方便,因此設(shè)計(jì)系統(tǒng)時(shí),首先想到使用DBComboBox控件來(lái)選擇“電影院名稱”及“電影名稱”。然而設(shè)計(jì)過(guò)程中發(fā)現(xiàn),使用DBComboBox控件來(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)選用的DBComboBox組件與數(shù)據(jù)表連接后,在程序運(yùn)行過(guò)程中發(fā)現(xiàn)它只顯示數(shù)據(jù)表中的第一條記錄,無(wú)法顯示對(duì)應(yīng)數(shù)據(jù)表中相應(yīng)字段的所有記錄。這是因?yàn)镈BComboBox下拉列表中的內(nèi)容要通過(guò)遍歷數(shù)據(jù)表的記錄來(lái)獲得所有記錄。該情況可以通過(guò)在FormCreate中添加以下代碼予以解決[4]。但是這種解決方法不能使數(shù)據(jù)實(shí)時(shí)更新。若將其添加到FormShow中,可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)刷新。

2.2.4 動(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)代碼如下:

這樣可以將“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)型:引擎類(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)镽ave到目前為止,還不能支持字段名為非英文。所以必須給每一個(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ù)表中的中文字段輸入對(duì)應(yīng)的英文名,然后在點(diǎn)擊鼠標(biāo)右鍵選Refresh,依次類(lèi)推,如圖5所示,即可加入所有字段,如圖6所示。

[HT5”K][JZ]圖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;在DataField屬性窗口中的report variables選項(xiàng)中,選currentPage后點(diǎn)Insert Report Var按鈕后,再點(diǎn)OK按鈕確定,完成頁(yè)數(shù)的設(shè)置。同樣通過(guò)DataField屬性窗口中的report variables選項(xiàng),選TotalPage后,先點(diǎn)Insert Report Var按鈕,之后點(diǎn)OK按鈕確定。

猜你喜歡
窗體數(shù)據(jù)表字段
圖書(shū)館中文圖書(shū)編目外包數(shù)據(jù)質(zhì)量控制分析
湖北省新冠肺炎疫情數(shù)據(jù)表
試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
CNMARC304字段和314字段責(zé)任附注方式解析
圖表
無(wú)正題名文獻(xiàn)著錄方法評(píng)述
基于VSL的動(dòng)態(tài)數(shù)據(jù)表應(yīng)用研究
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
巧設(shè)WPS窗體控件讓表格填寫(xiě)更規(guī)范