百貨店P(guān)OS積分系統(tǒng)的設(shè)計(jì)與測(cè)試_第1頁(yè)
百貨店P(guān)OS積分系統(tǒng)的設(shè)計(jì)與測(cè)試_第2頁(yè)
百貨店P(guān)OS積分系統(tǒng)的設(shè)計(jì)與測(cè)試_第3頁(yè)
百貨店P(guān)OS積分系統(tǒng)的設(shè)計(jì)與測(cè)試_第4頁(yè)
百貨店P(guān)OS積分系統(tǒng)的設(shè)計(jì)與測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、百貨店P(guān)OS積分系統(tǒng)的設(shè)計(jì)與測(cè)試摘 要百貨商店是與人們生活密切相關(guān)的重要部分,是人們購(gòu)買日常生活用品最為方便,且日常用品最為豐富集中,日常消費(fèi)也最為頻繁的場(chǎng)所,隨著現(xiàn)代社會(huì)的進(jìn)步,生活節(jié)奏的加快,它的重要地位越來越顯著。為了給客戶提供更方便的服務(wù)平臺(tái),同時(shí)也為了能讓百貨店交易業(yè)務(wù)管理規(guī)范化而設(shè)計(jì)了POS積分管理系統(tǒng)。POS積分管理系統(tǒng)主要以積分點(diǎn)的形式,對(duì)顧客在該店的購(gòu)物情況與以統(tǒng)計(jì),積分點(diǎn)累計(jì)到一定程度,對(duì)顧客返回獎(jiǎng)勵(lì)的方式刺激消費(fèi),從而增加店鋪的銷售業(yè)績(jī),也給顧客帶來了更多的實(shí)惠。某店P(guān)OS積分管理系統(tǒng)中積分添加和通票回收的功能在這一系統(tǒng)中起著重要的作用。積分添加是按照積分添加規(guī)則對(duì)每天的

2、交易產(chǎn)生的積分點(diǎn)進(jìn)行添加處理,更改相應(yīng)的數(shù)據(jù)表信息。而通票回收主要是根據(jù)初期的參數(shù)數(shù)據(jù)對(duì)通票回收數(shù)據(jù)再度處理,生成新的通票回收數(shù)據(jù)文件。模塊是基于日文系統(tǒng)Windows 2000,采用C#開發(fā)語(yǔ)言,并使用SQL server 2000的數(shù)據(jù)庫(kù)來實(shí)現(xiàn)了積分點(diǎn)添加以及通票回收處理的功能。系統(tǒng)著重程序的運(yùn)行異常處理,CSV文件的讀寫和數(shù)據(jù)庫(kù)的基本操作處理。關(guān)鍵詞:計(jì)算機(jī)應(yīng)用;管理信息系統(tǒng);POS;SQL數(shù)據(jù)庫(kù);積分添加;通票回收The Integral Management of POS System for a Department Store The Integral adding and Ti

3、cket RecoveringAbstract The department store is playing an important role in our daily life, where we can purchase something conveniently. It is also a place that having a large numbers of goods and attracting so many customers to consuming in it. With the development of modern society and speeding

4、up of the pace of the life, its importance is becoming more and more evident. In order to give consumers a more convenient service platform and standardize the business, a system of POS Integral adding is designed. This system is worked in the form of integral adding points, statistic the circumstan

5、ce of shopping of the client in the shop. In order to increase the sale and bring more discounts to the clients, the store would return the consumers something when the point is accumulated to a certain degree, The integral adding inserting and ticket recovering is playing an important role in store

6、. Integral adding is dealing with the points which produced from every daily transaction and change the relating data table information. Ticket recovering is dealing with the recalling data again according to the primary parameter data and produces the new file of recalling data. This module is base

7、d on the Windows 2000 of Japans system and the C# developing language SQL server 2000 database are adopted to realize the functions of integral adding inserting and ticket recovering. More attention is paid to the abnormal processing, the reading and writing of CSV file, and the base operating of da

8、tabase.Key words: Computer application; Management information system; POS; SQL database; integral adding; ticket recovering目 錄論文總頁(yè)數(shù):28頁(yè)1 引 言12 模塊需求分析12.1 模塊功能需求12.2 客戶對(duì)模塊性能要求12.3 模塊開發(fā)需求23 系統(tǒng)開發(fā)設(shè)計(jì)分析23.1 系統(tǒng)設(shè)計(jì)模式23.2 模塊功能分析33.2.1 積分添加模塊的功能分析33.2.2 通票回收模塊的功能分析43.3 程序流程及分析43.3.1 積分添加模塊的流程圖33.3.2 通票回收模塊的流程

9、圖53.4 模塊的詳細(xì)設(shè)計(jì)53.4.1 模塊主要對(duì)象的定義53.4.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)64 模塊的實(shí)現(xiàn)過程分析104.1 積分添加類具體實(shí)現(xiàn)104.2 通票回收類具體實(shí)現(xiàn)195 系統(tǒng)運(yùn)行結(jié)果235.1 積分添加類測(cè)試結(jié)果235.2 通票回收類測(cè)試結(jié)果25結(jié)論26參考文獻(xiàn)261引 言21世紀(jì)的今天,人類已步入一個(gè)信息高速發(fā)展的時(shí)代。隨著科學(xué)技術(shù)的不斷發(fā)展,日益更新,計(jì)算機(jī)技術(shù)的發(fā)展更是突飛猛進(jìn),并在人們的生活當(dāng)中起著重要的作用。運(yùn)用計(jì)算機(jī)技術(shù)可以開發(fā)各式各樣的產(chǎn)品,特別是管理系統(tǒng),已經(jīng)深入到各行各業(yè)的各個(gè)方面。隨著WTO的步伐加快,國(guó)際化競(jìng)爭(zhēng)必然加劇,國(guó)際國(guó)內(nèi)市場(chǎng)將面臨更為激烈的爭(zhēng)奪。參與市場(chǎng)競(jìng)

