




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE35超市进销存管理系统目录第一章引言 11.1 问题的提出 11.2 课题的研究目的 21.3 课题的研究意义 2第二章系统分析 32.1需求分析 32.2可行性分析 3第三章总体设计 53.1项目规划 53.2数据库设计 6第四章系统设计 94.1设计目标 94.2开发及运行环境 94.3逻辑结构设计 9第五章主要功能模块设计 175.1主窗体设计 175.2基础窗体创建 215.3数据模块设计 225.4库存商品模块设计 245.5商品基本信息模块设计 275.6进货单录入模块设计 29总结 33致谢 36第一章引言超市进销存管理系统是超市商品销售及货物管理的主要控制部分,直接影响销售的方便性及管理的规范性。随着信息时代的发展,对效率的要求日益提高,企业经营涉及进、销、存多个环节,涉及商品种类繁多,业务量大,库存管理复杂,使用手工管理已无法胜任,因而软件控制销售和管理已经取代了传统全手工方式。如何采用先进的计算机系统管理进货、库存、销售等诸多环节也已成为趋势及必然。超市具有自身的特点:商品要求一般齐全,进出货关系较为简单,员工人数种类不多;在软件角度看,数据较少,对存储和速度要求不高。但正由于员工较少,使用软件控制成为必须。问题的提出目前,大量的中小超市企业中,存在这样的现象:分散的、不连贯的进销存信息使超市管理者或相关管理人员无法看到进销存的全部资料及相关报表,信息的分散使得产生的结果也无法保持一致和完整性,造成中小超市在进销存管理上存在如下问题:无法统计销售信息?无法准确全面掌握各业务进展状态?对销售人员工作过程掌握不够?业务人员对产品没有一定认识?销售及市场流程不清晰,流程变动较大?对市场信息、竞争的资讯掌握程度较不完善?无结构统一销售及市场情况报表?基本销售及市场费用统计较不完备?销售人员辞职时失单现象严重?等等。加之,现在顾客的期望值越来越高,顾客需要更好的服务(产品及个性化服务)。企业的竞争已逐渐从产品的竞争转变为服务的竞争,因此中小企业要发展就必须需要进一步优化业务流程以提高企业竞争能力。因此,加强超市进销存管理是企业发展的必然,通过计算机来大量完成本来由工作人员手工完成的工作,真正达到合理和充分利用现有资源,减轻工作压力。课题的研究目的研究该课题是为了通过对“超市进销存管理系统”的设计与实现,熟悉这类的信息管理系统的开发原理及流程。在设计过程,能够深入地理解面向对象设计方法的优越性,获得这些方面的相关经验。对一个即将毕业的计算机专业本科生来说,又想在软件行业领域里有所发展,研究并应用面向对象设计方法是百益无一害的,可以使其走向社会后能够快速地适应行业需求。这正是本次设计的根本目的所在。课题的研究意义首先,该课题属于管理信息系统范畴。而管理信息系统(ManagementInformationSystem,简称MIS)在现代社会已深入到各行各业,是一个不断发展的新学科,是由人和计算机设备或其他信息处理手段组成并用于管理信息的系统。再加上行业信息化的热潮才刚刚开始,特别是中小型企业的信息化建设步伐刚刚迈出第一步。管理信息系统的开发的市场将是非常庞大的。这种需求对开发人员在数量上和素质上的要求也是非常迫切的。为了满足市场的需求以及能在竞争中取胜,系统设计人员就不仅仅是单纯地满足用户对功能的要求,还要从设计方法上来加以改进。
其次,面向对象方法是一种非常实用的软件开发方法,它一出现就受到软件技术人员的青睐,现在已经成为计算机科学研究的一个重要领域,并逐渐成为软件开发的一种主要方法。面向对象的程序设计将数据及对数据的操作方法封装在一起,作为一个互相依存、不可分离的整体。采用这种方法来设计系统,可以增加系统的安全性。同时通过继承与多态性,使程序具有很高的可重用性,使软件的开发和维护带来了方便。由于面向对象方法的突出优点,它才被广大用户所爱好。第二章系统分析2.1需求分析经过对系统的业务流程和系统数据流程的调查,用户对系统的功能需求如下:①要求此管理软件将对库存产品进行资料管理和统计,对产品的进货单和产品的销售单进行录入管理和统计;②要求此管理软件将根据用户的需要对进货、销售、库存情况进行查询,并能提供库存短缺预警功能;③要求此管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码;④要求此管理软件提供企业人员管理,能够对企业员工的分类管理,新员工的加入以及员工删除,修改基本信息等功能;⑤要求此管理软件提供数据信息的备份和还原功能。对这些功能需求进行分类,主要包含有以下几种:进货管理模块、库存管理模块、销售管理模块、员工管理模块和系统模块。除上述功能外,系统还需要有以下功能:要有良好的人机界面,并提供换肤功能。支持多人操作,要求有较好的权限分配功能。在进货、退货时存在一对多的关系,要求支持多行录入功能。为了方便用户查询,要求支持多条件查询。对于每种商品要求编号惟一,编号需要自动生成。支持多种报表打印。支持账目的详细内容浏览。2.2可行性分析开发任何一个基于计算机的系统,都会受到时间和资源上的限制。因此,在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发风险,避免人力、物力和财力的浪费。本系统数据库采用目前比较流行的MicrosoftSQLServer,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高;开发工具采用Delphi7,Delphi7是目前应用最广泛的数据库系统开发工具,可以快速开发Windows应用程序。第三章总体设计3.1项目规划超市进销存管理系统是一个典型的数据库应用程序,由登录模块、主界面、基本信息模块、进货管理和销售管理模块、库存管理模块、系统维护模块等组成。特规划功能模块如下:基本信息模块基本信息模块主要实现库存商品、内部职员、往来单位、费用类型等的管理。进货管理模块进货管理模块主要管理超市商品进货及退货信息,支持多行录入。销售管理模块销售管理模块主要管理超市商品销售及退货信息,支持多行录入。库存管理模块库存管理模块主要实现库存货品浏览、库存盘点、库存报警等功能。统计分析模块统计分析模块主要实现进货统计分析、销售统计分析和成本分析等功能。系统维护模块系统维护模块的主要实现本单位管理、操作员设置、数据的备份和还原等功能。根据项目规划,可画出超市进销存管理系统的功能框图,如图3-1所示。图3-1系统功能模块图3.2数据库设计本系统根据上面的设计规划出的主要实体有职员信息、进货、用户、费用、收款、进货退货。各个实体的E-R图分别如图3-2至图3-7所示。图3-2职员信息的E-R图图3-3进货的E-R图图3-4用户的E-R图图3-5费用的E-R图图3-6进货退货的E-R图图3-7收款的E-R图实体与实体之间关系的E-R图,如图3-8所示。图3-8实体之间的E-R图第四章系统设计4.1设计目标根据超市的需求和进销存管理的特点,该系统实施后,应达到以下目标:支持多行输入,自动生成编号。界面美观友好、信息查询灵活、方便、快捷、准确。强大的库存预警功能,在意外中将损失降到最低。提高工作效率,降低成本。往来账目详细浏览。图形化数据分析。对用户输入的数据进行过滤,当输入有误时提示用户。数据保密性强,用户对应不同的操作级别。系统最大限度地实现了易安装性、易维护性和易操作性。直接调用Word、Excel软件。系统运行稳定、安全可靠。4.2开发及运行环境系统开发平台:MicrosoftVisualStudio2010。数据库管理系统软件:SQLServer2005。运行平台:Windowsxp/Windows2000。分辨率:最佳效果1024*768。4.3逻辑结构设计本系统数据库采用SQLServer2005数据库,数据库名称为“db_EMS”。数据库db_EMS中包含18个表。各个数据表的结构如下所示。(1)职员信息表(tb_employ)职员信息表用来保存职员信息。职员信息表的结构如表4-1所示。表4-1职员信息表结构字段名称字段类型字段大小主键否功能描述employecodeVarchar6职员编号fullnameVarchar20是职员全称nameVarchar20职员简称sexVarchar2性别departmentVarchar20所在部门telVarchar20联系电话memoVarchar40备注shortcodeVarchar10拼音简码(2)进货主表(tb_warehouse_main)进货主表用来保存进货中主要和相同的信息。进货主表的结构如表4-2所示。表4-2进货主表结构字段名称字段类型字段大小主键否功能描述Billdatedatetime8录单日期Billcodevarchar20是单据编号Unitsvarchar20供货单位Handlevarchar20经手人Summaryvarchar100摘要Fullpaymentfloat8应付金额Paymentfloat8实付金额(3)进货明细表(tb_warehouse_detailed)进货明细表用来保存进货中商品的详细信息。进货明细表结构如表4-3所示。表4-3进货明细表结构字段名称字段类型字段大小主键否功能描述billcodeVarchar20单据编号tradecodeVarchar20商品编号fullnameVarchar20商品全称typeVarchar10商品型号standardVarchar10商品规格unitChar4单位produceVarchar20产地qtyFloat8数量priceFloat8进价tsumFloat8金额billdateDatetime8录单日期(4)用户权限表(tb_power)用户权限表用来保存用户权限设置信息。用户权限表结构如表4-4所示。表4-4用户权限表结构字段名称字段类型字段大小主键否功能描述numberVarchar20是用户编号usersVarchar20用户名称passwordVarchar20用户密码stockBit1进货管理venditionBit1销售管理checkedBit1库存管理moneyBit1钱流管理systemBit1系统维护baseBit1基本信息(5)费用表(tb_cf)费用表用于记录费用信息。费用表结构如表4-5所示。表4-5费用表结构字段名称字段类型字段大小主键否功能描述billdatedatetime8录单日期billcodevarchar20单据编号unitsvarchar20收款单位numbervarchar20费用项目编号namevarchar20费用项目名称handlevarchar20经手人fullpaymentvarchar20应付金额paymentfloat8实付金额(6)往来账明细表(tb_currentaccount)往来账明细表用于记录往来单位的应收、应付账目。往来账明细表结构如表4-6所示。表4-6往来账明细表结构字段名称字段类型字段大小主键否功能描述billdatedatetime8录单日期billcodevarchar20是单据编号unitsvarhcar20往来单位addgatheringfloat8应收增加reducegatheringfloat8应收减少balancefloat8应收余额summaryvarchar100摘要(7)费用类型表(tb_freetype)费用类型表用于存储费用类型信息。费用类型表表结构如表4-7所示。表4-7费用类型表字段名称字段类型字段大小主键否功能描述subjectcodevarchar3科目编号fullnamevarhcar20是科目全称namevarchar10科目简称memovarhcar40备注shortcodevarchar10拼音简码(8)收款信息表(tb_gathering)收款信息表用于保存收款信息。收款信息表结构如表4-8所示。表4-8收款信息表结构字段名称字段类型字段大小主键否功能描述billdatedatetime8录单日期billcodevarchar20是单据编号unitsvarchar20付款单位gatheringfloat8金额handlevarchar20经手人summaryvarchar40摘要(9)付款信息表(tb_payment)付款信息表用于保存付款信息。付款表结构如表4-9所示。表4-9付款表结构字段名称字段类型字段大小主键否功能描述billdatedatetime8录单日期billcodevarchar20是单据编号unitsvarchar20收款单位paymentfloat8金额handlevarchar20经手人summaryvarchar100摘要(10)销售退货明细表(tb_resell_detailed)销售退货明细表用于保存销售退货的详细信息。销售退货明细表结构如表4-10所示。表4-10销售退货明细表结构字段名称字段类型字段大小主键否功能描述billcodeVarchar20单据编号tradecodeVarchar20商品编号FullnameVarchar20商品全名standardvarchar10商品规格typevarchar10商品型号unitchar4单位producevarchar20产地qtyfloat8数量pricefloat8单价tsumfloat8金额billdatedatetime8录单日期(11)销售退货表(tb_resell_main)销售退货表用于保存销售退货。销售退货表结构如表4-11所示。表4-11销售退货表结构字段名数据类型长度主键否功能描述billdatedatetime录单日期billcodevarchar20是单据编号unitsvarchar20退货单位handlevarchar20经手人summaryvarchar100摘要fullpaymentfloat8应付金额paymentfloat8实付金额(12)进货退货明细表(tb_rewarehouse_detailed)进货退货明细表用于保存进货退货详细信息。进货退货明细表结构如表4-12所示。表4-12进货退货明细表字段名数据类型长度主键否功能描述billcodevarchar20单据编号tradecodevarchar20商品编号fullnamevarchar20商品全称typevarchar10商品型号standardvarchar10商品规格unitvarchar4单位producevarchar20产地qtyfloat8数量pricefloat8进价tsumfloat8金额billdatedatetime8录单日期(13)进货退货表(tb_rewarehouse_main)进货退货表用于存储进货退货中主要的和相同的信息。进货退货表结构如表4-13所示。表4-13退货表字段名数据类型长度主键否功能描述billdatedatetime录单日期billcodevarchar20是单据编号unitsvarchar20收货单位handlevarchar20经手人summaryvarchar100摘要fullgatheringfloat8应收金额gatheringfloat8实收金额(14)销售明细表(tb_sell_detailed)销售明细表用于保存销售详细信息。销售明细表结构如表4-14所示。表4-14销售明细表字段名数据类型长度主键否功能描述billcodevarchar20单据编号tradecodevarchar20商品编号fullnamevarchar20商品全称typevarchar10商品型号standardvarchar10商品规格unitvarchar4单位producevarchar20产地qtyfloat8数量pricefloat8单价tsumfloat8金额billdatedatetime8录单日期(15)销售表(tb_sell_main)销售表用于保存销售信息中主要的和相同的信息。销售表结构如表4-15所示。表4-15销售表结构字段名数据类型长度主键否功能描述billdatevarchar20录单日期billcodevarchar20是单据编号unitsvarchar20购货单位handlevarchar20经手人summaryvarchar100摘要fullgatheringfloat8应收金额gatheringfloat8实收金额(16)库存商品信息表(tb_stock)库存商品信息表用于保存库存商品信息。库存商品表结构如表4-16所示。表4-16库存商品表结构字段名数据类型长度主键否功能描述tradecodevarchar6商品编号fullnamedvarchar20是商品全名namevarchar10商品简称typevarchar10商品类型standardvarchar10商品规格unitvarchar4单位producevarchar20产地qtyfloat8库存数量pricefloat8进货时的最后一次进价averagepricefloat8加权平均价salepricefloat8销售时的最后一次销价checkedfloat8盘点数量upperlimitint4存货报警上限lowerlimitint4存货报警下限provideinfvarchar40商品供货信息memovarchar40备注shortcodevarchar10拼音简码(17)本单位信息表(tb_unit)本单位信息表用于保存本单位的信息。本单位信息表结构如表4-17所示。表4-17本单位信息表结构字段名数据类型长度主键否功能描述numbervarchar20是单位编号namevarchar50单位全称simplenamevarchar10单位简称taxvarchar30税号telvarchar20单位电话linkmanvarchar10联系人addressvarchar60单位地址accountsvarchar80开户行及帐号(18)往来单位信息表(tb_units)往来单位信息表用于保存往来单位的信息。往来单位信息表结构如表4-18所示。表4-18往来单位信息表结构字段名数据类型长度主键否功能描述unitcodevarchar5单位编号fullnamevarchar20是单位全名namevarchar10单位简称taxvarchar30税号telvarchar20单位电话linkmanvarchar10联系人addressvarchar60单位地址accountsvarchar80开户行及帐号gatheringfloat8累计应收款paymentfloat8累计应付款shortcodevarchar10拼音简码第五章主要功能模块设计5.1主窗体设计主窗体是程序的控制中心,其他模块都是通过主窗体来调用,所以主窗体的界面要设计的美观易操作。超市进销存管理系统主窗体运行结果如图5-1所示。图5-1主窗体运行界面1.设计步骤(1)运行VS会自动创建一个窗体,设置该窗体为程序主窗体,命名为“F_zct”,设置窗体的Caption属性为“超市进销存管理系统”;BorderStyle属性为“bsDialog”;KeyPreview属性为“True”。(2)在“Additional”组件页中点选“TActionManager”组件,添加到窗体上,命名为“ActionManage1”,双击该组件打开“动作编辑器”,选择“Toolbars”选项卡,单击【New】按钮添加“TActionToolBar”对象,命名为“ActionToolBar1”,如图5-2所示。图5-2添加TActionToolBar对象(3)选择“Actions”选项卡,单击【NewAction】按钮,添加“TAction”对象,并在“ObjectInspector”窗口中设置Caption属性,如图5-3所示。图5-3添加TAction对象(4)在窗体上点选ActionManager1组件,在“ObjectInspector”窗口中,单击ActionBars属性右侧的【…】按钮,弹出如图5-4所示的对话框。图5-4菜单栏设置界面1(5)在弹出的对话框中点选“0-ActionBar->ActionTooBar1”,在“ObjectInspector”窗口中,单击Items属性右侧的【…】按钮,在弹出的对话框中,单击【AddNew】按钮添加菜单项,并设置各个菜单项的Action属性,如图5-5所示。图5-5菜单栏设置界面2(6)点选各菜单项,在“ObjectInspector”窗口中,单击Items属性右侧的【…】按钮,在弹出的对话框中设置子菜单项。(7)在“Win32”组件页中点选“TStatusBar”组件,添加到窗体上,命名为“StatusBar1”。TStatusBar组件用于显示状态信息,双击StatusBar1组件,在弹出的对话框中单击【AddNew】按钮添加面板。在“ObjectInspector”窗口中设置面板的Width属性和Caption属性,如图5-6所示。图5-6面板编辑器界面(8)在“Standard”组件页中点选“TPanel”组件。在窗体上添加3个TPanel组件,分别命名为“Panel3”、“Panel1”、“Panel4”,分别设置其Align属性为“alTop”、“alLeft”、“alClient”。(9)在“Additional”组件页中点选“TImage”组件,分别添加到Panel3组件和Panel1组件上,并在“ObjectInspector”窗口中通过Picture属性为其加载图片。当用户单击主窗体左侧的按钮时,在右则将弹出相应的功能图片。在右侧的面板中添加多个TPanel组件,并在相应的TPanel组件上添加TImage组件,并为TImage组件加载图片。(10)在“Additional”组件页中点选“TSpeedButton”组件,将TSpeedButton组件添加到图片相应的位置,设置其Flat属性为“True”;Caption属性为空。2.程序相关代码在窗体的OnKeyDown事件处理过程中设置用户按下〈F5〉键时关闭窗体。代码如下:procedureTF_zct.FormKeyDown(Sender:TObject;varKey:Word;Shift:TShiftState);beginF_zct.KeyPreview:=True;//设置窗体先接受键盘按下事件ifkey=vk_F5thenClose;end;在窗体的OnCloseQuery事件处理过程中让用户确认是否关闭窗体。代码如下:procedureTF_zct.FormCloseQuery(Sender:TObject;varCanClose:Boolean);beginifApplication.MessageBox('是否退出系统?','提示',mb_yesno)=id_nothenCanClose:=False;end;在窗体右侧按钮的单击事件处理过程中,设置相应的面板在其他面板前面。代码如下:procedureTF_zct.SpeedButton1Click(Sender:TObject);beginkumanage.BringToFront;//设置面板在最前面end;在窗体右侧的功能按钮单击事件处理过程中,动态创建相应的功能窗体。动态创建“库存状况窗体”代码如下:procedureTF_zct.SpeedButton9Click(Sender:TObject);beginApplication.CreateForm(TF_kczk,F_kczk);//创建窗体F_kczk.ShowModal;//显示窗体F_kczk.Free;//释放窗体end;在窗体的OnShow事件处理过程中,添加TCheckBox组件到面板中。指定TCheckBox组件的父对象并设置该组件的大小和位置。代码如下:withstatusbar1dobegincheckbox1.Parent:=statusbar1;checkbox1.Top:=4;checkbox1.Height:=Height-4;checkbox1.Width:=75;checkbox1.Left:=Panels[0].Width+Panels[1].Width+Panels[2].Width+10;checkbox1.Visible:=true;end;5.2基础窗体创建创建基础窗体主要为了提高开发速度和代码的利用率,从基础窗体继承的子窗体具有基础窗体的全部功能。基础窗体如图5-7所示。图5-7基础窗体1.基础窗体设计步骤添加一个新窗体,命名为“F_base”,设置其BorderStyle属性为“bsDialog”;KeyPreview属性为“True”。2.程序相关代码在窗体的OnKeyPress事件处理过程中设置〈Enter〉键代替〈Tab〉键。代码如下:procedureTF_base.FormKeyPress(Sender:TObject;varKey:Char);beginifKey=#13thenperform(WM_NEXTDLGCTL,0,0);end;5.3数据模块设计数据模块窗体主要功能是统一管理数据组件。数据模块如图5-8所示。图5-8数据模块1.数据模块创建(1)在Delphi中选择“File”/“New”/“DataModule”菜单项,新建一个数据模块,命名为“F_dm”。(2)在“ADO”组件页中点选“TADOConnection”组件,添加到窗体上,命名为“ADOConnection1”。TADOConnection组件用于连接数据库,其他数据库组件通过它连接数据库。(3)点选ADOConnection1组件,在“ObjectInspector”窗口中,单击ConnectionString属性右侧的【…】按钮,弹出对话框,如图5-9所示。图5-9设置连接字符串界面(4)单击【Build】按钮,在弹出的对话框中“提供程序”选项卡中选择希望连接的数据所需的驱动程序,如图5-10所示。图5-10驱动程序选择界面(5)选择“连接”选项卡,设置数据库连接相关设置,如图5-11所示。图5-11数据库连接设置界面(6)单击【测试连接】按钮,如果连接成功,则提示成功,单击【确定】按钮完成数据库的连接。(7)在窗体上添加TADOQuery组件和TADOCommand组件,设置它们的Connection属性为“ADOConnection1”。5.4库存商品模块设计库存商品模块主要实现浏览、添加、修改、删除、查询、打印商品信息等功能。库存商品模块运行结果如图5-12所示。图5-12库存商品模块运行界面1.窗体设计步骤(1)选择“File”/“New”/“Other”菜单项,打开“NewItems”对话框,选择“ima”选项卡,点选“F_base”选项,以继承方式使用该窗体。单击【OK】按钮添加一个新窗体,命名为“F_kcsp”,设置Caption属性为“库存商品”。(2)在“Win32”组件页中点选“TToolBar”组件,添加到窗体上。在该组件上添加TSpeedButton组件,在“ObjectInspector”窗口中通过Caption属性为其设置相应的文本,通过Glyph属性为其指定图标。右键单击TToolBar组件,在弹出的菜单中选择“NewButton”菜单项,并设置其Style属性为“tbsDivider”。(3)在窗体上添加TPanel组件,命名为“Panel1”,设置Align属性为“alBottom”;Visable属性为“False”。在TPanel组件上添加TGroupBox组件,设置其Caption属性为“查询条件”。在“Standard”组件页中找到TLabel组件、TEdit组件和TComboBox组件,添加到TGroupBox组件上。点选TComboBox组件,在“ObjectInspector”窗口中,单击Items属性,在弹出的对话框中添加项目,如图5-13所示。图5-13添加项目界面(4)在“ADO”组件页中点选“TADOQuery”组件,添加到窗体上,命名为“ADOQuery1”。在“DataAccess”组件页中点选“TDataSource”组件,添加到窗体上,命名为“DataSource1”。设置ADOQuery1组件的Connection属性为“F_dm.ADOConnection1”;设置DataSource1组件的DataSet属性为“ADOQuery1”。(5)在“DataControls”组件页中点选“TDBGrid”组件,添加到窗体上,命名为“DBGrid1”,设置其Align属性为“alClient”;DataSource属性为“DataSource1”,双击DBGrid1组件,在弹出的列编辑器中设置字段标题,如图5-14所示。图5-14为TDBGrid组件设置列标题(6)在“Rave”组件页中点选“TRvDataSetConnection”组件、“TRvProject”组件,添加到窗体上,分别命名为“RvDataSetConnection1”、“RvProject1”,设置RvDataSetConnection1组件的DataSet属性为“ADOQuery1”。设置RvProject1组件的ProjectFile属性为制作的报表文件。2.程序相关代码在窗体的OnShow事件处理过程中打开库存商品表。代码如下:procedureTF_kcsp.FormShow(Sender:TObject);begininherited;//由于窗体是继承自基窗体该代码自动生成。意为调用父类的同名方法。change:=False;withadoquery1dobeginClose;SQL.Clear;SQL.Add('Select*fromtb_stockorderbytradecodeasc');//排序Open;end;end;在【添加】按钮的单击事件处理过程中动态创建添加库存商品基本信息窗体。代码如下:procedureTF_kcsp.SpeedButton4Click(Sender:TObject);begininherited;//调用父类的同名方法Application.CreateForm(TF_sbjbcx,F_sbjbcx);//创建窗体F_sbjbcx.ShowModal;//显示窗体F_sbjbcx.Free;//释放窗体end;在【删除】按钮的单击事件处理过程中当用户确认删除后删除数据。代码如下:procedureTF_kcsp.SpeedButton2Click(Sender:TObject);begininherited;//调用父类的同名方法tryifApplication.MessageBox('是否删除当前记录?','提示',mb_yesno)=id_yesthenAdoquery1.Delete;exceptApplication.MessageBox('不能删除','提示',mb_yesno);end;end;在【查询】按钮的单击事件处理过程中动态设置查询条件。代码如下:procedureTF_kcsp.SpeedButton1Click(Sender:TObject);varsearchwhat:string;begininherited;//调用父类的同名方法Panel1.Visible:=not(Panel1.Visible);ifPanel1.Visible=Falsethenbeginsearchwhat:='';casecombobox1.ItemIndexof//设置要查找的字段0:searchwhat:='tradecode';1:searchwhat:='fullnamed';2:searchwhat:='name';3:searchwhat:='shortcode';end;trywithADoquery1dobeginClose;SQL.Clear;SQL.Add('select*fromtb_stock');//写SQL语句SQL.Add('where'+''+searchwhat+''+'like:aorderbytradecode');parameters.ParamByName('a').Value:='%'+Trim(Edit1.Text)+'%';open;end;ifApplication.MessageBox('是否刷新表?','提示',mb_yesno)=Id_yesthenwithADoquery1dobeginClose;SQL.Clear;SQL.Add('select*fromtb_stockorderbytradecode');//刷新open;end;exceptApplication.MessageBox('请正确输入条件','提示',mb_ok);end;end;end;在【打印】按钮的单击事件处理过程中指定报表文件、预览报表。代码如下:procedureTF_kcsp.SpeedButton6Click(Sender:TObject);begininherited;//调用父类的同名方法//指定报表文件Rvproject1.ProjectFile:=ExtractFilePath(Application.ExeName)+'stockprint.rav';RvProject1.Execute;//预览报表end;5.5商品基本信息模块设计商品基本信息模块主要功能是录入商品基本信息,便于其他窗体使用,在该模块中可以设置商品的报警上下限。商品基本信息模块运行结果如图5-15所示。图5-15商品基本信息模块运行界面1.窗体设计步骤(1)从基础窗体继承一个窗体,命名为“F_sbjbcx”,设置其Caption属性为“商品基本信息”。(2)在“Additional”组件页中点选“TBevel”组件,为每一类数据添加边框。(3)在“Additional”组件页中点选“TGroupBox”组件,添加到窗体上,命名为“GroupBox1”,设置其Caption属性为“输入报警值请输入大于0的数0为不报警”。在GroupBox1组件上添加2个TLabel组件和2个TEdit组件。分别设置TLabel组件的Caption属性为“商品报警上限:”、“商品报警下限:”。(4)在窗体上添加TLabel组件和TEdit组件,在“Additional”组件页中点选“TBitBtn”组件,添加到窗体上,分别命名为“BitBtn1”、“BitBtn2”,设置BitBtn1组件的Caption属性为“保存”,通过Glyph属性为其指定图标。设置BitBtn2组件的Caption属性为“退出”,通过Glyph属性为其指定图标。2.程序相关代码在窗体的OnShow事件处理过程中如果为修改,将要修改的记录显示在窗体的编辑框中。代码如下:procedureTF_sbjbcx.FormShow(Sender:TObject);begininherited;//调用父类的同名方法tryifF_kcsp.change=Truethen//判断是否为修改withF_kcsp.ADOQuery1dobeginEdit1.Text:=fieldbyname('fullnamed').AsString;Edit2.Text:=fieldbyname('tradecode').AsString;Edit3.Text:=fieldbyname('name').AsString;Edit4.Text:=fieldbyname('type').AsString;Edit5.Text:=fieldbyname('standard').AsString;Edit6.Text:=fieldbyname('unit').AsString;Edit7.Text:=fieldbyname('produce').AsString;Edit8.Text:=fieldbyname('provideinf').AsString;Edit9.Text:=fieldbyname('memo').AsString;Edit10.Text:=inttostr(fieldbyname('upperlimit').AsInteger);Edit11.Text:=inttostr(fieldbyname('lowerlimit').AsInteger);endelsebeginF_kcsp.getspbh(sender);//如果为添加操作调用过程getspbh得到编号Edit2.Text:=F_kcsp.spbh;end;exceptend;end;调用getspbh过程得到商品编号。getspbh过程完整代码如下:procedureTF_kcsp.getspbh(sender:Tobject);//得到商品编号beginadoquery1.Last;ifadoquery1.RecordCount=0thenspbh:='T'+formatfloat('00000',1)//格式化编号elsespbh:='T'+Formatfloat('00000',strtoint(copy(adoquery1.Fields[0].AsString,2,5))+1);end;5.6进货单录入模块设计进货单录入窗体主要功能是录入进货的相关信息,在该模块中支持多行录入,可以调用其他信息提示窗体。进货单录入模块运行结果如图5-16所示。图5-16进货单录入模块运行界面1.窗体设计步骤(1)从基础窗体继承一个窗体,命名为“F_jhd”,设置其Caption属性为“进货单录入”。(2)在窗体上添加TLabel组件、TEdit组件、TDateTimePicker组件,用于输入信息。在“Additional”组件页中点选“TStringGrid”组件,添加到窗体上,命名为“StringGrid1”。设置StringGrid1组件的RowCount属性为“10”;ColCount属性为“10”。(3)在窗体上添加TSpeedButton组件,通过Glyph属性为其指定图标。添加TBitBtn组件,用于完成“保存”、“取消”功能。(4)在窗体上添加TPanel组件,命名为“Panel1”,设置其Caption属性为空。用于显示统计应付金额。(5)在窗体上添加TADOQuery组件,命名为“ADOQuery1”,设置其Connection属性为“F_dm.ADOConnection1”。2.程序相关代码在窗体的OnShow事件处理过程中初始化相关信息。代码如下:procedureTF_jhd.FormShow(Sender:TObject);begininherited;F_zct.wf:=1;//窗体标记DateTimePicker1.Date:=now();//初始化为当天日期withF_jhd.StringGrid1do//设置列标题beginCells[1,0]:='商品编号';Cells[2,0]:='商品全称';Cells[3,0]:='商品型号';Cells[4,0]:='商品规格';Cells[5,0]:='单位';Cells[6,0]:='产地';Cells[7,0]:='数量';Cells[8,0]:='进货价';Cells[9,0]:='金额';end;withadoquery1dobeginclose;SQl.Clear;SQl.Add('select*fromtb_warehouse_main');Open;end;F_jhd.getspbh(sender);//调用过程getspbh取得编号Edit2.Text:=spbh;end;双击TStringGrid组件左侧的按钮动态创建信息提示窗体。代码如下:procedureTF_jhd.SpeedButton3Click(Sender:TObject);begininherited;//调用父类的同名方法Application.CreateForm(TF_kcspxz,F_kcspxz);F_kcspxz.ShowModal;F_kcspxz.Free;end;在弹出的信息提示窗体的【确定】按钮单击事件处理过程中将数据添加到TStringGrid组件中。代码如下:ifF_zct.wf=1then//往进货单录入窗体添加数据beginforxh:=1toF_jhd.StringGrid1.RowCountdobeginifTrim(F_jhd.StringGrid1.Cells[1,xh])=''then//查找第几行为空begingrow:=xh;break;end;end;forxh:=0toadoquery1.FieldCount-12do//将数据库的数据读出begingcol:=xh;ifxh>=2thengcol:=gcol+1;F_jhd.StringGrid1.Cells[xh+1,grow]:=adoquery1.Fields[gcol].Value;//将数据添加到单元格中end;F_jhd.StringGrid1.Cells[8,grow]:=adoquery1.Fields[8].Value;F_jhd.StringGrid1.SetFocus;F_jhd.StringGrid1.Col:=7;F_jhd.StringGrid1.Row:=grow;end;总结在这个软件设计的最初,我即按照老师的要求一步一步往下做,努力作好需求分析。因为在软件的开发过程中需求分析是十分重要的。在初步了解的基础上,我根据老师给予的关于进销存管理系统设计思路的讲解,对系统进行了详细的需求分析。这样就使我对于系统的开发有了一个大致的思路。在最初的几个星期里,我一直在做完善需求分析的重复工作。这样就为下一步的设计打下了坚实的基础。到了数据库设计阶段,首先选择了SQLServer2005作为数据库管理系统。因为我所需要的数据库是比较复杂的,经过一段时间的努力,我的数据库建立成功了。下一阶段就到了编程阶段了,在这个阶段我们首先考虑的是界面,一个界面设计的好坏直接关系到使用者的方便程度,于是老师提出的要求就是实用。在实用的基础上尽量美观大方。我经过反复的改正后,界面固定下来。然后就进入编写程序阶段,在编程过程中,我借鉴了很多资料,同时也请教了其他有经验的同学。在可以实现同一功能的多个控件中经过仔细研究,确定了最优的控件。这样在老师的要求和帮助下,我的界面逐渐得以完善并最终确定下来,到了真正编写代码的时候,我在需求分析做的努力逐渐显示出来,因为在这个过程中,我几乎没有遇到什么十分棘手的问题,各项功能也随之增加。在经过和老师的交流讨论之后,我的设计也逐渐进入了尾声。这样,我的设计就基本上完成了。在接下来的时间里,我继续对设计进行优化,包括界面的美观,以及程序的设计。在严格的测试后,逐渐使系统不再出现大的错误,能够很稳定的运行。
出品人:林康禁、巫茂森、杨智雄目录TOC\o"1-2"\h\u253321总论 1311911.1项目概况 1317891.2建设单位概况 3162241.3项目提出的理由与过程 3311231.4可行性研究报告编制依据 4225921.5可行性研究报告编制原则 426521.6可行性研究范围 5265791.7结论与建议 665262项目建设背景和必要性 9302042.1项目区基本状况 9237942.2项目背景 11327472.3项目建设的必要性 11265903市场分析 14297233.1物流园区的发展概况 1479553.2市场供求现状 1669963.3目标市场定位 17108883.4市场竞争力分析
17160544项目选址和建设条件 1950564.1选址原则 1969314.2项目选址 19544.3场址所在位置现状 19297334.4建设条件 20123545主要功能和建设规模 22282555.1主要功能 22281835.2建设规模及内容 26195696工程建设方案 27137726.1设计依据 27219396.2物流空间布局的要求 27262516.3空间布局原则 2853886.4总体布局 2936766.5工程建设方案 30235856.6给水工程 33115596.7排水工程 3553126.8电力工程 38288986.9供热工程 46314656.10电讯工程 47153607工艺技术和设备方案 51276227.1物流技术方案 51HYPERLINK\l_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人事部人才管理办法
- 写字楼清洁管理办法
- 党员包机制管理办法
- 公司项目部管理办法
- 再就业人员管理办法
- 2025合同终止劳动合同的规定与指南
- 公司寄发票管理办法
- 公务员差旅管理办法
- 公路养护管理办法新
- 智能家居养老课件
- SJ/T 11926-2024 产品碳足迹 产品种类规则 光伏组件(正式版)
- 2022信息系统安全运维报告模板
- 绝对干货!国有企业总经理办公会决策事项及总经理职责清单
- 国有控股企业管理制度
- 高中等学校毕业生见习期考核 鉴 定 表
- 上海娄山中学小升初数学期末试卷测试卷(解析版)
- 搞好儿童心理辅导增强儿童心理健康优秀获奖科研论文
- 助理人力资源管理师考试真题及答案
- 《机电安装工程质量检验评定表》
- 兰吉尔电表DLMS集成手册
- YS/T 320-2014锌精矿
评论
0/150
提交评论