商品銷售管理系統(tǒng)_第1頁
商品銷售管理系統(tǒng)_第2頁
商品銷售管理系統(tǒng)_第3頁
商品銷售管理系統(tǒng)_第4頁
商品銷售管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 商品銷售管理系統(tǒng)一 系統(tǒng)需求分析與系統(tǒng)設(shè)計本系統(tǒng)從代理商的角度出發(fā)而設(shè)計開發(fā)的,本系統(tǒng)主要有個模塊,分別為:adminForm(系統(tǒng)管理員模塊),enStroageForm(庫存管理模塊),venditionForm(銷 售管理模塊),registrationForm(注冊模塊),mainForm(主模塊)。有主要有三類用戶:總的系統(tǒng)管理員(即代理商),銷售人員,庫存管理人員;要使用該系統(tǒng) 的銷售人員或者庫存管理人員必須先注冊,然后必須由代理商分配相應(yīng)的權(quán)限(admin(管理員權(quán)限),enstroage(庫存管理權(quán)限),vendition(銷售權(quán)限)),各用戶得 到由代理商分配的權(quán)限后就能根

2、據(jù)自己擁有的權(quán)限進(jìn)入各自的功能模塊,即:1: 管理員(代理商)有admin權(quán)限能進(jìn)入adminForm模塊,其主要職責(zé)是權(quán)限分配;刪除用戶,退出系統(tǒng)。相應(yīng)的代碼見下面:銷售人員 有vendition權(quán)限能進(jìn)入venditionForm模塊,其主要權(quán)限是能夠查看庫存;添加客戶資料;發(fā)貨;訂單詳情查看;個人信息修改;月底統(tǒng)計;刪除已處理的客戶;退出系統(tǒng);該模塊主要模擬了這樣一個流程:A:客戶發(fā)來買貨需求,然后銷售人員根據(jù)用戶的需求先查看庫存,看是否有客戶需要的數(shù)量,如果有庫存就把用戶的詳細(xì)需求添加進(jìn)數(shù)據(jù)庫,添加的數(shù)據(jù)主要包括客戶的地址,手機(jī)號碼,產(chǎn)品編號,訂貨日期,發(fā)貨日期,是否預(yù)訂等信息;如果沒

3、有庫存,且該客戶是預(yù)訂產(chǎn)品的話,也要添加客戶的詳細(xì)信息;B:添加完客戶信息后,就進(jìn)入發(fā)貨模塊,發(fā)貨的結(jié)果是得到打印的發(fā)貨詳情,保管好訂單,然后把該訂單詳情通知發(fā)貨的人員,由發(fā)貨人員負(fù)責(zé)拿貨出庫C:到月底時候進(jìn)行一個月的工作統(tǒng)計,把已經(jīng)處理了的訂單詳情打印出來,進(jìn)行統(tǒng)計,然后刪除已經(jīng)處理的訂單的相應(yīng)的客戶信息D:如果有必要的話,銷售人員還可以更改自己的信息,然后通知管理員為其分配權(quán)限,呵呵,有點(diǎn)麻煩。E:退出系統(tǒng)。 3:庫存管理人員有enstorage權(quán)限能進(jìn)入enStorageForm模塊,該模塊主要有以下功能:產(chǎn)品入庫;庫存查詢(了解庫存,以便及時進(jìn)貨更新庫存),個人信息修改(修改后需要通知

4、管理員為其分配權(quán)限);退出系統(tǒng);二數(shù)據(jù)庫設(shè)計 產(chǎn)品表: 列名數(shù)據(jù)類型長度產(chǎn)品編號varchar20品牌varchar20庫存量varchar20產(chǎn)品單價varchar20 客戶:列名數(shù)據(jù)類型長度客戶編號Varchar20客戶姓名Varchar20客戶地址Varchar50手機(jī)號碼Varchar20是否預(yù)訂Varchar10(允許為空) 用戶:列名數(shù)據(jù)類型長度用戶名Varchar20密碼Varchar20權(quán)限Varchar20(允許為空) 訂單:列名數(shù)據(jù)類型長度訂單編號Varchar20產(chǎn)品編號Varchar20訂貨日期Varchar20發(fā)貨日期Varchar20客戶姓名Varchar20處理與