10、爭(zhēng),更多的要靠先進(jìn)超前的經(jīng)營(yíng)管理觀念和方法、系統(tǒng)的戰(zhàn)略規(guī)劃、科學(xué)市場(chǎng)分析、規(guī)范管理運(yùn)作、入微客戶服務(wù)、優(yōu)秀員工隊(duì)伍等綜合實(shí)力。經(jīng)營(yíng)績(jī)效是公司管理的重心,建立先進(jìn)管理系統(tǒng),對(duì)推動(dòng)公司戰(zhàn)略實(shí)現(xiàn)、提高經(jīng)營(yíng)業(yè)績(jī)。積分管理系統(tǒng)就是在具備先進(jìn)科學(xué)技術(shù)條件下,以先進(jìn)超前的經(jīng)營(yíng)管理觀念為基礎(chǔ)而設(shè)計(jì)的一套先進(jìn)的管理系統(tǒng)。積分管理系統(tǒng)的先進(jìn)性,是要經(jīng)過詳細(xì)的需求分析和精心的設(shè)計(jì)才能實(shí)現(xiàn)的。一個(gè)公司的管理系統(tǒng)是否先進(jìn),完善,是由公司的管理制度,管理理念來決定的。然而一個(gè)公司的管理系統(tǒng)的先進(jìn)性,完善性直接體現(xiàn)了該公司的管理制度和管理理念。因此具有先進(jìn)和完善的管理系統(tǒng),在各大企業(yè)的管理和發(fā)展中起著非常重要的作用。但是怎

11、樣才能體現(xiàn)一個(gè)管理系統(tǒng)是否真正的先進(jìn)和完善呢?這在我們開發(fā)該積分管理系統(tǒng)時(shí),應(yīng)首要涉及考慮的問題。比如:在積分管理系統(tǒng)中,會(huì)員的基本信息是否完整,店鋪的基本信息是否完整,系統(tǒng)的積分更新是否準(zhǔn)確及時(shí),管理系統(tǒng)的性能是否穩(wěn)定,管理系統(tǒng)的利用是否節(jié)約系統(tǒng)資源降低成本等等都是必須考慮的問題。為了滿足某百貨店的需求,我們?cè)O(shè)計(jì)出具有以下優(yōu)點(diǎn)的積分管理系統(tǒng)。如:檢索迅速,可靠性高,穩(wěn)定性強(qiáng),更新方便,保密性好,成本低,使用方便等等。各大企業(yè)可以利用積分管理系統(tǒng)通過積分的手段提高經(jīng)營(yíng)績(jī)效,達(dá)到增加利潤(rùn)的目的,增加企業(yè)間的競(jìng)爭(zhēng)??偟膩碚f開發(fā)一套積分管理系統(tǒng)是很重要的。在這個(gè)積分管理系統(tǒng)中,我主要負(fù)責(zé)積分點(diǎn)添加、

12、通票數(shù)據(jù)處理兩個(gè)個(gè)模塊。我結(jié)合所學(xué)的知識(shí),基于日文系統(tǒng)Windows 2000,采用C#開發(fā)語(yǔ)言,并使用SQL server 2000的數(shù)據(jù)庫(kù)來實(shí)現(xiàn)此模塊。下面將介紹開發(fā)具體過程。2模塊需求分析2.1模塊功能需求POS積分管理系統(tǒng)主要針對(duì)加入店鋪會(huì)員身份的顧客,為他們提供更加優(yōu)惠,便利的商業(yè)服務(wù)。積分點(diǎn)添加主要是根據(jù)商店?duì)I銷方案制定的獎(jiǎng)勵(lì)積分添加規(guī)則,對(duì)會(huì)員在店鋪(包括分店)所有的消費(fèi),進(jìn)行相應(yīng)的獎(jiǎng)勵(lì),需要適時(shí)地對(duì)會(huì)員的積分進(jìn)行正確的添加和存儲(chǔ),以照顧消費(fèi)者最根本的利益;如果積分沒有及時(shí)添加,會(huì)直接損壞商店和顧客的關(guān)系;通票數(shù)據(jù)的回收主要是,根據(jù)通票輸入數(shù)據(jù)文件和參數(shù)控制文件的內(nèi)容制作出通票回

