进销存管理系统实战.docx

上传人:b****3 文档编号:4853869 上传时间:2022-12-10 格式:DOCX 页数:4 大小:20.35KB
下载 相关 举报
进销存管理系统实战.docx_第1页
第1页 / 共4页
进销存管理系统实战.docx_第2页
第2页 / 共4页
进销存管理系统实战.docx_第3页
第3页 / 共4页
进销存管理系统实战.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

进销存管理系统实战.docx

《进销存管理系统实战.docx》由会员分享,可在线阅读,更多相关《进销存管理系统实战.docx(4页珍藏版)》请在冰豆网上搜索。

进销存管理系统实战.docx

进销存管理系统实战

进销存管理系统实战

序如今企业管理软件种类繁多,从最初的财务软件到进销存财务一体,到现在的ERP(企业资源计划)、CRM(客户资源管理)等,单从技术来说,它的基础还是以数据为中心的,各种分析报告、财务报表等无不源于实际业务中产生的记录,所以本文考虑从初学者的角度出发来讲解进销存的初步知识,希望读者能从中总结出经验来。

一个项目的实施首先要做好前期规划,这是必需的,也是非常重要的,如果这个没做好,那么修改代码将是一件非常麻烦、痛苦的事。

本例仅从技术的实现讲解,首先确定需要实现的功能,其次进行数据库的设计。

主要模块如下:

(1)初始化,也就是基本资料的录入,其中分为商品资料、供应商资料、客户、业务员、商品类别、员工档案、支付方式、库房资料

(2)进货管理,包括进货单录入以及查询功能(按时间、商品编号、商品名称、数量、业务员、供应商、支付方式等,应分为汇总及明细)(3)销售管理,基本同上,不同的是供应商改为客户即可(4)库存管理,包括即时库存明细(汇总)、查询、库存盘盈整(本文略)等。

(5)财务管理,包括销售收益、支出、销售额明细(汇总)、应收、应付、已付、应付、费用明细(汇总)等(6)其他,包括定单管理、预测分析、整理数据、备份数据等功能(略)(见数据库设计)本文内容依次为:

进货管理(frmjhgl)、销售管理(frmxsgl)、财务管理(frmcwgl)、查找商品(frmfindsp)、查询记录及打印模块(modprint)。

(如图一)尾:

怎么样,一个比较实用的进销存管理程序产生了。

限于篇幅,笔者只能刊登几个基础模块,当然这个程序及思路可能另大型软件公司的程序员不屑一顾,这就需要读者们自行根据实际来添加所需功能了。

数据库设计做这类程序其关键在于数据库的操作,下面列出本程序中的所用数据库的结构,以便大家阅读方便:

[表名]col1=依次为字段名、字段类型、长度等。

数据库内容:

