进销存治理系统实战序现在企业治理软件种类繁多,从最初的财务软件到进销存财务一体,到现在的ERP(企业资源打算)、CRM(客户资源治理)等,单从技术来讲,它的基础依旧以数据为中心的,各种分析报告、财务报表等无不源于实际业务中产生的记录,因此本文考虑从初学者的角度动身来讲解进销存的初步知识,希望读者能从中总结出经验来。
一个项目的实施首先要做好前期规划,这是必需的,也是特不重要的,假如那个没做好,那么修改代码将是一件特不苦恼、痛苦的事。
本例仅从技术的实现讲解,首先确定需要实现的功能,其次进行数据库的设计。
要紧模块如下:(1)初始化,也确实是差不多资料的录入,其中分为商品资料、供应商资料、客户、业务员、商品类不、职员档案、支付方式、库房资料(2)进货治理,包括进货单录入以及查询功能(按时刻、商品编号、商品名称、数量、业务员、供应商、支付方式等,应分为汇总及明细)(3)销售治理,差不多同上,不同的是供应商改为客户即可(4)库存治理,包括即时库存明细(汇总)、查询、库存盘盈整(本文略)等。
(5)财务治理,包括销售收益、支出、销售额明细(汇总)、应收、应付、已付、应付、费用明细(汇总)等(6)其他,包括定单治理、预测分析、整理数据、备份数据等功能(略)(见数据库设计)本文内容依次为:进货治理(frmjhgl)、销售治理(frmxsgl)、财务治理(frmcwgl)、查找商品(frmfindsp)、查询记录及打印模块(modprint)。
(如图一)尾:如何样,一个比较有用的进销存治理程序产生了。
限于篇幅,笔者只能刊登几个基础模块,因此那个程序及思路可能另大型软件公司的程序员不屑一顾,这就需要读者们自行依照实际来添加所需功能了。
数据库设计做这类程序其关键在于数据库的操作,下面列出本程序中的所用数据库的结构,以便大伙儿阅读方便:[表名]col1=依次为字段名、字段类型、长度等。
数据库内容:[仓库]Col1=编号 Char Width 10Col2=仓库名称 Char Width 8Col3=所属类不 Char Width 8Col4=备注 Char Width 20[费用]Col1=编号 Char Width 10Col2=日期 DateCol3=摘要 Char Width 40Col4=金额 CurrencyCol5=付款方式 Char Width 4 Col6=备注 Char Width 20[付款方式]Col1=编号 Char Width 10Col2=付款方式 Char Width 4 Col3=备注 Char Width 20[供应商]Col1=编号 Char Width 10Col2=名称 Char Width 20Col3=联系人 Char Width 8Col4=电话 Char Width 20Col5=传真 Char Width 20Col6=邮政编码 Char Width 12 Col7=地址 Char Width 50Col8=Email Char Width 20Col9=网址 Char Width 20Col10=税号 Char Width 50Col11=帐号 Char Width 50Col12=开户行 Char Width 50 Col13=备注 Char Width 20[进货记录]Col1=商品编号 Char Width 10 Col2=商品名称 Char Width 20 Col3=单位 Char Width 4Col4=存放仓库 Char Width 8 Col5=数量 IntegerCol6=单价 CurrencyCol7=金额 CurrencyCol8=业务员 Char Width 8Col9=进货单号 Char Width 20 Col10=日期 DateCol11=供应商 Char Width 30 Col12=付款方式 Char Width 10 Col13=备注 Char Width 20[客户]Col1=编号 Char Width 10Col2=名称 Char Width 20Col3=联系人 Char Width 8Col4=电话 Char Width 20Col5=传真 Char Width 20Col6=邮政编码 Char Width 12 Col7=地址 Char Width 50Col8=Email Char Width 30Col9=网址 Char Width 30Col10=税号 Char Width 50Col11=帐号 Char Width 50Col12=开户行 Char Width 50 Col13=信誉度 Char Width 10 Col14=备注 Char Width 20[库存]Col1=商品编号 Char Width 10 Col2=商品名称 Char Width 20 Col3=单位 Char Width 4Col4=数量 IntegerCol5=仓库 Char Width 8[类不]Col1=编号 Char Width 10Col2=类不名称 Char Width 20 Col3=备注 Char Width 20[商品]Col1=编号 Char Width 10Col2=名称 Char Width 20Col3=单位 Char Width 4Col4=类不 Char Width 8Col5=进货价 CurrencyCol6=销售价 CurrencyCol7=供应商 Char Width 20 Col8=备注 Char Width 20[销售记录]Col1=商品编号 Char Width 10 Col2=商品名称 Char Width 20 Col3=单位 Char Width 4Col4=存放仓库 Char Width 8Col5=数量 IntegerCol6=单价 CurrencyCol7=金额 CurrencyCol8=业务员 Char Width 8Col9=出货单号 Char Width 20 Col10=日期 DateCol11=客户 Char Width 20Col12=付款方式 Char Width 4 Col13=备注 Char Width 20[业务员]Col1=编号 Char Width 10Col2=姓名 Char Width 8Col3=所属部门 Char Width 20 Col4=个人电话 Char Width 20 Col5=家庭住址 Char Width 20 Col6=身份证号码 Char Width 40Col7=备注 Char Width 20[职员档案]Col1=编号 Char Width 10Col2=姓名 Char Width 8Col3=姓不 Char Width 2Col4=所属部门 Char Width 20Col5=工种 Char Width 10Col6=上工时刻 Char Width 20Col7=身份证号码 Char Width 40Col8=个人电话 Char Width 20Col9=家庭住址 Char Width 40Col10=Email Char Width 20Col11=婚否 BitCol12=生日 DateCol13=爱好 Char Width 10Col14=忠诚度 Char Width 10Col15=备注 Char Width 20一:进货治理此模块的技术关键是在保存记录上,在为“销售记录”表中存数据时应同时向“库存记录”表添加,假如有此商品则在原有的基础上进行加法运算,否则添加新记录。
在销售治理中原理也是如此,只是假如库存里没有此类商品就不同意用户进行销售操作。
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属性分不为:新单、保存、取消、退出代码:Dim zxh As Boolean '推断用户输入数据是否为空 Private Sub addywy()'为combobox控件添加内容 Dim db As DatabaseDim rs As RecordsetSet db = OpenDatabase(App.Path & "jxc.mdb") Set rs = db.OpenRecordset("业务员")While Not rs.EOFcmbywy.AddItem rs.Fields("业务员名称").Value rs.MoveNextWendrs.CloseSet rs = Nothingdb.CloseSet db = NothingEnd SubPrivate Sub addcj()Dim db As DatabaseDim rs As RecordsetSet db = OpenDatabase(App.Path & "jxc.mdb") Set rs = db.OpenRecordset("厂家")While Not rs.EOFcmbcj.AddItem rs.Fields("厂家名称").Valuers.MoveNextWendrs.CloseSet rs = Nothingdb.CloseSet db = NothingEnd SubPrivate Sub notnull()If txtbianhao.Text = "" Thenzxh = TrueMsgBox "商品编号不能为空", vbInformation, "试图添加空记录"End IfIf txtname.Text = "" Thenzxh = TrueMsgBox "商品名称不能为空", vbInformation, "试图添加空记录"End IfIf txtliang.Text = "" Thenzxh = TrueMsgBox "数量不能为空", vbInformation, "试图添加空记录"End IfEnd SubPrivate Sub cmdaddnew_Click()Data1.Recordset.AddNewtxtjhdata.Text = Datecmdsave.Enabled = Truecmdcancel.Enabled = Truecmdaddnew.Enabled = FalseEnd SubPrivate Sub cmdcancel_Click()Data1.Recordset.CancelUpdatecmdaddnew.Enabled = Truecmdsave.Enabled = Falsecmdcancel.Enabled = FalseEnd SubPrivate Sub cmdsave_Click()Dim field_value$, txtliang_value$Dim jhbh$, ccbh$, jhna$cmdaddnew.Enabled = Truecmdsave.Enabled = Falsecmdcancel.Enabled = FalseOn Error GoTo errtxtliang_value = txtliang.Textjhbh = txtbianhao.Textjhna = txtname.TextCall notnullIf zxh = True ThenData1.Recordset.CancelUpdate Else '执行Me.MousePointer = 11Data1.Recordset.Update'必须初始化绑定字段txtdanjia.datafield = ""txtjhdata.datafield = ""txtjine.datafield = ""cmbcj.datafield = ""cmbywy.datafield = ""cmbjie.datafield = ""'向库存添加Data1.RecordSource = "即时库存"Data1.RefreshData1.Recordset.MoveFirstWhile ccbh <> jhbh And Not Data1.Recordset.EOFccbh = Data1.Recordset.Fields("商品编号").ValueIf ccbh = jhbh Thenccbh = Data1.Recordset.Fields("商品编号").ValueElseData1.Recordset.MoveNextEnd IfWendIf ccbh = jhbh ThenData1.Recordset.Editfield_value = Data1.Recordset.Fields("数量").ValueData1.Recordset.Fields("数量").Value = field_value + txtliang_valueData1.Recordset.UpdateElse '添加新记录With Data1.Recordset。