13、收記錄文件,以備存儲(chǔ)和其他使用。2.2客戶對(duì)模塊性能要求 實(shí)現(xiàn)模塊所有功能 模塊重用性強(qiáng) 模塊穩(wěn)定性和容錯(cuò)能力強(qiáng) 模塊能穩(wěn)定運(yùn)行 模塊能即時(shí)響應(yīng)2.3模塊開發(fā)需求 整個(gè)POS積分管理系統(tǒng)主要針對(duì)日的外包業(yè)務(wù),因此要求所有的開發(fā)人員統(tǒng)一開發(fā)語(yǔ)言和數(shù)據(jù)庫(kù),運(yùn)行在Windows 2000的操作系統(tǒng)上面,這是客戶最基本的要求特點(diǎn),并要求嚴(yán)格按照顧客提供的初步設(shè)計(jì)式樣書進(jìn)行代碼的開發(fā),實(shí)現(xiàn)PCL要求的邊界測(cè)試點(diǎn)和功能概要,其中積分點(diǎn)添加和通票回收數(shù)據(jù)制作這兩個(gè)個(gè)模塊的完成,根據(jù)其初步設(shè)計(jì)代碼量的估計(jì)大約是兩千行左右,根據(jù)進(jìn)度安排表大致需要兩個(gè)月左右的時(shí)間來完成詳細(xì)設(shè)計(jì),編碼,單體測(cè)試和撰寫報(bào)告。詳細(xì)開發(fā)

14、需要如下:1.硬件需求:微型計(jì)算機(jī)一臺(tái)2.操作系統(tǒng):Windows 2000(日文)3.開發(fā)語(yǔ)言:C#.NET4.數(shù)據(jù)庫(kù):Microsoft SQL Server 20005.其他軟件需求:Visual Studio2003集成開發(fā)環(huán)境 3系統(tǒng)開發(fā)設(shè)計(jì)分析3.1系統(tǒng)設(shè)計(jì)模式積分添加模塊的流程涉及一個(gè)輸入文件和八個(gè)數(shù)據(jù)庫(kù)表,其中,四個(gè)輸入數(shù)據(jù)表,一個(gè)輸出數(shù)據(jù)表和三個(gè)既需輸入也需輸出的數(shù)據(jù)表:1) 獎(jiǎng)勵(lì)積分添加規(guī)則文件:FSP_BONUS_RULE.CSV (CSV文件),輸入文件,所存放的數(shù)據(jù)為積分添加的標(biāo)準(zhǔn)參照數(shù)據(jù),是積分添加整個(gè)模塊所有計(jì)算的基礎(chǔ)。2) 會(huì)員基本信息表:FSPTB_MEMBE

15、R,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為會(huì)員的基本信息。3) 會(huì)員狀態(tài)表:FSPTB_MEMBER_STATUS,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為會(huì)員的狀態(tài)信息。4) 積分基本信息表:FSPTB_POINT,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為積分的基本信息。5) 處理日表:FSPTB_SYORIBI,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為積分處理的相關(guān)數(shù)據(jù)。6) 店鋪基本信息表:FSPTB_TENPO,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為店鋪的基本信息。7) 獎(jiǎng)勵(lì)添加結(jié)果表:FSPTB_POINT_BONUS,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為獎(jiǎng)勵(lì)的積分添加結(jié)果相關(guān)數(shù)據(jù)。8) 獎(jiǎng)勵(lì)更新日志表:FSPTB_POINT_JNL,輸出數(shù)據(jù)表,所存放日志

16、是積分添加事件日志。9) 積分履歷表:FSPTB_POINT_RIREKI,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為積分變動(dòng)日志。圍繞這幾個(gè)數(shù)據(jù)庫(kù)文件和文本文件進(jìn)行數(shù)據(jù)的查詢,添加,刪除,讀寫等操作。通票回收模塊處理時(shí)需要用到三個(gè)數(shù)據(jù)文件,其中,兩個(gè)輸入數(shù)據(jù)文件,一個(gè)輸出數(shù)據(jù)文件。1) 通票回收基本信息文件:Coupon_Recycling_Data.CSV (CSV文件,未排序),輸入文件,所存放數(shù)據(jù)為通票回收的最基本信息。2) 初期參數(shù)數(shù)據(jù)文件:Parametet_Data.csv(CSV文件,未排序),輸入文件,所存放數(shù)據(jù)為初期模塊運(yùn)行要取得的基本參數(shù)數(shù)據(jù)和控制信息。3) 通票回收結(jié)果文件:coup

17、on_Recycling_RegisterFile.CSv(CSV文件),輸出數(shù)據(jù),所存放數(shù)據(jù)為處理后的通票回收結(jié)果。3.2模塊功能分析3.2.1積分添加模塊的功能分析: 1) 添加規(guī)則文件的讀入:執(zhí)行積分添加模塊功能時(shí),首先要讀入指定獎(jiǎng)勵(lì)規(guī)則的文件,如何獎(jiǎng)勵(lì),獎(jiǎng)勵(lì)多少,其內(nèi)容由店鋪決策人員的規(guī)定而定,此功能模塊就是讀入CSV規(guī)則文件,把他寫入臨時(shí)的規(guī)則文件中,然后整個(gè)積分添加模塊都以臨時(shí)文件為基準(zhǔn)。2) 積分基本文件的搜索和更新:積分基本文件表FSPB_POINT提供最開始的基本信息,在根據(jù)處理日表的信息判斷完成基本添加結(jié)果表后,本月出來尚未進(jìn)行的條件下,逐條搜索積分基本文件表里滿足條件的會(huì)