[仓库]Col1=编号CharWidth10Col2=仓库名称CharWidth8Col3=所属类别CharWidth8Col4=备注CharWidth20[费用]Col1=编号CharWidth10Col2=日期DateCol3=摘要CharWidth40Col4=金额CurrencyCol5=付款方式CharWidth4Col6=备注CharWidth20[付款方式]Col1=编号CharWidth10Col2=付款方式CharWidth4Col3=备注CharWidth20[供应商]Col1=编号CharWidth10Col2=名称CharWidth20Col3=联系人CharWidth8Col4=电话CharWidth20Col5=传真CharWidth20Col6=邮政编码CharWidth12Col7=地址CharWidth50Col8=EmailCharWidth20Col9=网址CharWidth20Col10=税号CharWidth50Col11=帐号CharWidth50Col12=开户行CharWidth50Col13=备注CharWidth20[进货记录]Col1=商品编号CharWidth10Col2=商品名称CharWidth20Col3=单位CharWidth4Col4=存放仓库CharWidth8Col5=数量IntegerCol6=单价CurrencyCol7=金额CurrencyCol8=业务员CharWidth8Col9=进货单号CharWidth20Col10=日期DateCol11=供应商CharWidth30Col12=付款方式CharWidth10Col13=备注CharWidth20[客户]Col1=编号CharWidth10Col2=名称CharWidth20Col3=联系人CharWidth8Col4=电话CharWidth20Col5=传真CharWidth20Col6=邮政编码CharWidth12Col7=地址CharWidth50Col8=EmailCharWidth30Col9=网址CharWidth30Col10=税号CharWidth50Col11=帐号CharWidth50Col12=开户行CharWidth50Col13=信誉度CharWidth10Col14=备注CharWidth20[库存]Col1=商品编号CharWidth10Col2=商品名称CharWidth20Col3=单位CharWidth4Col4=数量IntegerCol5=仓库CharWidth8[类别]Col1=编号CharWidth10Col2=类别名称CharWidth20Col3=备注CharWidth20[商品]Col1=编号CharWidth10Col2=名称CharWidth20Col3=单位CharWidth4Col4=类别CharWidth8Col5=进货价CurrencyCol6=销售价CurrencyCol7=供应商CharWidth20Col8=备注CharWidth20[销售记录]Col1=商品编号CharWidth10Col2=商品名称CharWidth20Col3=单位CharWidth4Col4=存放仓库CharWidth8Col5=数量IntegerCol6=单价CurrencyCol7=金额CurrencyCol8=业务员CharWidth8Col9=出货单号CharWidth20Col10=日期DateCol11=客户CharWidth20Col12=付款方式CharWidth4Col13=备注CharWidth20[业务员]Col1=编号CharWidth10Col2=姓名CharWidth8Col3=所属部门CharWidth20Col4=个人电话CharWidth20Col5=家庭住址CharWidth20Col6=身份证号码CharWidth40Col7=备注CharWidth20[员工档案]Col1=编号CharWidth10Col2=姓名CharWidth8Col3=姓别CharWidth2Col4=所属部门CharWidth20Col5=工种CharWidth10Col6=上工时间CharWidth20Col7=身份证号码CharWidth40Col8=个人电话CharWidth20Col9=家庭住址CharWidth40Col10=EmailCharWidth20Col11=婚否BitCol12=生日DateCol13=爱好CharWidth10Col14=忠诚度CharWidth10Col15=备注CharWidth20一:

进货管理此模块的技术关键是在保存记录上,在为“销售记录”表中存数据时应同时向“库存记录”表添加,如果有此商品则在原有的基础上进行加法运算,否则添加新记录。

在销售管理中原理也是这样,不过如果库存里没有此类商品就不允许用户进行销售操作。

frmjhgl(进货管理)模块中所有控件的相关设置:

(1)TextBox:

本模块共用8个文本框,其Name属性分别为:

txtname(商品名称)、txtliang(数量)、txtdanjia(单价)、txtbianhao(商品编号)、txtjhdata(操作日期)、txtjine(金额)、txtjine(金额)、txtshuiq(税前金额)、txtshui(税率)datasource属性分别为:

data1,datafield为空。

另添加三个combobox控件(cmbcj、cmbywy、cmbjie),用来显示厂家、业务员及结算方式(即结、欠付等)

(2)四个command控件,name属性分别为:

cmdaddnew、cmdsave、cmdcancel、cmdquit。

caption属性分别为:

新单、保存、取消、退出代码:

DimzxhAsBoolean'判断用户输入数据是否为空PrivateSubaddywy()'为combobox控件添加内容DimdbAsDatabaseDimrsAsRecordsetSetdb=OpenDatabase&"")Setrs=("业务员")WhileNot("业务员名称").ValueWendSetrs=NothingSetdb=NothingEndSubPrivateSubaddcj()DimdbAsDatabaseDimrsAsRecordsetSetdb=OpenDatabase&"")Setrs=("厂家")WhileNot("厂家名称").ValueWendSetrs=NothingSetdb=NothingEndSubPrivateSubnotnull()If=""Thenzxh=TrueMsgBox"商品编号不能为空",vbInformation,"试图添加空记录"EndIfIf=""Thenzxh=TrueMsgBox"商品名称不能为空",vbInformation,"试图添加空记录"EndIfIf=""Thenzxh=TrueMsgBox"数量不能为空",vbInformation,"试图添加空记录"EndIfEndSubPrivateSubcmdaddnew_Click()=Date=True=True=FalseEndSubPrivateSubcmdcancel_Click()=True=False=FalseEndSubPrivateSubcmdsave_Click()Dimfield_value$,txtliang_value$Dimjhbh$,ccbh$,jhna$=True=False=FalseOnErrorGoToerrtxtliang_value=jhbh=jhna=CallnotnullIfzxh=TrueThenElse'执行=11?

