畢業(yè)論文---職工工資核算管理信息系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(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><b>  畢 業(yè) 設(shè) 計(jì)</b></p><p>  設(shè) 計(jì) 題 目 職工工資核算管理信息系統(tǒng) </p><p><b>  摘 要</b></p><p>  該課題采用自上而下的結(jié)構(gòu)化開發(fā)方法與面向?qū)ο蠓椒ㄏ嘟Y(jié)合的方法,研究和開發(fā)萊鋼運(yùn)輸部職工工資核算管理信息系統(tǒng)。在理解軟件工程的思想和數(shù)據(jù)

2、庫(kù)理論的基礎(chǔ)上,通過對(duì)業(yè)務(wù)流程及原有舊系統(tǒng)分析和重構(gòu),重新設(shè)計(jì)系統(tǒng)體系結(jié)構(gòu)。采用Microsoft SQL Server2000設(shè)計(jì)并建立數(shù)據(jù)庫(kù),采用面向?qū)ο窬幊坦ぞ進(jìn)icrosoft Visual Studio C# .Net實(shí)現(xiàn),其人機(jī)界面友好,操作簡(jiǎn)單,數(shù)據(jù)驅(qū)動(dòng)相對(duì)容易,并易于實(shí)現(xiàn)。</p><p>  關(guān)鍵詞:管理信息系統(tǒng)、工資管理、結(jié)構(gòu)化方法、面向?qū)ο蠓椒?、Microsoft SQL Serv

3、er2000、Microsoft Visual Studio C# .Net</p><p><b>  ABSTRACT</b></p><p>  This topic uses the method which the top-down structurization method of exploitation and the object-orie

4、nted method unify, studies and develops the staff wages calculation management information system. In understanding software engineering thought and in database theory foundation, through to service flow and original old

5、 system analysis and restructuring, redesign system architecture. Uses Microsoft SQL Server2000 to design and to establish the database, uses object-oriented programming tool M</p><p>  Keywords:Management I

6、nformation System ,Salary Management, Structure-rization method,Object-oriented method,Microsoft SQL Server2000,Microsoft Visual Studio C# .Net</p><p><b>  目 錄</b></p><p><

7、;b>  1前言</b></p><p>  在現(xiàn)代化企業(yè)中,信息管理工作將發(fā)揮越來越重要的作用。企業(yè)信息管理工作已經(jīng)滲透到企業(yè)日常工作的許多方面,無論是其自身還是所發(fā)揮的作用,都為企業(yè)的創(chuàng)新、發(fā)展以及經(jīng)濟(jì)效益,做出了顯著的貢獻(xiàn)。</p><p>  運(yùn)輸部自2000年企業(yè)局域網(wǎng)投入運(yùn)用以來,先后開發(fā)使用了大大小小10幾個(gè)管理新系統(tǒng)。近兩年與軟件公司合作,開發(fā)了《智能化設(shè)

8、備管理信息系統(tǒng)》和《智能化鐵路運(yùn)輸綜合管理信息系統(tǒng)》?!吨悄芑O(shè)備管理信息系統(tǒng)》涵蓋設(shè)備一生管理,并將運(yùn)輸部自己的管理理念溶于其中,在設(shè)備管理方面起到了很好的效果;《智能化鐵路運(yùn)輸綜合管理信息系統(tǒng)》主要將運(yùn)輸部的主業(yè)——鐵路運(yùn)輸?shù)母鱾€(gè)方面聯(lián)系起來,利用鐵路微機(jī)聯(lián)鎖、車號(hào)自動(dòng)識(shí)別等技術(shù),實(shí)現(xiàn)萊鋼廠內(nèi)車輛跟蹤、統(tǒng)計(jì)、費(fèi)用核算等功能,提高了運(yùn)輸效率和管理效能。</p><p>  企業(yè)工資管理系統(tǒng)是一個(gè)企業(yè)單位不可缺少

9、的部分,它的內(nèi)容對(duì)于企業(yè)決策者和管理者來說都是至關(guān)重要的,所以企業(yè)工資管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但是,運(yùn)輸部仍然沿用95年編制的工資核算系統(tǒng),系統(tǒng)采用的技術(shù)老舊,不能適應(yīng)現(xiàn)有條件下的管理要求,因此決定設(shè)計(jì)一個(gè)新的職工工資管理信息系統(tǒng),達(dá)到檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、適應(yīng)網(wǎng)絡(luò)化的要求,提升工資管理手段。</p><p><b>  2管理信息系統(tǒng)概述<

10、;/b></p><p>  管理信息系統(tǒng)(簡(jiǎn)稱MIS)是介于信息論,經(jīng)濟(jì)管理理論,統(tǒng)計(jì)學(xué)與運(yùn)籌學(xué)及計(jì)算機(jī)科學(xué)之間的一門邊緣性,綜合性,系統(tǒng)性的交叉科學(xué),它是隨著管理科學(xué),信息技術(shù),計(jì)算機(jī)技術(shù)等的發(fā)展而產(chǎn)生和發(fā)展起來的。</p><p>  2.1 MIS系統(tǒng)開發(fā)方法的選用</p><p>  管理信息系統(tǒng)的開發(fā)方法有生命周期法、原型法和面向?qū)ο蟮拈_發(fā)方法等:

11、</p><p>  生命周期法(Life Cycle Method)是20世紀(jì)60年代發(fā)展起來的一種應(yīng)用廣泛且比較成熟的管理系統(tǒng)開發(fā)方法,它的基本思想是將系統(tǒng)的開發(fā)工作從開始到結(jié)束劃分為若干個(gè)階段,每個(gè)階段都有明確的任務(wù),而系統(tǒng)開發(fā)出來后,并不意味著生命周期的結(jié)束,而意味著根據(jù)組織的需要對(duì)系統(tǒng)的修改和重建的開始。</p><p>  原型法(Prototyping Method)是20世

12、紀(jì)80年代發(fā)展起來的,旨在改變生命周期法的缺點(diǎn)的一種系統(tǒng)開發(fā)方法,該法的開發(fā)思路是首先根據(jù)用戶的要求,由用戶和開發(fā)者共同確定系統(tǒng)的基本要求和主要功能,利用系統(tǒng)快速生成工具,建立一個(gè)系統(tǒng)模型,再在此基礎(chǔ)上與用戶交流,將模型不斷補(bǔ)充、修改、完善,如此反復(fù),最終直至用戶和開發(fā)者都比較滿意為止,從而形成一個(gè)相對(duì)穩(wěn)定、較為理想的管理信息系統(tǒng)。</p><p>  面向?qū)ο螅∣bject Oriented)的開發(fā)方法于20世