18、員,對(duì)他們的基本積分點(diǎn)進(jìn)行添加操作,結(jié)合其他表的數(shù)據(jù)完成添加操作后再對(duì)該表更新。3) 循環(huán)中對(duì)單條記錄的處理:對(duì)積分基本文件表中找到的滿足條件需要進(jìn)行積分添加的會(huì)員的每一條記錄,我們都要進(jìn)行相同的條件判斷處理,首先搜索會(huì)員狀態(tài)基本信息表中是否有相關(guān)記錄,有的話對(duì)獎(jiǎng)勵(lì)積分添加結(jié)果表進(jìn)行追加,積分基本文件表的更新以及積分履歷表和積分日志表的追加或者更新。3.2.2通票回收模塊的功能分析:1) 通票回收基本數(shù)據(jù)表和初期參數(shù)表的讀入:兩個(gè)表中分別讀出一條數(shù)據(jù),并對(duì)這兩條數(shù)據(jù)以JAN_CODE為關(guān)鍵字進(jìn)行表,相等的話進(jìn)行回收處理操作,不相等的話繼續(xù)讀入,直到兩張表循環(huán)完。2) 通票回收處理:對(duì)JAN_C

19、ODE滿足條件的數(shù)據(jù),再比較主鍵,相等的則證明該會(huì)員有相關(guān)記錄,要對(duì)會(huì)員所有的數(shù)據(jù)要進(jìn)行統(tǒng)計(jì)累加,直到有不相等的情況發(fā)生,向通票回收處理結(jié)果表寫入數(shù)據(jù)。3.3程序流程及分析3.3.1積分添加模塊流程圖:如圖1,處理過程即是在這數(shù)張表之間傳輸添加數(shù)據(jù),本模塊起到一個(gè)數(shù)據(jù)控制器的作用,處理積分添加事件。獎(jiǎng)勵(lì)積分添加規(guī)則獎(jiǎng)勵(lì)積分點(diǎn)添加會(huì)員基本信息表會(huì)員狀態(tài)表積分基本信息表處理日表店鋪基本信息表積分履歷表獎(jiǎng)勵(lì)更新日志獎(jiǎng)勵(lì)積分添加結(jié)果表圖1積分添加處理流程圖1) 通過處理日表中的處理日期判斷積分添加處理是否已經(jīng)執(zhí)行過,如執(zhí)行過程序結(jié)束;2) 讀入積分添加規(guī)則文件信息,依據(jù)規(guī)則開始進(jìn)行添加處理;3) 查找

20、積分基本信息表,循環(huán)處理,對(duì)滿足給定條件的會(huì)員記錄進(jìn)行積分添加;4) 讀入會(huì)員基本信息表,會(huì)員狀態(tài)表,店鋪基本信息表,獎(jiǎng)勵(lì)積分添加結(jié)果表,積分履歷表的相關(guān)信息,對(duì)當(dāng)前會(huì)員記錄進(jìn)行具體的添加處理。5) 將處理的結(jié)果,包括追加和更新兩種形式,返回到積分履歷表,獎(jiǎng)勵(lì)積分添加結(jié)果表,獎(jiǎng)勵(lì)更新日志和會(huì)員狀態(tài)表中。通票回收基本數(shù)據(jù)通票回收數(shù)據(jù)制作通票回收結(jié)果文件初期的參數(shù)數(shù)據(jù)3.3.2通票回收模塊數(shù)據(jù)流程圖:圖2通票回收處理流程圖如圖2,通過本模塊對(duì)基本的通票回收輸入數(shù)據(jù),進(jìn)行再處理,根據(jù)參數(shù)表的要求,能夠得到需要的通票回收結(jié)果。圖2通票回收處理流程圖1) 讀入通票回收基本數(shù)據(jù),并進(jìn)行升序排序;同時(shí)讀入初

21、期參數(shù)數(shù)據(jù)表,并進(jìn)行降序排2) 通票回收數(shù)據(jù)制作詳細(xì)處理,(模塊功能已經(jīng)介紹)。3) 在滿足回收條件的情況下,把詳細(xì)的處理結(jié)果寫入通票回收結(jié)果文件的一條記錄中。3.4 模塊的詳細(xì)設(shè)計(jì)系統(tǒng)的開發(fā)設(shè)計(jì)過程中主要會(huì)用到其他幾個(gè)輔助類:數(shù)據(jù)庫(kù)后臺(tái)操作類 SkyConnect;共用文件讀取類Iniconfig;共用文件 Common.ini;以及一些細(xì)節(jié)功能實(shí)現(xiàn)需要而寫的函數(shù)。3.4.1模塊主要對(duì)象的定義模塊使用到的類如圖3所示:FSPB1520FSPB1250IniconfigSkyConnectInI文件數(shù)據(jù)庫(kù)圖3類調(diào)用邏輯圖模塊FSPB1250和FSPB1520通過類Iniconfig和類SkyC

22、onnect進(jìn)行對(duì)文件和數(shù)據(jù)庫(kù)的訪問。圖各類一覽表:表1模塊類說明表命名空間類名說明百貨店P(guān)OS情報(bào)管理.FSPB1250FSPB1250積分添加百貨店P(guān)OS情報(bào)管理.FSPB1520FSPB1520通票回收百貨店P(guān)OS情報(bào)管理Iniconfig共通文件讀取百貨店P(guān)OS情報(bào)管理SkyConnect數(shù)據(jù)庫(kù)操作skyConnect類的使用,主要是為了避免每次連接數(shù)據(jù)庫(kù)操作時(shí),都要重復(fù)添寫重復(fù)的代碼,為了美觀和方便維護(hù)的作用。由于積分添加模塊和通票回收模塊的數(shù)據(jù)庫(kù)操作頻繁,所以只建立個(gè)數(shù)據(jù)庫(kù)連接的skyConnect事例是很方便的。對(duì)于整個(gè)系統(tǒng)而言,所涉及到的屬性較多,因此建立一個(gè)文件存儲(chǔ)系統(tǒng)的屬性