5、否Varchar10(允許為空)品牌Varchar20訂貨量Varchar20單價Varchar10總額Varchar20三:各個模塊完全代碼如下: 1:mainForm模塊代碼: unit mainform;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Buttons, ExtCtrls, StdCtrls, Grids, DBGrids, jpeg;type TForm1 = class(TForm) ADOConnec

6、tion1: TADOConnection; ADOTable1: TADOTable; ADOQuery1: TADOQuery; DataSource1: TDataSource; Image1: TImage; Panel1: TPanel; GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Panel2: TPanel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; procedure SpeedButton

7、1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); private Private declarations public Public declarations end;var Form1: TForm1;implementationuses classDefinitionForm,adminForm,venditionForm,enStorageForm,registrationForm;$R *.dfmprocedure TForm1.SpeedButton1Click(Sender: TObjec

8、t);var i:Integer;var popedom:string;begin with ADOQuery1 do begin close; SQL.Clear; SQL.Add('select * from 用戶 where 用戶名='''+Edit1.Text+''' and 密碼='''+Edit2.Text+''''); ADOQuery1.Open; if DataSource1.DataSet.RecordCount<>0 then begin /Data

9、Source1.DataSet.FindFirst; popedom:=ADOQuery1.FieldByName('權(quán)限').AsString; /popedom:=DataSource1.DataSet.FieldByName('權(quán)限').AsString; end; showmessage(popedom); i:=recordcount; end; if i>0 then begin if popedom ='admin' then /如果是管理員權(quán)限,則顯示管理員界面 begin ADOQuery1.Close; Form1.Hi

10、de; form5.Show; end; if popedom ='enstorage' then /如果是庫存管理員權(quán)限,則顯示庫存管理界面 begin ADOQuery1.Close; Form1.Hide; Form2.Show; end; if popedom ='vendition' then /如果是銷售員權(quán)限,則顯示銷售管理界面 begin ADOQuery1.Close; Form1.Hide; Form3.Show; end; end /與第一個if想對應(yīng) else begin ADOQuery1.Close; showmessage('

11、;用戶名或者密碼有錯誤'); end;end;procedure TForm1.SpeedButton2Click(Sender: TObject);begin Form6.Show; Form6.Edit1.Text:='' Form6.Edit2.Text:='' Form6.Edit3.Text:=''end;end.2:registrationForm模塊代碼:unit registrationForm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Gr

12、aphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB, jpeg;type TForm6 = class(TForm) GroupBox1: TGroupBox; Image1: TImage; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedBu

13、tton; ADOConnection1: TADOConnection; ADOTable1: TADOTable; ADOQuery1: TADOQuery; DataSource1: TDataSource; Panel1: TPanel; Panel2: TPanel; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); private Private declarations public Public declarations end;var Form

14、6: TForm6;implementation uses mainform;$R *.dfmprocedure TForm6.SpeedButton1Click(Sender: TObject);var i:Integer;begin if Edit1.Text <>'' then /用戶名不為空,則 begin if Edit2.Text =Edit3.Text then /前后兩次密碼相等,則 begin with ADOQuery1 do begin ADOQuery1.Close; with SQL do begin SQL.Clear; SQL.Add(

15、'select * from 用戶 where 用戶名='''+Edit1.Text+''' '); ADOQuery1.Open; i:=recordcount; if i>0 then /檢查輸入的用戶名是否已經(jīng)存在,則 begin ADOQuery1.Close; showmessage('該用戶名已經(jīng)存在,請重新輸入'); end else /輸入的用戶名還沒有注冊,則 begin ADOQuery1.Close; SQL.Clear; SQL.Add('insert into 用戶(用戶名,

16、密碼) values('''+Edit1.Text+''','''+Edit2.Text+''')'); ADOQuery1.ExecSQL; ADOQuery1.Close; showmessage('操作成功,新增用戶名為:'''+Edit1.Text+''',密碼為:'''+Edit2.Text+''' '); Form6.Hide; end; end; end; end e

17、lse /前后兩次密碼不正確,則 begin ADOQuery1.Close; showmessage('前后兩次密碼輸入不正確,請重新輸入密碼!'); end; end else /用戶名為空,則 begin ADOQuery1.Close; showmessage('用戶名為空,請重新輸入!'); end;end;procedure TForm6.SpeedButton2Click(Sender: TObject);begin Form6.Edit1.Text:='' /重置為空 Form6.Edit2.Text:='' Fo

18、rm6.Edit3.Text:=''end;end.3:adminForm代碼:unit adminForm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, Buttons, ExtCtrls, StdCtrls, jpeg;type TForm5 = class(TForm) ADOConnection1: TADOConnection; ADOTable1: TADOTabl

19、e; ADOQuery1: TADOQuery; DataSource1: TDataSource; Panel1: TPanel; SpeedButton1: TSpeedButton; Panel3: TPanel; DBGrid1: TDBGrid; Panel4: TPanel; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; Panel5: TPanel; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; Label1: TLabel; Edit1: TEdi

20、t; Label2: TLabel; ComboBox1: TComboBox; Panel6: TPanel; Label3: TLabel; Edit2: TEdit; SpeedButton6: TSpeedButton; Image1: TImage; procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure SpeedButton5Click(Sen

21、der: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); private Private declarations public Public declarations end;var Form5: TForm5;implementation uses mainform;$R *.dfmprocedure TForm5.SpeedButton3Click(Sender: TObject);beginApplication.Terminate

22、;end;procedure TForm5.SpeedButton1Click(Sender: TObject);begin Panel5.Visible:=True; /分配權(quán)限面板顯現(xiàn) Panel6.Visible:=false; /刪除用戶面板隱藏 Panel3.Visible:=True; /整個大的面板顯現(xiàn)end;procedure TForm5.SpeedButton4Click(Sender: TObject); var i:Integer;begin with ADOQuery1 do begin ADOQuery1.Close; With SQL do begin /檢查輸入

23、用戶名是否正確 SQL.Clear; SQL.Add('select 用戶名 from 用戶 where 用戶名='''+Edit1.Text+''' '); ADOQuery1.Open; i:=recordcount; if i<=0 then begin showmessage('用戶名為空或者用戶名不對,請重新輸入!'); ADOQuery1.Close; end /檢查結(jié)束,不正確則要求重新輸入 else begin /檢查正確則執(zhí)行更新數(shù)據(jù)庫 ADOQuery1.Close; SQL.Clear;

24、 SQL.Add('update 用戶 set 權(quán)限='''+ComboBox1.Text+''' where 用戶名='''+Edit1.Text+''' '); ADOQuery1.ExecSQL; DBGrid1.DataSource.DataSet.Refresh; /刷新DBGrid1中的顯示數(shù)據(jù) ADOQuery1.Close; showmessage('用戶名:'''+Edit1.Text+'''的權(quán)限修改為:&#

25、39;''+ComboBox1.Text+''',修改成功! ') end; end; end;end;procedure TForm5.SpeedButton5Click(Sender: TObject);begin Form5.Free; /當(dāng)前窗口釋放 Form1.Edit1.Text:='' / 登陸窗口的編輯文本框設(shè)為空 Form1.Edit2.Text:=''end;procedure TForm5.SpeedButton2Click(Sender: TObject);beginPanel5.Visib

26、le:=false; /權(quán)限分配面板隱藏Panel6.Visible:=True; /刪除用戶面板顯現(xiàn)end;procedure TForm5.SpeedButton6Click(Sender: TObject);var i:Integer;begin with ADOQuery1 do begin ADOQuery1.Close; with SQL do /檢查填寫的用戶是否存在 SQL.Clear; SQL.Add('select * from 用戶 where 用戶名='''+Edit2.Text+''' '); ADOQu

27、ery1.Open; i:=recordcount; if i>0 then /用戶名存在,則 begin ADOQuery1.Close; SQL.Clear; SQL.Add('delete from 用戶 where 用戶名='''+Edit2.Text+''' '); ADOQuery1.ExecSQL; DBGrid1.DataSource.DataSet.Refresh; /刷新DBGrid1中的顯示數(shù)據(jù) ADOQuery1.Close; showmessage('用戶:'''+E

28、dit2.Text+'''被成功刪除!'); end else /用戶名不存在,則 begin ADOQuery1.Close; showmessage(''''+Edit2.Text+'''用戶不存在,請重新填寫!'); end; end;end;end.4:venditionForm代碼:unit venditionForm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form

29、s, Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB, Mask, QuickRpt, QRCtrls, jpeg;type TForm3 = class(TForm) Image1: TImage; Panel1: TPanel; MainPanel: TPanel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; Panel3: TPan

30、el; SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton; SpeedButton10: TSpeedButton; Panel4: TPanel; ADOConnection1: TADOConnection; ADOTable1: TADOTable; ADOQuery1: TADOQuery; DataSource1: TDataSource; AddClientPanel: TPanel; Label3: TLabel; Edit3: TEdit; Label4: TLa

31、bel; Edit4: TEdit; Label5: TLabel; Edit5: TEdit; Label6: TLabel; Edit6: TEdit; SpeedButton13: TSpeedButton; SpeedButton14: TSpeedButton; RadioButton1: TRadioButton; StoragePanel: TPanel; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; SpeedButton11: TSpeedButton; SpeedButton12: TSpeedBut

32、ton; Label7: TLabel; Edit7: TEdit; Label8: TLabel; Edit8: TEdit; Label9: TLabel; Edit9: TEdit; Label10: TLabel; Edit10: TEdit; RadioButton2: TRadioButton; Panel2: TPanel; Label11: TLabel; Label12: TLabel; Edit12: TEdit; Label13: TLabel; Edit13: TEdit; ComboBox1: TComboBox; ConsignmentPanel: TPanel;

33、Label14: TLabel; SpeedButton15: TSpeedButton; SpeedButton16: TSpeedButton; Edit11: TEdit; Label15: TLabel; Label16: TLabel; Edit15: TEdit; SpeedButton17: TSpeedButton; ComboBox2: TComboBox; ModifyPanel: TPanel; Label17: TLabel; Edit14: TEdit; Label18: TLabel; Edit16: TEdit; Label19: TLabel; Edit17:

34、TEdit; Label20: TLabel; Edit18: TEdit; SpeedButton5: TSpeedButton; SpeedButton9: TSpeedButton; SpeedButton18: TSpeedButton; QuickRep1: TQuickRep; QRBand1: TQRBand; QRLabel1: TQRLabel; QRBand2: TQRBand; QRLabel2: TQRLabel; QRLabel3: TQRLabel; QRLabel4: TQRLabel; QRLabel5: TQRLabel; QRLabel6: TQRLabel

35、; QRLabel7: TQRLabel; QRLabel8: TQRLabel; QRLabel9: TQRLabel; QRLabel10: TQRLabel; QRBand3: TQRBand; QRDBText1: TQRDBText; QRDBText2: TQRDBText; QRDBText3: TQRDBText; QRDBText4: TQRDBText; QRDBText5: TQRDBText; QRDBText6: TQRDBText; QRDBText7: TQRDBText; QRDBText8: TQRDBText; QRDBText9: TQRDBText; A

36、DOConnection2: TADOConnection; ADOTable2: TADOTable; ADOQuery2: TADOQuery; QRBand4: TQRBand; QRSysData1: TQRSysData; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton12Click(Sender: TObject); procedure SpeedButton11Click(Sender: TObject); procedure SpeedButton10Click(Sender: TObjec

37、t); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure SpeedButton14Click(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedBut

38、ton5Click(Sender: TObject); procedure SpeedButton18Click(Sender: TObject); procedure SpeedButton17Click(Sender: TObject); procedure SpeedButton16Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton15Click(Sender: TO

39、bject); procedure SpeedButton8Click(Sender: TObject); procedure SpeedButton7Click(Sender: TObject); private Private declarations public Public declarations end;var Form3: TForm3;var p:Integer; implementation$R *.dfmprocedure TForm3.SpeedButton1Click(Sender: TObject);begin AddClientPanel.Visible:=fal

40、se; ConsignmentPanel.Visible:=false; ConsignmentPanel.Visible:=false; ModifyPanel.Visible:=false; StoragePanel.Visible:=True; /庫存查看面板顯現(xiàn)end;procedure TForm3.SpeedButton12Click(Sender: TObject);begin Edit1.Text:='' /文本框清空 Edit2.Text:='' StoragePanel.Visible:=false; /庫存查看面板隱藏end;procedu

41、re TForm3.SpeedButton11Click(Sender: TObject);var i:Integer;var storage:string;begin /輸入產(chǎn)品編號后,則查看是否有該產(chǎn)品 ADOConnection1.Connected:=True; ADOTable1.Active:=True; with ADOQuery1 do begin ADOQuery1.Close; with SQL do begin SQL.Clear; SQL.Add('select * from 產(chǎn)品 where 產(chǎn)品編號='''+Edit1.Text+&#

42、39;'' '); ADOQuery1.Open; i:=recordcount; if i>0 then /有,則 begin storage:=ADOQuery1.FieldByName('庫存量').AsString; /獲得庫存量 ADOQuery1.Close; Edit2.Text:=storage; end else begin ADOQuery1.Close; /沒有,則 showmessage('編號為:'''+Edit1.Text+'''的產(chǎn)品不存在! '); en

43、d; end; end;end;procedure TForm3.SpeedButton10Click(Sender: TObject);begin ADOConnection1.Connected:=false; /斷開與數(shù)據(jù)庫的連接,并退出系統(tǒng) ADOTable1.Active:=false; Application.Terminate;end;procedure TForm3.SpeedButton2Click(Sender: TObject);begin ConsignmentPanel.Visible:=false; ConsignmentPanel.Visible:=false;

44、ModifyPanel.Visible:=false; StoragePanel.Visible:=false; /庫存查看面板顯現(xiàn) AddClientPanel.Visible:=True; /end;procedure TForm3.SpeedButton13Click(Sender: TObject);var checked:Boolean;var i:string;var j:string;var k:Integer;var l:Integer;var m:Integer;begin ADOConnection1.Connected:=false; /斷開與數(shù)據(jù)庫的連接 ADOTabl

45、e1.Active:=false; / ADOTable1.TableName:='客戶' /更換要查詢的表名 ADOConnection1.Connected:=True; /重新與數(shù)據(jù)庫建立連接 ADOTable1.Active:=True; with ADOQuery1 do begin ADOQuery1.Close; with SQL do begin SQL.Clear; SQL.Add('select * from 訂單 where 訂單編號='''+Edit7.Text+''' '); ADOQue

46、ry1.Open; k:=recordcount; ADOQuery1.Close; if k>0 then begin showmessage('該訂單編號已存在,請重新輸入!'); end else begin with ADOQuery1 do /將輸入的客戶信息插入數(shù)據(jù)庫 begin ADOQuery1.Close; with SQL do begin SQL.Clear; checked:=RadioButton1.Checked; /checked1:=RadioButton2.Checked; if checked =false then begin i:=

47、'false' j:='true' end else begin i:='true' j:='false' showmessage(i); / showmessage(j); / end; SQL.Add('insert into 客戶 values('''+Edit3.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+Edit6.Text+''','''+i+''')'); ADOQuery1.ExecSQL; showmessage('成功添加客戶!'); ADOQuery1.Close; end; end; /添加客戶結(jié)束 l:=strToint(Edit12.Text); m:=strToint(Edit13

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論