999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通用工資管理軟件的設計

2007-01-01 00:00:00蘇術鋒
中國管理信息化 2007年6期

[摘 要] 本文論述通用工資管理軟件設計的難點#65380;設計思路和可視開發工具的選擇#65377;最后給出通用工資管理軟件的主要界面并公開其源代碼#65377;

[關鍵詞] 通用工資管理軟件;工資主文件;工資報表;計算機軟件;VFP

[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2007)06-0014-04

一#65380; 前 言

近20多年來,計算機應用水平有了較大的提高#65377;計算機語言也從單一的BASIC 發展到現在的Visual Basic7.0 #65380;Visual FoxPro 7.0 #65380;PowerBuilder 8.0 #65380;Delphi 6.0等常用的10多種#65377;人們也可以用以上語言來開發一般的專用軟件,如僅適用某一具體單位的工資管理軟件#65377;對于適用于任何單位的通用工資管理軟件,其設計難度自然較大#65377;筆者查閱了大量有關的文獻#65380;教材和專著,未發現用可視化開發工具來開發通用工資管理軟件方面知識的詳細介紹#65377;雖然市場上有通用工資管理軟件出售,但出于自身的利益考慮,不公開其源代碼#65377;通用工資管理軟雖屬一個小軟件,但其開發方法與技術遠遠難于其他軟件#65377;如果能學會開發通用工資管理軟件,對于開發其他軟件#65380;深入理解可視化開發工具和軟件人才的培養都是大有裨益的#65377;

二#65380; 軟件開發難點

作為通用工資管理軟件,要適應各行各業用戶進行使用#65377;不同的單位,其工資項目是大相徑庭的#65377;專用工資軟件,由于了解所開發單位的具體情況,可以事先將工資項目確定下來,以后的編程是比較簡單的,但當工資項目發生變化時,必須要修改源程序代碼,可是這一點,對于通用軟件來講是絕對行不通的#65377;通用工資軟件的工資項目只能固定少部分常用項目,如編號#65380;姓名#65380;部門#65380;工資(即基本工資)#65380;計發#65380;計扣#65380;實發等#65377;其他項目由用戶自己去定義#65377;由于工資項目事先確定不下來,所以工資主文件的結構,只能包含以上工資項目,待用戶自己定義工資項目后,再由程序代碼完成對工資主文件結構的修改#65377;隨著時間的推移,用戶工資情況發生變化,這時再修改以前的工資項目#65377;從上述分析來看,工資主文件的結構是動態的,用戶需要經常對其進行增刪,所以工資主文件的結構確定不下來#65377;由于工資項目不能確定,工資報表打印內容同樣確定不下來#65377;這就是開發通用工資管理軟件的難點所在#65377;

三#65380; 軟件開發思路

工資主文件的結構要在程序運行過程中經常修改,修改后還要將原來工資主文件中的數據復制回來#65377;對工資項目的修改涉及在原工資主文件中字段的增加#65380;插入和刪除#65377;增加是將要增加的項目放在原工資文件的字段的最后面;插入是將工資項目插在某兩個字段之間#65377;

首先要解決的問題是數據的組織方式#65377;由于工資數據結構不復雜,可以用文件組織方式或數據庫組織方式#65377;如果用文件方式,隨時修改工資項目,以及將讀取工資數據用表格方式顯示#65380;統計,是比較困難的#65377;這時最好用數據庫方式#65377;先建一個可以確定的工資項目的表,以后由用戶在其基礎上進行修改#65377;其次就是如何對工資主文件的結構進行修改#65377;方案有二:一是直接修改,二是間接修改#65377;直接修改就是在原工資主文件上直接添加#65380;插入和刪除#65377;這是最省事的一種方式#65377;但所有的數據庫語言和SQL語言只能對其文件結構有添加和刪除的語句,而沒有能在兩字段間插入新字段的語句#65377;對文件結構進行添加只能增加在原文件結構最后面,這對工資數據文件來說顯然是不妥的#65377;既然直接修改方式不行,那只好采用間接的方式了#65377;先建工資結構文件,工資結構文件中只記載工資主文件中有哪些字段#65380;類型#65380;長度#65380;小數位信息,而沒有工資實際數據#65377;用戶修改工資項目本質上就是在工資結構文件中增加#65380;插入和刪除工資項目#65377;工資項目修改后,由工資結構文件,創建新的工資主文件#65377;這時新的工資主文件中還沒有工資數據,僅有結構,然后再將原工資主文件中的數據復制到新的工資主文件中去,刪除老的工資主文件,完成對主文件的結構修改和數據的添加#65377;第三是工資報表打印問題#65377;由于工資項目需要隨時由用戶進行修改,在程序設計時,不能直接將工資項目字段名寫進程序,而要根據當時工資項目情況,通過函數的測示,測出當時情況下,工資字段名以及它的類型與長度,然后再編寫相應的工資報表打印程序#65377;最后是開發工具的選擇#65377;針對上述一系列的要求,開發工具應能根據用戶的確定的工資項目完成創建工資主文件,不同結構表之間的數據復制,表字段名和字段個數的測試#65377;經過比較與分析,Visual FoxPro 6.0可以勝任,而其他工具就比較困難了 #65377;