13、紀(jì)80年代開始興起的,是一種基于問題對(duì)象的自底向上的一種系統(tǒng)開發(fā)方法,這種方法的特點(diǎn)是以對(duì)象為基礎(chǔ),對(duì)象是分析問題和解決問題的核心。</p><p>  基于以上三種方法的特點(diǎn)和各自的優(yōu)缺點(diǎn),本職工工資管理系統(tǒng)利用軟件工程化思想和方法,總體上是采用結(jié)構(gòu)化生命法進(jìn)行系統(tǒng)分析和設(shè)計(jì)的,而系統(tǒng)實(shí)現(xiàn)等步驟則采用了原型法和面向?qū)ο蟮姆椒ā?lt;/p><p>  2.2 MIS系統(tǒng)開發(fā)過程</p&

14、gt;<p>  一個(gè)MIS系統(tǒng)的開發(fā)過程一般包括如下幾個(gè)步驟:</p><p> ?。?)需求分析:需求分析主要是了解用戶的需求。需求了解得越詳細(xì),程序的后期開發(fā)與維護(hù)費(fèi)用就會(huì)越少。一般的開發(fā)團(tuán)隊(duì)中,需求分析都是由資歷較深的系統(tǒng)分析員或項(xiàng)目經(jīng)理?yè)?dān)當(dāng),可見它的重要性。需求分析制訂好后,需要反復(fù)修改。將最后的結(jié)果交給用戶審定,確認(rèn)無誤后,由系統(tǒng)分析員完成需求分析文檔,再開始下一步工作。</p&g

15、t;<p> ?。?)概要設(shè)計(jì):概要設(shè)計(jì)緊跟在需求分析之后。用戶需求明確后,將得到的數(shù)據(jù)分析后,開始構(gòu)建數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。此時(shí),數(shù)據(jù)庫(kù)中的表格還未成形,通過各種分析工具(如PowerDesigner等)畫出數(shù)據(jù)流圖,最后就可抽象出數(shù)據(jù)庫(kù)的具體表結(jié)構(gòu)。這時(shí)由系統(tǒng)分析人員反復(fù)審核。確認(rèn)所有的需求都考慮在內(nèi),沒有遺漏后,就可以開始制訂概要設(shè)計(jì)文檔。概要設(shè)計(jì)文檔形成后,整個(gè)程序的邏輯框架也就形成了。</p><

16、p>  (3)詳細(xì)設(shè)計(jì):概要設(shè)計(jì)完成后,根據(jù)設(shè)計(jì)中制訂的功能模塊。就可以進(jìn)行詳細(xì)分析設(shè)計(jì)了。詳細(xì)設(shè)計(jì)就是將各個(gè)功能模塊用處理代碼全部用語(yǔ)言表達(dá)出。所以詳細(xì)設(shè)計(jì)是整個(gè)系統(tǒng)中最繁瑣的環(huán)節(jié)。詳細(xì)設(shè)計(jì)完成后,整個(gè)程序就確定了,再由編程人員根據(jù)詳細(xì)設(shè)計(jì)文檔將代碼完成。整個(gè)開發(fā)工作就宣告結(jié)束。</p><p>  (4)程序編碼:程序編碼相對(duì)于其他環(huán)節(jié)來說比較簡(jiǎn)單,程序員只需要根據(jù)詳細(xì)分析文檔寫程序編碼,保證代碼沒有錯(cuò)

17、誤即可。程序編碼需要注意的是整個(gè)程序書寫中命名的規(guī)范化與編程風(fēng)格的規(guī)范化,這需要較長(zhǎng)時(shí)間的培養(yǎng)來形成。需要在不斷的實(shí)踐中形成自己獨(dú)特的風(fēng)格??偟膩碚f,不要過分地追求復(fù)雜的算法,因?yàn)槟强赡軙?huì)導(dǎo)致后期維護(hù)人員無法讀懂你的代碼而造成維護(hù)的困難。</p><p> ?。?)測(cè)試:程序編碼完成后,就需要測(cè)試。測(cè)試有幾種類型,主要是測(cè)試代碼有無邏輯錯(cuò)誤以及在加載數(shù)據(jù)環(huán)境下程序的穩(wěn)定性問題。測(cè)試工作中發(fā)現(xiàn)的錯(cuò)誤應(yīng)及時(shí)改正,然后

18、將它記錄到測(cè)試文檔中。</p><p> ?。?)實(shí)施:導(dǎo)入用戶數(shù)據(jù),進(jìn)行系統(tǒng)切換,系統(tǒng)投入正常使用。</p><p>  以上是一個(gè)完整的MIS系統(tǒng)開發(fā)過程,其實(shí)不僅MIS系統(tǒng),其他類型的程序開發(fā)也基本相同。</p><p><b>  3可行性分析</b></p><p>  3.1系統(tǒng)現(xiàn)狀及缺陷分析</p&g

19、t;<p>  本系統(tǒng)投入運(yùn)用前,運(yùn)輸部仍然沿用95年編制的工資核算系統(tǒng),該系統(tǒng)為采用FoxBase2.0編寫。其工作流程為:</p><p>  1.每月各單位會(huì)計(jì)輪流輸入工資數(shù)據(jù)。</p><p>  2.由人力資源科人員進(jìn)行工資核算程序,計(jì)算當(dāng)月工資明細(xì)及其匯總表數(shù)據(jù),并逐項(xiàng)打印。</p><p>  3.由財(cái)務(wù)科人員進(jìn)行三項(xiàng)費(fèi)用提?。ǜ@M(fèi)、工

20、會(huì)費(fèi)、教育經(jīng)費(fèi)),形成三項(xiàng)費(fèi)用表。</p><p>  4.月末按發(fā)放銀行進(jìn)行數(shù)據(jù)拷貝,為各發(fā)放銀行提供工資數(shù)據(jù)。</p><p>  現(xiàn)將該系統(tǒng)缺陷分析如下:</p><p>  1.單機(jī)應(yīng)用程序:這造成數(shù)據(jù)錄入只能單人輸入,使工作周期較長(zhǎng),影響工作效率;</p><p>  2.可移植性差:該程序使用FoxBase2.0編寫,運(yùn)行于Dos

21、系統(tǒng),其打印模塊采用直接調(diào)用Dos下打印指令執(zhí)行,因此不適用于現(xiàn)有的Windows系統(tǒng),無法進(jìn)行移植;</p><p>  3.不是網(wǎng)絡(luò)應(yīng)用,無法支持現(xiàn)有的網(wǎng)絡(luò)互連的便利條件。</p><p>  因此,該系統(tǒng)存在工作效率低、程序老舊、可移植性差、無網(wǎng)絡(luò)功能等缺點(diǎn),不能適應(yīng)現(xiàn)有環(huán)境下的工作需要。</p><p>  3.2新系統(tǒng)目標(biāo)及功能要求</p>

22、<p>  根據(jù)以上分析,需設(shè)計(jì)新系統(tǒng)以適應(yīng)當(dāng)前需要,新系統(tǒng)應(yīng)支持網(wǎng)絡(luò),易于移植和配置,其具體功能要求如下:</p><p>  1、能夠?qū)崿F(xiàn)工資信息分布式錄入、修改、打??;</p><p>  2、能夠?qū)崿F(xiàn)月度工資統(tǒng)計(jì)匯總并形成報(bào)表打?。?lt;/p><p>  3、充分利用網(wǎng)絡(luò)資源,提供多用戶服務(wù),有用戶權(quán)限設(shè)置,達(dá)到職工工資保密要求;</p>

