收藏 分销(赏)

医药销售管理系统01.docx

上传人:pc****0 文档编号:8909181 上传时间:2025-03-07 格式:DOCX 页数:31 大小:3.44MB 下载积分:10 金币
下载 相关 举报
医药销售管理系统01.docx_第1页
第1页 / 共31页
医药销售管理系统01.docx_第2页
第2页 / 共31页


点击查看更多>>
资源描述
XXXXXX学 XXXXX 数据库课程设计说明书 医药销售管理系统 班级:XXXX 成员:XXXXXXX 摘要 本系统采用Visual Studio 2005 .Net 为开发工具,开发医药销售管理系统,适用于现在的药品销售业领域。开发医药销售管理系统能够提高药品销售管理的工作效率、扩大服务范围、增加药店收入、及时获取信息、减少决策失误、减少库存积压、提升员工的素质。能够及时提供药品基本信息、库存信息、入库信息和药品销售信息。在此基础上,通过对各种信息的综合分析,以改进药品品种、提高服务质量、满足前来购药顾客的不同要求,使药店管理向高质量、科学化发展。对提高仓储管理的工作效率和对市场的反应能力,能高效益、低库存、保证服务质量地满足药店药品销售日常管理的需要,使其采用现代化管理手段以适应药店药品批发、零售业的发展。 【关键词】:销售管理;数据库;.NET Abstract The System adopts Visual Studio 2005 .Net as the developing instrument to develop the Medicine Sell Administrat System, which is suitable for the present medicines merchandising business field. Can raise the working efficiency of selling management of medicines to sell the administrative system while developing drugstore medicines, expand service range , increase drugstore income , obtain information , reduce decision fault , reduce stock , promote quality of staff in time. Can offer the medicines basic information , stock information , selling operation information and financial information of drugstore in time . On this basis, through to various information of comprehensive analyses, in order to improve medicines variety , raise service quality , meet , come , purchase medicine different requirements of customer, make the drugstore managed to high quality , developed scientifically. To raising the working efficiency of management of storage and to the reaction ability of the market, it can be high to benefit , low stock , guarantee meeting the need of selling everyday control of drugstore medicines of service quality, make it adopt modernized management selling in batches , development of the retail business in order to adapt to drugstore medicines. 【Keywords】:Sale Management ; Database ; .Net 1. 引言 医药是关于人类同疾病作斗争和增进健康的科学,而制药工业则负责生产药品。制药工业既是国民经济的一个部门,又是一项治病、防病、保健、计划生育的社会福利事业。随着人们生活水平以及制药水平的不断提高,人们对医药的消费和需求也越来越旺盛,世界制药工业也保持庞大的市场需求和生产规模。近年来,中国医药销售市场发展迅猛。巨大的市场容量和可观的经济效益,引起各制药厂家纷纷加大投资,研究新配方,医药市场顿时烽烟四起,竞争是空前的激烈。在如此形式下,介于生产厂家和消费者之间的医药销售企业在医药事业中发挥了至关重要的作用。 1.1 系统开发的背景和意义 各医药销售公司都有它们自己的管理、销售、财务等职能部门。如何管理好这些部门,使整个公司协调一致、高效率地运转,是各公司急待解决的问题。但有的业务环节仍然运用人工记账的传统办法,既容易出错又会导致账目混乱,查询和统计起来非常不方便,费时又费力,严重时会给公司造成难以挽回的损失。像这样初级的公司管理方法,已远跟不上销售政策和销售形势发展的需要。因此,如何对医药销售管理提供一整套的管理方法达到提高效率和降低成本的问题成为焦点。医药销售管理系统的提出,对医药销售公司来讲意义重大。它不但能使各业务环节协调一致,而且操作简单,账目清晰,通过账目查询,公司能在最短的时间内获得市场信息,从而制订相应的决策。 1.2 系统的目标 本系统是以药品基本信息为主体,以销售药品的操作人员为服务对象,通过对各种入库和销售信息的管理操作,需要实现以下目标: 一、实现基础信息管理:药品信息管理,员工信息管理,客户信息管理,供应商信息管理; 二、实现进货管理:入库登记,入库登记查询,入库报表; 三、实现销售管理:销售登记,销售退货,销售报表,以及相应的查询; 四、系统维护。 2. 需求分析 2.1 系统需求 本医药销售管理系统是一个协助医药销售商对各职能部门及业务流程进行全面管理的一个信息管理系统。首先要解决传统的管理方法容易造成档案资料的遗失,控制不集中,管理不规范等问题。因此,本管理系统在实现上应满足以下需求: 1.能达到各销售业务流程之间的无缝链接和数据的共享。 2.为系统提供数据支持。 3.不同类型的用户拥有相应不同的权限使用该系统,从而大大提高了系统的安全性和管理效率。 4.能保证整个系统构架的稳定性和安全性。 2.2 功能需求 2.2.1 功能需求分析 首先是操作人员将药品信息入库,然后医药销售公司的销售人员通过与药品需求商(即客户)的交易活动,将相关交易信息存入数据库。公司的管理人员可以查询药品销售的各种信息统计,分析销售的运转情况。由此可分析系统需要达到以下目标: 1. 能很好地完成药品的售前管理如药品入库时详细信息的登记。 2. 能详细地记录客户与公司之间的交易过程以及相关信息。 3. 能及时准确地获得药品在某阶段的盈亏情况和市场的需求走势。即通过对药品销售、药品进货、药品退货等信息查询获得相应的结果,以备公司作为参考,从而制定出相应的策略。 4. 能够对不同权限的用户进行合理的管理。包括添加用户,查看用户密码等等。 2.2.2 功能模块划分 系统主要划分为3个模块,分别为信息管理模块,进货管理模块以及销售管理模块。不同的模块划分有不同的功能,具体如功能图1-1所示: 医药销售管理系统 信息管理模块 进货管理模块 销售管理模块 药品信息管理 员工信息管理 客户信息管理 供应商信息管理 入库登记 入库登记查询 入库报表 销售登记 销售退货 销售报表 功能图1-1 2.2.3 用户分类及功能权限划分 本医药销售管理系统把用户划分为3个角色,分别为管理员、入库操作员以及销售员。对于不用类型的用户,分别划分了不同的权限和不同的功能,保证了数据的安全,让销售能正常运转。 管理员所分配的功能权限如用例图2-1 图2-1 管理员用例图 入库操作员所分配的功能权限如用例图2-2 图2-2 入库员用例图 销售员所分配的功能权限如用例图2-3 图2-3 销售员用例图 2.2.4 系统的大概流程 在进入本医药销售管理系统之前,首先要进行员工编号和密码的输入 以及用户类型选择,如果输入的信息有误,则不能进行登录;只要在全部条件都满足下的情况下,用户才能成功登录;成功登录后,不用类型的用户会进入相应的管理页面,然后可以进行各自的功能操作。大概的系统工作流程如流程图3-1: 流程图3-1 2.3 运行需求 由于本系统是基于B/S结构的Web应用程序,所以对于用户电脑配置的要求不高,只要配置有IE6以上或者Netscape等浏览器,便能访问该医药销售管理系统;而服务器方面,由于考虑到为避免由于服务器原因造成系统无法访问,影响医药销售的正常运转,所以推荐使用IBM服务器,能够保证系统24小时能够正常运行,不会出现异常情况。 3. 概要设计 3.1 数据库设计 3.1.1 数据库概念设计 医药销售管理系统基本如E-R图如图3-1 图3-1 E-R图 3.1.2 数据库逻辑设计 1. 员工表(员工ID,员工姓名,员工性别,年龄,联系电话,密码,员工权限) 2. 客户表( 客户ID,客户名称,联系电话,联系地址 ) 3. 供应商表(供应商ID,供应商名称,联系电话,联系地址) 4. 药品表( 药品ID,药品名,价格,库存量,供应商,单位,规格) 5. 入库登记表(药品ID,入库时间,入库数量,经手人) 6. 销售登记表(订单号,药品ID,销售量,销售时间,客户ID,经手人) 3.1.3 数据库物理设计 1. 员工表:用于存放公司员工的信息,具体表结构如表3-1 表3-1 员工表 字段名称 字段类型 备注 员工ID Nchar(10) 员工的编号,长度为10,主键 员工姓名 Nchar(10) 员工的姓名,长度为10,可为空 员工性别 Nchar(10) 员工的性别,长度为10,可为空 年龄 Nchar(10) 员工的年龄,长度为10,可为空 联系电话 Nchar(10) 员工的联系电话,长度为10,可为空 密码 Varchar(MAX) 员工的登录密码,不可为空 员工权限 Nchar(10) 员工权限,admin表示管理员,saler表示销售员,addinfo表示入库员 2. 客户表:用于存放购买药品的客户信息,具体表结构如表3-2 表3-2 客户表 字段名称 字段类型 备注 客户ID Nchar(10) 客户编号,长度为10,主键 客户名称 Nchar(10) 客户的名称,长度为10,不能为空 联系电话 Nchar(15) 客户的联系电话,长度为15,不能为空 联系地址 Nchar(20) 客户的联系地址,长度为20,不能为空 3. 供应商表:用于存放供应商的信息,具体表结构如表3-3 表3-3 供应商表 字段名称 字段类型 备注 供应商ID Nchar(10) 供应商的编号,长度为10,主键 供应商名称 Nchar(10) 供应商的名称,长度为10,不能为空 联系电话 Nchar(15) 供应商的联系电话,不能为空 联系地址 Nchar(20) 供应商的联系地址,不能为空 4. 药品表:用于存放仓库内每种药品的信息,具体表结构如表3-4 表3-4 药品表 字段名称 字段类型 备注 药品ID Nchar(10) 仓库内药品的编号,主键 药品名 Nchar(10) 药品的名称,长度为10,不能为空 价格 float 药品的价格,浮点型,不能为空 库存量 Int 药品的库存量,整型,不能为空 供应商 Nchar(10) 药品的供应商,长度为10,不能为空 单位 Nchar(10) 药品的单位,长度为10,不能为空 规格 Nchar(10) 药品的规格,长度为10,不能为空 5. 入库登记表:存放药品入库的记录,具体表结构如表3-5 表3-5 入库登记表 字段名称 字段类型 备注 药品ID Nchar(10) 入库药品的ID,长度为10,不能为空 入库时间 Nvarchar(50) 药品的入库时间,长度为50,不能为空 入库数量 Int 药品的入库数量,整型,不能为空 经手人 Nchar(10) 入库操作的经手人,可为空 6. 销售登记表:存放药品销售的记录,具体表结构如表3-6 表3-6 销售登记表 字段名称 字段类型 备注 订单号 Int 交易订单号,整型,主键,自动生成 药品ID Nchar(10) 销售药品的ID,长度为10,不能为空 销售量 Int 药品的销售量,整型,不能为空 销售时间 Nvarchar(50) 药品的销售时间,长度为50,不能为空 客户ID Nchar(10) 购买该药品的客户的编号,长度为10,不能为空 经手人 Nchar(10) 销售操作的经手人,长度为10,可为空 3.2 数据字典 1.外部实体条目如表3-7(注:员工、客户、供应商、药品的编号各自独立) 表3-7 名称 权限类型 输入数据流 输出数据流 管理员 Admin 登录信息 无 入库员 addinfo 登录信息 无 销售员 saler 登录信息 无 客户 - 客户信息 无 供应商 - 供应商信息 无 药品 - 药品信息 无 2.数据流条目如表3-8 表3-8 名称 功能 输入数据流 输出数据流 员工信息 添加,查看员工信息 管理员 管理员 客户信息 添加,查看客户信息 销售人员 管理员,销售员 销售订单 添加,查看订单信息 销售人员 管理员,销售员 药品信息 添加,查看药品信息 管理员 管理员 3.处理过程条目如表3-9 表3-9 名称 数据流来源 数据流去向 添加员工 管理员 数据库员工表 添加客户 管理员 数据库客户表 药品入库 入库员 数据库药品表,入库表 查看员工信息 数据库 管理员 查看客户信息 数据库 销售员 查看订单信息 数据库 管理员、销售员 查看仓库库存 数据库 管理员、销售员、入库员 查看入库记录 数据库 管理员,入库员 4. 系统核心详细设计 4.1 用户登录 1. 设计说明 进入本医药销售管理系统,首先必须要进行用户的登录。用户登录要输入用户的ID、登录的密码任一项输入的信息与数据库中的记录不都会导致登录的失败,当输入信息都完全匹配了,通过用代码获取权限字段,通过检权限的字段跳转到相的用户界面 2. 流程图 图4-1 登陆流程图 3. 代码实现 protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn =new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString(); conn.Open(); SqlCommand cmd=new SqlCommand(); cmd.CommandText="select * from [yuangong] where 员工ID='"+TextBox1.Text+"'and 密码='"+TextBox2.Text+"'"; cmd.Connection=conn; SqlDataReader sr=cmd.ExecuteReader(); if (sr.Read()) { Session["user"] = this.TextBox1.Text; Session["password"] = this.TextBox2.Text; Session["us"] = sr.GetString(1).Trim(); Session["power"] = sr.GetString(6).Trim(); string power=Session ["power"].ToString (); if (power.Equals("admin")) { Response.Redirect("mlogin.aspx"); } else if (power.Equals("saler")) { Response.Redirect("slogin.aspx"); } else { Response.Redirect("alogin.aspx"); } } else { Response.Write("<Script language='javascript'>alert('用户名或密码不正确!')</script>"); } } protected void Button2_Click(object sender, EventArgs e) { TextBox1.Text = ""; TextBox2.Text = ""; } } 4.2 员工添加和删除 1. 设计说明 本系统中,管理员有添加员工的权限。添加员工,首先要输入员工的ID号,员工的姓名,选择员工的工作类型,员工的联系方式及员工的性别等信息。为避免重复录入同一个员工的信息,造成数据库出错,该功能设计中最重要的一点是当管理员输入员工ID号的同时,系统会自动检测数据库中员工表中的记录,若存在匹配的员工ID号,则不允许管理员向数据库添加该员工的信息,并提示管理员检查待添加的员工的ID号。对于要删除的员工,选中所要删除的员工并确认之后,可直接删除。 2. 流程图 图4-2 添加员工流程图 图 4-3 删除员工流程图 3. 代码实现 添加员工信息,在输入员工的编号后,系统会自动检测员工是否存在: protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString(); conn.Open(); SqlCommand smd = new SqlCommand(); smd.Connection = conn; smd.CommandText = "select * from yuangong where 员工ID='" + TextBox1.Text.Trim() + "'"; SqlDataReader sd = smd.ExecuteReader(); if (!sd.HasRows) { sd.Close(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "insert into yuangong(员工ID,员工姓名,员工性别,年龄,联系电话,密码,员工权限) values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','" + TextBox6.Text.Trim() + "','" + TextBox7.Text.Trim() + "')"; cmd.ExecuteNonQuery(); Response.Write("<script>alert('操作成功!')</script>"); TextBox1.Text = ""; TextBox2.Text = ""; TextBox3.Text = ""; TextBox4.Text = ""; TextBox5.Text = ""; TextBox6.Text = ""; TextBox7.Text = ""; } else { Response.Write("<script>alert('员工ID已存在')</script>"); } conn.Close(); sd.Close(); } 4.3 销售登记和退货 1. 设计说明 对于每一次的销售交易,首先自动生成对应订单号,由销售员完成订单其他信息的输入。订单记录了交易信息,也是交易存在的证据,当然若客户在规定的时间范围内因某些原因而需要退货,我会记交易的更新操作进行撤消,回到交易前的状态。 2. 流程图 图4-4 销售登记流程图 图4-5 销售退货流程图 3. 代码实现 1. 销售登记实现代码: protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString(); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "insert into xiaoshou(客户ID,药品ID,销售量,销售时间,经手人) values('" + DropDownList1.Text + "','" + DropDownList2.Text + "'," + float.Parse(TextBox3.Text) + ",'" + DateTime.Now.ToString() + "','" +Session ["us"].ToString () + "')"; cmd.ExecuteNonQuery(); conn.Close(); Response.Write("<script>alert('操作成功!')</script>"); TextBox3.Text = ""; } 2.销售退货的实现代码: public partial class xiaoshoutuihuo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Button TuiHuo = (Button)sender; string dingdan= TuiHuo.CommandArgument.ToString(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString(); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; string sql1 = "select 药品ID from xiaoshou where 订单号='" + dingdan + "'"; cmd.CommandText = sql1; string YaoPinID = cmd.ExecuteScalar().ToString(); string sql2 = "select 销售量 from xiaoshou where 订单号='" + dingdan + "'"; cmd.CommandText = sql2; int XiaoLiang = (int)cmd.ExecuteScalar(); cmd.CommandText = "update yaopin set 库存量=库存量+" + XiaoLiang + "where 药品ID='" + YaoPinID + "'"; cmd.ExecuteNonQuery(); cmd.CommandText = "delete from xiaoshou where 订单号='"+dingdan+"'"; cmd.ExecuteNonQuery(); DataBind(); conn.Close(); } } 4.4 销售查询和报表 1. 设计说明 可以对每一次的销售情况进行查询,分按具体的日期查询和按交易客户的ID查询;而报表就是显示一段时间内的销售情况。 2. 流程图 图4-6 销售查询流程图 图4-7 销售报表流程图 3. 代码实现 销售报表: public partial class xiaoshoubaobiao : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { this.Calendar1.Visible = true; } protected void Button2_Click(object sender, EventArgs e) { this.Calendar2.Visible = true; } protected void Calendar1_SelectionChanged(object sender, EventArgs e) { this.TextBox1.Text = this.Calendar1.SelectedDate.ToShortDateString(); this.Calendar1.Visible = false; } protected void Calendar2_SelectionChanged(object sender, EventArgs e) { this.TextBox2.Text = this.Calendar2.SelectedDate.ToShortDateString(); this.Calendar2.Visible = false; } protected void Button3_Click1(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString(); conn.Open(); string str = "select * from xiaoshou where 销售时间 between '" + TextBox1.Text + " 00:00:00' and '" + TextBox2.Text + " 23:59:59'"; SqlDataAdapter sda = new SqlDataAdapter(str, conn); DataSet ds = new DataSet(); sda.Fill(ds, "xiaoshou"); GridView1.DataSource = ds.Tables["xiaoshou"]; GridView1.DataBind(); } } 4.5 入库登记 1. 设计说明 本系统中,入库员有对药品进行入加的权限。入库药品时,先检仓库中是否存在这种药品的ID,若存在可直接完成入库信息后,直接入库,若无则不允许入库操作,并提示入库员添加该药品的信息,要在添加药品信息完成之后方可完成入库操作。另外一点:和销售登记一样,药品入库同样要考虑要数据库数据操作一致性的问题。仓管人员把药品入库时,仓库中相应药品ID的药品数量就要增加相应的数目,同时入库登记表中要添加相应的药品入库的记录,否则会给公司带来灾难性的后果,造成很大的损失。 2. 流程图 图4-8 入库登记流程图 3. 代码实现 protected void Page_Load(object sender, EventArgs e) { } protected void dlQuestions_ItemDataBound (objectsender,DataListItemEventArgse){ protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString(); conn.Open(); SqlCommand amd = new SqlCommand(); amd.Connection = conn; amd.CommandText = "select * from yaopin where 药品ID='"+TextBox1.Text.Trim()+"'"; SqlDataReader sdr= amd.ExecuteReader(); if (sdr.HasRows) { sdr.Close(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "insert into ruku(药品ID,入库数量,入库时间,经手人) values('" + TextBox1.Text.Trim() + "'," + int.Parse(TextBox2.Text) + ",'" + DateTime.Now.ToString() + "','"+Session["us"].ToString()+"')";
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服