四#65380; 主要界面與程序

1. 工資項目結構文件與主文件

(1) 工資項目結構文件jg.dbf

(2) 工資主文件salary.dbf

編號+姓名+部門+工資+津貼+計發+養老+水電+計扣+實發

以上是兩表初始表內容,用戶在首次用該軟件時,對jg.dbf表進行修改,然后由jg.dbf 創建新的工資主文件,將salary.dbf中的工資數據復制到新的工資主文件中(首次使用時salary. dbf表中沒有數據)#65377;刪除salary.dbf文件,再將新的工資文件改名為salary.dbf#65377;這樣更新了原工資主文件,并復制了原來的數據#65377;

2. 編輯工資項目的界面

主要控件及代碼

(1)表格控件grid1

grid1_AfterRowColChange

if reccount( )<>0

if lower(field_type)="n"

thisform.optgrp1.option1.value=1

thisform.optgrp1.option2.value=0

else

thisform.optgrp1.option1.value=0

thisform.optgrp1.option2.value=1

endif

thisform.spinner1.value=field_len

thisform.spinner2.value=field_dec

endif

thisform.refresh

本段代碼的功能:當行列發生變化時,刷新選項按鈕和微調按鈕的值#65377;與表格中所選中的工資項目同步#65377;

(2)選項按鈕 optgrp1

optgrp1_init

if lower(field_type)="n"

thisform.optgrp1.option1.value=1

thisform.optgrp1.option2.value=0

else

thisform.optgrp1.option1.value=0

thisform.optgrp1.option2.value=1

endif

thisform.refresh

本段代碼是給選項按鈕賦初值#65377;

Optgrp1_InterActiveChange

if reccount( )<>0

if thisform.optgrp1.option1.value=1

replace field_type with "n"

else

replace field_type with "c"

endif

endif

本段代碼的作用是當選項按鈕值發生變化時,更新工資項目文件jg.dbf#65377;

(3) 微機按鈕spinner1和spinner2

spinner1_init

if reccount( )<>0

this.value=field_len

endif

本段代碼的作用是給選項按鈕賦初值#65377;

spinner1_InterActiveChange

if reccount( )<>0

replace field_len with this.value

endif

本段代碼的作用是當微調按鈕值發生變化時,即時更新表jg.dbf中項目長度的值#65377;

spinner2的功能與spinner1類似,不再贅述#65377;

(4)命令按鈕組 cmdgrp1

cmdadd(增加)_click

append blank

thisform.refresh

cmdinsert(插入)_click

insert blank before

thisform.refresh

cmddelete(刪除)_click

Ifalltrim(field_name)=“編號” or alltrim(field_name)=“姓名”;

or alltrim(field_name)=“部門”or alltrim(field_name)=“工資”;

or alltrim(field_name)=“計發”or alltrim(field_name)=“計扣”;

or alltrim(field_name)=“實發”

messagebox(“此工資項目不能刪除!”,0+16,"錯誤提示")

else

yn=messagebox(“你真要刪除此工資項目嗎?”,4+32,“提示信息”)

if yn=6

dele

thisform.refresh

endif

endif

以上代碼的作用是完成對工資項目進行增加#65380;插入和刪除#65377;為了完成對工資項目的插入,對jg.dbf中的字段不能進行索引#65377;

(5)用jg.dbf對salary.dbf文件更新并復制數據的程序

use jg