23、<p>  4、提供較為豐富的工資查詢功能,便于查詢統(tǒng)計(jì);</p><p>  5、用戶界面友好,操作方便。</p><p><b>  3.3系統(tǒng)業(yè)務(wù)流程</b></p><p>  根據(jù)對(duì)工資核算日常工作的調(diào)查,現(xiàn)繪制工資核算業(yè)務(wù)流程圖如下:</p><p><b>  3.4數(shù)據(jù)流程圖<

24、;/b></p><p>  根據(jù)已繪制的業(yè)務(wù)流程圖,繪制新系統(tǒng)數(shù)據(jù)流圖如下:</p><p><b>  3.5數(shù)據(jù)字典</b></p><p>  表3.1 數(shù)據(jù)流定義表</p><p>  表3.2 數(shù)據(jù)元素定義表</p><p>  表3.3 文件定義表</p>

25、<p>  表3.4 外部項(xiàng)定義表</p><p>  表3.5 加工定義表</p><p><b>  4系統(tǒng)總體設(shè)計(jì)</b></p><p>  4.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)</p><p>  為有效地保證和管理數(shù)據(jù)的安全性、訪問權(quán)限、完整性,采用C/S(Client/Server,客戶機(jī)/服務(wù)器)架構(gòu)和支

26、持C/S架構(gòu)的數(shù)據(jù)平臺(tái),是必然選擇。</p><p>  由于工資信息的保密性,因此采用C/S模式又稱C/S結(jié)構(gòu)。C/S模式就是基于企業(yè)內(nèi)部網(wǎng)絡(luò)的應(yīng)用系統(tǒng),C/S模式的應(yīng)用系統(tǒng)最大的好處是不依賴企業(yè)外網(wǎng)環(huán)境,即無論企業(yè)是否能夠上網(wǎng),都不影響應(yīng)用。</p><p>  C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用,由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)

27、器程序的機(jī)器,稱為應(yīng)用服務(wù)器,一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來的請(qǐng)求;客戶程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于服務(wù)器電腦,可稱為客戶電腦。當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果。</p><p>  該系統(tǒng)中服務(wù)器端實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)和后臺(tái)數(shù)據(jù)計(jì)算功能,客戶端實(shí)現(xiàn)用戶數(shù)據(jù)錄入、報(bào)表打印等功能。</p>

28、<p><b>  4.2系統(tǒng)功能劃分</b></p><p>  系統(tǒng)劃分為工資維護(hù)、人員變動(dòng)、歸集匯總、財(cái)務(wù)報(bào)表、系統(tǒng)維護(hù)等五大功能模塊。各模塊子功能模塊劃分如下:</p><p><b> ?、殴べY維護(hù)</b></p><p>  固定項(xiàng)目:維護(hù)職工個(gè)人工資的固定項(xiàng)目,這些項(xiàng)目很少變化。</p>

29、<p>  變動(dòng)項(xiàng)目:維護(hù)職工個(gè)人工資的固定項(xiàng)目,這些項(xiàng)目每個(gè)月都變化。</p><p>  工資明細(xì)打?。喊丛聦?dǎo)出指定單位工資明細(xì)。</p><p>  獎(jiǎng)金輸入:供人力資源科人員導(dǎo)入月度獎(jiǎng)金數(shù)據(jù),并可維護(hù)修改。</p><p><b> ?、迫藛T變動(dòng)</b></p><p>  內(nèi)部在職調(diào)動(dòng):內(nèi)部子單位

30、之間的人員調(diào)動(dòng)。</p><p>  外單位職工調(diào)入:外單位職工調(diào)入,即增加職工信息。</p><p>  職工調(diào)出或刪除:本單位職工調(diào)出或刪除。</p><p>  在職離退休退養(yǎng):在制職工離、退休、退養(yǎng)維護(hù)。</p><p>  加入內(nèi)外撫恤庫(kù):職工信息轉(zhuǎn)移至撫恤庫(kù)。</p><p><b>  ⑶歸集匯

31、總</b></p><p>  除車務(wù)二段外,其他在職職工工資為工商行發(fā)放,因此按發(fā)放銀行分為站段、工行和車務(wù)二段兩個(gè)匯總表。</p><p>  總匯:按照崗位分類匯總。</p><p>  各單位匯總:按月匯總指定單位工資總額。</p><p><b> ?、蓉?cái)務(wù)報(bào)表</b></p><

32、;p>  提取三費(fèi):財(cái)務(wù)科人員每月按照應(yīng)付工資數(shù)計(jì)算匯總職工三項(xiàng)費(fèi)用表(福利、教育、工會(huì))。</p><p>  銀行拷盤:按照發(fā)放銀行導(dǎo)出月度工資數(shù)據(jù)。</p><p><b>  ⑸系統(tǒng)維護(hù)</b></p><p>  單位信息維護(hù):維護(hù)單位編碼、單位名稱等單位信息。</p><p>  權(quán)限管理:提供系統(tǒng)用戶

33、個(gè)人信息維護(hù)。</p><p>  崗位設(shè)置:工資信息的崗位維護(hù)。</p><p><b>  4.3數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p><b>  1.概念設(shè)計(jì)</b></p><p>  概要設(shè)計(jì)基礎(chǔ)是完成需求分析后提供的需求說明書,用概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的關(guān)系,這種數(shù)據(jù)模型是與DBM

34、S無關(guān)的、面向現(xiàn)實(shí)世界的、易如理解的數(shù)據(jù)模型,其獨(dú)立于計(jì)算機(jī)的數(shù)據(jù)模型,獨(dú)立于計(jì)算機(jī)的軟硬件系統(tǒng),與用戶進(jìn)行交流十分方便。</p><p>  概念性數(shù)據(jù)模型關(guān)心的是如何完整、正確地反映客觀實(shí)際情況,不關(guān)心在數(shù)據(jù)庫(kù)中如何實(shí)現(xiàn)。這種數(shù)據(jù)模式能真實(shí)地反應(yīng)用戶要求的實(shí)際情況,是一種容易被人們理解的直觀的數(shù)據(jù)庫(kù)結(jié)構(gòu)模式。同時(shí)也是一種相對(duì)穩(wěn)定統(tǒng)一的數(shù)據(jù)模式,一般情況下很少變動(dòng)。概念性數(shù)據(jù)在用戶和設(shè)計(jì)者之間建立了橋梁。是設(shè)計(jì)