23、值,每個(gè)模塊通過相應(yīng)方法調(diào)用對(duì)應(yīng)的屬性。通過類Iniconfig需要從配置文件Common.ini中讀取的屬性值,如果文件不存在或者讀取失敗都要輸出錯(cuò)誤日志記錄,(此處只列舉和積分添加,通票回收相關(guān)的屬性)如下表:表2 Iniconfig類讀取屬性表Common.ini中的屬性值對(duì)應(yīng)的參數(shù)說明SqlConnection_String_SqlConnection_String數(shù)據(jù)庫(kù)連接字符串FilePath_FilePath文件路徑Member_Data_Member_Data文件名Bonus_Rule_Bonus_Rule文件名Pos_Data_Pos_Data文件名LogFile_LogFi

24、le文件名最常用到的是數(shù)據(jù)庫(kù)管理系統(tǒng)服務(wù)器連接所需的連接字符串進(jìn)行讀取,即用到的字符串是SqlConnection_String,其它的文件只是通過聲明類Iniconfig實(shí)例進(jìn)行文件存在與否的判斷,但是如果上面所列文件中有一個(gè)不存在的話,模塊就會(huì)輸出錯(cuò)誤信息到日志數(shù)據(jù)庫(kù)中去,這是遵從共通文件讀取要求規(guī)范所必需要的。 3.4.2數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)在積分管理系統(tǒng)中,數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)占非常重要的地位,設(shè)計(jì)好壞與數(shù)據(jù)庫(kù)中數(shù)據(jù)的讀取起很大影響作用。而且應(yīng)該與數(shù)據(jù)的統(tǒng)計(jì)算法相結(jié)合,以數(shù)據(jù)的讀取統(tǒng)計(jì)方便為目的。在積分更新和積分累計(jì)記錄模塊中,設(shè)計(jì)如下:上述兩模塊中所有被用到的數(shù)據(jù)表的名稱的定義: 表3表名定義

25、序號(hào)表參數(shù)名表名說明1FSPTB_MEMBER記錄會(huì)員基本信息2FSPTB_POINT記錄積分點(diǎn)基本信息3FSPTB_TENPO記錄店鋪基本信息4FSPTB_MEMBER_STATUS記錄會(huì)員狀態(tài)信息5FSPTB_LOG記錄系統(tǒng)的輸入日志6FSPTB_POINT_RIREKI記錄積分履歷7FSPTB_POINT_JNL記錄積分日志8FSPB_COUPON臨時(shí)保存通票回收基本數(shù)據(jù)9FSPB_PRAMETER臨時(shí)保存初期參數(shù)數(shù)據(jù)注:數(shù)據(jù)表中與本模塊不相關(guān)的數(shù)據(jù)項(xiàng)因?yàn)樘辔戳谐?,但?shí)際存在; (1)FSPTB_MEMBER(會(huì)員)表4會(huì)員數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否允許為空MEMBER

26、_CODE會(huì)員編碼Char13NOT NULLNYUKAI_YMD入會(huì)年月日Char8NULLMEMBER_KBN會(huì)員種類Char1NULLNYUKAI_TENPO入會(huì)的店鋪編碼Char6NULLMUKOU_KBN起效種類Char1NULLADD_YMDHMS注冊(cè)時(shí)間Char14NULLADD_TANTOU注冊(cè)負(fù)責(zé)人IDChar6NULLUPD_YMDHMS更新時(shí)間Char14NULL會(huì)員編號(hào)是會(huì)員身份的唯一標(biāo)識(shí),通過編號(hào)可以知道該會(huì)員是否存在,如果存在,才有必要進(jìn)行會(huì)員積分的添加。(2)FSPTB_POINT(積分)表5積分?jǐn)?shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否為空MEMBER_CODE

27、會(huì)員編碼Char13NOT NULLOLD_MEMBER_CODE舊會(huì)員編碼Char13NULLYUTAI_RANK優(yōu)惠等級(jí)Char2NULLNOW_POINT現(xiàn)在積分點(diǎn)98NULLRUIKEI_POINT累計(jì)積分點(diǎn)98NULLOUT_RUIKEI_POINT支出的累計(jì)積分點(diǎn)98NULLADD_RUIKEI_POINT增加的累計(jì)積分點(diǎn)98NULLKIHON_RUIKEI_POINT基本累計(jì)積分點(diǎn)98NULLBONUS_RUIKEI_POINT獎(jiǎng)勵(lì)累計(jì)積分點(diǎn)98NULLBEFORE_TUKI_KAIAGE_M上上月交易金額910NULLMEMBER_WARIBIKI_M打折累計(jì)金額910NULL

