




已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
畢業(yè)設(shè)計(論文)某百貨店pos積分管理系統(tǒng)積分添加和通票回收論文作者姓名:申請學位專業(yè):申請學位類別:指導教師姓名(職稱):論文提交日期: 某百貨店pos積分管理系統(tǒng)積分添加和通票回收摘 要百貨商店是與人們生活密切相關(guān)的重要部分,是人們購買日常生活用品最為方便,且日常用品最為豐富集中,日常消費也最為頻繁的場所,隨著現(xiàn)代社會的進步,生活節(jié)奏的加快,它的重要地位越來越顯著。為了給客戶提供更方便的服務(wù)平臺,同時也為了能讓百貨店交易業(yè)務(wù)管理規(guī)范化而設(shè)計了pos積分管理系統(tǒng)。pos積分管理系統(tǒng)主要以積分點的形式,對顧客在該店的購物情況與以統(tǒng)計,積分點累計到一定程度,對顧客返回獎勵的方式刺激消費,從而增加店鋪的銷售業(yè)績,也給顧客帶來了更多的實惠。某店pos積分管理系統(tǒng)中積分添加和通票回收的功能在這一系統(tǒng)中起著重要的作用。積分添加是按照積分添加規(guī)則對每天的交易產(chǎn)生的積分點進行添加處理,更改相應(yīng)的數(shù)據(jù)表信息。而通票回收主要是根據(jù)初期的參數(shù)數(shù)據(jù)對通票回收數(shù)據(jù)再度處理,生成新的通票回收數(shù)據(jù)文件。模塊是基于日文系統(tǒng)windows 2000,采用c#開發(fā)語言,并使用sql server 2000的數(shù)據(jù)庫來實現(xiàn)了積分點添加以及通票回收處理的功能。系統(tǒng)著重程序的運行異常處理,csv文件的讀寫和數(shù)據(jù)庫的基本操作處理。關(guān)鍵詞:計算機應(yīng)用;管理信息系統(tǒng);pos;sql數(shù)據(jù)庫;積分添加;通票回收the integral management of pos system for a department store the integral adding and ticket 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 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 circumstance 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. 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 based 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 database.key words: computer application; management information system; pos; sql database; integral adding; ticket recovering目 錄論文總頁數(shù):28頁1 引 言12 模塊需求分析12.1 模塊功能需求12.2 客戶對模塊性能要求12.3 模塊開發(fā)需求23 系統(tǒng)開發(fā)設(shè)計分析23.1 系統(tǒng)設(shè)計模式23.2 模塊功能分析33.2.1 積分添加模塊的功能分析33.2.2 通票回收模塊的功能分析43.3 程序流程及分析43.3.1 積分添加模塊的流程圖33.3.2 通票回收模塊的流程圖53.4 模塊的詳細設(shè)計53.4.1 模塊主要對象的定義53.4.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計64 模塊的實現(xiàn)過程分析104.1 積分添加類具體實現(xiàn)104.2 通票回收類具體實現(xiàn)195 系統(tǒng)運行結(jié)果235.1 積分添加類測試結(jié)果235.2 通票回收類測試結(jié)果25結(jié)論26參考文獻26致謝27聲明281引 言21世紀的今天,人類已步入一個信息高速發(fā)展的時代。隨著科學技術(shù)的不斷發(fā)展,日益更新,計算機技術(shù)的發(fā)展更是突飛猛進,并在人們的生活當中起著重要的作用。運用計算機技術(shù)可以開發(fā)各式各樣的產(chǎn)品,特別是管理系統(tǒng),已經(jīng)深入到各行各業(yè)的各個方面。隨著wto的步伐加快,國際化競爭必然加劇,國際國內(nèi)市場將面臨更為激烈的爭奪。參與市場競爭,更多的要靠先進超前的經(jīng)營管理觀念和方法、系統(tǒng)的戰(zhàn)略規(guī)劃、科學市場分析、規(guī)范管理運作、入微客戶服務(wù)、優(yōu)秀員工隊伍等綜合實力。經(jīng)營績效是公司管理的重心,建立先進管理系統(tǒng),對推動公司戰(zhàn)略實現(xiàn)、提高經(jīng)營業(yè)績。積分管理系統(tǒng)就是在具備先進科學技術(shù)條件下,以先進超前的經(jīng)營管理觀念為基礎(chǔ)而設(shè)計的一套先進的管理系統(tǒng)。積分管理系統(tǒng)的先進性,是要經(jīng)過詳細的需求分析和精心的設(shè)計才能實現(xiàn)的。一個公司的管理系統(tǒng)是否先進,完善,是由公司的管理制度,管理理念來決定的。然而一個公司的管理系統(tǒng)的先進性,完善性直接體現(xiàn)了該公司的管理制度和管理理念。因此具有先進和完善的管理系統(tǒng),在各大企業(yè)的管理和發(fā)展中起著非常重要的作用。但是怎樣才能體現(xiàn)一個管理系統(tǒng)是否真正的先進和完善呢?這在我們開發(fā)該積分管理系統(tǒng)時,應(yīng)首要涉及考慮的問題。比如:在積分管理系統(tǒng)中,會員的基本信息是否完整,店鋪的基本信息是否完整,系統(tǒng)的積分更新是否準確及時,管理系統(tǒng)的性能是否穩(wěn)定,管理系統(tǒng)的利用是否節(jié)約系統(tǒng)資源降低成本等等都是必須考慮的問題。為了滿足某百貨店的需求,我們設(shè)計出具有以下優(yōu)點的積分管理系統(tǒng)。如:檢索迅速,可靠性高,穩(wěn)定性強,更新方便,保密性好,成本低,使用方便等等。各大企業(yè)可以利用積分管理系統(tǒng)通過積分的手段提高經(jīng)營績效,達到增加利潤的目的,增加企業(yè)間的競爭??偟膩碚f開發(fā)一套積分管理系統(tǒng)是很重要的。在這個積分管理系統(tǒng)中,我主要負責積分點添加、通票數(shù)據(jù)處理兩個個模塊。我結(jié)合所學的知識,基于日文系統(tǒng)windows 2000,采用c#開發(fā)語言,并使用sql server 2000的數(shù)據(jù)庫來實現(xiàn)此模塊。下面將介紹開發(fā)具體過程。2模塊需求分析2.1模塊功能需求pos積分管理系統(tǒng)主要針對加入店鋪會員身份的顧客,為他們提供更加優(yōu)惠,便利的商業(yè)服務(wù)。積分點添加主要是根據(jù)商店營銷方案制定的獎勵積分添加規(guī)則,對會員在店鋪(包括分店)所有的消費,進行相應(yīng)的獎勵,需要適時地對會員的積分進行正確的添加和存儲,以照顧消費者最根本的利益;如果積分沒有及時添加,會直接損壞商店和顧客的關(guān)系;通票數(shù)據(jù)的回收主要是,根據(jù)通票輸入數(shù)據(jù)文件和參數(shù)控制文件的內(nèi)容制作出通票回收記錄文件,以備存儲和其他使用。2.2客戶對模塊性能要求 實現(xiàn)模塊所有功能 模塊重用性強 模塊穩(wěn)定性和容錯能力強 模塊能穩(wěn)定運行 模塊能即時響應(yīng)2.3模塊開發(fā)需求 整個pos積分管理系統(tǒng)主要針對日的外包業(yè)務(wù),因此要求所有的開發(fā)人員統(tǒng)一開發(fā)語言和數(shù)據(jù)庫,運行在windows 2000的操作系統(tǒng)上面,這是客戶最基本的要求特點,并要求嚴格按照顧客提供的初步設(shè)計式樣書進行代碼的開發(fā),實現(xiàn)pcl要求的邊界測試點和功能概要,其中積分點添加和通票回收數(shù)據(jù)制作這兩個個模塊的完成,根據(jù)其初步設(shè)計代碼量的估計大約是兩千行左右,根據(jù)進度安排表大致需要兩個月左右的時間來完成詳細設(shè)計,編碼,單體測試和撰寫報告。詳細開發(fā)需要如下:1.硬件需求:微型計算機一臺2.操作系統(tǒng):windows 2000(日文)3.開發(fā)語言:c#.net4.數(shù)據(jù)庫:microsoft sql server 20005.其他軟件需求:visual studio2003集成開發(fā)環(huán)境 3系統(tǒng)開發(fā)設(shè)計分析3.1系統(tǒng)設(shè)計模式積分添加模塊的流程涉及一個輸入文件和八個數(shù)據(jù)庫表,其中,四個輸入數(shù)據(jù)表,一個輸出數(shù)據(jù)表和三個既需輸入也需輸出的數(shù)據(jù)表:1) 獎勵積分添加規(guī)則文件:fsp_bonus_rule.csv (csv文件),輸入文件,所存放的數(shù)據(jù)為積分添加的標準參照數(shù)據(jù),是積分添加整個模塊所有計算的基礎(chǔ)。2) 會員基本信息表:fsptb_member,輸入數(shù)據(jù)表,所存放數(shù)據(jù)為會員的基本信息。3) 會員狀態(tài)表:fsptb_member_status,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為會員的狀態(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é)果表:fsptb_point_bonus,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為獎勵的積分添加結(jié)果相關(guān)數(shù)據(jù)。8) 獎勵更新日志表:fsptb_point_jnl,輸出數(shù)據(jù)表,所存放日志是積分添加事件日志。9) 積分履歷表:fsptb_point_rireki,輸入輸出數(shù)據(jù)表,所存放數(shù)據(jù)為積分變動日志。圍繞這幾個數(shù)據(jù)庫文件和文本文件進行數(shù)據(jù)的查詢,添加,刪除,讀寫等操作。通票回收模塊處理時需要用到三個數(shù)據(jù)文件,其中,兩個輸入數(shù)據(jù)文件,一個輸出數(shù)據(jù)文件。1) 通票回收基本信息文件:coupon_recycling_data.csv (csv文件,未排序),輸入文件,所存放數(shù)據(jù)為通票回收的最基本信息。2) 初期參數(shù)數(shù)據(jù)文件:parametet_data.csv(csv文件,未排序),輸入文件,所存放數(shù)據(jù)為初期模塊運行要取得的基本參數(shù)數(shù)據(jù)和控制信息。3) 通票回收結(jié)果文件:coupon_recycling_registerfile.csv(csv文件),輸出數(shù)據(jù),所存放數(shù)據(jù)為處理后的通票回收結(jié)果。3.2模塊功能分析3.2.1積分添加模塊的功能分析: 1) 添加規(guī)則文件的讀入:執(zhí)行積分添加模塊功能時,首先要讀入指定獎勵規(guī)則的文件,如何獎勵,獎勵多少,其內(nèi)容由店鋪決策人員的規(guī)定而定,此功能模塊就是讀入csv規(guī)則文件,把他寫入臨時的規(guī)則文件中,然后整個積分添加模塊都以臨時文件為基準。2) 積分基本文件的搜索和更新:積分基本文件表fspb_point提供最開始的基本信息,在根據(jù)處理日表的信息判斷完成基本添加結(jié)果表后,本月出來尚未進行的條件下,逐條搜索積分基本文件表里滿足條件的會員,對他們的基本積分點進行添加操作,結(jié)合其他表的數(shù)據(jù)完成添加操作后再對該表更新。3) 循環(huán)中對單條記錄的處理:對積分基本文件表中找到的滿足條件需要進行積分添加的會員的每一條記錄,我們都要進行相同的條件判斷處理,首先搜索會員狀態(tài)基本信息表中是否有相關(guān)記錄,有的話對獎勵積分添加結(jié)果表進行追加,積分基本文件表的更新以及積分履歷表和積分日志表的追加或者更新。3.2.2通票回收模塊的功能分析:1) 通票回收基本數(shù)據(jù)表和初期參數(shù)表的讀入:兩個表中分別讀出一條數(shù)據(jù),并對這兩條數(shù)據(jù)以jan_code為關(guān)鍵字進行表,相等的話進行回收處理操作,不相等的話繼續(xù)讀入,直到兩張表循環(huán)完。2) 通票回收處理:對jan_code滿足條件的數(shù)據(jù),再比較主鍵,相等的則證明該會員有相關(guān)記錄,要對會員所有的數(shù)據(jù)要進行統(tǒng)計累加,直到有不相等的情況發(fā)生,向通票回收處理結(jié)果表寫入數(shù)據(jù)。3.3程序流程及分析3.3.1積分添加模塊流程圖:如圖1,處理過程即是在這數(shù)張表之間傳輸添加數(shù)據(jù),本模塊起到一個數(shù)據(jù)控制器的作用,處理積分添加事件。獎勵積分添加規(guī)則獎勵積分點添加會員基本信息表會員狀態(tài)表積分基本信息表處理日表店鋪基本信息表積分履歷表獎勵更新日志獎勵積分添加結(jié)果表圖1積分添加處理流程圖1) 通過處理日表中的處理日期判斷積分添加處理是否已經(jīng)執(zhí)行過,如執(zhí)行過程序結(jié)束;2) 讀入積分添加規(guī)則文件信息,依據(jù)規(guī)則開始進行添加處理;3) 查找積分基本信息表,循環(huán)處理,對滿足給定條件的會員記錄進行積分添加;4) 讀入會員基本信息表,會員狀態(tài)表,店鋪基本信息表,獎勵積分添加結(jié)果表,積分履歷表的相關(guān)信息,對當前會員記錄進行具體的添加處理。5) 將處理的結(jié)果,包括追加和更新兩種形式,返回到積分履歷表,獎勵積分添加結(jié)果表,獎勵更新日志和會員狀態(tài)表中。通票回收基本數(shù)據(jù)通票回收數(shù)據(jù)制作通票回收結(jié)果文件初期的參數(shù)數(shù)據(jù)3.3.2通票回收模塊數(shù)據(jù)流程圖:圖2通票回收處理流程圖如圖2,通過本模塊對基本的通票回收輸入數(shù)據(jù),進行再處理,根據(jù)參數(shù)表的要求,能夠得到需要的通票回收結(jié)果。圖2通票回收處理流程圖1) 讀入通票回收基本數(shù)據(jù),并進行升序排序;同時讀入初期參數(shù)數(shù)據(jù)表,并進行降序排2) 通票回收數(shù)據(jù)制作詳細處理,(模塊功能已經(jīng)介紹)。3) 在滿足回收條件的情況下,把詳細的處理結(jié)果寫入通票回收結(jié)果文件的一條記錄中。3.4 模塊的詳細設(shè)計系統(tǒng)的開發(fā)設(shè)計過程中主要會用到其他幾個輔助類:數(shù)據(jù)庫后臺操作類 skyconnect;共用文件讀取類iniconfig;共用文件 common.ini;以及一些細節(jié)功能實現(xiàn)需要而寫的函數(shù)。3.4.1模塊主要對象的定義模塊使用到的類如圖3所示:fspb1520fspb1250iniconfigskyconnectini文件數(shù)據(jù)庫圖3類調(diào)用邏輯圖模塊fspb1250和fspb1520通過類iniconfig和類skyconnect進行對文件和數(shù)據(jù)庫的訪問。圖各類一覽表:表1模塊類說明表命名空間類名說明百貨店pos情報管理.fspb1250fspb1250積分添加百貨店pos情報管理.fspb1520fspb1520通票回收百貨店pos情報管理iniconfig共通文件讀取百貨店pos情報管理skyconnect數(shù)據(jù)庫操作skyconnect類的使用,主要是為了避免每次連接數(shù)據(jù)庫操作時,都要重復添寫重復的代碼,為了美觀和方便維護的作用。由于積分添加模塊和通票回收模塊的數(shù)據(jù)庫操作頻繁,所以只建立個數(shù)據(jù)庫連接的skyconnect事例是很方便的。對于整個系統(tǒng)而言,所涉及到的屬性較多,因此建立一個文件存儲系統(tǒng)的屬性值,每個模塊通過相應(yīng)方法調(diào)用對應(yīng)的屬性。通過類iniconfig需要從配置文件common.ini中讀取的屬性值,如果文件不存在或者讀取失敗都要輸出錯誤日志記錄,(此處只列舉和積分添加,通票回收相關(guān)的屬性)如下表:表2 iniconfig類讀取屬性表common.ini中的屬性值對應(yīng)的參數(shù)說明sqlconnection_string_sqlconnection_string數(shù)據(jù)庫連接字符串filepath_filepath文件路徑member_data_member_data文件名bonus_rule_bonus_rule文件名pos_data_pos_data文件名logfile_logfile文件名最常用到的是數(shù)據(jù)庫管理系統(tǒng)服務(wù)器連接所需的連接字符串進行讀取,即用到的字符串是sqlconnection_string,其它的文件只是通過聲明類iniconfig實例進行文件存在與否的判斷,但是如果上面所列文件中有一個不存在的話,模塊就會輸出錯誤信息到日志數(shù)據(jù)庫中去,這是遵從共通文件讀取要求規(guī)范所必需要的。 3.4.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計在積分管理系統(tǒng)中,數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計占非常重要的地位,設(shè)計好壞與數(shù)據(jù)庫中數(shù)據(jù)的讀取起很大影響作用。而且應(yīng)該與數(shù)據(jù)的統(tǒng)計算法相結(jié)合,以數(shù)據(jù)的讀取統(tǒng)計方便為目的。在積分更新和積分累計記錄模塊中,設(shè)計如下:上述兩模塊中所有被用到的數(shù)據(jù)表的名稱的定義: 表3表名定義序號表參數(shù)名表名說明1fsptb_member記錄會員基本信息2fsptb_point記錄積分點基本信息3fsptb_tenpo記錄店鋪基本信息4fsptb_member_status記錄會員狀態(tài)信息5fsptb_log記錄系統(tǒng)的輸入日志6fsptb_point_rireki記錄積分履歷7fsptb_point_jnl記錄積分日志8fspb_coupon臨時保存通票回收基本數(shù)據(jù)9fspb_prameter臨時保存初期參數(shù)數(shù)據(jù)注:數(shù)據(jù)表中與本模塊不相關(guān)的數(shù)據(jù)項因為太多未列出,但實際存在; (1)fsptb_member(會員)表4會員數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否允許為空member_code會員編碼char13not nullnyukai_ymd入會年月日char8nullmember_kbn會員種類char1nullnyukai_tenpo入會的店鋪編碼char6nullmukou_kbn起效種類char1nulladd_ymdhms注冊時間char14nulladd_tantou注冊負責人idchar6nullupd_ymdhms更新時間char14null會員編號是會員身份的唯一標識,通過編號可以知道該會員是否存在,如果存在,才有必要進行會員積分的添加。(2)fsptb_point(積分)表5積分數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否為空member_code會員編碼char13not nullold_member_code舊會員編碼char13nullyutai_rank優(yōu)惠等級char2nullnow_point現(xiàn)在積分點98nullruikei_point累計積分點98nullout_ruikei_point支出的累計積分點98nulladd_ruikei_point增加的累計積分點98nullkihon_ruikei_point基本累計積分點98nullbonus_ruikei_point獎勵累計積分點98nullbefore_tuki_kaiage_m上上月交易金額910nullmember_waribiki_m打折累計金額910nullkounyu_m購買金額910nullmukou_kbn起效種類char1null保存了會員入會后的所有積分點的信息,以不同的方式和標準統(tǒng)計著會員的積分記錄。只要“當日購買金額”和“起效種類”達到條件就會進行積分添加處理。(3)fsptb_tenpo(店鋪)表6店鋪數(shù)據(jù)表主鍵列(屬性)名中文名稱類型寬度是否允許為空tenpo_code店鋪編碼char6not nulltenpo_addr地址char100null根據(jù)表6可以找到會員當時在何地何時入會的信息。(4)fsptb_member_status(會員狀態(tài))表7會員狀態(tài)表主鍵列(屬性)名中文名稱類型寬度是否允許為空member_code會員編碼char13not nullold_member_code舊會員編碼char13nulldominant_code優(yōu)先級別編碼char3not nulltenpo_code店鋪號碼char6not nullold_tenpo_code舊店鋪編碼char6not null可以通過表7查詢到會員的狀態(tài),是否滿足積分添加的標準。(5)fsptb_log(日志)表8系統(tǒng)日志信息表主鍵列(屬性)名中文名稱類型寬度是否允許為空p_sel信息類型char1nullp_msgcd信息編號int4not nullp_msg信息內(nèi)容char256nullp_appnm程序名char32nullp_funcnm函數(shù)名char32nullp_jobnm工作獄char32nullp_rrdetail詳細信息char256nullp_inifileini文件名char32null模塊處理過程中所有的預計出錯信息的輸入保存表。能及時反映會員的積分添加失敗與否的具體信息。(6)fsptb_point_rireki(積分履歷表)表9積分履歷表主鍵列(屬性)名中文名稱類型寬度是否允許為空member_code會員編號char13not nullymd日期char8not nullyutai_rank優(yōu)惠等級char2nullkihon_point當日基本積分numeric9nullbonus_point當日獎勵積分numeric6nulladd_point當日增加積分numeric6nullout_point當日輸出積分numeric6nullnow_point現(xiàn)在積分numeric8nullupd_ymdhms更新時間char14nullupd_tantou操作者編號char6null會員自入會以來的所有歷史積分記錄,比積分表統(tǒng)計得多。(7)fsptb_point_jnl(積分日志表)表10積分日志表主鍵列(屬性)名中文名稱類型寬度空否tenpo_code店鋪號碼char6not nullmember_code會員編碼char13not nulladd_point_b當日增加積分(前)numeric6nullout_point_b當日消費積分(前)numeric6nullnow_point_b現(xiàn)在積分(更新前)numeric8nullbonus_point_b當日獎勵積分(前)numeric8nullout_kaiage_m_b當日消費金額(前)numeric10nulladd_kaiage_m_b當日增加金額(前)numeric10nulltuki_kaiage_m_b當月消費金額(前)numeric10nulladd_point_a當日增加積分(后)numeric6nullout_point_a當日消費積分(后)numeric6nullnow_point_a現(xiàn)在積分(更新后)numeric8nullbonus_point_a當日獎勵積分(后)numeric8nullout_kaiage_m_a當日消費額(后)numeric10nulladd_kaiage_m_a當日增加金額(后)numeric10nulltuki_kaiage_ma當月消費金額(后)numeric10nulljnl_auto_id記錄自動編號int4not null表10積分添加處理的系統(tǒng)日志。(8)fsptb_coupon(通票數(shù)據(jù))表11通票回收數(shù)據(jù)庫臨時表主鍵列(屬性)名中文名稱類型寬度是否允許為空date營業(yè)日char6not nulltenpo_code店鋪編號char6not nullnumber記錄機號碼char6not nulljan_codejan編號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編號char2not nulljnl_hen_kbn參數(shù)char1null4模塊的實現(xiàn)過程分析 下面將以對代碼的解釋說明的方式對兩個模塊的實現(xiàn)過程以詳細的說明,并列出部分重要代碼:4.1積分添加類具體實現(xiàn)首先在fspb_1250的構(gòu)造函數(shù)中建立共同函數(shù)的讀取類iniconfig;如果共同函數(shù)取得成功沒有發(fā)生異常的錯誤或者不為空,就建立數(shù)據(jù)庫連接類skyconnet; 以便程序中能方便調(diào)用;其中判斷ini文件的存在十分重要,它是整個系統(tǒng)銜接的核心,如果ini文件的讀取失?。?代表ini文件不存在;2代表ini文件不能打開;3代表ini文件內(nèi)容為空,主鍵或者內(nèi)容格式的錯誤),將不做任何的其他操作;直接結(jié)實程序;public ()/共通情報取得(ini) ini = new 昐壿揦pos忣曬娗棟冀醚.iniconfig();if(ini.errorstring!=1&ini.errorstring!=2&ini.errorstring!=3) skyconnect = new 昐壿揦pos忣曬娗棟冀醚.skyconnect(); 如果讀取失敗需要輸出失敗原因,因為程序的所有數(shù)據(jù)庫操作都封裝在skyconnect類中的,而skyconnect類也需要ini文件的讀取返回的參數(shù)地址等初期數(shù)據(jù)成功才可以;所以ini的報錯必須自己手動建立數(shù)據(jù)庫的連接才行,以下是發(fā)生錯誤3的情況下手動連接數(shù)據(jù)庫的情況: elsesqlconnection con1 = newsqlconnection(server=38;uid=sa;pwd=123456;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.close();con1.close(); 在ini文件讀取成功的條件下進行本模塊的具體操作:首先向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é)果表數(shù)據(jù)fspb_point_bonus是否存在數(shù)據(jù):以處理日fspb_syoribi的日期shori_ym為主鍵搜索獎勵積分添加結(jié)果表數(shù)據(jù)表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= + shori_ym + ;dataset dataset_fsptb_point_bonus = skyconnect.getdataset (sql_fsptb_point_bonus);如果有適當?shù)臄?shù)據(jù)存在則向日志fspb_log輸入完成信息,表示當天的添加處理已經(jīng)處理完成程序正常結(jié)束,否則進行積分點的添加,判斷條件是以if (dataset_fsptb_point_bonus.tables0.rows.count != 0)的方式,讀取數(shù)據(jù)庫的文件,判斷是否有記錄來區(qū)分的。讀入積分添加規(guī)則文件fsp_bonus_rule.csv并把讀出的信息(購買金額上限,購買金額下限,添加點數(shù),獎勵區(qū)分)信息分別寫入臨時的txt文件new_fsp_bonus_rule.txt中,如果csv文件中無信息則向日志文件fspb_log中寫如相應(yīng)的出錯信息,同時程序終止,此功能的實現(xiàn)由read_fsp_bonus_rulecsv()函數(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 pathtop = 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(rulefile_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 = 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ù)條件(當前購買金額大于0和區(qū)分無效=0)搜索積分基本信息表fspb_point,如果有匹配的記錄則繼續(xù)進行添加處理,沒有就終止程序。讀取的方式是foreach循環(huán)的,這也是本程序的難點,循環(huán)過程中的數(shù)據(jù)處理相當煩瑣,不時需要查詢相關(guān)的數(shù)據(jù)表,讀入相關(guān)文件,保存臨時信息到變量,比較判斷循環(huán)條件;循環(huán)過程中再對每一條匹配記錄處理(詳細情況見后);判斷的代碼見下:/ 読込 dataset datas_fspb_point =skyconnect.getdataset(select before_tuki_kaiage_m,member_code,yutai_rank from fsptb_point where before_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) 每條記錄的詳細處理過程. 每條記錄的詳細處理情況:1) 當前記錄信息的保存:now_before_tuki_kaiage_m = int32.parse(new_rowbefore_tuki_kaiage_m.tostring();now_member_code = new_rowmember_code.tostring();now_yutai_rank = new_rowyutai_rank.tostring();2) 獎勵積分臨時規(guī)則文件進行檢索,對獎勵積分添加對象數(shù)據(jù)進行判定: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ù)主要實現(xiàn):根據(jù)輸入?yún)?shù)的信息,即當前購買金額,來循環(huán)判斷一個txt文件的每行信息,該txt文件每行信息的每個數(shù)據(jù)用“,”分割開,通過逐行對比對應(yīng)字節(jié)的字符串找到對應(yīng)的數(shù)據(jù)后,返回該行字符串的一部分內(nèi)容,并同時保存到新建立的兩個txt文件中(bonustable.txt和pointtable.txt)供以后使用;此txt文件在本模塊中是new_fsp_bonus_rule.txt臨時文件;代碼如下:public decimal chechfrom_bonus_ruletxt(decimal now_k) string read; bool panduan = true; decimal newarry = new 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); streamwriter streamw_p = new streamwriter(newp, true); streamw_p.writeline(newarry2); point_type0 = newarry2; streamw_p.close(); string newb = this .make_path(bonustable.txt); streamwriter strea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 仁愛英語(2024版)Unit 7語法講解及練習答案
- 2023師資考核試題條例復習試題
- 應(yīng)用文寫作+歷史古跡海報設(shè)計比賽報道 講義 高一下學期3月檢測英語試題
- 校園足球聯(lián)賽訓練計劃
- 電子商務(wù)教研室年度發(fā)展計劃
- 2025年社會工作者法律培訓計劃
- 初中女子籃球健身與營養(yǎng)計劃
- 七年級生物科普教育推廣計劃
- 健身房意外誤吸的原因及預防措施
- 中毒急救護理學
- 銀行存款日記賬課件
- 2023年??稻哦θ谫Y擔保有限公司招聘筆試模擬試題及答案解析
- 2023高中學業(yè)水平合格性考試歷史重點知識點歸納總結(jié)(復習必背)
- 導游人員管理法律制度課件
- 2022年江蘇安東控股集團有限公司招聘筆試題庫及答案解析
- 美國地圖高清中文版
- 金屬監(jiān)督監(jiān)理實施細則
- 正確認識汽車太陽膜課件
- 工程建筑給排水外文文獻翻譯1
- 曲線上梁的平分中矢坐標計算方法解讀
- DB4201∕T 646-2021 軌道交通工程運營期結(jié)構(gòu)監(jiān)測技術(shù)規(guī)程
評論
0/150
提交評論