• 191.16 KB
  • 2022-04-22 11:35:47 发布

计算机信息管理专科毕业论文(1).doc

  • 23页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'东北农业大学毕业说明书中小型超市计算机管理系统规划入学年级:2014春学生姓名:张玲学号:141033004072010所学专业:计算机科学与技术东北农业大学中国●哈尔滨2016年4月 目录摘要11需求分析1.1行业概念的理解11.2业务流程说明21.3问题解决方案21.4数据流图32系统设计32.1系统模块的划分42.2数据字典43程序的设计与编码83.1POS系统的开发83.1.1功能及实现方法83.1.2问题讨论:交易流水号的确定93.2管理信息系统的设计93.2.1界面设计93.2.2各个功能模块实现的要点和技术103.2.2.1类继承与重载103.2.2.2windows消息机制113.2.2.3关于权限设置123.2.2.4应用Delphi显式事务控制133.2.2.5存储过程的使用134结束语215参考文献2222 提要:《中小型超市管理信息系统》是一个比较复杂和全面的管理系统,可以完成中小型超市的大部分业务。总的来说包括进货管理,物价管理,库存管理,销售管理,供货厂商管理,POS收款机子系统等。该系统界面朴素一致,但不失美观大方;操作方便,查询功能强大;数据全面、准确。系统采用了目前比较流行而技术非常成熟地客户机/服务器结构(C/S),前台应用程序用Delphi开发,后台数据库是MicrosoftSQLServer2000。关键字:面向对象的程序设计,继承,WINDOWS消息,存储过程,事务1需求分析1.1行业概念的理解POS:PointOfSells,电子收款机系统,也就是直接与顾客打交道的收银机系统。定单状态:用来描述商品进货方式,一般分为定单、日配、自采等。定单:表示该商品进货必须先向供货商发出定单,供货商按定单上的商品明细发货,超市则按定单上的商品明细收货。日配:指那些每天都要进货的商品或者补货期较短的商品,例如水果,生鲜蔬菜等。如果按定单,时间不允许而且工作重复烦琐。自采:顾名思义,超市自己负责商品的进货。销售状态:用来描述某种商品当前的销售状态,一般定义为正常、促销、折扣等,正常表示商品处于正常的售价状态,即按正常的售价销售。促销:表示超市把某种商品让利销售,以此来吸引跟多的消费者。一般低于正常售价甚至成本价。折扣:表示某种商品销售情况不好,或者商品有瑕疵,或者保质期快到等情况发生时,使尽快商品销售出去的一种手段。库存调整:当非因正常销售发生而实物数量变动时,通过调整库存使其帐面数量与实物数量相符。日处理:当一天的销售结束后,开始做日处理。把当天的销售数据汇总,调整商品库存。损益:商品出现损坏,变质,被盗等情况发生时,商品发生损益。损益通过调整库存得到体现。商品变价:商品变价与促销/折扣调整价格是两个不同的概念。商品变价是指修改商品的正常售价,调整后在一定的时间内不会在发生改变。价格可能是升高也可能是降低,一般都是由于进价变动引起的。促销/折扣期:每一种商品促销/折扣都有一定的期限,即有一定的时间限制。一种商品不可能无期限的促销/折扣。当期限超过,商品自动恢复正常售价。毛利、毛利百分比:毛利=商品售价-商品进价毛利百分比=(商品售价-商品进价)÷商品售价商品进价及成本核算:在成本核算中,商品成本价的确定一般有最后进价,移动加权平均,按商品批次定价等几种方式,由于后两种核算方式较复杂,本系统采用简单的最后进价方式。22 2业务流程说明在实际管理中,有三种信息流动,即资金流,单据流和商品实物流。系统围绕实物流展开,对商品从供应商那里进货到商品销售到顾客手中整个流程进行管理。简单来说,就是商品的进销存管理。每个环节通过相应的单据来连接,同时资金发生流动。在商品管理方面,我们提出部门和商品分类的概念,这种分级管理方式简洁高效。所谓部门,就是按照商品的基本属性进行分类管理。例如,超市一般可分为食品部,生鲜部,日用品部等。部门下面再分类,所谓商品分类,指按商品的具体属性划分,例如,食品部下面可以有糖果饼干类,饮料类等,每个部门和每个商品类别都有相应的负责人负责。《中小型超市管理信息系统》完全体现了这种管理思想,商品的销售和商品库存都可以按部门级和分类级完成查询等其他操作。作为一个超市的管理人员,及时了解销售情况是非常必要的,以便及时调整进货或者安排营销策略,把握商机。而《中小型超市管理信息系统》正好满足了这一要求,可以实时查询前台的销售情况,并且数据准确可信。3问题解决方案超市系统在运行过程中数据流量是非常巨大的。有时候会因数据流量过大而使网络发生阻塞,使POS系统发生断网,直接影响销售活动的进行。这种情况是应该坚决避免的,应该尽量减少网络的数据流量。这一思想在本系统中的直接体现就是采用日处理和运用本地缓存技术。日处理的主要目的就是把当天的销售数据整理汇总,更新商品库存表,为第二天的销售做准备。与日处理不同的另一种处理方式就是每次商品销售完成以后就立即更新库存。但这样会使得服务器的负荷非常的重,经常会使POS系统发生断网。POS系统销售商品时所取的商品信息是服务器上的数据,有效的保证了数据的一致性和集中控制。虽然商品信息来自服务器,但我们使用了本地缓存。POS系统会把取得的数据暂时的存放在本地的内存,当要读取商品信息时,会先在本地缓存里查找,如果成功的话,就不必访问服务器。这样一来就有效的减少了网络的数据流量和服务器的负荷。此外,系统充分利用了客户机/服务器结构的特点,比较复杂的查询更新等操作都用存储过程来实现。存储过程在服务器端执行完毕仅返回执行结果,能有效的减少网络的通讯流量。4数据流图对整个业务活动进行分析归纳后,我得出如下的数据流图:数据流程图22 审核、打印采购定单商品入库供应商定单信息定单商品入库单验收审核结算应付帐款入库商品库存变动商品库存商品信息销售分析销售数据成本毛利财务核算商品销售销售明细销售数量POS销售采购信息采购定单库存盘点报损、报益采购信息22 2系统设计2.1系统模块的划分根据前面所作的需求分析,我把整个系统分为如下几个模块:管理信息系统系统管理收银台管理销售管理进货管理商品管理供应商管理其他管理库存管理收银台销售(二)数据字典商品入库单明细ENTER_GOODS_DETAIL字段名称数据类型描述ENTER_DAN_IDint入库单IDGOODS_IDint商品IDQUANTITYnumeric(18,2)入库数量AMOUNTnumeric(18,2)入库金额STATUSchar(4)审核状态WORK_PERSONsmallint操作人员IDWORK_DATEdatetime记帐日期商品信息GOODS_INFO字段名称数据类型描述GOODS_IDint商品IDBAR_IDint商品条形码GUIGEchar(4)规格22 COST_PRICEmoney进价BUY_PRICE1money正常售价BUY_PRICE2money促销/折扣销售价格LARGE_TYPEsmallint所属部门号SMALL_TYPEsmallint所属类别MAX_STOREnumeric(18,2)最大库存MIN_STOREnumeric(18,2)最小库存GYS_CODEint供应商代码STATUSchar(4)商品进货状态FLAGchar(4)促销/折扣标记BUYERint采购员IDVAR_DATEdatetime登记日期供应商信息GYS_INFO字段名称数据类型描述GYS_CODEint厂商代码NAMEvarchar(20)企业全称ADDRESSvarchar(20)地址TELchar(20)电话号码RELATIONchar(10)联系人TYPEchar(4)类型BANKchar(4)开户行ACCOUNTvarchar(20)帐号MENOvarchar(20)备注部门信息LARGE_TYPE字段名称数据类型描述LARGE_TYPE_IDint部门代码NAMEvarchar(10)部门名称商品分类信息SMALL_TYPE字段名称数据类型描述SMALL_TYPE_IDint商品分类代码NAMEvarChar(10)分类名称22 人员信息PERSON_INFO字段名称数据类型描述PERSON_IDint人员代码NAMEvarchar(10)姓名SEXchar(2)性别AGEsmallint年龄DUTYchar(8)职务DEGREEchar(8)学历LOGINvarbinary(20)口令MENOvarchar(20)备注前台销售表POS_SALE字段名称数据类型描述GOODS_IDint商品IDBAR_IDvarchar(10)条形码QUANTITYnumeric(18,2)销售数量AMOUNTmoney销售金额CASHERsmallint收银员IDP_NOint交易流水号收银台设置POS_SET字段名称数据类型描述POS_IDsmallint收银台号WORK_PERSONsmallint收银员ID商品变价记录表PRICE_ADJUST字段名称数据类型描述GOODS_IDsmallint商品IDCOST_PRICEsmallint商品进价LAST_PRICE1money当前售价一LAST_PRICE2money当前售价二NOW_PRICE1money所调售价一NOW_PRICE2money所调售价二22 ADJUST_REASONvarchar(20)变价原因WORK_PERSONint操作员IDWORK_DATEdatatime变价日期库存调整记录表STORE_ADJUST字段名称数据类型描述WORK_DATEdatatime记帐日期GOODS_IDint商品IDQUANTITYnumeric(18,2)调整前数量AMOUNTmoney调整前金额ADJUST_QUANTITYnumeric(18,2)调整数量DJUST_AMOUNTMoney调整金额ADJUST_REASONint调整原因IDWORK_PERSONint操作员ID日处理历史状态DIALY_DAN库存调整原因表STORE_ADJUST_REASON字段名称数据类型描述ADJUST_IDint代号NAMEsmallint摘要商品库存表STORE_DETAIL字段名称数据类型描述GOODS_IDint商品IDQUANTITYnumeric(18,2)数量AMOUNTmoney金额MENOvarchar(10)备注商品促销/折扣记录GOODS_PROMOTE_LOG字段名称数据类型描述WORK_DATEdatatime记帐日期GOODS_IDint商品IDCURRENT_PRICEMoney当前售价PROMOTE_PRICEmoney促销价22 BEGIN_DATEdatetime开始日期END_DATEdatetime结束日期WORK_PERSONint操作员权限表MENU_FLAG字段名称数据类型描述IDsmallint代号N1…42smallint标志字段名称数据类型描述WORK_DATEsmalldatetime日处理时间STATUSchar(4)状态WORK_PERSONint操作员ID3程序的设计与编码有了前面的工作,我们选择就进入编码阶段了。3.1POS系统的开发3.1.1功能及实现方法POS系统是作为一个单独的程序开发的,主要在POS机上运行,完成商品的交易任务。销售的商品信息存储在POS_SALE表中。我们把一次交易放在一个事务提交,保证了数据的完整性和数据的正确性。界面以灰色调为主,使得收银员长时间工作眼睛不感到疲劳。收银的操作也很简单方便。交易流水号自动增加。当某种商品处于促销或折扣销售状态时,POS系统自动取商品的促销或折扣售价,无需人工干预,并且促销或折扣期结束时,系统能自动识别恢复正常售价。这一个功能的实现是通过商品视图来完成的。请看商品视图源码。前台POS销售时取商品信息时用到的视图:CREATEVIEWV_SPXXASSELECTNAME,A.GOODS_ID,A.BAR_ID,A.GUIGE,BUY_PRICE=CASEWHEN(GETDATE()>B.END_DATEANDGETDATE()B.BEGIN_DATE)ANDA.FLAG="促销"THENA.BUY_PRICE2WHEN(GETDATE()B.BEGIN_DATE)ANDA.FLAG="折扣"THEN22 A.BUY_PRICE2ELSEA.BUY_PRICE1ENDFROMGOODS_INFOA,GOODS_PROMOTE_LOGBWHEREA.GOODS_ID*=B.GOODS_ID交易是在一个事务里完成的,请看交易完成数据提交的代码:ifform_pos.Database1.InTransactionthentryform_pos.query1.ApplyUpdates;把本地缓存修改的操作提交服务器form_pos.Database1.Commit;事务提交form_pos.query1.CommitUpdates;清空本地缓存ifform_pos.Database1.InTransaction=falsethenform_pos.Database1.StartTransaction;exceptform_pos.Database1.Rollback;事务回滚end;3.1.2问题讨论:交易流水号的确定在实际运用中,可能十几台甚至几十台POS机同时工作,也就是存在大量的数据库并发操作。怎样使交易流水号唯一呢?我是这样实现的,在每次事务提交之前,比较本机的流水号是否在后台数据库交易流水号中已经存在,如果存在,也就是说已经被别人占用,则重新取出最大交易流水号,然后提交整个事务。事务提交成功以后还要更新本地交易流水号。这是取最大流水号selectmax(P_NO)asp_nofrompos_sale的SQL语句。3.2管理信息系统的设计3.2.1界面设计本系统采用了带导航栏的多文档窗体设计风格,使操作变的简单直观。当使用某一个功能模块时,只显示相应的菜单,使人不会觉得眼花缭乱。系统完全摈弃那种界面花哨,色彩绚丽等华而不实做法,但和传统的风格有有所区别,传统的风格显得过于呆板。本系统的界面色调一致,简单朴素,但不失美观大方。窗体界面一致,操作也大同小异,丝毫没有杂乱无章的感觉。我首先定义了几个重要的窗体基类,其他的窗体基本上这几个基类的派生类。在使用时在对窗体进行重载。所有的窗体都是在运行时动态加载的。需要运行那个窗体时,程序才加载该窗体,用完后立即释放,这样使用户计算机系统资源得以最少得占用。请看一个窗体得创建例子:enter_dan:=Tenter_dan.Create(Self);入库单录入窗体得创建form_show(enter_dan,555,360,10,2);form_show为自定义函数22 对所有子窗体显示我自定义了一个函数form_show,减少了工作量和代码量。procedureform_show(form:TForm;fwidth,fheight,fleft,ftop:integer);beginwithformdobeginheight:=fheight;width:=fwidth;Left:=fleft;top:=ftop;Show;end;end;窗体的释放实现,例如释放入库单录入界面窗体:procedureTenter_dan.FormClose(Sender:TObject;varAction:TCloseAction);beginaction:=cafree;在内存中释放掉窗体end;3.2.2各个功能模块实现的要点和技术这里我只把我在编码过程中比较重要或者比较有代表性的技术和部分源码阐述一下。详情查看系统的源代码。3.2.2.1类继承与重载在编码过程中,我充分利用了面向对象编程的特定——代码的重用,具体实现起来依靠的是重载和继承。把具有相同或相似属性的类抽象出来作为一个基类。我定义了几个重要的窗体基类,基类窗体包含了需要的公有控件和共有事件方法。其他的窗体基本上这几个基类的派生类。在使用时在对窗体的控件的属性和方法进行继承或者重载。关于在DELPHI方法的重载,例如:procedureAction7Execute(Sender:TObject);OVERRIDE;procedureTenter_goods_info.Action7Execute(Sender:TObject);begintryif(dbedit1.Text<>"")and(dbedit2.Text<>"")and(dbedit3.Text<>"")and(dbedit4.Text<>"")thenbeginquery1.Post;22 addbutton.Enabled:=true;delbutton.Enabled:=true;savebutton.Enabled:=false;endelseshowmessage("你的输入不完整!");exceptshowmessage("代码重复!");end;end;3.2.2.3windows消息机制当查询窗体要返回结果时,我们用到了windows消息机制。首先定义一个全局的自定义消息常量。ConstMy_WM_USER=WM_USER+100;//自定义消息向指定的窗体发送自定义消息,传递查询结果。例如:procedureTgoods_info_search.searchbuttonClick(Sender:TObject);begintryprice_adjust.Query1.Close;price_adjust.Query1.SQL.Clear;price_adjust.Query1.SQL:=query1.SQL;sendmessage(price_adjust.Handle,My_WM_USER,0,0);exceptbeep;end;close;end;接收消息,并且处理它,例如:定义消息响应的方法proceduremy_wm_user100(varmsg:Tmessage);messageMy_WM_USER;处理消息:procedureTgoods_promote.my_wm_user100(varmsg:Tmessage);beginwithquery1do22 close;sql.clear;sql.add(sql语句);open;end;3.2.2.4关于权限设置权限设置是一个管理系统非常重要的一部分,直接关系到公司业务和财务安全性。因此,本系统在这方面的功能是较完善的。操作人员的权限可以定义到每级子菜单。对没有赋权限的菜单项不予显示。也就是说,系统能根据登陆人员的权限自动显示具有权限的功能菜单。我们把人员的权限信息存放在MENU_FLAG表中,在系统启动时加载相关的权限设置信息。权限设置这一功能只有高级管理人员和系统管理员才能使用。根据权限显示菜单算法withdamo.query1do//query1关联MENU_FLAG表beginclose;sql.Clear;sql.Add("select*frommenu_flagwhereid=:id");ParamByName("id").AsInteger:=person_id;open;end;fori:=1to42dobeginflag:=damo.query1.fields[i].AsInteger;//flag为每项菜单的权限标志forj:=0tomain_form.ComponentCount-1dobeginif(main_form.Components[j]isTMenuItem)and((main_form.Components[j]asTMenuItem).Tag=i-1)thenifflag=0then(main_form.Components[j]asTMenuItem).Visible:=falseelse(main_form.Components[j]asTMenuItem).Visible:=true;end;end;22 3.2.2.5应用Delphi显式事务控制事务控制是一种能够把数据库的一组修改作为整体提交给数据库以保证数据的一致性和完整性的机制。如果其中有一个操作失败,则所有操作失败。3.2.2.6存储过程的使用在程序设计中,系统主要的复杂的操作我都都是通过存储过程来实现的。例如:使用库存调整操作时,我们用P_ADJUST_STORE来完成。procedureTadjust_store.okbuttonClick(Sender:TObject);beginifnotdamo.Database1.InTransactionthendamo.Database1.StartTransaction;开始一个事务withP_ADJUST_STOREdo//P_ADJUST_STORE为存储过程beginParams[1].AsInteger:=strtoint(edit_id.Text);Params[2].AsFloat:=strtofloat(edit_adjust.Text);Params[3].AsInteger:=table1.Fields[0].AsInteger;Params[4].AsInteger:=person_id;//person_id为全局变量人员IDPrepare;execproc;end;trydamo.Database1.Commit;事务提交exceptbegindamo.Database1.Rollback;事务回滚showmessage("数据提交失败!");end;end;以下是几种典型存储过程。日处理存储过程:CREATEPROCEDUREP_DIALY_DO@dialy_datechar(12),@person_idsmallintASDECLARE@goods_idint22 DECLARE@quantityfloatDECLARE@amountmoneyDECLAREtemp_cursorCURSORFORSELECTA.GOODS_ID,SUM(A.QUANTITY),SUM(A.QUANTITY*B.COST_PRICE)FROMPOS_SALEA,GOODS_INFOBWHEREconvert(char(12),WORK_DATE,102)=@dialy_dateANDA.GOODS_ID=B.GOODS_IDGROUPBYA.GOODS_IDOPENtemp_cursorFETCHNEXTFROMtemp_cursorINTO@goods_id,@quantity,@amountWHILE(@@FETCH_STATUS=0)BEGINifEXISTS(SELECT*FROMSTORE_DETAILWHEREGOODS_ID=@goods_id)BEGINUPDATESTORE_DETAILSETQUANTITY=QUANTITY-@quantity,AMOUNT=AMOUNT-@amountWHEREGOODS_ID=@goods_idENDFETCHNEXTFROMtemp_cursorINTO@goods_id,@quantity,@amountENDINSERTDIALY_DANVALUES(@dialy_date,"已做",@person_id)CLOSEtemp_cursorDEALLOCATEtemp_cursor查询每日商品销售汇总的存储过程:CREATEPROCEDUREP_DIALY_SALEASCREATETABLE#temp_table(amountfloat,work_datechar(12),sale_costfloat,gainfloat)INSERTINTO#temp_table22 SELECTa.amount,convert(char(12),a.work_date,102)ASwork_date,(c.cost_price*a.quantity)ASsale_cost,(a.amount-c.cost_price*a.quantity)ASgainFROMpos_salea,small_typeb,goods_infocWHEREa.goods_id=c.goods_idANDc.small_type=b.small_type_idSELECTwork_date,sum(amount)ASsum_amount,sum(sale_cost)ASsum_sale_cost,sum(gain)ASsum_gainFROM#temp_tableGROUPBYwork_date,ORDERBYwork_date商品审核入库存储过程CREATEPROCEDUREP_GOODS_ENTER@enter_dan_idintASDECLARE@goods_idintDECLARE@quantityfloatDECLARE@amountmoneyDECLAREtemp_cursorCURSORFORSELECTGOODS_ID,QUANTITY,AMOUNTFROMENTER_GOODS_DETAILWHEREENTER_DAN_ID=@enter_dan_idOPENtemp_cursorFETCHNEXTFROMtemp_cursorINTO@goods_id,@quantity,@amountWHILE(@@FETCH_STATUS=0)BEGINifEXISTS(SELECT*FROMSTORE_DETAILWHEREGOODS_ID=@goods_id)BEGINUPDATESTORE_DETAILSETQUANTITY=QUANTITY+@quantity,AMOUNT=AMOUNT+@amountWHEREGOODS_ID=@goods_idENDELSEBEGIN22 INSERTSTORE_DETAILVALUES(@goods_id,@quantity,@amount,getdate())ENDFETCHNEXTFROMtemp_cursorINTO@goods_id,@quantity,@amountENDCLOSEtemp_cursorDEALLOCATEtemp_cursor查询部门销售汇总的存储过程CREATEPROCEDUREP_SEARCH_DEP_SALEASCREATETABLE#temp_table(large_type_idint,dep_namechar(10),quantityfloat,amountfloat,work_datechar(12),sale_costfloat,gainfloat)INSERTINTO#temp_tableSELECTb.large_type_id,b.nameASdep_name,a.quantity,a.amount,convert(char(12),a.work_date,102)ASwork_date,(c.cost_price*a.quantity)ASsale_cost,(a.amount-c.cost_price*a.quantity)ASgainFORMpos_salea,large_typeb,goods_infocWHEREa.goods_id=c.goods_idANDc.large_type=b.large_type_idSELECTwork_date,large_type_id,dep_name,sum(quantity)ASsum_quantity,sum(amount)ASsum_amount,sum(sale_cost)ASsum_sale_cost,sum(gain)ASsum_gainFROM#temp_tableGROUPBYwork_date,large_type_id,dep_nameORDERBYwork_date22 查询商品分类汇总的存储过程CREATEPROCEDUREP_SEARCH_KIND_SALEASCREATETABLE#temp_table(small_type_idint,kind_namechar(10),quantityfloat,amountfloat,work_datechar(12),sale_costfloat,gainfloat)INSERTINTO#temp_tableSELECTb.small_type_id,b.nameASkind_name,a.quantity,a.amount,convert(char(12),a.word_date,102)ASwork_date,(c.cost_price*a.quantity)ASsale_cost,(a.amount-c.cost_price*a.quantity)ASgainFROMpos_salea,small_typeb,goods_infocWHEREa.goods_id=c.goods_idANDc.small_type=b.small_type_idSELECTwork_date,small_type_id,kind_name,sum(quantity)ASsum_quantity,sum(amount)ASsum_amount,sum(sale_cost)ASsum_sale_cost,sum(gain)ASsum_gainFROM#temp_tableGROUPBYwork_date,small_type_id,kind_nameORDERBYwork_date查询商品销售的存储过程:CREATEPROCEDUREP_SEARCH_GOODS_SALEASCREATETABLE#temp_table(goods_idint,22 bar_idint,goods_namechar(20),guigechar(4),quantityfloat,amountfloat,work_datechar(12),sale_costfloat,gainfloat,gain_ratefloat)INSERTINTO#temp_tableSELECTa.goods_id,a.bar_id,a.nameASgoods_name,a.guige,a.quantity,a.amount,convert(char(12),a.word_date,102)ASwork_date,(c.cost_price*a.quantity)ASsale_cost,(a.amount-c.cost_price*a.quantity)ASgain,((a.amount-c.cost_price*a.quantity)/(c.cost_price*a.quantity))ASgain_rateFORMpos_salea,large_typeb,goods_infocWHEREa.goods_id=c.goods_idANDc.large_type=b.large_type_idSELECTwork_date,goods_id,bar_id,goods_name,guige,sum(quantity)ASsum_quantity,sum(amount)ASsum_amount,sum(sale_cost)ASsum_sale_cose,sum(gain)ASsum_gain,gain_rate*100ASgain_rateFORM#temp_tableGROUPBYwork_date,goods_id,goods_name,guige,gain_rate,bar_idORDERBYwork_date库存调整存储过程CREATEPROCEDUREP_STORE_ADJUST@goods_idint,@adjust_quantityfloat,@adjust_readonint,@work_personintASDECLARE@pricemoney22 DECLARE@quantityfloatDECLARE@amountmoneySELECT@quantity=QUANTITY,@amount=AMOUNTFROMSTORE_DETAILWHEREGOODS_ID=@goods_idSELECT@price=cost_priceFROMGOODS_INFOWHEREGOODS_ID=@goods_idUPDATESTORE_DETAILSETQUANTITY=QUANTITY-@adjust_quantity,AMOUNT=AMOUNT-@price*@adjust_quantityWHEREgoods_id=@goods_idINSERTSTORE_ADJUSTVALUES(@goods_id,@quantity,@amount,@adjust_quantity,convert(money,@price*@adjust_quantity),@adjust_readon,@work_pe22 5结束语经过企业的兼并、股份制改造、重组,实现低成本扩张,提高企业实力,5年后能在我国计算机站稳脚根,有实力,有著名品牌、有效益、能与国外品牌抗衡的计算机企业将不超过10家。而我省的计算机企业将在这种机遇下站稳脚步,列为全国10家中的一家或者是多家。我国加入世贸组织后,计算机行业将面临更大的挑战,只有采取积极的措施,目标明确,提高自身的竞争实力,提升产品的科技含量,才能避免入世后,来自国内外各方面各层次的巨大冲击。入世给予我们机遇,将使我省的计算机走出国门,走向世界,参与国际竞争。22 参考书录1Delphi6数据库技术姜洪、张希编著国防工业出版社2005.42SQLServer高级管理与开发飞思科技产品研发中心编著电子工业出版社2006.13Delphi趣味程序导学杨正华吕跃春编著清华大学出版社2007.84Delphi6.0编程技巧与实例分析关兵、邵谦谦等著中国水利水电出版社2005.55SQLServer7.0应用与提高吴斌、赵有珍著科学出版社2000.9成绩论文评阅组签字22'