28、KOUNYU_M購(gòu)買金額910NULLMUKOU_KBN起效種類Char1NULL保存了會(huì)員入會(huì)后的所有積分點(diǎn)的信息,以不同的方式和標(biāo)準(zhǔn)統(tǒng)計(jì)著會(huì)員的積分記錄。只要“當(dāng)日購(gòu)買金額”和“起效種類”達(dá)到條件就會(huì)進(jìn)行積分添加處理。(3)FSPTB_TENPO(店鋪)表6店鋪數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否允許為空TENPO_CODE店鋪編碼Char6NOT NULLTENPO_ADDR地址Char100NULL根據(jù)表6可以找到會(huì)員當(dāng)時(shí)在何地何時(shí)入會(huì)的信息。(4)FSPTB_MEMBER_STATUS(會(huì)員狀態(tài))表7會(huì)員狀態(tài)表主鍵列(屬性)名中文名稱類型寬度是否允許為空MEMBER_CODE會(huì)

29、員編碼Char13NOT NULLOLD_MEMBER_CODE舊會(huì)員編碼Char13NULLDOMINANT_CODE優(yōu)先級(jí)別編碼Char3NOT NULLTENPO_CODE店鋪號(hào)碼Char6NOT NULLOLD_TENPO_CODE舊店鋪編碼Char6NOT NULL可以通過表7查詢到會(huì)員的狀態(tài),是否滿足積分添加的標(biāo)準(zhǔn)。(5)FSPTB_LOG(日志)表8系統(tǒng)日志信息表主鍵列(屬性)名中文名稱類型寬度是否允許為空P_Sel信息類型char1NULLP_MsgCD信息編號(hào)Int4NOT NULLP_Msg信息內(nèi)容char256NULLP_APPNM程序名char32NULLP_FunCN

30、M函數(shù)名char32NULLP_JobNM工作獄char32NULLP_rrDetail詳細(xì)信息char256NULLP_INIFileINI文件名char32NULL模塊處理過程中所有的預(yù)計(jì)出錯(cuò)信息的輸入保存表。能及時(shí)反映會(huì)員的積分添加失敗與否的具體信息。(6)FSPTB_POINT_RIREKI(積分履歷表)表9積分履歷表主鍵列(屬性)名中文名稱類型寬度是否允許為空MEMBER_CODE會(huì)員編號(hào)char13NOT NULLYMD日期char8NOT NULLYUTAI_RANK優(yōu)惠等級(jí)char2NULLKIHON_POINT當(dāng)日基本積分Numeric9NULLBONUS_POINT當(dāng)日獎(jiǎng)勵(lì)

31、積分Numeric6NULLADD_POINT當(dāng)日增加積分Numeric6NULLOUT_POINT當(dāng)日輸出積分Numeric6NULLNOW_POINT現(xiàn)在積分Numeric8NULLUPD_YMDHMS更新時(shí)間char14NULLUPD_TANTOU操作者編號(hào)char6NULL會(huì)員自入會(huì)以來的所有歷史積分記錄,比積分表統(tǒng)計(jì)得多。(7)FSPTB_POINT_JNL(積分日志表)表10積分日志表主鍵列(屬性)名中文名稱類型寬度空否TENPO_CODE店鋪號(hào)碼char6NOT NULLMEMBER_CODE會(huì)員編碼char13NOT NULLADD_POINT_B當(dāng)日增加積分(前)Numeri

32、c6NULLOUT_POINT_B當(dāng)日消費(fèi)積分(前)Numeric6NULLNOW_POINT_B現(xiàn)在積分(更新前)Numeric8NULLBONUS_POINT_B當(dāng)日獎(jiǎng)勵(lì)積分(前)Numeric8NULLOUT_KAIAGE_M_B當(dāng)日消費(fèi)金額(前)Numeric10NULLADD_KAIAGE_M_B當(dāng)日增加金額(前)Numeric10NULLTUKI_KAIAGE_M_B當(dāng)月消費(fèi)金額(前)Numeric10NULLADD_POINT_A當(dāng)日增加積分(后)Numeric6NULLOUT_POINT_A當(dāng)日消費(fèi)積分(后)Numeric6NULLNOW_POINT_A現(xiàn)在積分(更新后)Num

33、eric8NULLBONUS_POINT_A當(dāng)日獎(jiǎng)勵(lì)積分(后)Numeric8NULLOUT_KAIAGE_M_A當(dāng)日消費(fèi)額(后)Numeric10NULLADD_KAIAGE_M_A當(dāng)日增加金額(后)Numeric10NULLTUKI_KAIAGE_MA當(dāng)月消費(fèi)金額(后)Numeric10NULLJNL_AUTO_ID記錄自動(dòng)編號(hào)Int4NOT NULL表10積分添加處理的系統(tǒng)日志。(8)FSPTB_COUPON(通票數(shù)據(jù))表11通票回收數(shù)據(jù)庫(kù)臨時(shí)表主鍵列(屬性)名中文名稱類型寬度是否允許為空DATE營(yíng)業(yè)日char6NOT NULLTENPO_CODE店鋪編號(hào)char6NOT NULLNUM

34、BER記錄機(jī)號(hào)碼char6NOT NULLJAN_CODEJAN編號(hào)char8NOT NULLJNL_SORT_SEQ排序char2NOT NULLJNL_CLO_MUL_ITMITM數(shù)據(jù)int2NOT NULLJNL_CLO_AMTAMT數(shù)據(jù)int13NOT NULLJNL_HEN_KBN參數(shù)char6NULL通票回收處理模塊的原始待處理數(shù)據(jù)。(9)FSPTB_PRAMETER(初期參數(shù)表)表12原因表主鍵列(屬性)名中文名稱類型寬度空否JNL_KEN_NAM商品分類char1NOT NULLJAN_CODEJAN編號(hào)char2NOT NULLJNL_HEN_KBN參數(shù)char1NULL4模

