1、产品销售合同管理1. 问题描述输入产品销售合同的基本数据实现合同管理的查询/统计操作输出各重要表单1.1系统功能分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本系统需要完成的功能主要有: 输入部分:原始数据录入 处理功能:查询(单项/综合)、统计 报表输出(打印/显示) 菜单/窗口/界面设计1.2系统功能模块设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1所示的系统功能模块图。产品销售合同管理系统系统管理信息输出管理基本信息管理界面管理退出系统输入数据修改数据删除数据输出一般数据输出统计数据图1 系统功能模块
2、图2. 数据库系统设计2.1 需求分析针对销售合同的需求,通过对销售合同进行分析,设计如下所示的数据项和数据结构:l 合同表单,包括的数据项有:合同编号、日期、产品代码、数量、单价、合计等。l 供货单位,包括的数据项有:单位名称、地址、电话、供货方式、出库日期等。l 产品表单,包括的数据项有:产品代码、规格型号、单价、供货单位等。2.2 概念设计概念模型是数据库系统的核心和基础。根据以上分析结果,绘制出本系统的E-R图,如图2 所示。合同供货单位产品订货交付数量日期编号型号单价产品代码地址电话出库日期供货方式提供单位名称图2 系统功能E-R图2.3 逻辑设计现在需要将上面的数据库概念结构(E-
3、R图)转化为Oracle数据库系统所支持的数据模型,也就是数据库的逻辑结构。根据数据库的需求分析和概念设计,设计了数据库。数据库由下面多个表组成,其详细信息如表1,表2,表3 所示。表1 销售合同表列名数据类型可否为空说明NumVarchar2(12)Not null合同编号(主码)PnumVarchar2(10)Not null产品编号CountSmallintNot null数量PriceNumeric(5,2)Not null单价FactoryVarchar2(10)Not null供货单位FdayVarchar2(10)Not null出库日期Hetong_dateVarchar2(1
4、0)Not null签定日期表2 产品信息表列名数据类型可否为空说明PnumVarchar2(10)Not null产品编号(主码)PtypeVarchar2(10)Null产品规格表3 供货单位表列名数据类型可否为空说明FactoryVarchar2(10)Not null供货单位(主码)AddressVarchar2(20)Null地址TelVarchar2(10)Null电话MethodVarchar2(10)Null供货方式3. 系统实现以上完成了对产品销售合同管理系统的功能分析和数据库设计后,接下来就是系统的具体实现了。31 开发环境操作系统:Windows 2000运行环境:Vis
5、ual Studio 2005数据库:Oracle 10g编程语言:C#32 系统实现细节 本系统重点内容是连接Oracle数据库。总体来说功能比较容易实现,但由于上机实习的经验较少,仍是有很多地方需要请教同学。例如,用VS连接Oracleo数据库,就是在做课程设计之后请教同学才学会的。将程序运行时输入的数据添加到数据库中,也是这次课程设计中学到的。33 程序调试情况 程序有一个需要计算的地方,就是单价乘以数量得到总价,不知道该怎样实现。请教同学后,用强制转换数据类型的方法实现了。实验中还遇到过很多的小毛病,但都得到较好的处理。4. 结束语通过此次课程设计,熟练了怎么样操作Oracler的SQ
6、L Plus,熟悉了数据库设计的基本思路。同时也了解到的自己的很多不足之处。通过这次课程设计,我终于学会了那些早就应该掌握的东西。参考文献1 王珊 萨师煊 数据库系统概论 高等教育出版社 20062 常永英 ASP。NET程序设计教程(C#版)机械工业出版社 20073章立民 SQL Server2005数据库开发实战 机械工业出版社 2007附录:源代码清单1Oracle数据库的各表单/合同表单create table hetong(num varchar2(20) primary key,pnum varchar2(20) not null,price numeric(10,2) not
7、null,count smallint not null,factory varchar2(30) not null,fday varchar2(12) not null,day varchar2(12) not null);/供货单位表单create table com(factory varchar2(30) primary key,address varchar2(30),tel varchar2(15),method varchar2(16);/产品表单create table product(pnum varchar2(20) primary key,ptype varchar2(1
8、8);2各主要功能的实现代码/主页面源代码 产品销售合同管理 产品销售合同管理 asp:SqlDataSource ID=SqlDataSource1 runat=server ConnectionString= ProviderName= SelectCommand=SELECT Num, Pnum,Price,Count,Factory,Fday,Day FROM Hetong DeleteCommand=DELETE FROM Hetong WHERE (NUM = :num) UpdateCommand=UPDATE Hetong SET NUM = :num, Pnum = :Pnu
9、m, Price = :Price, Count = :Count, Factory = :Factory, Fday=:Fday,Day = :Day WHERE (NUM = :num) 插入记录 查询记录 供货单位信息管理
10、 产品信息管理 /插入功能的实现代码 无标题页 添加记录 合同编号 产品代码 单价 数量 供货单位 发货日期 签定日期 /添加功能的实现public partial class add : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) this.Title = 添加记录; txtNo.Focus(); prote
11、cted void btnBack_Click1(object sender, EventArgs e) Response.Redirect(default.aspx); protected void btnSubmit_Click1(object sender, EventArgs e) OracleConnection conn = new OracleConnection(Data Source=orcl;User ID=system;password=xiao871112;Unicode=True); string strVal = txtNo.Text + , + TextBox2.
12、Text + , + TextBox3.Text + , + TextBox4.Text + , + TextBox5.Text + , + TextBox6.Text+,+TextBox7.Text; string strIns = insert into hetong (Num, Pnum, Count,Price,Factory,Fday,Day)values( + strVal + ) ; OracleCommand insCom = new OracleCommand(strIns, conn); conn.Open(); Int32 n=insCom.ExecuteNonQuery
13、(); if (n 0) Response.Write(alert(添加成功!);); conn.Close(); OracleConnection conn1= new OracleConnection(Data Source=orcl;User ID=system;password=xiao871112;Unicode=True); string strFac = TextBox5.Text ; string strIns1 = insert into com (Factory)values( + strFac + ) ; OracleCommand insCom1 = new Oracl
14、eCommand(strIns1, conn1); conn1.Open(); Int32 m = insCom1.ExecuteNonQuery(); if (m 0) Response.Write(alert(添加成功!);); conn1.Close(); OracleConnection conn2 = new OracleConnection(Data Source=orcl;User ID=system;password=xiao871112;Unicode=True); string strPro = TextBox2.Text; string strIns2 = insert
15、into product (Pnum)values( + strPro + ) ; OracleCommand insCom2 = new OracleCommand(strIns2, conn2); conn2.Open(); Int32 k = insCom2.ExecuteNonQuery(); if (k 0) Response.Write(alert(添加成功!点击确定返回的主页面);); Server.Transfer(Default.aspx); conn2.Close(); /查询功能的实现代码public partial class insert : System.Web.U
16、I.Page protected void Page_Load(object sender, EventArgs e) this.Title = 查询; protected void btnSubmit_Click(object sender, EventArgs e) Panel1.Visible = true; Boolean flag = false; OracleConnection conn = new OracleConnection(Data Source=orcl;User ID=system;Password=xiao871112;Unicode=True); OracleC
17、ommand com = new OracleCommand(select * from Hetong,conn); conn.Open(); OracleDataReader dr = com.ExecuteReader(); while (dr.Read() if (txtbox1.Text = drnum.ToString().Trim() flag = true; Label1.Text = drNum.ToString(); Label2.Text = drPnum.ToString(); Label3.Text = drPrice.ToString(); Label4.Text =
18、 drCount.ToString(); Label5.Text = drFactory.ToString(); Label6.Text = drFday.ToString(); Label7.Text = drDay.ToString(); float price=float.Parse(Label3.Text); float count=float.Parse(Label4.Text); float total=price*count; Label8.Text=total.ToString(); if(flag=false) Response.Write(alert(没有你所查询的信息, 单击确定返回);); dr.Close(); conn.Close();