摘要:該文闡述了如何構造一個基于ASP的小型超市管理系統,對小型超市管理系統的需求分析、功能模塊劃分、數據庫模式分析,功能模塊的實現過程進行了詳細的描述。在此基礎上,對所應用的關鍵技術進行描述。
關鍵詞:小型超市;管理系統;ASP
中圖分類號:TP315文獻標識碼:A文章編號:1009-3044(2010)21-5707-04
Small Supermarket Management System Based on ASP
ZHANG Yong1, HU Hai2
(1.School of Information Engineering, Nanchang Hangkong University, Nanchang 330063, China; 2.The Gongqing College of Nanchang University,Jiujiang 332020,China)
Abstract: The paper describes how to build a small supermarket management based on ASP and discusses the requirement analysis, functional module division, database model analysis and implementation procedure of the system, the paper also describes key technology of the system.
Key words: small supermarket; management system; ASP
為了實現網絡化、科學化、現代化的小型超市管理,本文使用ASP、javascript及數據庫技術相結合,編寫功能較為完善的小型超市管理系統。系統提供給超市員工一個高效率,工作強度低的管理系統,將原本需要人工完成的繁重計算工作交由計算機完成。
系統目標如下:
1) 界面設計友好、美觀,數據存儲安全、可靠。
2) 管理員可管理用戶信息,還可對商品信息、供應商信息進行管理,并能查看各項統計信息等,提供強大的查詢功能。
3) 采購員可修改個人密碼,可以對商品出入庫進行管理、刪除過期商品,查看出庫、入庫、退庫記錄。
4) 收銀員可以修改個人密碼,銷售商品,提供退換商品的功能。
5) 系統模塊清晰,操作簡單,方便實用。
1 管理員功能模塊
管理員登錄成功以后,可以管理系統用戶信息,并可修改個人密碼、添加新用戶、刪除用戶、密碼初始化,實施操作前會彈出對話框詢問是否操作;可以按多種方式查詢供應商信息,添加新供應商,并提供修改、刪除供應商的功能;多種方式查詢商品信息,并提供修改商品部分信息的功能;可查詢庫存信息;還可按日期查詢商品出入庫記錄、退庫記錄、銷售記錄,財務統計包括日報表、月報表、季報表及年度報表,若要查詢的記錄不存在,則顯示無記錄。
管理員功能模塊核心代碼:
/*商品信息管理部分*/
function show()
{if(document.form1.select.value==\"供應商名稱\")
{//根據下拉列表的值顯示不同的控件
document.all.supname.style.display=\"\";
document.all.elseselect.style.display=\"none\";
document.all.kind.style.display=\"none\";
} else if(document.form1.select.value==\"類別\")
{document.all.supname.style.display=\"none\";
document.all.elseselect.style.display=\"none\";
document.all.kind.style.display=\"\";
}else
{document.all.supname.style.display=\"none\";
document.all.elseselect.style.display=\"\";
document.all.kind.style.display=\"none\";
}}
/*財務統計部分*/
function searching()
{if(form1.sDate.value==\"\")
{form1.sDate.focus();
alert(\"日期為空\");
return 1;
}if(checkDate(form1.sDate.value))
{alert(\"日期格式錯誤(如:2000-01-01)\");
return 1;
}}
function checkDate(INDate)//判斷日期格式
{yy=INDate.substr(0,4)
f1=INDate.substr(4,1)
mm=INDate.substr(5,2)
f2=INDate.substr(7,1)
dd=INDate.substr(8,2)
if(parseInt(yy)<=0||dd<=0)
{return true; }
if(f1!='-'||f2!='-')
{return true; }
if(mm<=0||mm>12)
{return true;}
if((yy%4==0yy%100!=0)||yy%400==0)
{if(parseInt(mm)==2)
{if(parseInt(dd)>29){return true;}
}}
else if(parseInt(mm)==2)
{if(parseInt(dd)>28){return true;}
}var MM= new Array(1,3,5,7,8,10,12);
for(i=0;i {if(parseInt(mm)==MM[i]) {if(parseInt(dd)>31){return true;} }else {if(parseInt(dd)>30){return true;} }}} 2 采購員功能模塊 采購員登錄成功以后,可以修改個人密碼;可以按多種方式查詢供應商信息、庫存信息;可以對商品入庫、出庫進行操作,若出庫量大于庫存量則彈出庫存量不足的警告,提供刪除過期商品的功能,入庫時,選擇供應商將自動出現該供應商可提供的商品,商品編號由計算機自動生成;還可按日期查詢商品出入庫記錄、退庫記錄。 采購員功能模塊核心代碼: /*過期商品管理部分*/ function sure() { tag=0; for(i=0;i if(form1.elements[i].checked) {tag=1; //至少有一個復選框被選中} if(tag==0) alert(\"請選擇要刪除的商品!\"); else {if(confirm(\"確定要刪除嗎?\")) //若為真則表示確定刪除 {return true;} }return 1; } function checkAll()//全選功能 {for(i=0;i form1.elements[i].checked=true; }function checkCon()//反選功能 { for(i=0;i if(form1.elements[i].checked==true) form1.elements[i].checked=1; else form1.elements[i].checked=true; } <% dim c,k k=0 c=1 for c=1 to rs.recordcount rs.MoveFirst While Not rs.Eof If rs(\"商品編號\")=s(c) Then '============刪除庫存明細表=========== rs1.MoveFirst While Not rs1.Eof If rs1(\"商品編號\")=s(c) Then k=1 num=rs1(\"庫存量\") fname=rs1(\"商品名稱\") spec=rs1(\"規格\") '=============刪除庫存主表=========== rs2.MoveFirst While Not rs2.Eof '只刪除庫存主表中某種商品中過期的部分 If rs2(\"商品名稱\")=fname and rs2(\"規格\")=spec Then rs2(\"庫存量\")=rs2(\"庫存量\")-num End If rs2.MoveNext Wend rs2.Updatebatch rs1.delete End If rs1.MoveNext wend rs1.Updatebatch rs.delete End If rs.MoveNext Wend rs.Updatebatch next if k=1 then Response.Write \"\" else Response.Write \"\" end if %> 3 收銀員功能模塊 收銀員登錄成功以后,可以修改個人密碼;可以對商品銷售進行操作,銷售的商品為庫存主表中銷售與否字段為“是”的商品,總價由計算機自動計算并實時顯示,若庫存量不夠則不可購買,且輸入的現金必須大于等于總價,否則彈出現金不夠的警告。結帳后銷售商品的相關信息、實收、應收、找零、商品件數等;可以對商品退還進行操作,商品退庫時,輸入商品編號,將自動顯示該商品的相關信息,若數據庫中沒有該商品的信息,則提示不存在此商品或商品編號輸入錯誤。退庫后可進行更換商品的操作,若庫存中由同種商品且庫存量足夠則可更換,否則無法更換。 收銀員功能模塊核心代碼: <% Dim n,num n=1 '設置標簽若為1則進行銷售操作,為0則進行出庫操作 if session(\"flag\")=1 then for n=1 to rs4.recordcount '=============庫存主表=============== rs4.MoveFirst while not rs4.eof if rs4(\"商品名稱\")=c(n) and rs4(\"規格\")=g(n) Then rs4(\"庫存量\")=rs4(\"庫存量\")-p(n) if rs4(\"庫存量\")<0 Then '庫存量不足則無法進行操作 response.Write \"\" response.end else rs4.update end if '==============庫存明細表============= sqlstr1 = \"select * from 庫存明細表 where 商品名稱='\"c(n)\"' and 規格='\"g(n)\"'\" rs1.Open sqlstr1,conn,3,3 if not(rs1.eof and rs1.bof) then rs1.movefirst id(n)=rs1(\"商品編號\") kind(n)=rs1(\"類別\") rs1(\"庫存量\")=rs1(\"庫存量\")-p(n) for t=1 to rs1.recordcount '當庫存明細表中某樣商品的數量少于0時,繼續減去和此種商品同名且同規格的商品的數量 if rs1(\"庫存量\")<0 then num=rs1(\"庫存量\") rs1.delete rs1.movenext '將上次數量相減所得的差值加到下一條記錄,判斷該值是否仍小于0,若小于0則將本次得到的差值加到下一條記錄上 rs1(\"庫存量\")=rs1(\"庫存量\")+num end if next rs1.updatebatch end if rs1.Close end If rs4.moveNext wend next end if %> 4 小結 本系統為基于ASP的小型超市管理系統,系統的功能已經達到用戶的要求,系統中各個模塊的功能均已實現,給超市管理帶來極大的方便。 參考文獻: [1] 高怡新.ASP網絡應用程序設計教程[M].北京:人民郵電出版社,2009. [2] 劉亞姝.ASP動態網站開發技術與實踐[M]北京:電子工業出版社,2007. [3] 鄧良松,劉海巖,陸麗娜.軟件工程[M].2版.西安:西安電子科技大學出版社,2004.