35、塊的實(shí)現(xiàn)過程分析 下面將以對(duì)代碼的解釋說明的方式對(duì)兩個(gè)模塊的實(shí)現(xiàn)過程以詳細(xì)的說明,并列出部分重要代碼:4.1積分添加類具體實(shí)現(xiàn)首先在FSPB_1250的構(gòu)造函數(shù)中建立共同函數(shù)的讀取類Iniconfig;如果共同函數(shù)取得成功沒有發(fā)生異常的錯(cuò)誤或者不為空,就建立數(shù)據(jù)庫(kù)連接類SkyConnet; 以便程序中能方便調(diào)用;其中判斷INI文件的存在十分重要,它是整個(gè)系統(tǒng)銜接的核心,如果INI文件的讀取失敗(1代表INI文件不存在;2代表INI文件不能打開;3代表INI文件內(nèi)容為空,主鍵或者內(nèi)容格式的錯(cuò)誤),將不做任何的其他操作;直接結(jié)實(shí)程序;public ()/共通情報(bào)取得(INI) INI = new

36、昐壿揦POS忣曬娗棟冀醚.IniConfig();if(INI.ErrorString!=1&INI.ErrorString!=2&INI.ErrorString!=3) skyConnect = new 昐壿揦POS忣曬娗棟冀醚.SkyConnect(); 如果讀取失敗需要輸出失敗原因,因?yàn)槌绦虻乃袛?shù)據(jù)庫(kù)操作都封裝在SkyConnect類中的,而SkyConnect類也需要INI文件的讀取返回的參數(shù)地址等初期數(shù)據(jù)成功才可以;所以INI的報(bào)錯(cuò)必須自己手動(dòng)建立數(shù)據(jù)庫(kù)的連接才行,以下是發(fā)生錯(cuò)誤3的情況下手動(dòng)連接數(shù)據(jù)庫(kù)的情況: elseSqlConnection con1 = newSqlConn

37、ection(server=38;uid=sa;pwd=;database=tokyosuper); SqlCommand com1 = new SqlCommand(insert FSPTB_LOG(P_Sel,P_Msg,P_AppNM,P_FuncNM,P_JobNM,P_ErrDetail,P_INIFile)values(L,FSP.INI,FSPB1250,Add_Pointmain,SK-DENGBC,INI中名、名、內(nèi)容(値)存在,Common.ini), con1);con1.Open();com1.ExecuteNonQuery();con1.Cl

38、ose();con1.Close(); 在INI文件讀取成功的條件下進(jìn)行本模塊的具體操作:首先向FSPB_LOG表里面輸入程序開始日志:skyConnect.SqlExecute(insert FSPTB_LOG(P_Sel,P_AppNM,P_FuncNM,P_JobNM,P_ErrDetail,P_INIFile)values(S,FSPB1250,Add_Pointmain,SK-DENGBC,付加開始,Common.ini); 檢索獎(jiǎng)勵(lì)積分添加結(jié)果表數(shù)據(jù)FSPB_POINT_BONUS是否存在數(shù)據(jù):以處理日FSPB_SYORIBI的日期SHORI_YM為主鍵搜索獎(jiǎng)勵(lì)積分添加結(jié)果表數(shù)據(jù)表

39、string sql_FSPTB_SYORIBI = select SHORI_YM from FSPTB_SYORIBI;DataSet DataSet_SHORI_YM = skyConnect.GetDataSet (sql_FSPTB_SYORIBI);DataRow rows = DataSet_SHORI_YM.Tables0.Rows0; SHORI_YM = rowsSHORI_YM.ToString();string sql_FSPTB_POINT_BONUS = select SHORI_YM from FSPTB_POINT_BONUS where SHORI_YM= +

40、 SHORI_YM + ;DataSet DataSet_FSPTB_POINT_BONUS = skyConnect.GetDataSet (sql_FSPTB_POINT_BONUS);如果有適當(dāng)?shù)臄?shù)據(jù)存在則向日志FSPB_LOG輸入完成信息,表示當(dāng)天的添加處理已經(jīng)處理完成程序正常結(jié)束,否則進(jìn)行積分點(diǎn)的添加,判斷條件是以if (DataSet_FSPTB_POINT_BONUS.Tables0.Rows.Count != 0)的方式,讀取數(shù)據(jù)庫(kù)的文件,判斷是否有記錄來區(qū)分的。讀入積分添加規(guī)則文件FSP_BONUS_RULE.CSV并把讀出的信息(購(gòu)買金額上限,購(gòu)買金額下限,添加點(diǎn)數(shù),獎(jiǎng)勵(lì)區(qū)

41、分)信息分別寫入臨時(shí)的TXT文件new_FSP_BONUS_RULE.txt中,如果CSV文件中無信息則向日志文件FSPB_LOG中寫如相應(yīng)的出錯(cuò)信息,同時(shí)程序終止,此功能的實(shí)現(xiàn)由Read_FSP_BONUs_RULECSV()函數(shù)來實(shí)現(xiàn)的,代碼如下:public string Read_FSP_BONUS_RULECSV() /付加読込 string RuleFile_Path = INI.Bonus_Rule; int LastValues = RuleFile_Path.LastIndexOf(); int length = RuleFile_Path.Length; string Pa