35、數(shù)據(jù)庫(kù)結(jié)構(gòu)的基礎(chǔ)。</p><p>  概念設(shè)計(jì)中自頂向下的實(shí)體分析方法,即常用的實(shí)體聯(lián)系模型(簡(jiǎn)稱E-R模型),對(duì)具體數(shù)據(jù)進(jìn)行抽象加工,將實(shí)體集合抽象成實(shí)體類型。用實(shí)體間聯(lián)系反映現(xiàn)實(shí)世界事物間的內(nèi)在聯(lián)系。E-R模型是建立概念性數(shù)據(jù)模型的有力工具。</p><p>  通過對(duì)職工工資管理內(nèi)容和過程的分析,本系統(tǒng)應(yīng)設(shè)計(jì)的主要實(shí)體和屬性如下:</p><p>  各實(shí)體

36、間的聯(lián)系如下圖:</p><p><b>  2.?dāng)?shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> ?、旁露裙べY明細(xì)</b></p><p>  表4.1 月度工資明細(xì)</p><p><b>  ⑵職工基本信息</b></p><p>  表4.2

37、 職工基本信息</p><p><b>  ⑶單位信息</b></p><p>  表4.3 單位信息</p><p><b> ?、冉巧畔?lt;/b></p><p>  表4.4 角色信息</p><p><b> ?、捎脩粜畔?lt;/b></p

38、><p>  表4.5 用戶信息</p><p><b>  5詳細(xì)設(shè)計(jì)系統(tǒng)</b></p><p>  5.1編程環(huán)境和數(shù)據(jù)庫(kù)選擇</p><p><b>  1、數(shù)據(jù)庫(kù)選擇</b></p><p>  本系統(tǒng)選用Microsoft SQL Server2000作為后臺(tái)數(shù)據(jù)庫(kù)

39、。</p><p>  SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫(kù)管理系統(tǒng),該版本繼承了SQL Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。&

40、lt;/p><p>  SQL Server 2000的特性很多,以下只列舉幾條加以說明選用該軟件的必要性:</p><p> ?、?XML Extensible Markup Language 擴(kuò)展標(biāo)示語(yǔ)言支持關(guān)系數(shù)據(jù)庫(kù)引擎可以返回XML 文檔數(shù)據(jù)XML 數(shù)據(jù)可以用于插入刪除和更新數(shù)據(jù)XML 是擴(kuò)展標(biāo)示語(yǔ)言Extensible Markup Language 的英文縮寫XML 語(yǔ)言可用于描

41、述一個(gè)數(shù)據(jù)集的內(nèi)容以及數(shù)據(jù)如何在Web 頁(yè)中顯示或輸出到某個(gè)設(shè)備XML 和HTML Hypertext Markup Language 超文本鏈接標(biāo)示語(yǔ)言都源自SGML Standard General Markup Language 標(biāo)準(zhǔn)通用標(biāo)示語(yǔ)言SGML 是一個(gè)非常復(fù)雜龐大的語(yǔ)言在網(wǎng)絡(luò)上發(fā)布數(shù)據(jù)時(shí)很難完全使用它HTML 比SGML 簡(jiǎn)單得多而且更專業(yè)化但HTML 所作用的數(shù)據(jù)有一定的數(shù)量限制XML 介于HTML 和SGML 之間它

42、比SGML 簡(jiǎn)單但比HTML 的功能強(qiáng)大得多因此XML 成為Web 網(wǎng)絡(luò)或公司內(nèi)部網(wǎng)絡(luò)進(jìn)行電子數(shù)據(jù)交換日益重要的語(yǔ)言。</p><p>  SQL Server 2000 對(duì)XML 的支持表現(xiàn)在以下幾個(gè)方面:</p><p>  ※可以通過URL Uniform Resource Locator 統(tǒng)一資源定位訪問SQL Server </p><p>  ※支持XM

43、L-Data 模式</p><p>  ※可檢索編寫XML 數(shù)據(jù)</p><p>  ※SQL Server 2000 OLE DB 增加了對(duì)XML 文檔的支持</p><p>  ⑵數(shù)據(jù)行中的Text 類型數(shù)據(jù)</p><p>  SQL Server 2000 中可以將TEXT 和IMAGE 類型的數(shù)據(jù)直接存放到表的數(shù)據(jù)行中而不是存放到不

44、同的數(shù)據(jù)頁(yè)中這就減少了用于存儲(chǔ)TEXT 和IMAGE 類型的空間并相應(yīng)減少了磁盤處理這類數(shù)據(jù)的I/O 數(shù)量。</p><p> ?、欠植际讲樵僁istributed Query 增強(qiáng)    SQL Server 2000 引入了一個(gè)名為OPENROWSET 的函數(shù)它可以指定在分布式查詢中的一個(gè)特定的連接信息分布式查詢優(yōu)化器的功能有了進(jìn)一步的提高授予了OLE DB 數(shù)據(jù)源更多的SQL

45、 操作權(quán)。</p><p>  ⑷級(jí)聯(lián)參考完整性約束Cascading Referential Integrity Constraints </p><p>  級(jí)聯(lián)參考完整性約束可以控制在刪除或更新有外鍵約束的數(shù)據(jù)時(shí)所采取的操作這種控制是通過在CREATE TABLE 或ALTER TABLE 命令中的REFERENCES 子句中加入ON DELETE 或ON UPDATE 子句來實(shí)現(xiàn)的

46、。</p><p>  ⑸Kerberos 和安全授權(quán)Security Delegation </p><p>  SQL Server 2000 使用Kerberos 來支持客戶機(jī)和服務(wù)器之間相互的身份驗(yàn)證使用Kerberos 和授權(quán)來支持復(fù)合認(rèn)證以及SQL Server 注冊(cè)。</p><p><b>  2、編程環(huán)境選擇</b></

47、p><p>  本系統(tǒng)選用Microsoft C#.NET作為編程環(huán)境。</p><p>  C# (C sharp) 是微軟對(duì)這一問題的解決方案。C#是一種最新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它使得程序員可以快速地編寫各種基于Microsoft .NET平臺(tái)的應(yīng)用程序,Microsoft .NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。</p><p>

48、  正是由于C#面向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為構(gòu)建各類組件的理想之選--無論是高級(jí)的商業(yè)對(duì)象還是系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#語(yǔ)言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML 網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語(yǔ)言在任何操作系統(tǒng)上通過Internet進(jìn)行調(diào)用。</p><p>  最重要的是,C#使得C++程序員可以高效的開發(fā)程序,而絕不損失C/C++原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉

49、類似語(yǔ)言的開發(fā)者可以很快的轉(zhuǎn)向C#。</p><p>  C#.Net具有如下特點(diǎn):</p><p><b> ?、判逝c安全性</b></p><p>  新興的網(wǎng)絡(luò)經(jīng)濟(jì)迫使商務(wù)企業(yè)必須更加迅速的應(yīng)對(duì)競(jìng)爭(zhēng)的威脅。開發(fā)者必須不斷縮短開發(fā)周期,不斷推出應(yīng)用程序的新版本,而不僅僅是開發(fā)一個(gè)"標(biāo)志性"的版本。</p>

