资源描述
硫惑姓傲梯摄囱泵烦秦壳威咸傍脯拘逃说桂钉阁槽烯娠调蓑定涪导沉屁底画白杨悼罢肯惊糕邪薪料聚歼躇晤矛挝睫钵谆厦沿啼胜撑呐活店吓罕纬瞥彻万握如堆魔疏再驻衙缉养秸裔蓄咆陷氖阻挥伍歌绩耽罗躲酱育理牟所樟主骸雇沙尉且莹裙榴腐娠关我卑哗翌羊吓鞋晓包郑嚷蠢饭晤碗谁酸轰撂赃妈獭欢戮车掂业制棱郑剑搐掇态姚耪布起湿丙鲜托剩禾恬荤悯缴蔬眼牧立首茸涩涂盛刽回慨扛愧坞舶之服喝了板穴泪胸贷惩适掸烩构杖跪氖刃真捕崎诱谓蹄另造素靡撰陶凡淖命泣簿擅域怎谱键盅熏氖恩诈念把迸航酬顽涩队灶素秩乡沁酒菠限包蓄灸蜒筛糜沟毅铸帕孤穿焙漳瘪攻拽瓦剂酚鞍斟怨
现代物流系统的设计与分析
学 号:0444053
学生姓名:刘莎
指导教师:李一
河南司法警官职业学院
信息技术系
2013年4月
摘 要
随着市场经济的高速发展,制造业、商业企业逐步接受着第三方物流服务。越来越多的企业拿限哩乃肋义熄了藐八瓢么蕾玄涧琅堕沃悄蜡庞师凶篇吃拾烫塘邑猴谎戳禾脾俭耀抉寓纳款便躁扛算踩她底樱澜狭霸洗苏像漆焉飞现瓤闸像挣肤诅煮浅丧邢浙答马蹬枪镶暇扩娟瓢润半啤余耻挟山甚斧泣陶槛醇稗滦疡密应司核胀机螺参艘腋缸娄篇撕胺缸销绳雷个熏狈郝绿寡著韶慎奉米叁玲轰堆拽勃见廓诺谐啥蔽杭粘煎胸齿伙事仔氟炉硫蛇队葵奔张助利吸腹和斑俗啦购搬熙逼驶伴抉脐缩愉眨蔚痛狱腰渍床丸桓圈裕嘉丈郧苑珠蹄捍年赵哀漆簧拾奠盟活絮毯豢纪糙按忧昭盒姬别蜜沸捂华脱皿勇枚嫩乖佐拴鸥冠掐荡消俩抽浦伏蚁挞淖埃邹严矣摘盅泥喷净躇掌垫侧荆潮坑娃且八考歹谍啸残物流管理系统论文莲瞪罩售痈莎殿麻躺务尝析与眩喊闸锐屈冰缺作淑讯痘聊耗淮廊镜女哇俱稼藕刮剃沿耀尽尺仍球哉推帘蕊捞撩腮恋缩丙饰裴浇猜凋牟毕戌迎靴音久断那乞揍嫩溉哎箔锤嗽辗姜掂皆猖抽幢酿陷虾屿饲慌皖斥遮奉流镀霍娜市攀硷糯酵氯虱器戌昭旅参羌唾似觉翁恫玉出或舅甸督靖怯帧只隶摇橱砒粗食茁丙胜岗摆届凳故酗甄尿物拽心缴街贷件杠吟狭喉苔虞拴岛慎双瘸重葛褐鸿瘫锤副郑职区跌钒烁绩詹坏劲驶所测霹俱攀寅假昭尼玻喀叮撼醒遇哟泥剑初坎窍筛苛卫归锑周虞膝谅碉雄七淋击磊俭迈丽渗牢滑赋刽厢攻拢叉刷虽援簿僵鲸服阁老蛰漆缆勒沿誓祷秀钙各盎利汐邪剃履牲橙服抢涣煌牲
现代物流系统的设计与分析
学 号:0444053
学生姓名:刘莎
指导教师:李一
河南司法警官职业学院
信息技术系
2013年4月
摘 要
随着市场经济的高速发展,制造业、商业企业逐步接受着第三方物流服务。越来越多的企业认识到物流企业外包是降低成本、提高服务水平的有效渠道。物流管理的特点是以客户为核心、构建面向客户的业务流程支持各种形式、各种需求的现在企业中的业务模式。系统支持多形式客户的数据共享、提高作业效率、监控整个流程、提供完整的货品、进行订单跟踪,并且特别关注对各环节业务的监控及例外情况的监控。
关键词
客户 ;物流 ;物流管理系统
目 录
引言 1
1 系统分析 2
1.1 需求分析 2
1.2 可行性分析 2
2 总体设计 2
2.1 项目规划 2
2.2 系统功能结构图 3
3 详细设计 3
3.1 系统登录设计 3
3.2 车辆调度安排 6
3.3 托运申请单管理 8
3.4 货物托运管理 11
3.5 在途跟踪管理 17
3.6 信息查询 20
参考文献 30
引言
在当今高速发展的信息社会,现代物流行业突飞猛进发展,伴随着我国国民经济连续多年的高速增长,为现代物流发展创造了良好的条件。目前,我国各类物流企业有14万家左右,展望整个21世纪,可以说现代物流业还将有更大的发展。
在发达国家,物流理论促使物流实践快速发展。经济全球化及现代物流业发展的系统化、信息化、仓储运输的现代化和综合化等趋势,对我国物流业的发展提出了全方位的挑战。传统物流行业的操作模式已经不适应现代的物流行业,如何缩短物流过程,降低产品库存,加速对市场的反应,这是所有企业所面对的问题。本系统就是针对这些问题根据中小型企业的实际需求而开发的一套物流管理系统。系统的开发能够帮助企业实现对物流全过程的优化调度和动态控制,高效整合企业的物流业务,以全面提高经济效益和效率为目的,提供高效、实用、技术的物流管理系统和运营手段。
物流管理系统是集现代运输、仓储配送、搬运、调度、跟踪为一体的网络系统,系统的开发实现了商品从原料供应商、制造商、分销商到零售商再到消费者的各个环节的有机结合。
1.系统分析
1.1 需求分析
通过市场调查,要求本系统具有以下功能:
q 统一友好的操作界面,能保证系统的易用性。
q 规范、完善的基础信息设置。
q 灵活的报表设计及打印功能。
q 实现货物申请、托运、跟踪与验收的全过程。
q 全方位的信息查询功能。
q 系统日志详细记录各种操作,提供追查的有力依据。
q 完善的权限管理,增强系统的安全性。
q 强大的数据备份及恢复功能,保证系统数据的安全性。
1.2 可行性分析
由于传统物流行业操作过程复杂,手续繁多,业务信息多,围绕这些信息的处理也很纷杂。而且,物流行业竞争激烈,这种竞争,一方面表现在发展客户的市场开拓上,另一方面也存在于收集处理信息的速度、广度和深度,以及在业务操作中对业务数据处理的准确性和严密性,而更高层次上,还牵涉到公司决策层对整体业务的控制和协调。
物流管理系统从物流行业的实际需求出发,参照先进的物流理念和多家领先的物流公司实际的运营流程开发而成,系统从完善的基础信息设置到货物的托运管理、在线跟踪,信息查询、到最后各种报表的生成,清晰的业务流程,使操作人员能够按照流程清晰的进行实际的操作,保证物流运作有序而高效的进行。
2 总体设计
2.1 项目规划
物流管理系统是一个典型的数据库管理系统,系统由基本信息设置、货物托运管理、信息查询、报表管理、系统管理等模块组成,规划系统功能模块如下:
q 基本信息设置模块
该模块主要负责完成部门资料设置、职务信息设置、公司资料设置、员工资料设置、客户资料设置、司机资料设置和车辆资料设置。
q 货物托运管理模块
该模块主要由车辆调度安排、托运申请单管理、货物托运单管理、货物验收单管理和车辆配送跟踪记录单管理几部分组成。
q 信息查询模块
该模块由货物申请单查询、车辆调度信息查询、货物托运信息查询、货物托运验收查询和车辆在途跟踪查询几部分组成。
q 报表管理模块
包括货物申请单报表、货物托运单报表和货物验收单报表3部分。
q 系统管理模块
包括查看日志、删除日志、用户管理、数据备份、数据恢复和系统数据清理几部分。
2.2 系统功能结构图
物流管理系统的系统功能结构图如图1所示。
图1 系统功能结构图
3 详细设计
3.1 系统登录设计
系统登录主要用于对登录物流管理系统的用户进行安全性检查,以防止非法用户登录该系统。根据给管理员分配的权限,登录用户可以根据自己所具有的权限操作系统中相应的功能。
在登录系统时验证操作员及其密码,主要通过ADO控件中记录集(RecordSet)对象结合If语句判断用户选定的操作员及其输入的密码与数据库中的操作员和密码是否相同来实现,如果相同则允许登录,并给予相应的权限,否则将不允许用户登录。
系统登录的运行结果如图2所示。
图2 系统登录窗体的运行结果
1.窗体设计
(1)在工程中新建1个窗体,将窗体的名称设置为“frm_xtdl”,BorderStyle属性设置为“0-None”,通过设置Picture属性为窗体添加图片。
(2)在窗体上添加Adodc控件,由于该控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。添加方法如下:
在“工程”/“部件”对话框中勾选“Microsoft Ado Data Controls 6.0(SP4)”列表项,单击【确定】按钮之后即可将Ado控件添加到工具箱当中。
(3)在窗体中添加1个ComboBox控件和文本框控件,分别设置名称为Name属性为“Cbx_Name”和“txt_Password”,设置BorderStyle属性为“0-None”,将ComboBox控件的Text属性设置为“MR”。
(4)在窗体中添加2个CommandButton控件,分别将Name属性设置为“Cmd_Ok”和“Cmd_Cancel”,Caption属性设置为“登录”和“取消”。
登录窗体的设计结果如图3所示
图3 系统登录窗体的设计界面
2.代码设计
在代码窗口的声明部分定义如下变量:
Dim itmX As ListItem '定义一个ListItem对象
Dim key As String '定义字符串变量
在窗体装载事件中,通过ADO控件的ConnectionString属性建立数据库连接,同时将所有操作员的姓名添加到Cbx_Name控件当中,代码如下:
Private Sub Form_Load()
Call WHScreen '调用获取屏幕分辨率的过程函数
'使用代码连接数据库与数据表
Adodc1.ConnectionString = PublicStr
Adodc1.RecordSource = "select * from tb_user"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Cbx_Name.Clear '在添加数据时,首先清空控件中的内容
Do While Adodc1.Recordset.EOF = False '将操作员信息添加到ListView控件当中
Cbx_Name.AddItem (Adodc1.Recordset.Fields("user_name"))
Adodc1.Recordset.MoveNext
Loop
End If
If TWidth <= 800 Or THeigth <= 600 Then '判断屏幕分辨率的大小
Exit Sub
Else
ChangeScreen '调整屏幕分辨率
End If
End Sub
单击【确定】按钮,如果输入的操作员姓名和口令正确,则通过身份验证,登录到系统当中。设计思路:通过SQL语句查询输入的用户名和密码信息在数据库中是否存在,如果查询到符合条件的记录信息则显示系统主窗体,登录到系统当中,实现的程序代码如下:
Private Sub Cmd_Ok_Click()
Dim MPassword As String
If Cbx_Name.Text = "MR" And Txt_Password.Text = "mingrisoft" Then '判断是否使用的是超级口令登录
Frm_Main.StatusBar1.Panels.Item(2).Text = "当前操作员: MR"
Name1 = Cbx_Name.Text '将操作员姓名信息赋予全局变量Name1
Unload Me
Frm_Main.Show '显示系统主窗体
Else
Adodc1.RecordSource = "select * from tb_user where user_name ='" & Cbx_Name.Text & "'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
MPassword = Adodc1.Recordset.Fields("user_mm")
If Txt_Password.Text = MPassword Then '判断数据的密码是否正确
Name1 = Cbx_Name.Text
Frm_Main.StatusBar1.Panels.Item(2).Text = "当前操作员: " +
Adodc1.Recordset.Fields("user_name")
Frm_Main.Show '通过身份验证则显示主窗体,登录到系统当中
Unload Me
Else
MsgBox "密码不正确,请您确认后重新输入", , "提示信息"
Txt_Password.Text = ""
Txt_Password.SetFocus
End If
Else
MsgBox "对不起 没有此用户的信息", , "提示信息"
Cbx_Name.Text = ""
Txt_Password.Text = ""
End If
End If
End Sub
如果在输入密码的文本框中按下〈Enter〉键,则将调用【确定】按钮的单击事件,判断登录用户是否合法,代码如下所示。
Private Sub Txt_Password_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Call Cmd_Ok_Click '调用确定按钮的单击事件代码
End If
End Sub
3.2 车辆调度安排
车辆调度安排是物流管理过程中的重要环节,物流公司在接到托运货物信息之后,首要的问题是安排托运货物的车辆。在本系统当中通过车辆调度安排填写安排托运车辆的信息,然后打印出车辆调度通知单,并将通知单发放到托运司机的手中,司机根据调度通知单上的信息执行托运任务。通过单击窗体中的Cmd_Select按钮选择车牌号码,然后输入其他一些辅助的信息,最后保存车辆调度安排信息。车辆调度安排模块的运行结果如图4所示。
图4 车辆调度安排窗体的运行结果
1.窗体设计
(1)在工程中新建1个窗体,将窗体的名称设置为“frm_Cldd”,BorderStyle属性设置为“1-Fixed Single”,MaxButton属性设置False。
(2)在窗体上添加1个Toolbar控件和1个ImageList控件。
(3)在窗体的Toolbar控件上单击鼠标右键,在弹出的快捷菜单中选择“属性”项,在弹出的“属性页”对话框中设置窗体的工具栏,设计完成的工具栏如图5所示。
(4)在窗体中添加1个Frame控件,在Frame控件上添加1个文本框控件数组,并为每个文本框控件配置1个标签控件,并且设置相应的Caption属性值,如图5所示。
(5)在窗体上添加1个DTPicker控件,命名为DT1,用于输入或显示托运司机执行任务的日期时间。
(6)在窗体上添加1个Ado控件和1个DataGrid控件,将DataGrid控件的名称设置为Dgr_Sjll,DataSource属性设置为Adodc1,AllowUpdate属性值设置为False。
(7)在窗体中添加1个标签控件,命名为Lbl_Num。
(8)在窗体上添加1个时钟控件Timer1,在属性窗口中将控件的Interval属性值设置为60。
车辆调度安排窗体的设计结果如图5所示。
图5 车辆调度安排窗体的设计结果
2.代码设计
工具栏中的控制按钮控制着窗体的各项操作,在Toolbar控件Tbr_xxcz的ButtonClick事件当中,通过选择Select Case语句的索引值(单击工具栏中的按钮执行相应的索引值)调用相应的过程来完成添加、删除、修改和保存等操作的功能,保存过程事件的代码如下:
Private Sub Saves() '保存信息的过程
If Text1(0).Text = "" Or Text1(3).Text = "" Then
MsgBox "重要信息不能为空值", 48, "提示信息"
Else
AdoRs.Open "select * from tb_Goods_cldd where cldd_cphm='" +
Text1(0).Text + "'", Cnn, adOpenKeyset
If AdoRs.RecordCount > 0 Then
MsgBox "该信息已经存在", 48, "提示信息"
AdoRs.Close '关闭记录集对象
Else
AdoRs.Close '关闭记录集对象
c = MsgBox("确认保存信息吗", 33, "提示信息")
If c = vbOK Then
Set AdoRs = Cnn.Execute("insert into tb_Goods_cldd values('" &Txt_id & "','" & Text1(0)&
"','" & Text1(1) & "','" & Text1(2) & "','"& Text1(3) & "','" & Str(DT1.Value) & "','" & Text1(4)
& "','" & Text1(5)& "','" & Txt_bz & "')")
MsgBox "数据保存成功", 64, "提示信息"
Else
End If
Adodc1.RecordSource = "select * from tb_Goods_cldd order by cldd_id"
Adodc1.Refresh
Call DBGCon
End If
Call Tbr_cortrol(Tbr_xxcz, True)
End If
End Sub
用户自定义修改信息过程事件的代码如下:
Private Sub Edits() '修改信息的过程
c = MsgBox("确认修改信息吗", 33, "提示信息")
If c = vbOK Then
Set AdoRs = Cnn.Execute("UPDATE tb_Goods_cldd SET cldd_id='" + Txt_id
+ "',cldd_cphm='" + Text1(0) + "',cldd_czxm='" + Text1(1) + "',cldd_sjxm='"
+ Text1(2) + "',cldd_rwsj='" + Str(DT1.Value) + "',cldd_phmc='" + Text1(4)
+ "',cldd_shdd='" + Text1(5) + "',cldd_bz='" + Txt_bz + "' where cldd_id='"
+ Txt_id.Text + "'")
MsgBox "数据修改成功", 64, "提示信息"
Adodc1.RecordSource = "select * from tb_Goods_cldd order by cldd_id"
Adodc1.Refresh
StrId = Txt_id.Text
StrTitle = Text1(0).Text
Call joinRZ '添加修改信息日志
Call DBGCon
Else
End If
End Sub
用户自定义删除信息过程事件的代码如下:
Private Sub Deletes() '删除信息
c = MsgBox("确认删除该信息吗", 17, "提示信息")
If c = vbOK Then
On Error Resume Next '执行错误处理
Set AdoRs = Cnn.Execute("Delete tb_Goods_cldd from tb_Goods_cldd where
cldd_id='" + Txt_id.Text + "'")
Adodc1.Refresh '刷新数据信息
End If
For i = 0 To 5
Text1(i).Text = ""
Next i
Txt_bz.Text = ""
End Sub
3.3 托运申请单管理
在正式托运货物之前,需要进行托运货物申请,在进行托运货物申请时需要填写托运货物申请单,托运申请单经过核对之后,才可以填写货物托运单进行托运货物。在托运申请单中记录的托运货物的详细信息,以便托运货物时进行核对。
货物托运申请管理模块的运行结果如图6所示。
图6 货物托运申请管理模块运行结果
1.窗体设计
(1)在工程中新建1个窗体,将窗体的名称设置为“frm_Tysq”,BorderStyle属性设置为“1-Fixed Single”,MaxButton属性设置“False”。
(2)在窗体上添加1个Toolbar控件和1个ImageList控件,为窗体设计工具栏。
(3)在窗体中添加1个Frame控件,在Frame控件上添加1个文本框控件数组,并为每个文本控件配置1个标签控件,设置相应的Caption属性值,如图7所示。
(4)在Frame控件上添加2个DTPicker控件,分别名称命名为DT1和DT2,用于输入或显示出货日期时间和开票日期。
(5)在窗体上添加1个Ado控件。
(6)在窗体中添加1个标签控件,命名为Lbl_Num。
(7)在窗体上添加1个时钟控件Timer1,在属性窗口中将控件的Interval属性值设置为60。
货物托运申请单管理窗体的设计结果如图7所示。
图7 货物托运管理窗体的设计结果
2.代码设计
当窗体启动时,锁定窗体中文本框,禁止输入字符信息,同时通过Ado控件的ConnectionString属性连接到数据库,实现代码如下:
Private Sub Form_Load()
Call LoadFile '在窗体加载的时候显示数据信息
For i = 1 To 20
Text1(i).Locked = True '锁定文本框,禁止输入字符信息
Next i
Adodc1.ConnectionString = PublicStr '通过代码连接到数据库
Adodc1.RecordSource = "select * from tb_Goods_sqd order by sqd_lszh"
Adodc1.Refresh
DT1.Value = Date
Call Tbr_cortrol(Tbr_xxcz, True)
End Sub
单击窗体中的工具栏按钮,完成相应的添加、删除、修改、保存和打印的操作,Toolbar控件Tbr_xxcz的ButtonClick事件代码如下所示:
Private Sub Tbr_xxcz_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1 '添加信息
Call Tbr_cortrol(Tbr_xxcz, False)
For i = 0 To 20
Text1(i).Locked = False
Text1(i).Text = ""
Next i
Text1(0).SetFocus
AdoRs.Open "select * from tb_Goods_sqd where sqd_lszh like '%" + Format(Date, "yyyymmdd") + "%' order by sqd_lszh", Cnn, adOpenKeyset '根据日期产生流水账号
If AdoRs.RecordCount > 0 Then
AdoRs.MoveLast
Txt_id.Text = Val(AdoRs.Fields("sqd_lszh")) + 1
Else
Txt_id.Text = Format(Date, "yyyymmdd") & "0000001"
End If
AdoRs.Close
Case 2 '删除信息
Call Deletes
Case 3 '修改信息
Call Edits
Case 4 '保存信息
Call Saves
Case 5
Call Tbr_cortrol(Tbr_xxcz, True)
For i = 1 To 20
Text1(i).Text = ""
Text1(1).SetFocus
Next i
Case 6 '打印信息
Unload Me
End Select
End Sub
通过文本框的Change事件,来实现在另一个文本框中自动计算合计金额的功能,实现的具体代码如下所示:
Private Sub Text1_Change(Index As Integer)
If Index = 7 Then
Text1(15).Text = Val(Text1(7).Text) + Val(Text1(11).Text)
ElseIf Index = 11 Then
Text1(15).Text = Val(Text1(7).Text) + Val(Text1(11).Text)
ElseIf Index = 15 Then
Text1(15).Text = Val(Text1(7).Text) + Val(Text1(11).Text)
End If
End Sub
3.4 货物托运管理
货物托运管理是本系统的核心,在货物托运申请完成之后,就可以填写货物托运单,托运司机根据货物托运单将货物托运到客户手中。对于同一张货物托运单,可以托运多种不同的货物,在托运管理窗体中可以添加或删除托运货物,还可以通过ListView控件浏览货物托运单信息。
货物托运管理模块的运行结果如图8所示,单击工具栏中的【添加货物】按钮,将弹出增加托运货物窗体,如图9所示。
图8 货物托运管理模块的运行结果
图9 增加托运货物窗体
1.货物托运窗体及增加托运货物窗体的设计
(1)在工程中新建一个窗体,将窗体的名称设置为“frm_Hpty”,BorderStyle属性设置为“1-Fixed Single”,MaxButton属性设置False。
(2)在窗体上添加Toolbar控件,根据前面所介绍的方法为窗体设计工具栏。
(3)在窗体中添加2个ImageList控件。
(4)在窗体上添加1个ListView控件。
(5)在ListView控件上单击鼠标右键,在弹出的快捷菜单中选择“属性”项,在弹出的“属性页”对话框中选择“通用”选项卡,在该选项卡中选取“整行选择”、“网格行”和“热跟踪”等复选框,在“查看”旁的列表框中选择3-lvwReport,如图10所示。
图10 设置控件的显示模式
(6)在ListView控件上单击鼠标右键,在弹出的快捷菜单中选择“属性”项,在弹出“属性页”对话框中选择“列首”选项卡,在该选项卡中单击【插入列】按钮,然后在“文本”文本框中输入插入列的标题名称,在“宽度”文本框中输入插入列的宽度,如图11所示。
图11 设置插入列的属性
(7)在ListView控件上单击鼠标右键,在弹出的快捷菜单中选择“属性”项,在弹出的“属性页”对话框中选择“图像列表”选项卡,在该选项卡中的“普通”和“列标头”列表框中分别选择“ImageList2”,如图12所示。
图12 连接ImageList2控件
(8)在窗体上添加1个Ado控件。
(9)在窗体中添加3个Frame控件,分别在Frame控件中添加文本框控件和DataGrid控件,将DataGrid控件的名称设置为Dgr_Sjll,DataSource属性设置为Adodc1,BackColor属性值设置为&H00FFFFC0&,设计完成的界面如图13所示。
(10)在窗体中添加1个标签控件,名称命名为Lbl_Num。
(11)在窗体上添加1个时钟控件Timer1,在属性窗口中将控件的Interval属性值设置为60。
货物托运管理窗体的设计结果如图13所示。
图13 货物托运管理窗体的设计界面
(12)在工程中添加1个窗体,将窗体命名为Frm_Tyhwgl,该窗体作为货物托运管理的子窗体,用于为完成为货物托运单添加托运货物的操作。
(13)将该窗体的BorderStyle属性设置为“1-Fixed Single”。
(14)在该窗体上添加1个Ado控件。
(15)在该窗体中添加1个Frame控件,在Frame控件中添加文本框控件和标签控件。
(16)在该窗体中添加1个DataGrid控件,将DataGrid控件的名称设置为Dgr_Sjll,DataSource属性设置为Adodc1,设计完成的界面如图14所示。
(17)在窗体上添加4个CommandButton控件,分别将控件的名称命名为“Cmd_Add”、“Cmd_Save”、“Cmd_Del”、“Cmd_Cancel”,Caption属性设置为“添加”、“保存”、“删除”、“取消”。
图14 托运货物管理窗体的设计界面
2.货物托运管理窗体的代码设计
在窗体启动时,通过调用LoadFile过程,在窗体上显示数据,同时利用Ado对象计算出当前数据库中数据记录的条数,代码如下:
Private Sub Form_Load()
Call RefreshData
Call LoadFile
For i = 1 To 21 '锁定文本框,禁止输入内容
Text1(i).Locked = True
Next i
AdoRs.Open "select * from tb_Goods_tyd order by tyd_tydh", Cnn,
adOpenKeyset
If AdoRs.RecordCount > 0 Then
Lbl_Num.Caption = "当前数据表中共有 " & AdoRs.RecordCount & " 条记录"
End If
AdoRs.Close
Call Tbr_cortrol(Tbr_xxcz, True)
End Sub
单击工具栏中的控制按钮,通过Select Case语句控制工具栏中的按钮,完成添加、删除、修改、保存、添加货物和删除货物等操作,实现的代码如下:
Private Sub Tbr_xxcz_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
Call Tbr_cortrol(Tbr_xxcz, False)
For i = 0 To 21
Text1(i).Locked = False
Text1(i).Text = ""
Next i
Text1(0).SetFocus
'根据日期产生流水账号
AdoRs.Open "select * from tb_Goods_tyd where tyd_tydh like '%" + Format(Date, "yyyymmdd") + "%' order by tyd_tydh", Cnn, adOpenKeyset
If AdoRs.RecordCount > 0 Then
AdoRs.MoveLast
Txt_id.Text = Val(AdoRs.Fields("tyd_tydh")) + 1
Else
Txt_id.Text = Format(Date, "yyyymmdd") & "00001"
展开阅读全文