《销售管理系统毕业设计.docx》由会员分享,可在线阅读,更多相关《销售管理系统毕业设计.docx(96页珍藏版)》请在三一办公上搜索。
1、毕业设计 院系_ 专业_ 班级_ 姓名_日期 年 月 日中文摘要销售管理系统为企事业单位销售管理者提供充足的信息和快捷的查询平台,其开发内容主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。利用DELPHI 6.0软件及其提供的各种面向对象的开发工具,建立完整性强、安全性好的数据库,开发出功能完备,易使用的应用程序。经过调试、编译与实现,该程序界面友好、程序设计风格朴素,使用起来美观大方、方便易用。尤其是系统的“查询与统计模块”的功能极大的减轻工作人员的工作量,并以快速、准确等优点取代人工操作,提高了销售管理工作效率。关键词 : DELPHI 6.0 信息管理系统 数据库 模块 销
2、售管理系统Sales management system for enterprises and institutions to provide adequate information and marketing managers quick search platform, including the background of its development mainly to the establishment and maintenance of database front-end applications and development 2. Delphi 6.0 and the
3、 use of object-oriented software development tools, the establishment of strong integrity, good safety database developed functions, easy to use applications. After debugging, Translation and the realization that the process friendly interface, simple programming style, using up aesthetic generous,
4、convenient user-friendly. In particular system enquiries and Statistics module function greatly reduce the workload of staff, and to the rapid, accurate, and other advantages replace manually operated, and enhanced sales management efficiency. Keyword : Delphi 6.0 Information Management System datab
5、ase module sales management system引 言11 Delphi语言概述21.1 Delphi简介51.2 数据库系统简介81.3 本应用软件的基本介绍132 本应用程序的构成和开发步骤162.1 可行性研究 182.1.1 经济可行性 192.1.2 时间可行性 202.1.3 技术可行性 212.1.4 社会可行性 222.2 数据库的建立和连接252.3 系统的总体设计 302.4 系统的详细设计 373 本程序的技术实现及具体功能 393.1 登录的界面与程序设计实现423.2 销售管理界面与代码设计实现 533.3 查询与统计界面与代码设计实现 643.4
6、 图表分析界面与代码设计 743.5 主界面设计与代码设计 84结 论92致 谢93参 考 文 献94引 言随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活中不可缺少的辅助工具。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户
7、的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。以前开发Windows应用软件是专业人员的工作,需要掌握许多专业知识和经过特殊的培训才能胜任。现在不同了,即使你没有接受过严格的程序设计训练,使用Delphi编程语言也一样能够开发出功能强大、适合自己特殊需求的应用程序了。Delphi编程语言继承了其他语言易学易用的特点,特别适合于初学者学习Windows系统编程。 销售管理系统用计算机管理企事业单位产品销售的一种计算机应用技术的创新,在计算机还未普及之前销售管理都是由工作人员人工书写,调阅的方式来操作的.现在一般的销售管理都采用计算机智能化管理,采用计算机作为工具的实用的计算机网络化管理
8、程序来帮助前台管理员进行更有效的销售管理工作。销售管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 Delphi编程语言开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。因为本人能力有限,加上时间紧迫,所以设计出来的本系统可能功能比较简单,另外本系统是单
9、机版,不能实现网络互联操作,这些都有待于我在以后的工作学习中进一步改进。1.1 Delphi简介1.1 Delphi简介 Delphi是Inprise公司出品的一个优秀的可视化程序开发工具软件,它短小精悍,但功能却可以与庞大的visual c+媲美。它易学易用,如同VB,因而被称为“第四代编程语言”。从1995年推出Delphi1.0至今已经经历了7个版本,Delphi7.0运行在win9x或winme,win2000,winxp,windowsNT等操作系统下,是一个32位的应用程序开发工具。这里把“VB”比作是傻瓜相机,Delphi是带有自动功能的专业相机。前些年,软件界流行一句话叫“真正
10、的程序员用VC,聪明的程序员用Delphi”。也有的把Delphi称作VB杀手。1.2 数据库系统简介数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言,实用程序以及数据库管理系统。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这些数据为多个应用服务,独立于具体的应用程序。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。对数据库
11、的维护包括保持数据的完整性、一致性和安全性。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库;它的学科含义是指研究、开发、建立、维护和应用数据库系统所涉及的理论、方法、技术所构成的学科。在这一含义下,数据库系统是软件研究领域的一个重要分支,常称为数据库领域。 数据库研究跨越于计算机应用、系统软件和理论三个领域,其中应用促进新系统的研制开发,新系统带来新的理论研究,而理论研究又对前两个领域起着指导作用。数据库系统的出现是计算机应用的一个里程
12、碑,它使得计算机应用从以科学计算为主转向以数据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用。在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术往往很复杂,是普通用户难以实现的,所以就由系统软件(数据库管理系统)来完成,而提供给用户的是简单易用的数据库语言。由于对数据库的操作都由数据库管理系统完成,所以数据库就可以独立于具体的应用程序而存在,从而数据库又可以为多个用户所共享。因此,数据的独立性和共享性是数据库系统的重要特征。数据共享节省了大量
13、人力物力,为数据库系统的广泛应用奠定了基础。数据库系统的出现使得普通用户能够方便地将日常数据存入计算机并在需要的时候快速访问它们,从而使的计算机走出科研机构进入各行各业、进入家庭。1.3 本应用软件的基本介绍本应用软件先是打开一个启动窗口,就可以进入应用程序的主窗口了。主界面是一个图型界面窗口,整个平台显示采用人性化方式,可以非常方便的客户管理,产品管理,查询与统计以及图表分析等基本信息,管理日常经营的基本情况,通过各种条件查询出产品销售的基本信息,以及打印出查询出的基本信息,总之销售管理日常工作中的基本信息都会显示在系统平台上,大大提高了管理人员的工作效率。2 本应用程序的构成和开发步骤下面
14、从软件工程的角度介绍本程序的基本开发步骤。Delphi 应用程序一般包含以下三个基本部分: 应用程序运行的接口:负责系统整体环境的设置,运行状态的监视,应用程序的启动等。 应用程序的主体:主要完成用户的业务逻辑功能,如客户信息,产品信息查询与统计等信息.应用程序的辅助部分:协助程序主体完成的一些工作。 下面从软件工程的角度描述本程序的开发生命周期,开发过程和组织过程。2.1 可行性研究任何一个系统或一项工程,在建立之前,必须首选进行可行性分析,可行性分析包括两层含义,一是可能性,二是必要性。可能性指开发信息系统的条件是否具备,必要性是指客观上是否真正需要,通过可行性研究,可避免盲目投资,减少政
15、治性要的损失。下面从四方面来讨论:2.1.1 经济可行性主要是只指算一个新的系统开发所需要的投资费用和运算费用,并与估计的新系统收益进行比较,看是否有利。本系统所需的软硬件成本比较低,投资小,具有一定的通过性,因此 ,在经济上是可行的。2.1.2 时间可行性主要包括系统在目前环境下能否正常运行,运行后所引起的各方面,以及这些变化对社会或人的因素所产生的影响。本系统对人事的管理比较全面,可长期使用。2.1.3 技术可行性利用现有的设备,软件及技术人员,新系统的目标能否达到,这也是可行性研究中需要考虑的一个问题。关系型数据库的高速发展使管理信息系统具备了良好的开发环境。本系统使用的Delphi 普
16、及性好,操作简单,用户可以很快掌握使用方法,因此,在技术上是完全可行的。2.1.4 社会可行性人类社会文明的发展已进入信息化的高速发展时期,传统的手工方式支持下的管理模式,已经不能满足各方面的需要。开发本系统的目标不仅是提高工作效率,减轻劳动强度,而且减少出错率,具有很好的社会意义。2.2 数据库的建立和连接这个程序采用的数据库是Microsoft Access2000,Delphi作为数据库的前台开发工具,必须与后台数据库进行连接,这样才能控制和进行操作数据库,数据库的连接方式有两种,ODBC和ADO。ODBC是数据库的通用接口,其缺点是效率低;专用接口调用直接速度快,但是通用性差,如果用O
17、DBC连接数据库一般要两个步骤:1.要创建数据源;2.创建描述文件。数据库的建立则时在access2000中建立的,在这里你可以设置数据库的密码,对数据库进行保护。在创建数据源时可以通过BDE administrator进行创建,也可以通过系统控制面板中的ODBC数据源进行建立。而描述文件则可以在Delphi的主程序中用Database Profile中进行建立,之后进行数据库的连接。接下来的工作是建表。同样建表的过程也不是唯一的,但是最终实现的结果是唯一的。你可以通过Access进行建表,也可以通过在 Visual Basic 主程序中建表,也可以通过powerdesigner进行可视化的建
18、立,不过用这种方法,在导入的时候要把数据库要先断开,否则数据库的数据容易丢失。建表的过程注意规范化命名规则,如表的字段名等等。同时也要注意表的字段长度和可否为空。因为以后要设计到主键,外键的问题。如果字段名不同,同一字段长度不同则主键和外键将会连接不上。可见建表时应做好全局的打算。我在程序开发的初期,同样犯了这个错误,导致数据库出错,有时还要向表中新加入字段。导致数据窗口不好用的连锁反映。2.3 系统的总体设计这个管理系统从4月1日开始着手设计开发,经过一段时间的分析,并根据对销售管理的具体要求及需要本软件实现的功能,将本软件分为5个大的模块,分别是:第一部分:基本资料;第二部分:销售管理;第
19、三部分:查询与统计; 第四部分:图表分析。程序流程图如下:程序登陆主界面基本资料销售管理查询统计图表分析2.4 系统的详细设计进入Access后要做的第一件事就是建立一个数据库。Access提供了6种用构造数据库系统的对象,根据本课题的需要,在这里选择一个空的数据库,命名建立了一个数据库名称为“pn”,销售管理系统。并在此数据库下创建了六个表,用于存放原始数据。它只是存放数据,对其中数据的修改要通过对应的窗体来完成。创建各表的具体结构如下:1.密码信息表2.chanpinl信息表3.chanpinl信息表4.客户信息表:5.khbf信息表6.客户资料信息表:3 本程序的技术实现及具体功能3.1
20、 登录的界面与程序设计实现代码分析:unit unit_first;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls, DB, ADODB;type Tfrm_first = class(TForm) Image1: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; sbtn_enter: TSpeedButton; sb
21、tn_exit: TSpeedButton; edt_password: TEdit; cmb_name: TComboBox; cmb_right: TComboBox; ADOTable1: TADOTable; ADOConnection1: TADOConnection; procedure sbtn_enterClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure cmb_rightChange(Sender: TObject); procedure cmb_rightKeyPress(Send
22、er: TObject; var Key: Char); procedure cmb_nameKeyPress(Sender: TObject; var Key: Char); procedure edt_passwordKeyPress(Sender: TObject; var Key: Char); procedure sbtn_exitClick(Sender: TObject); private Private declarations public right,i:integer; password,logname:string; flag:boolean; Public decla
23、rations end;var frm_first: Tfrm_first;implementationuses unit_main;$R *.dfmprocedure Tfrm_first.sbtn_enterClick(Sender: TObject);beginflag:=false;right:=cmb_right.ItemIndex;logname:=cmb_name.Text;password:=edt_password.Text;adotable1.Open;adotable1.First;while not adotable1.Eof dobeginif (logname=ad
24、otable1.FieldValues帐号) and (right=adotable1.FieldValues权限) and (password=adotable1.FieldValues密码) thenflag:=true;adotable1.Next;end;if flag thenbeginif right=0 thenbeginfrm_main.n12.Enabled:=true;frm_main.Caption:=;frm_main.Caption:=三所销售管理+-+管理员+(+cmb_name.Text+);end;if right=1 thenbeginfrm_main.n12
25、.Enabled:=false;frm_main.Caption:=;frm_main.Caption:=三所销售管理+-+一般用户+(+cmb_name.Text+);end;cmb_name.Text:=;edt_password.Text:=;cmb_name.SetFocus;adotable1.Close;close;endelsebeginshowmessage(此帐号不存在或密码错误,请从新输入!);cmb_name.Text:=;edt_password.Text:=;cmb_name.SetFocus;end;end;procedure Tfrm_first.FormCrea
26、te(Sender: TObject);beginadoconnection1.ConnectionString:=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+getcurrentdir+datapassword.mdb;Persist Security Info=False;Jet OLEDB:Database Password=80513;adoconnection1.Connected:=true;adotable1.TableName:=密码;adotable1.Active:=true;adotable1.First;end;proce
27、dure Tfrm_first.cmb_rightChange(Sender: TObject);vari:integer;beginadotable1.Active:=true;cmb_name.Text:=;if cmb_right.ItemIndex=0 thenbegincmb_name.Items.Clear;adotable1.Filter:=权限=0;adotable1.Filtered:=true;if adotable1.RecordCount5 thenbeginfor i:=0 to adotable1.RecordCount-1 dobegincmb_name.Item
28、s.Add(adotable1.FieldValues帐号);adotable1.Next;end;endelsebeginfor i:=0 to 4 dobegincmb_name.Items.Add(adotable1.FieldValues帐号);adotable1.Next;end;end;endelsebegincmb_name.Items.Clear;adotable1.Filter:=权限=1;adotable1.Filtered:=true;if adotable1.RecordCount5 thenbeginfor i:=0 to adotable1.RecordCount-
29、1 dobegincmb_name.Items.Add(adotable1.FieldValues帐号);adotable1.Next;end;endelsebeginfor i:=0 to 4 dobegincmb_name.Items.Add(adotable1.FieldValues帐号);adotable1.Next;end;end;end;end;procedure Tfrm_first.cmb_rightKeyPress(Sender: TObject; var Key: Char);beginif key=#13 thencmb_name.SetFocus;end;procedu
30、re Tfrm_first.cmb_nameKeyPress(Sender: TObject; var Key: Char);beginif key=#13 thenedt_password.SetFocus;end;procedure Tfrm_first.edt_passwordKeyPress(Sender: TObject; var Key: Char);beginif key=#13 thensbtn_enter.Click;end;procedure Tfrm_first.sbtn_exitClick(Sender: TObject);beginif frm_main.i=1 th
31、enbeginfrm_first.close;frm_main.i:=0;endelsebeginfrm_main.Close;close;end;end;end.3.2 销售管理界面与代码设计实现代码设计:unit unit_shfwgl;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, jpeg, ExtCtrls, StdCtrls, mmsystem,ComCtrls, DB, ADODB;type Tfrm_shfwgl
32、= class(TForm) GroupBox1: TGroupBox; Label1: TLabel; dtp_qitime: TDateTimePicker; Label2: TLabel; dtp_zhongtime: TDateTimePicker; Label3: TLabel; cmb_khjc: TComboBox; Label4: TLabel; cmb_fwren: TComboBox; GroupBox2: TGroupBox; Label5: TLabel; edt_cpbh: TEdit; Label6: TLabel; cmb_cplb: TComboBox; Lab
33、el7: TLabel; edt_fwf: TEdit; Label8: TLabel; edt_bgbh: TEdit; Label9: TLabel; Memo_bgnr: TMemo; Image1: TImage; Image2: TImage; Label10: TLabel; edt_fwdh: TEdit; Label11: TLabel; edt_fwxm: TEdit; GroupBox3: TGroupBox; sbtn_first: TSpeedButton; sbtn_prior: TSpeedButton; sbtn_next: TSpeedButton; sbtn_
34、last: TSpeedButton; sbtn_adding: TSpeedButton; sbtn_post: TSpeedButton; Image3: TImage; lbl_position: TLabel; ADODataSet1: TADODataSet; sbtn_edit: TSpeedButton; sbtn_delete: TSpeedButton; sbtn_cancel: TSpeedButton; sbtn_print: TSpeedButton; sbtn_querry: TSpeedButton; sbtn_exit: TSpeedButton; Label12
35、: TLabel; edt_cpmc: TEdit; procedure sbtn_findClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure sbtn_addingClick(Sender: TObject); procedure sbtn_firstClick(Sender: TObject); procedure sbtn_priorClick(Sender: TObject); procedure sbtn_nextClick(Sender: TObject); procedure sbtn_la
36、stClick(Sender: TObject); procedure sbtn_postClick(Sender: TObject); procedure sbtn_editClick(Sender: TObject); procedure sbtn_deleteClick(Sender: TObject); procedure sbtn_cancelClick(Sender: TObject); procedure sbtn_exitClick(Sender: TObject); procedure sbtn_querryClick(Sender: TObject); procedure
37、sbtn_printClick(Sender: TObject); procedure cmb_khjcKeyPress(Sender: TObject; var Key: Char); procedure cmb_fwrenKeyPress(Sender: TObject; var Key: Char); procedure edt_fwdhKeyPress(Sender: TObject; var Key: Char); procedure dtp_zhongtimeKeyPress(Sender: TObject; var Key: Char); procedure dtp_qitime
38、KeyPress(Sender: TObject; var Key: Char); procedure edt_fwxmKeyPress(Sender: TObject; var Key: Char); procedure edt_cpbhKeyPress(Sender: TObject; var Key: Char); procedure cmb_cplbKeyPress(Sender: TObject; var Key: Char); procedure edt_cpmcKeyPress(Sender: TObject; var Key: Char); procedure edt_fwfK
39、eyPress(Sender: TObject; var Key: Char); procedure edt_bgbhKeyPress(Sender: TObject; var Key: Char); procedure Memo_bgnrKeyPress(Sender: TObject; var Key: Char); private Private declarations public adding:boolean; procedure showdata; procedure frmcreate; Public declarations end;var frm_shfwgl: Tfrm_
40、shfwgl;implementationuses unit_shfwglquerry, unit_main, unit_shfwreport;$R *.dfmprocedure Tfrm_shfwgl.sbtn_findClick(Sender: TObject);begin frm_shfwglquerry.ShowModal;end;procedure Tfrm_shfwgl.FormShow(Sender: TObject);beginfrmcreate;adodataset1.Active:=false;adodataset1.CommandText:=select * from s
41、hfwgl;adodataset1.Active:=true;if adodataset1.RecordCount1 thenbeginshowmessage(无记录,先添加);sbtn_adding.Click;sbtn_adding.Enabled:=false;abort;end;adodataset1.Active:=false;adodataset1.CommandText:=select * from shfwgl;adodataset1.Active:=true;showdata;end;procedure Tfrm_shfwgl.sbtn_addingClick(Sender:
42、 TObject);beginplaysound(c:windowsmediastart.wav,0,SND_ASYNC);cmb_khjc.Text:=;cmb_fwren.Text:=;edt_fwdh.Text:=;edt_fwxm.Text:=;edt_cpbh.Text:=;cmb_cplb.Text:=;edt_fwf.Text:=;edt_bgbh.Text:=;edt_cpmc.Text:=;memo_bgnr.Lines.Text:=;dtp_qitime.Date:=now;dtp_zhongtime.Date:=now;sbtn_first.Enabled:=false;
43、sbtn_prior.Enabled:=false;sbtn_next.Enabled:=false;sbtn_last.Enabled:=false;sbtn_edit.Enabled:=false;sbtn_delete.Enabled:=false;sbtn_post.Enabled:=true;sbtn_cancel.Enabled:=true;adding:=true;end;procedure Tfrm_shfwgl.showdata;beginwith adodataset1 dobegincmb_khjc.Text:=fieldvalues客户简称;cmb_fwren.Text
44、:=fieldvalues服务人员;edt_fwdh.Text:=fieldvalues服务单号;edt_fwxm.Text:=fieldvalues服务项目;edt_cpbh.Text:=fieldvalues产品编号;cmb_cplb.Text:=fieldvalues产品类别;edt_cpmc.Text:=fieldvalues产品名称;edt_fwf.Text:=floattostr(fieldvalues服务费);edt_bgbh.Text:=fieldvalues报告编号;memo_bgnr.Lines.Text:=fieldvalues报告内容;dtp_qitime.Date:=strtodatetime(fieldvalues开始时间);dtp_zhongtime.Date:=strtodatetime(fieldvalues终止时间)