copy to jg_tmp fields field_name,field_type,field_len,field_dec

create wage_tmp from jg_tmp

use wage_tmp

append from salary

close all

erase salary.dbf

renamewage_tmp.dbf to salary.dbf

erase jg_tmp.dbf

3. 工資報表界面

此工資報表,在原工資項目文件的基礎上,增加了一項“考勤”#65377;此界面上的按鈕“?”用于輸入工資項的固定值,如考勤每人100元#65377;也可通過此按鈕給某一工資項清零#65377;工資報表的計發#65380;計扣和實發在表格grid1_init事件中進行自動計算#65377;當修改某一個值時,自動刷新#65377;此界面功能強,操作方便,深受用戶歡迎#65377;

4. 工資報表打印程序

由于工資項目的不確定性,在此不能用VFP的報表生成系統自動生成打印程序#65377;而需要手工編程序解決#65377;程序中用到Field( )#65380;Fcount( )和Count( )等函數#65377;由于文章的篇幅所限,在此就不提供詳細的打印程序了#65377;

五#65380;結束語

本軟件是筆者長期知識的積累和艱辛開發之果,這次將設計思想與核心源代碼公布于眾,其目的就是希望有志于軟件開發的年輕人能從中有所領悟#65380;有所幫助,同時也希望同行批評指正#65377;

主要參考文獻

[1] 史濟民. VFP及其應用系統開發[M]. 北京:清華大學出版社,2003.

[2] 黃梯云. 管理信息系統[M]. 北京:高等教育出版社,2005.

[3] Kenneth C Laudon. Management Information System[M]. Pearson Education Company,2001.

主站蜘蛛池模板: 日韩国产黄色网站| 亚洲国产综合精品一区| 黄色一级视频欧美| 精品超清无码视频在线观看| 日韩 欧美 国产 精品 综合| 国产原创第一页在线观看| 色AV色 综合网站| 欧美一级视频免费| 中美日韩在线网免费毛片视频| 国产激爽大片高清在线观看| 爆乳熟妇一区二区三区| 都市激情亚洲综合久久| 毛片免费视频| 日韩欧美网址| 夜夜拍夜夜爽| 亚洲成a人片| 超碰免费91| 午夜不卡福利| 无码一区中文字幕| 国产91久久久久久| 在线欧美一区| 午夜精品久久久久久久2023| 国产精品九九视频| 欧美日韩一区二区三区四区在线观看| 久久国产免费观看| 扒开粉嫩的小缝隙喷白浆视频| 91探花在线观看国产最新| 看你懂的巨臀中文字幕一区二区| 无码中文AⅤ在线观看| 国产av剧情无码精品色午夜| 午夜欧美在线| 日韩在线欧美在线| 日韩少妇激情一区二区| 丁香婷婷久久| 成人福利在线视频| 日本午夜视频在线观看| 91久久夜色精品国产网站| 中文无码影院| 久久精品人人做人人爽电影蜜月 | 97se亚洲综合在线天天| 中文字幕中文字字幕码一二区| 国产精品久久久久鬼色| 久久婷婷六月| 欧美亚洲国产精品久久蜜芽| 重口调教一区二区视频| 国产综合网站| 午夜日本永久乱码免费播放片| 亚洲性一区| 国产网站免费观看| 亚洲成在人线av品善网好看| 女人天堂av免费| 亚洲性日韩精品一区二区| 麻豆精品久久久久久久99蜜桃| 亚洲成人黄色在线观看| AV无码国产在线看岛国岛| 在线无码私拍| 国产精品3p视频| 国产欧美在线视频免费| 国产成人av一区二区三区| 日韩麻豆小视频| 亚洲第一黄片大全| 日本国产精品一区久久久| www.91中文字幕| 久久a级片| 日韩大乳视频中文字幕| 日韩美女福利视频| 亚洲国产理论片在线播放| 国产成人亚洲综合a∨婷婷| 国产精品欧美亚洲韩国日本不卡| 日本三级欧美三级| 97se亚洲综合| 色综合中文| 日本一区二区不卡视频| 国产流白浆视频| 国产人人乐人人爱| 亚洲欧美国产视频| 亚洲成a人片77777在线播放| 热久久国产| 色婷婷色丁香| 996免费视频国产在线播放| 国产成人1024精品| 欧美在线黄|