freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-通用報表生成模塊-資料下載頁

2024-12-01 17:14本頁面

【導(dǎo)讀】接口模塊的設(shè)計(jì).....

  

【正文】 有關(guān)于被點(diǎn)擊表的字段名,同時將字段的中文名,添加到字段列表框中。當(dāng)點(diǎn)擊不同的表時,字段列表框則顯示不同表的字段名。 如果想為某張表或某幾張表生成報表,只需雙擊該表的 字段,則被選字段及其該字段的表名自動添加到“已選字段”列表框中,表名和字段名用“.”連接。這樣報表數(shù)據(jù)信息 SQL 語句的 Select 子句就已經(jīng)產(chǎn)生完畢。 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 36 頁 圖 3- 12 產(chǎn)生報表窗口 “萬里長征第一步”, Select 子句產(chǎn)生之后,我們可以為它添加 Where, OrderBy,GroupBy 等子句。如果是單表查詢,有了 Select 語句就可以直接打印出數(shù)據(jù)了,而如果是多表查詢則必須到 Where 子句中為其添加兩個表關(guān)聯(lián)子句。如果有必要,還可以添加OrderBy 子句。 圖 3- 13 通用查詢的 關(guān)聯(lián)條件 在產(chǎn)生 Where 子句時,要考慮到多個條件表達(dá)式的邏輯運(yùn)算,如果有多個條件,一定不用忘記選擇邏輯適當(dāng)?shù)倪壿嬤\(yùn)算符,有了該運(yùn)算符,就必須輸入第二個條件,否則,程序會產(chǎn)生不正確的 SQL 語句,對不滿意的 Where 條件,可以點(diǎn)擊“清空 Where 子句”,以便重新生成 Where 子句。 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 37 頁 選擇好數(shù)據(jù)后,我們可以來設(shè)置頁面信息,比如:標(biāo)題名稱,表頭信息,表頭高度,字體等等。這樣我們就成功地新建了一張表。 3. 保存報表功能 “保存報表”:對設(shè)置好頁面以及數(shù)據(jù)的報表,可以點(diǎn)擊該按鈕進(jìn)行保存。保存時要更新的表比較多,首 先要將頁面設(shè)置信息保存到 dic_rports 中,然后,將 Select 子句, Where子句, OrderBy 子句分別保存到 dic_select, dic_Where, dic_OrderBy 中。 “修改報表”:修改報表比新建報表要復(fù)雜一些,因?yàn)?,他有一個將已有信息還原的過程,這個時候那些保存 SQL 語句的子句表( dic_select, dic_where, dic_orderby 等等)就派上了用場。 首先,在報表窗口選擇需要修改的報表,然后點(diǎn)擊“修改報表”,應(yīng)用程序根據(jù)報表編號 (Rep_id)將 dic_select, dic_where, dic_orderby 中關(guān)于該報表的信息一一讀取出來。因?yàn)?,保存時,我們存取的都是數(shù)據(jù)庫的表名,字段名,還原的時候,還要檢索數(shù)據(jù)庫數(shù)據(jù)字典把表名,字段名的中文名一一讀取出來。把 Select 語句添加到“已選字段”列表框中,where 子句添加到“ where 子句”標(biāo)簽頁中的多行編輯框中。將頁面信息添加到“頁面設(shè)置”窗口中。這時,程序員可以任意的添加,刪除字段, where 子句等信息,還可以修改頁面設(shè)置,修改完畢后,可以送到屏幕進(jìn)行打印預(yù)覽。如果需要,還可以送打印機(jī)打印。 對更新的報 表,可以點(diǎn)擊“保存報表”進(jìn)行保存更新。這個時候的保存,于新建報表的保存有一點(diǎn)不同。在“新建報表”時,保存一張新建的報表相當(dāng)于是插入一個新的報表信息到 dic_reports,插入多條數(shù)據(jù)到 dic_select 表。而在“修改報表”時,我們僅僅是根據(jù)報表編號更新原有的報表,在更新 dic_select 表時,最好是先刪除關(guān)于該報表的所有select 信息,然后在將修改后的項(xiàng)一一添加到 dic_select 表中,對于 dic_where, dic_orderby表的原理是相同的。 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 38 頁 5. 頁面設(shè)置功能 頁面設(shè)置窗口是用來設(shè)置報表 的輸出格式的。在這個窗口中可以設(shè)置紙張大小,頁邊距,報表的標(biāo)題,以及標(biāo)題,表頭,表體字體,大小,高度等等。該窗口可以在兩個地方調(diào)用。一是在報表窗口中,二是在生成報表窗口中。在報表窗口,以及在修改報表時的窗口調(diào)用,需要首先從 dic_reports 表中讀出頁面設(shè)置信息到頁面設(shè)置窗口,而對于新建報表時,打開的頁面設(shè)置窗口顯示的則是默認(rèn)值。因?yàn)樵O(shè)置頁面是程序員和用戶共有的功能,我們在設(shè)計(jì)時要考慮到用戶可能不是很懂得使用計(jì)算機(jī),所以,我們在頁面設(shè)置時還提供了打印預(yù)覽,用戶在修改頁面的同時,可以隨時進(jìn)行預(yù)覽,以方便用戶 。在頁面設(shè)置時,我們借鑒了 MicroSoft Office 系列的頁面設(shè)置形式。這樣,也顯示了軟件的通用性。 6. 打印預(yù)覽功能 “打印預(yù)覽”按鈕:打印預(yù)覽實(shí)際上是將報表信息打印到屏幕上。 打印預(yù)覽窗口,用戶,程序員均可調(diào)用,也就是說,他可以在報表生成器主窗口調(diào)用,也可以生成報表窗口調(diào)用,因此,報表窗口獲取數(shù)據(jù)的方式是不相同的。在報表生成器主窗口,打印預(yù)覽的數(shù)據(jù)是從 dic_reports, dic_select, dic_where 等中動態(tài)獲取,而在產(chǎn)生報表時,打印預(yù)覽獲取的數(shù)據(jù),則是根據(jù)生成報表窗口的所選擇數(shù)據(jù) 獲取的。 雖然獲取方式是不同的,但是,在打印輸出之前,我們把這些信息都保存到打印預(yù)覽窗口私有變量中去。因此,我們在報表窗口中,我們設(shè)置了非常非常多的局部變量,用來保存報表的頁面設(shè)置信息和數(shù)據(jù)信息。根據(jù)這些信息我們就可以打印報表了。 打印報表的過程其實(shí)和我們繪畫表格的過程本質(zhì)上是相同的,我們設(shè)置了報表的標(biāo)題,報表表頭,表頭以及頁角。它的實(shí)現(xiàn)方法我們將在第四章重點(diǎn)研究問題和關(guān)鍵技術(shù)中詳細(xì)講解。 7. 打印功能 “打印”功能:它和打印預(yù)覽的功能差不多,僅僅是將報表輸出到打印機(jī)上,這時,把打印機(jī)上的紙當(dāng)作畫布,把數(shù) 據(jù),線條,文字輸出到其上。它的獲取數(shù)據(jù)方式于打印預(yù)覽也是類似的。 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 39 頁 第 4 章 重點(diǎn)研究問題和關(guān)鍵技術(shù) 系統(tǒng)數(shù)據(jù)字典的設(shè)計(jì) 本報表生成器,最有創(chuàng)意的要算系統(tǒng)數(shù)據(jù)字典的設(shè)計(jì)。設(shè)計(jì)三張數(shù)據(jù)庫表把一個數(shù)據(jù)庫應(yīng)用系統(tǒng)的所有表系統(tǒng)有序地管理起來。整個通用報表生成器都是基于這三張表的。實(shí)際上,我們在 PowerBuilder 中創(chuàng)建的的數(shù)據(jù)窗口對象,在 PB 中一定有某些數(shù)據(jù)庫表為其保存。我們的通用報表生成器是對數(shù)據(jù)窗口對象的二次開發(fā),所以這些技術(shù)是完全可以借鑒的。 系統(tǒng)數(shù)據(jù)字典的詳細(xì)內(nèi)容,我們在總體設(shè)計(jì)中已經(jīng)詳細(xì)的介紹了, 在這里我們把數(shù)據(jù)字典的具體應(yīng)用展示給大家,以顯示其管理功能的價值。 1. 新建報表 在新建報表時,我們首先根據(jù)模塊名稱到 dic_modal_table 表中檢索出關(guān)于該模塊的所以表的名稱。然后在產(chǎn)生報表窗口打開時,到 dic_table 表把所以表的名稱轉(zhuǎn)換成中文表名。中文表名顯示在列表框中,表名則顯示在一個不可見的列表框中。 當(dāng)程序員點(diǎn)擊某表時,則根據(jù)中文表名的索引值獲取表名,然后到 dic_table_field 表中把該表的所有字段名和字段中文名檢索出來。字段中文名顯示在字段列表框中,字段名則陳列在不可見的列表框中。 當(dāng)程序員雙擊某張表時,則把表名和字段名用“.”連接起來,放在不可見的列表框中,而在可見的列表框中顯示的是中文表名和中文字段名的連接。 同樣的道理,在 Where 子句, OrderBy 子句中都用到了這樣的技術(shù)。即顯示的中文表名,字段名,而實(shí)際上起作用的還是真正的表名,字段名。當(dāng)然在保存報表的時候,我們存到數(shù)據(jù)庫中的都是表名和字段名。 2.修改報表 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 40 頁 修改報表要把保存起來的表名,字段名統(tǒng)統(tǒng)轉(zhuǎn)換成中文名顯示在產(chǎn)生報表的窗口中,這時, dic_tables, dic_table_field, dic_fields 就派上了用場 。 3.打印報表 在打印報表時,我們的中文表頭來自于 dic_table_field 的字段中文名,每一列的寬度則是來自于 dic_fields 的字段寬度。 SQL 語句的保存格式 以前從未想過要用多張表保存 SQL 語句的各個分句。這一設(shè)計(jì)主要是為了解決修改報表時,將 SQL 語句用中文還原。 在保存報表時,我們曾經(jīng)將合成的 SELECT 語句用字符串保存起來,那么在以后的調(diào)用中,報表的數(shù)據(jù)信息完全就要依賴于該條語句,我們需要分解這條語句,才能獲取其中的字段個數(shù),字段名,表名,然后再根據(jù)字段名,表名到系統(tǒng)數(shù)據(jù)字典 中獲取其中文名,列寬度,然后打印輸出。 但是,我們注意到,當(dāng)多表查詢時,對于 SELECT 語句中的復(fù)合字段名(即表名,字段名用“.”連接的名字)只能讀出“.”后面的字段名而不能讀出其表名,這樣,我們就無法到 dic_table_field 表中查取其表頭名稱。在這種情況下,于是,我們就設(shè)計(jì)了專門用來保存 SELECT 語句的表,并且把他們分為 SELECT 子句, WHERE 子句, OrderBy子句等等,把各個分句分別保存起來(這些表的詳細(xì)設(shè)計(jì)在總體設(shè)計(jì)是已經(jīng)詳細(xì)描述)。這樣,完全不用擔(dān)心 SELECT 語句的還原問題。 這 些都是一些比較先進(jìn)的設(shè)計(jì)思想,他們實(shí)現(xiàn)起來并不難,關(guān)鍵就要能夠想到。 DELPHI 的畫圖功能 在詳細(xì)設(shè)計(jì)的“打印預(yù)覽功能”中,我們講解了打印預(yù)覽之前獲取報表數(shù)據(jù)的方式。中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 41 頁 雖然,獲取數(shù)據(jù)的方式不同,但是,在打印報表的時候,這些數(shù)據(jù)信息都是必不可少的。因此我們在打印報表之前,就必須把報表的格式信息,報表的數(shù)據(jù)信息存放到打印預(yù)覽窗口的公共變量中。這里將講解如何輸出報表。 打印預(yù)覽實(shí)際上是將報表信息打印到屏幕上。我們知道, DEIPHI 提供了 QReport 組件可以產(chǎn)生報表,但是,他們提供的報表,不太適合中國式報表,對于 動態(tài)創(chuàng)建報表,不是很方便,加上這部分組件是由第三方開發(fā)的,關(guān)于該部分的介紹,非常有限。因此,我決定用 DELPHI 提供的畫圖功能。 在 DELPHI 中,我們可以把窗口 Form 看做一塊畫布 Canvas,通過調(diào)用畫筆 (Pen),刷子 (Brush)等工具,把表格畫出來,還可以把數(shù)據(jù)信息在畫布的指定位置輸出。這樣做比用 Qrepot 的自由度大多了,我們可以非常自如地在屏幕上,以自己喜歡的方式畫出來,就好像用筆在紙上畫一樣非常自由。我們常常聽一些程序員說,在 DOS 版本下用程序編寫報表非常自由,而現(xiàn)在用 WINDOWS 版本的開 發(fā)工具,打印報表非常受限制,比如:PowerBuilder 中的數(shù)據(jù)窗口,用他來產(chǎn)生報表非常方便,不用動多少腦筋,上手非常容易,可以減少程序員的工作量,但是,對高級程序員來說,他們覺得不如 DOS 自由,很多特殊效果,都不能顯示出來,有的地方不太適合中國人的口味。而在 DELPHI 下,高級組件的 Canvas 屬性就可以完全滿足高級程序員的需求。 Tcanvas 用于繪畫的工具有畫筆,刷子和字體。 找到工具了,接下來就是該如何從數(shù)據(jù)庫檢索數(shù)據(jù)把報表輸出。分析一下,我們知道,一張報表主要由四大部分組成。標(biāo)題,表頭,表體,頁角 。 標(biāo)題,一般位于頂部,字體與表體字體不同,而且字體大小較大,因此,把它單獨(dú)輸出。標(biāo)題一般只是在數(shù)據(jù)的第一頁顯示,以后的頁則不需要顯示; 表頭,在數(shù)據(jù)的頂部,他的字體,大小,高度可以在頁面設(shè)置時設(shè)置,他的內(nèi)容是根據(jù) select 語句中的表名,字段名到數(shù)據(jù)字典中檢索出中文名輸出的; 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 42 頁 表體,緊接在表頭的下面是表體,他的字體,大小,高度亦可以通過頁面設(shè)置來修改,表體的內(nèi)容則是根據(jù) SQL 語句產(chǎn)生的。這些 SQL 語句則是直接保存在 dic_reports 的SQL 屬性當(dāng)中。 頁角,標(biāo)識的是查詢數(shù)據(jù)的頁數(shù)。 報表窗口,一 次只能顯示一頁,如果有多頁則可以通過點(diǎn)擊下一頁,查看其它的數(shù)據(jù)。在翻頁顯示數(shù)據(jù)時,我們設(shè)置了書簽(指針),每一頁設(shè)置一個書簽指向每一頁的第一條記錄。除此之外,報表窗口還提供了放大,縮小功能,通過選擇縮放比例,則可以任意查看數(shù)據(jù)。 中南大學(xué)畢業(yè)設(shè)計(jì)(論文) 第 43 頁 第 5 章 測試 開發(fā)一個軟件系統(tǒng),面對各種各樣的功能,各種錯綜復(fù)雜的問題,我們的主觀認(rèn)識不可能完全地符合客觀現(xiàn)實(shí),各個模塊之間的通信和配合不可能完美無缺,那么在設(shè)計(jì),編碼的各個環(huán)節(jié)中都不可避免的發(fā)生一些錯誤。因此,我們要及時的進(jìn)行測試,看我們制作的結(jié)果是 否達(dá)到了我們預(yù)計(jì)的效果。如果,不符合設(shè)計(jì)要求就要及時地進(jìn)行調(diào)整,修改。 單元測試 在開發(fā)軟件的過程中,軟件測試是與編碼同行進(jìn)行的。每寫完一個模塊的代碼,或者一個模塊的部分代碼,就可以運(yùn)行程序。我們可以預(yù)先設(shè)計(jì)一些數(shù)據(jù)輸入到程序中,看看這一小部分代碼是否合乎我們的設(shè)計(jì)要求,如果執(zhí)行結(jié)果正確,則進(jìn)入下一部分編程,如果出錯,則查錯改錯。這樣做,看起來很麻煩,實(shí)際上非常有用。因?yàn)椋?dāng)程序發(fā)生錯誤時,我們可以很快地定位程序出錯的位置,方便程序員查錯,改錯。而如果,我們把很長很長的代碼一次性寫好(雖然這樣做很有某 種成就感),但是,一旦程序出錯,查找起來成就感就要變成沮喪感了。因?yàn)?,要從幾百行代碼中,或者是從若干個嵌套循環(huán)中查找錯誤,發(fā)現(xiàn)錯誤,簡直就是大海撈針。 用軟件工程的專業(yè)術(shù)語來說,上面的那種測試方法叫做,白盒測試法,因?yàn)槲覀儼殉绦蚩闯裳b在一個透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯測試程序,檢驗(yàn)程序中的每條通路是否都能按預(yù)定的要求工作,因此白盒測試又稱作結(jié)構(gòu)測試。在單元測試中,我們常常采用這種方法。但是,局部完全正確了,并
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1