50、<p>  C#在設(shè)計(jì)時(shí)就考慮了這些問題。它使開發(fā)者用更少的代碼做更多的事,同時(shí)也不易出錯(cuò)。</p><p> ?、浦С脂F(xiàn)有的網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)</p><p>  新的應(yīng)用程序開發(fā)模型意味著越來越多地解決方案依賴于新出現(xiàn)的網(wǎng)絡(luò)標(biāo)準(zhǔn),例如HTML,XML,SOAP等。現(xiàn)存的開發(fā)工具往往都是早于Internet出現(xiàn)的,或者是在我們所熟知的網(wǎng)絡(luò)還處于孕育期時(shí)出現(xiàn)的。所以,它們一般無法很

51、好地支持最新的網(wǎng)絡(luò)技術(shù)。</p><p>  C#程序員可以在Microsoft .NET平臺(tái)上事半功倍的構(gòu)建應(yīng)用程序的擴(kuò)展框架。C#包含了內(nèi)置的特性,使任何組件可以輕松轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),通過Internet被任何操作系統(tǒng)上運(yùn)行的任何程序調(diào)用。</p><p>  更突出的是,XML網(wǎng)絡(luò)服務(wù)框架可以使現(xiàn)有的XML網(wǎng)絡(luò)服務(wù)對(duì)程序員來說就和C#對(duì)象一樣。這樣,程序員就可以方便地使用他們已有

52、的面向?qū)ο蟮木幊碳记蓙黹_發(fā)利用現(xiàn)有的XML網(wǎng)絡(luò)服務(wù)。</p><p>  還有一些精細(xì)的特性,使得C#成為一流的網(wǎng)絡(luò)編程工具。例如,XML正逐漸成為在網(wǎng)絡(luò)上傳輸結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn)。這種數(shù)據(jù)集合往往非常小。為提高性能,C#允許把XML數(shù)據(jù)直接映射到struct數(shù)據(jù)類型,而不是class。這樣對(duì)處理少量的數(shù)據(jù)非常有效。</p><p><b> ?、窍罅砍绦蝈e(cuò)誤</b>

53、</p><p>  即使是專家級(jí)的C++程序員也常會(huì)犯一些最簡(jiǎn)單的小錯(cuò)誤--比如忘了初始化變量,但往往就是這些小錯(cuò)誤帶來了難以預(yù)料的問題,有些甚至需要很長(zhǎng)時(shí)間來尋找和解決。一旦一個(gè)程序作為產(chǎn)品來使用,就算最簡(jiǎn)單的錯(cuò)誤糾正起來也可能要付出極其昂貴的代價(jià)。</p><p>  C#的現(xiàn)代化設(shè)計(jì)能夠消除很多常見的C++編程錯(cuò)誤。 例如:</p><p>  1. 資源回

54、收減輕了程序員內(nèi)存管理的負(fù)擔(dān)。</p><p>  2. C#中變量由環(huán)境自動(dòng)初始化。</p><p>  3. 變量是類型安全的。</p><p>  這樣,程序員編寫與維護(hù)那些解決復(fù)雜商業(yè)問題的程序就更方便了。</p><p>  ⑷對(duì)版本的更新提供內(nèi)在的支持降低了開發(fā)成本</p><p>  更新軟件組件是一項(xiàng)很

55、容易出錯(cuò)的工作,因?yàn)榇a的修改可能無意間改變?cè)谐绦虻恼Z(yǔ)義。為協(xié)助開發(fā)者進(jìn)行這項(xiàng)工作,C#為版本的更新提供內(nèi)在的支持。例如,方法重載必須顯式聲明。這樣可以防止編碼錯(cuò)誤,保證版本更新的靈活性。還有一個(gè)相關(guān)的特性就是對(duì)接口和接口繼承的內(nèi)在支持。這些特性使得C#可以開發(fā)復(fù)雜的框架并且隨著時(shí)間不斷發(fā)展更新它。</p><p>  總體來說,這些特性使得開發(fā)程序項(xiàng)目的后續(xù)版本的過程更加健壯,從而減少后續(xù)版本的開發(fā)成本。&l

56、t;/p><p> ?、缮虡I(yè)過程和軟件實(shí)現(xiàn)的更好對(duì)應(yīng)</p><p>  企業(yè)的商業(yè)計(jì)劃要付諸現(xiàn)實(shí),必須在抽象的商業(yè)過程和實(shí)際的軟件實(shí)現(xiàn)之間建立緊密地對(duì)應(yīng)。不過大多數(shù)語(yǔ)言都很難做到這點(diǎn)。例如,如今的程序員們一般使用代碼注釋來注明哪個(gè)類對(duì)應(yīng)于某個(gè)抽象的商業(yè)對(duì)象。</p><p>  C#語(yǔ)言允許類型定義的,擴(kuò)展的元數(shù)據(jù)。這些元數(shù)據(jù)可以應(yīng)用于任何對(duì)象。項(xiàng)目構(gòu)建者可以定義領(lǐng)域

57、特有的屬性并把他們應(yīng)用于任何語(yǔ)言元素-類,接口等等。然后,開發(fā)人員可以編程檢查每個(gè)元素的屬性。這樣,很多工作都變得方便多了,比如編寫一個(gè)小工具來自動(dòng)檢查每個(gè)類或接口是否被正確定義為某個(gè)抽象商業(yè)對(duì)象的一部分,或者只是創(chuàng)建一份基于對(duì)象的領(lǐng)域特有屬性的報(bào)表。定制的元數(shù)據(jù)和程序代碼之間的緊密對(duì)應(yīng)有助于加強(qiáng)程序的預(yù)期行為和實(shí)際實(shí)現(xiàn)的之間的對(duì)應(yīng)關(guān)系。</p><p><b> ?、蕯U(kuò)展交互性</b>&l

58、t;/p><p>  作為一種自動(dòng)管理的,類型安全的環(huán)境,C#適合于大多數(shù)企業(yè)應(yīng)用程序。但實(shí)際的經(jīng)驗(yàn)表明有些應(yīng)用程序仍然需要一些底層的代碼,要么是因?yàn)榛谛阅艿目紤],要么是因?yàn)橐c現(xiàn)有的應(yīng)用程序接口兼容。這些情況可能會(huì)迫使開發(fā)者使用C++, 即使他們本身寧愿使用更高效的開發(fā)環(huán)境。</p><p>  C#采用以下對(duì)策來解決這一問題:</p><p>  1. 內(nèi)置對(duì)組建

59、對(duì)象模型(COM)和基于Windows?的API的支持;</p><p>  2.允許有限制地使用純指針(Native Pointer)。</p><p>  在C#中,每個(gè)對(duì)象都自動(dòng)生成為一個(gè)COM對(duì)象。開發(fā)者不再需要顯式的實(shí)現(xiàn)IUnknown和其他COM接口.這些功能都是內(nèi)置的。類似的,C#可以調(diào)用現(xiàn)有的COM對(duì)象,無論它是由什么語(yǔ)言編寫的。</p><p> 

