药品管理系统的设计与实现
入库登记界面如图22所示。
图22 入库登记界面
自动编号的存储过程proc_AutoID如下:
USE [DrugStore] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[proc_AutoID] (@newID varchar(20) output) as declare @id varchar(20) set @id=(select MAX(ID) from Ruku) if(@id is null OR substring(@id,5,8)!=substring(convert(varchar,getdate(),112),1,8)) set @id=(select 'RKBH'+(substring(convert(varchar,getdate(),112),1,8)+'0000')) set@newID=(select'RKBH'+(substring(convert(varchar,getdate(),112),1,8)+(select STUFF(CONVERT(int,10000+(substring(@id,13,4)+1)),1,1,'')))) 第23页,共48页
药品管理系统的设计与实现
调用存储过程proc_AutoID的代码如下:
private void AutoID() { SqlConnection conn = GetConnection(); //实例化数据库连接类对象 conn.Open(); //打开数据库连接 Binddgv(); SqlCommand sqlcmd = new SqlCommand(\, conn); //实例化SqlCommand对象 sqlcmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程 //为存储过程添加参数 SqlParameter outValue = sqlcmd.Parameters.Add(\, SqlDbType.VarChar, 20); outValue.Direction = ParameterDirection.Output; //定义存储过程输出参数 sqlcmd.ExecuteNonQuery(); //执行存储过程 conn.Close(); //关闭数据库连接 txtInid.Text = outValue.Value.ToString(); } 点击保存按钮的代码如下:
string strSql = null; List
药品管理系统的设计与实现
strSqls.Add(strSql); } try { if (Tran.ExecDataBySqls(strSqls))//调用事务 { MessageBox.Show(\添加成功!\, \软件提示\); } else { MessageBox.Show(\添加失败!\, \软件提示\); } } catch (Exception ex){MessageBox.Show(ex.Message, \软件提示\);} 4.1.7 销售登记模块
销售登记是系统的重要组成部分。考虑到销售药品应简单快捷,在药品销售登记窗体,只需填写药品拼音码、销售数量以及实收金额,其它信息则只需从辅助录入区选择或由系统自动生成。同时设置各种提醒,如:销售数量大于库存数时提醒。同一笔销售的销售单号相同,在结算前都可以选中相应药品点击鼠标右键菜单移除,结算时利用事务处理把相关信息保存到销售信息表以及更新库存信息,并利用报表打印小票。销售登记模块流程图如图23所示。
图23 药品销售登记模块流程图
第25页,共48页
药品管理系统的设计与实现
销售登记界面如图24所示,打印小票设计如图25所示。
图24 销售登记界面
图25 小票设计
第26页,共48页