42、thTop = RuleFile_Path.Remove(LastValues, length - LastValues);string PathEnd = RuleFile_Path.Remove(0, LastValues + 1); Lins_RuleTxtPath = this.Make_path(new_FSP_BONUS_RULE.txt);if (Directory.Exists(PathTop) if (File.Exists(RuleFile_Path) StreamReader StreamR_FSP_BONUS_RULECSV = new StreamReader(Rul

43、eFile_Path); string str_Rule = StreamR_FSP_BONUS_RULECSV.ReadLine(); if (str_Rule = null) skyConnect.SqlExecute(insert into FSPTB_LOG(P_sel,P_AppNM,P_FuncNM,p_JobNM,p_ErrDetail,p_InIFile)values(L,FSPB1250,Read_FSP_BONUS_RULECSV,SK-DENGBC,付加存在,Common.ini);else do System.IO.StreamWriter SteamW_RuleTxt

44、 = new StreamWriter(Lins_RuleTxtPath, true); SteamW_RuleTxt.WriteLine(str_Rule); SteamW_RuleTxt.Close(); str_Rule = StreamR_FSP_BONUS_RULECSV.ReadLine(); while (str_Rule != null); StreamR_FSP_BONUS_RULECSV.Close(); /if File.Exists(RuleFile_Path);(CSV文件讀取不成功,向FSPB_LOG文件中的輸入的信息的代碼未給出;)根據(jù)條件(當(dāng)前購(gòu)買金額大于0和區(qū)

45、分無效=0)搜索積分基本信息表FSPB_POINT,如果有匹配的記錄則繼續(xù)進(jìn)行添加處理,沒有就終止程序。讀取的方式是foreach循環(huán)的,這也是本程序的難點(diǎn),循環(huán)過程中的數(shù)據(jù)處理相當(dāng)煩瑣,不時(shí)需要查詢相關(guān)的數(shù)據(jù)表,讀入相關(guān)文件,保存臨時(shí)信息到變量,比較判斷循環(huán)條件;循環(huán)過程中再對(duì)每一條匹配記錄處理(詳細(xì)情況見后);判斷的代碼見下:/ 読込 DataSet DataS_FSPB_POINT =skyConnect.GetDataSet(select BEFORE_TUKI_KAIAGE_M,MEMBER_CODE,YUTAI_RANK from FSPTB_POINT where BEFORE_

46、TUKI_KAIAGE_M0 and MUKOU_KBN=0); if (DataS_FSPB_POINT.Tables0.Rows.Count != 0) foreach (DataRow New_Row in DataS_FSPB_POINT.Tables0.Rows) 每條記錄的詳細(xì)處理過程. 每條記錄的詳細(xì)處理情況:1) 當(dāng)前記錄信息的保存:Now_BEFORE_TUKI_KAIAGE_M = Int32.Parse(New_RowBEFORE_TUKI_KAIAGE_M.ToString();Now_MEMBER_CODE = New_RowMEMBER_CODE.ToString(

47、);Now_YUTAI_RANK = New_RowYUTAI_RANK.ToString();2) 獎(jiǎng)勵(lì)積分臨時(shí)規(guī)則文件進(jìn)行檢索,對(duì)獎(jiǎng)勵(lì)積分添加對(duì)象數(shù)據(jù)進(jìn)行判定:decimal nowPoint_Type = new decimal2;nowPoint_Type = this.ChechFrom_BONUS_RULETxt(Now_BEFORE_TUKI_KAIAGE_M);decimal Bonus_Point = nowPoint_Type0;decimal Bonus_Type = nowPoint_Type1;ChechFrom_BONUS_RULETxt()函數(shù)主要實(shí)現(xiàn):根據(jù)輸入?yún)?/p>

48、數(shù)的信息,即當(dāng)前購(gòu)買金額,來循環(huán)判斷一個(gè)txt文件的每行信息,該txt文件每行信息的每個(gè)數(shù)據(jù)用“,”分割開,通過逐行對(duì)比對(duì)應(yīng)字節(jié)的字符串找到對(duì)應(yīng)的數(shù)據(jù)后,返回該行字符串的一部分內(nèi)容,并同時(shí)保存到新建立的兩個(gè)txt文件中(Bonustable.txt和Pointtable.txt)供以后使用;此txt文件在本模塊中是new_FSP_BONUS_RULE.txt臨時(shí)文件;代碼如下:public decimal ChechFrom_BONUS_RULETxt(decimal Now_K) string Read; bool Panduan = true; decimal Newarry = new

49、decimal4; decimal Point_Type = new decimal2; StreamReader StreamR_LRTP; StreamR_LRTP = new StreamReader(Lins_RuleTxtPath); /付加対象判定 do Read = StreamR_LRTP.ReadLine(); Newarry = this .String_T0_Array(Read);if (Now_K = Newarry0) & (Now_K = Newarry1) string Newp = this.Make_path(Pointtable.txt); StreamW

50、riter StreamW_P = new StreamWriter(Newp, true); StreamW_P.WriteLine(Newarry2); Point_Type0 = Newarry2; StreamW_P.Close(); string Newb = this .Make_path(Bonustable.txt); StreamWriter StreamW_B = new StreamWriter(Newb, true); StreamW_B.WriteLine(Newarry3); Point_Type1 = Newarry3; StreamW_B.Close(); Panduan = false; while (Panduan =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論