60、 C#包含了一個(gè)特殊的功能,使程序可以調(diào)用任何純API。在一段特別標(biāo)記的代碼中,開發(fā)者可以使用指針和傳統(tǒng)C/C++特性,如手工的內(nèi)存管理和指針運(yùn)算。這是其相對(duì)于其它環(huán)境的極大優(yōu)勢(shì)。這意味著C#程序員可以在原有的C/C++代碼的基礎(chǔ)上編寫程序,而不是徹底放棄那些代碼。</p><p>  無論是支持COM還是純API的調(diào)用,都是為了使開發(fā)者在C#環(huán)境中直接擁有必要的強(qiáng)大功能。</p><p>

61、;  由以上介紹可見,C#是一種現(xiàn)代的面向?qū)ο笳Z(yǔ)言。它使程序員快速便捷地創(chuàng)建基于Microsoft .NET平臺(tái)的解決方案。這種框架使C#組件可以方便地轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使任何平臺(tái)的應(yīng)用程序都可以通過Internet調(diào)用它。</p><p>  C#增強(qiáng)了開發(fā)者的效率,同時(shí)也致力于消除編程中可能導(dǎo)致嚴(yán)重結(jié)果的錯(cuò)誤。C#使C/C++程序員可以快速進(jìn)行網(wǎng)絡(luò)開發(fā),同時(shí)也保持了開發(fā)者所需要的強(qiáng)大性和靈活性。<

62、;/p><p><b>  5.2詳細(xì)設(shè)計(jì)方案</b></p><p>  系統(tǒng)采用Microsoft SQL Server 2000作為后臺(tái)數(shù)據(jù)服務(wù),使用Microsoft Visual Studio C# .Net設(shè)計(jì)用戶界面。</p><p>  使用C#遠(yuǎn)程調(diào)用Microsoft SQL Server 2000數(shù)據(jù)庫(kù)存儲(chǔ)過程,獲取

63、工資核算、統(tǒng)計(jì)報(bào)表等結(jié)果,實(shí)現(xiàn)用戶端程序?qū)Ψ?wù)器數(shù)據(jù)及其計(jì)算的遠(yuǎn)程操作。</p><p>  根據(jù)數(shù)據(jù)流圖和數(shù)據(jù)字典分析,關(guān)鍵代碼設(shè)計(jì)如下:</p><p>  1、客戶端數(shù)據(jù)庫(kù)連接方式</p><p>  本系統(tǒng)數(shù)據(jù)庫(kù)連接方式采用讀取外部ini文件獲取服務(wù)器地址,然后建立數(shù)據(jù)連接。具體實(shí)現(xiàn)過程如下:</p><p> ?、抛x取ini文件類(

64、sql_conn.cs)</p><p>  using System;</p><p>  using System.Text;</p><p>  using System.Runtime.InteropServices;</p><p>  namespace Salary</p><p><b>  