'必须初始化绑定字段=""=""=""=""=""=""'向库存添加="即时库存"?

Whileccbh<>jhbhAndNotccbh="商品编号").ValueIfccbh=jhbhThenccbh="商品编号").ValueElseEndIfWendIfccbh=jhbhThenfield_value="数量").Value"数量").Value=field_value+txtliang_valueElse'添加新记录With.AddNew.Fields("商品编号").Value=jhbh.Fields("商品名称").Value=jhna.Fields("数量").Value=txtliang_value.UpdateEndWithEndIf'返回开单,重新绑定字段="进货记录"?

="商品名称"="数量"="单价"="商品编号"="操作日期"="金额"="厂家名称"="业务员名称"?

=0EndIfExitSuberr:

=0MsgBoxEndSubPrivateSubcmdquit_Click()UnloadMeEndSubPrivateSubForm_Load()WithData1.DatabaseName=&"".RecordSource="进货记录"EndWith'数据库""中表"进货记录"中的内容如下="商品名称"="数量"="单价"="商品编号"="操作日期"="金额"="厂家名称"="业务员名称"="支付方式"Calladdcj'添加厂家名称Calladdywy'添加业务员名称EndSubPrivateSubtxtdanjia_GotFocus()Withtxtdanjia.SelStart=0.SelLength=Len(.Text)EndWithEndSubPrivateSubtxtdanjia_KeyPress(KeyAsciiAsInteger)'只能输入数字If(KeyAscii<48OrKeyAscii>57)AndKeyAscii>=32_AndKeyAscii<>Asc(".")ThenKeyAscii=0BeepEndIfEndSubPrivateSubtxtliang_GotFocus()Withtxtliang.SelStart=0.SelLength=Len(.Text)EndWithEndSubPrivateSubtxtliang_KeyPress(KeyAsciiAsInteger)If(KeyAscii<48OrKeyAscii>57)AndKeyAscii>=32_AndKeyAscii<>Asc(".")ThenKeyAscii=0BeepEndSubPrivateSubtxtliang_LostFocus()OnErrorGoToerrIftxtdanjia<>""Andtxtliang<>""Then=txtdanjia*txtliangElseMsgBox"字段不能为空",vbExclamation,"Error"EndIfExitSuberr:

MsgBox"请确认数据的正确性",vbCritical,"错误"EndSubPrivateSubtxtshui_LostFocus()Dimshui'计算税额Iftxtjine<>""Andtxtshui<>""Thenshui=1-/100)=shui*txtjineEndIfEndSub二:

销售管理销售管理与进货管理模块中记录的操作大体一致,所不同的是库存的增减,还要添加两个功能:

查找商品(见frmfindsp)及检测库存量说明:

此处textbox控件:

txtspbh显示商品编号、txtstore显示当前库存量PrivateSubCmdfindsp_Click()'查找商品,代码请参考“查找商品”1EndSubPrivateSubCmdkc_Click()'检测库存量DimdbAsDatabaseDimrsAsRecordsetDimfieldspbh_valueSetdb=OpenDatabase&"")Setrs=("即时库存")Whiletxtspbh<>fieldspbh_valueAndNotfieldspbh_value=("商品编号").ValueIffieldspbh_value=txtspbhThenfieldspbh_value=("商品编号").ValueElse?

EndIfWendIffieldspbh_value=txtspbhThen=("数量").ValueElseMsgBox"库存中没有此类商品",vbInformation,"检测结果"EndIfSetrs=NothingSetdb=NothingEndSub三:

查找商品.在销售管理中查找某商品的信息(frmfindsp),不应让用户手工输入商品的信息.添加treeview控件,name属性为:

tv.添加textbox控件数组,name属性为:

text1(0)-text(6),用来分别显示商品编号、商品名称、单价(元)、单位、类别、质保期等必要的商品信息.参数解释如下:

relative,可选,node的索引或键值;relationship,node的相应位置关系;key,用item方法提取node的唯一字符串;text,node显示的字符串;image,图像索引(注:

本例没有图像索引);selectedimage,被选中时,与image控件相关联的图像索引。

relationship的值:

tvwfirst,0,第一个对象,该节点放在所有同级节点的前面;tvwlast,1,最后一个;tvwnext,2,(缺省)下一个,该节点放在relative命名的节点之后;tvwprevious,3,前一个,该节点放在relative命名的节点之前;tvwchild,4,子节点,为relative命名节点的子节点。

代码如下:

DimdbAsDatabase,rsAsRecordset,rs1AsRecordset,mynodeAsNode,newnodeAsNodePrivateSubCommand1_Click()'此过程与销售管理呼应,将编号、名称及单价传递给frmxsgl窗体中。

=Text1(0).Text=Text1

(1).Text=Text1

(2).TextUnloadMeEndSubPrivateSubForm_Load()'加载窗体后,根据商品表中的“类别”标记,将商品名称显示在treeview中,其它字段显示在textbox数组中,使用户能够清楚地查看需要出售的商品相关信息Dimmysql$,mysqlone$Setdb=OpenDatabase&"")mysql="select*from类别"Setrs=(mysql)Setmynode=,"root","商品分类")WhileNotSetnewnode="root",tvwChild,

(1).Value,

(1).Value)mysqlone="select*from商品where类别="&"'"&&"'"Setrs1=(mysqlone)WhileNotSetnewnode=tvwChild,rs1!

商品名称,rs1!

商品名称)WendWend("root").Expanded=TrueEndSubPrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)Setrs1=NothingSetrs=NothingSetdb=NothingEndSubPrivateSubtv_NodeClick(ByValNodeAsOnErrorGoToerrIf=0Thenmysql="select*from商品where商品名称="&"'"&&"'"Setrs=(mysql)Fori=0To-1IfTypeName(i).Value)<>""ThenText1(i).Text=(i).ValueEndIfNextEndIfExitSuberr:

MsgBoxEndSub?

四:

查询记录(图二)在进销存管理中,还应设有查询功能,包括进货、销售记录,现仅就查询进货记录为例,其它依此类推,还可进行更为复杂的查询。

添加控件:

data(data1)、msflexgrid(绑定至data1控件);txtfind(文本框控件,用来保存SQL语句,visible属性为false);三个combobox控件:

name属性分别为:

cmbfield、cmbcompare、cmbdata作用为:

欲查询的字段(如商品名称、进货时间等)、比较符号(>、<、=、like等);四个按钮控件,name属性分别为:

cmdjians(检索字段)、cmdfindnow(执行SQL语句)、cmdback(重画)cmdprint(打印记录集)代码如下:

PublicSubmakefind()'添加此过程主要是为了解决SQL语句中的引号问题txtfind=cmbfield&cmbcompareSelectCaseCase10'文本txtfind=txtfind&"'"&txtdata&"'"Case8'日期txtfind=txtfind&"#"&txtdata&"#"CaseElsetxtfind=txtfind&""&txtdataEndSelectEndSubPrivateSubcmbcompare_Click()makefindEndSubPrivateSubcmbfield_Click()makefindEndSubPrivateSubcmdfindnow_Click()If<>""Andcmbcompare<>""Andtxtdata<>""Then="select*from进货记录where"&""&EndIfEndSubPrivateSubcmdjinas_Click()Fori=0To-1Next=0=TrueEndSubPrivateSubCmdback_Click()="进货记录"EndSubPrivateSubForm_Load()=&""="进货记录"EndSubPrivateSubForm_Unload(CancelAsInteger)Set=NothingEndSubPrivateSubtxtdata_Change()makefindEndSubprivatesubcmdprint()PrnrecordAsRecordset)'请见打印模块modprintendsub五:

打印模块.新建一标准模块modprint,以便其它窗体可以共享其过程,此模块只适用于DAO,特此说明:

PublicSubPrnrecord(recRecordsetAsRecordset)OnErrorGoToerrDimLeftMarg

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1