65、{</b></p><p>  /// <summary></p><p>  /// 通過讀取給定的ini文件內(nèi)的鍵值獲取服務(wù)器地址,并形成數(shù)據(jù)庫(kù)連接字符串。</p><p>  /// </summary></p><p>  public class sql_conn</p><p

66、><b>  {</b></p><p>  [DllImport("kernel32")]private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);//引

67、用系統(tǒng)API函數(shù)</p><p>  private static StringBuilder IP_val=new StringBuilder(255); </p><p>  public string path; </p><p>  public sql_conn(string INIPath)</p><p><b>

68、  {</b></p><p>  path=INIPath; </p><p><b>  }</b></p><p>  public string IniReadValue(string Section,string Key) </p><p><b>  { </b>

69、</p><p>  string conn_str; </p><p>  StringBuilder IP_val=new StringBuilder(255); </p><p>  int i=GetPrivateProfileString(Section,Key,"",IP_val,255,this.path); <

70、/p><p>  conn_str="workstation id="+IP_val.ToString()+";packet size=4096;user id=sa;data source="+IP_val.ToString()+";persist security info=False;initial catalog=gz"; </p>&

71、lt;p>  return conn_str;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p> ?、仆ㄟ^應(yīng)用程序目錄下的config.ini得到服務(wù)器地址,并將生成的數(shù)據(jù)庫(kù)連接字符串

72、賦值給當(dāng)前已定義的數(shù)據(jù)連接。</p><p>  private void Login_Load(object sender, System.EventArgs e)</p><p><b>  {</b></p><p>  sql_conn conn_ip=new sql_conn(Directory.GetCurrentDirectory

73、()+@"\config.ini");//調(diào)用sql_conn類獲取config.ini中的服務(wù)器地址</p><p>  Salary_Conn.ConnectionString=conn_ip.IniReadValue("Server","IP");</p><p>  sql_conn_str=Salary_Conn.Con

74、nectionString; //賦值</p><p><b>  }</b></p><p><b>  2、月度工資初始化</b></p><p>  月度工資初始化主要是依據(jù)職工工資基本信息增加要輸入月份的工資數(shù)據(jù),因此設(shè)計(jì)存儲(chǔ)過程如下:</p><p>  CREATE PROCEDURE

75、dbo.new_salary</p><p><b>  (</b></p><p><b>  @年份 int,</b></p><p><b>  @月份 int</b></p><p><b>  )</b></p><p>

76、<b>  AS</b></p><p>  SET NOCOUNT ON;</p><p>  INSERT INTO T_history(編碼,姓名,工種崗位,行政級(jí)別,技術(shù)級(jí)別,崗位檔次,檔次備注,崗位,年功,百分比增資,技能,技師,交通回民,養(yǎng)老金,失業(yè)金,公積金,房水衛(wèi),會(huì)費(fèi),所得稅,投保,房改補(bǔ),物業(yè),depart_id,賬號(hào),工號(hào),崗位分類,身份證號(hào),l

77、w_dep_id,年份,月份) select 編碼,姓名,工種崗位,行政級(jí)別,技術(shù)級(jí)別,崗位檔次,檔次備注,崗位,年功,百分比增資,技能,技師,交通回民,養(yǎng)老金,失業(yè)金,公積金,房水衛(wèi),會(huì)費(fèi),所得稅,投保,房改補(bǔ),物業(yè),depart_id,賬號(hào),工號(hào),崗位分類,身份證號(hào),lw_dep_id,@年份 AS 年份,@月份 AS 月份 from T_template</p><p><b>  GO<

78、/b></p><p>  以上過程是按照輸入的年份、月份兩個(gè)參數(shù),將T_template表中的職工基本信息項(xiàng)插入T_history(月度職工工資)表中。</p><p><b>  3、月度工資計(jì)算</b></p><p>  月度工資計(jì)算中,工資計(jì)算的算法是:</p><p> ?、欧扛难a(bǔ)貼為當(dāng)月的崗位工資、年

79、功工資、技能工資三項(xiàng)之和的35%取整;</p><p> ?、乒?huì)會(huì)費(fèi)為當(dāng)月崗位工資880元以下按照崗位工資的5‰計(jì)算,崗位工資大于880元的按照崗位工資取整去掉崗位工資880元以上部分的5%在乘以5‰計(jì)算;</p><p> ?、撬枚悶榇笄霸陋?jiǎng)金加上上月應(yīng)付工資減去上月的醫(yī)療保險(xiǎn)、養(yǎng)老金、失業(yè)金、公積金。</p><p>  根據(jù)以上算法,設(shè)計(jì)存儲(chǔ)過程如下:&l

80、t;/p><p>  CREATE PROCEDURE dbo.calc_salary</p><p><b>  (</b></p><p><b>  @年份 int,</b></p><p><b>  @月份 int</b></p><p><

81、b>  )</b></p><p><b>  AS</b></p><p>  SET NOCOUNT ON;</p><p>  update T_history set 房改補(bǔ)=round((崗位+年功+技能)*0.35,0) where 年份=@年份 and 月份=@月份</p><p>  u

82、pdate T_history set 會(huì)費(fèi)=崗位*0.005 where 年份=@年份 and 月份=@月份 and 崗位<880</p><p>  update T_history set 會(huì)費(fèi)=(round(崗位,-1,1)-(round(崗位,-1,1)-880)*0.05)*0.005 where 年份=@年份 and 月份=@月份 and 崗位>=880</p><

83、;p>  declare @獎(jiǎng)金年 int,@獎(jiǎng)金月 int,@last_month int,@last_year int</p><p><b>  if @月份<4</b></p><p><b>  begin</b></p><p>  set @獎(jiǎng)金月=@月份+9</p><p&g

84、t;  set @獎(jiǎng)金年=@年份-1</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  set @獎(jiǎng)金月=@月份-3</p><p>  set

85、@獎(jiǎng)金年=@年份</p><p><b>  end</b></p><p><b>  if @月份<2</b></p><p><b>  begin</b></p><p>  set @last_month=12</p><p>  set

86、 @last_year=@年份-1</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  set @last_month=@月份-1</p><p>

87、  set @last_year=@年份</p><p><b>  end</b></p><p>  drop table award</p><p>  drop table lastmonth</p><p>  select 獎(jiǎng)金,身份證號(hào) into award from T_history where 月份=

88、@獎(jiǎng)金月 and 年份=@獎(jiǎng)金年</p><p>  select 崗位+百分比增資+年功+技能+夜貼 +節(jié)日+技師+崗貼+交通回民+補(bǔ)扣資-病事曠 AS 應(yīng)付工資,醫(yī)保,養(yǎng)老金,失業(yè)金,公積金,身份證號(hào) into lastmonth from T_history where 月份=@last_month and 年份=@last_year</p><p>  declare C_tex_

89、radix CURSOR FOR</p><p>  select award.獎(jiǎng)金+lastmonth.應(yīng)付工資-lastmonth.醫(yī)保-lastmonth.養(yǎng)老金-lastmonth.失業(yè)金-lastmonth.公積金-1600 AS 所得稅基數(shù),lastmonth.身份證號(hào) from award inner join lastmonth on award.身份證號(hào)=lastmonth.身份證號(hào)</p

90、><p>  declare @tex_radix money,@身份證號(hào) char(20)</p><p>  open C_tex_radix</p><p>  FETCH NEXT FROM C_tex_radix into @tex_radix,@身份證號(hào)</p><p>  while @@FETCH_STATUS = 0</p

91、><p><b>  begin</b></p><p>  update T_history SET 所得稅=</p><p><b>  case</b></p><p>  when @tex_radix<=500 then @tex_radix*0.05</p><p&

92、gt;  when @tex_radix>500 and @tex_radix<=2000 then @tex_radix*0.1</p><p>  when @tex_radix>2000 and @tex_radix<=5000 then @tex_radix*0.15</p><p><b>  end</b></p>&

93、lt;p>  where 身份證號(hào)=@身份證號(hào) and 年份=@年份 and 月份=@月份</p><p>  FETCH NEXT FROM C_tex_radix into @tex_radix,@身份證號(hào)</p><p><b>  end</b></p><p><b>  GO</b></p>

94、<p><b>  4、月度工資匯總</b></p><p>  月度工資匯總是按照月度工資明細(xì)進(jìn)行統(tǒng)計(jì)匯總,由于篇幅所限,以下僅列出月度工資總匯存儲(chǔ)過程。月度工資總匯即按照運(yùn)輸部崗位進(jìn)行人數(shù)和各數(shù)據(jù)項(xiàng)匯總。</p><p>  CREATE PROCEDURE dbo.allpost</p><p><b>  (&l

95、t;/b></p><p><b>  @年份 int,</b></p><p><b>  @月份 int</b></p><p><b>  )</b></p><p><b>  AS</b></p><p>  SET

96、 NOCOUNT ON;</p><p>  SELECT COUNT(*) AS 人數(shù),崗位分類 AS 崗位名稱, SUM(崗位)+SUM(百分比增資) AS 崗位, SUM(年功)+SUM(技能) AS 保留, SUM(崗位)+SUM(百分比增資)+SUM(年功)+SUM(技能) AS 工資小計(jì),SUM(夜貼) AS 夜貼, SUM(節(jié)日) AS 節(jié)日, SUM(技師) AS 技師, SUM(崗貼) AS 崗

97、貼, SUM(交通回民) AS 交通回民,SUM(補(bǔ)扣資) AS 補(bǔ)扣資, SUM(病事曠) AS 病事曠,SUM(崗位)+SUM(百分比增資)+SUM(年功)+SUM(技能)+SUM(夜貼) +SUM(節(jié)日)+SUM(技師)+SUM(崗貼)+SUM(交通回民)+SUM(補(bǔ)扣資)-SUM(病事曠) AS 應(yīng)付工資, SUM(醫(yī)保) AS 醫(yī)保, SUM(養(yǎng)老金) AS 養(yǎng)老金, SUM(失業(yè)金) AS 失業(yè)金, SUM(公積金) AS

98、 公積金, SUM(房水衛(wèi))+SUM(電費(fèi)) AS 房水電, SUM(會(huì)費(fèi)) AS 會(huì)費(fèi), SUM(所得稅) AS 所得稅, SUM(投保) AS 投保, SUM(收視) AS 收視, SU</p><p><b>  GO</b></p><p>  5、客戶端對(duì)服務(wù)器存儲(chǔ)過程的調(diào)用</p><p>  由于存儲(chǔ)過程放在服務(wù)器端的數(shù)據(jù)庫(kù)內(nèi),因

99、此進(jìn)行計(jì)算時(shí)客戶端需對(duì)存儲(chǔ)過程進(jìn)行遠(yuǎn)程調(diào)用。以下以工資核算為例,說明其設(shè)計(jì)方法:</p><p>  SqlCommand calc_com=new SqlCommand(); //新建一個(gè)SqlCommand</p><p>  calc_com.Connection=this.Salary_Conn; //設(shè)定數(shù)據(jù)庫(kù)連接為一定義好連接</p><p>  cal

100、c_com.CommandType=System.Data.CommandType.StoredProcedure;//設(shè)定SqlCommand類型為調(diào)用遠(yuǎn)程存儲(chǔ)過程</p><p>  calc_com.CommandText="[calc_salary]";//指定存儲(chǔ)果成名</p><p>  calc_com.Parameters.Add(new System.

101、Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Cur

102、rent, null));//為SqlCommand添加調(diào)用參數(shù)</p><p>  calc_com.Parameters.Add(new System.Data.SqlClient.SqlParameter("@年份", System.Data.SqlDbType.Int, 4));</p><p>  calc_com.Parameters.Add(new Sys

103、tem.Data.SqlClient.SqlParameter("@月份", System.Data.SqlDbType.Int, 4));</p><p>  calc_com.Parameters["@年份"].Value=treeView1.SelectedNode.Parent.Tag;//對(duì)參數(shù)賦值</p><p>  calc_com.P

104、arameters["@月份"].Value=treeView1.SelectedNode.Tag;</p><p>  calc_com.Connection.Open();//打開連接</p><p>  calc_com.ExecuteNonQuery();//執(zhí)行SqlCommand</p><p>  calc_com.Connecti

105、on.Close();//關(guān)閉連接</p><p>  注:SqlCommand是一個(gè).NET Framework對(duì)象,表示要對(duì) SQL Server 數(shù)據(jù)庫(kù)執(zhí)行的一個(gè) Transact-SQL 語(yǔ)句或存儲(chǔ)過程。</p><p><b>  5、報(bào)表生成</b></p><p>  本系統(tǒng)將報(bào)表設(shè)計(jì)為將數(shù)據(jù)導(dǎo)出到電子表格,以下以月度工資總匯為例

106、說明:</p><p>  Excel.Application all_excel=new Excel.ApplicationClass();//調(diào)用Excel軟件,建立一個(gè)Excel進(jìn)程</p><p>  all_excel.Workbooks.Add(1);//添加一個(gè)新工作簿</p><p>  all_excel.Cells[1,1]="萊鋼運(yùn)輸

107、部職工工資匯總表(總匯)";//填寫工作簿的單元格</p><p>  all_excel.Cells[2,1]=numericUpDown1.Value.ToString()+"年"+comboBox1.Text+"月";</p><p>  int gridcol=dataGrid1.TableStyles[0].GridColumnS

108、tyles.Count;//檢查dataGrid1的列數(shù)</p><p>  for(int col=0;col<gridcol;col++)</p><p><b>  {</b></p><p>  all_excel.Cells[3,col+1]=dataGrid1.TableStyles[0].GridColumnStyles[c

109、ol].HeaderText;//填寫表頭</p><p><b>  }</b></p><p>  for(int gridrow=0;gridrow<dataGrid1.VisibleRowCount;gridrow++)</p><p><b>  {</b></p><p>  fo

110、r(int col=0;col<gridcol;col++)</p><p><b>  {</b></p><p>  all_excel.Cells[4+gridrow,col+1]=dataGrid1[gridrow,col];//填寫數(shù)據(jù)</p><p><b>  }</b></p><

111、p><b>  }</b></p><p>  Excel.Range all_range=(Excel.Range)all_excel.get_Range(all_excel.Cells[1,1],all_excel.Cells[1,gridcol]);</p><p>  all_range.HorizontalAlignment=Excel.XlHAlig

112、n.xlHAlignCenter;</p><p>  all_range.MergeCells=true;</p><p>  all_range.Font.Size=16;//設(shè)定字體</p><p>  all_range=(Excel.Range)all_excel.get_Range(all_excel.Cells[3,1],all_excel.Cells

113、[dataGrid1.VisibleRowCount+3,gridcol]);</p><p>  all_range.Borders.Weight=2;//設(shè)定邊框線</p><p>  all_excel.Visible=true;//顯示電子表格</p><p><b>  6系統(tǒng)測(cè)試</b></p><p> 

114、 6.1 MIS測(cè)試介紹</p><p>  在MIS開發(fā)過程中采用了多種措施保證軟件質(zhì)量,但是實(shí)際開發(fā)過程中還是不可避免地會(huì)產(chǎn)生差錯(cuò),系統(tǒng)中通??赡茈[藏著錯(cuò)誤和缺陷,示經(jīng)周密測(cè)試的系統(tǒng)投入運(yùn)行,將會(huì)造成難以想像的后果,因此系統(tǒng)測(cè)試是MIS開發(fā)過程中為保證軟件質(zhì)量必須進(jìn)行的工作。大量統(tǒng)計(jì)資料表明,系統(tǒng)測(cè)試的工作量往往占MIS開發(fā)總工作量的40%以上。因此,我們必須重視測(cè)試工作。</p><p&

115、gt;  由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對(duì)某些特定情況考慮不周造成的。因此測(cè)試不是為了表明程序正確;成功的測(cè)試也不是沒有發(fā)現(xiàn)錯(cuò)誤的測(cè)試。有意義的軟件測(cè)試應(yīng)該是從“破壞”軟件系統(tǒng)的角度出發(fā),精心設(shè)計(jì)最有可以暴露程序系統(tǒng)缺陷的測(cè)試方案。因此軟件測(cè)試的目標(biāo)應(yīng)該是以盡可能少的代價(jià)和時(shí)間找出軟件系統(tǒng)中潛在的錯(cuò)誤和缺陷。</p><p>  從產(chǎn)品角度看,測(cè)試計(jì)劃中的測(cè)試項(xiàng)目包括軟件結(jié)構(gòu)

116、中的分系統(tǒng)層、子系統(tǒng)層、功能模塊層、程序模塊層中的各類模塊,從測(cè)試本身看,分為單元測(cè)試,組合測(cè)試,確認(rèn)測(cè)試等。測(cè)試對(duì)象是隨階段而異的,最基本、最初的測(cè)試是單元測(cè)試,后面的組合測(cè)試、確認(rèn)測(cè)試都是以被測(cè)過的模塊作為測(cè)試對(duì)象的。</p><p><b>  (1)單元測(cè)試:</b></p><p>  單元測(cè)試也稱模塊測(cè)試或程序測(cè)試,單元測(cè)試是對(duì)每個(gè)模塊單獨(dú)進(jìn)行的,驗(yàn)證模塊

117、接口與設(shè)計(jì)說明書是否一致,對(duì)模塊的所有主要處理路徑進(jìn)行測(cè)試且與預(yù)期的結(jié)構(gòu)進(jìn)行對(duì)照,還要對(duì)所有錯(cuò)誤處理路徑進(jìn)行測(cè)試。對(duì)源碼進(jìn)行審查,對(duì)照設(shè)計(jì)說明書,表態(tài)地檢查源程序是否符合功能的邏輯要求,是進(jìn)行單元測(cè)試前的重要工作工。單元測(cè)試一般是由程序員完成,也稱程序調(diào)試。</p><p><b>  (2)組合測(cè)試</b></p><p>  組合測(cè)試也稱集成測(cè)試或子系統(tǒng)測(cè)試,通常

溫馨提示

  • 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ù)僅提供信息存儲(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)論