物流运输管理系统-论文.doc_第1页
物流运输管理系统-论文.doc_第2页
物流运输管理系统-论文.doc_第3页
物流运输管理系统-论文.doc_第4页
物流运输管理系统-论文.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物流运输管理系统-论文物流运输管理系统4.1用户登陆表单新建立FRMLOGIN表单是用来确定进入系统的身份验证用户输入密码后,经过系统确认后,方可以进入系统,否则进入不了系统。防止无关的人员进入系统中,违规操作业务。登陆窗体的控件及属性取值如下:控件属性属性取值Labe1NameLabe1Caption密码TextNametxtItemcommandbuttonNamecmdOkCaption确定commandbuttonNamecmdExitCaption取消代码如下:Private Sub cmdCancel_Click() /对押下“取消”键的处理 LoginSucceeded = False / 登陆失败 Unload Me /退出当前的窗口End SubPrivate Sub cmdOK_Click() /对押下“确定”键的处理 If trycount = 5 Then /如果输入用户名密码出错次数小于5 If (Trim(txtUserName) = ) Or (Trim(txtPassword) = ) Then /如果用户名和密码都为空 trycount = trycount + 1 /出错次数加1 MsgBox 用户名密码不能为空!, , 信息提示 /输出用户密码不能为空的提示 Else Dim strsql As String/定义string类型的变量strsql Dim rs As New ADODB.Recordset / 定义一个ADO记录集rs strsql = SELECT PASSWORD FROM MYUSERS WHERE USERNAME = & Trim(txtUserName) & /*给变量strsql赋值,为 “SELECT PASSWORD FROM MYUSERS WHERE USERNAME = t xtUserName*/ Set rs = sys.DB.OpenRecordSet(strsql)/sys.DB.OpenRecordSet(strsql) 向accass执行查询.执行语句为strsql的值,rs为/返回结果 If Not (rs.BOF Or rs.EOF) Then /如果查询有结果 If Trim(txtPassword) = rs.Fields(PASSWORD) Then /对密码进行判断,如果密码正确 trycount = 0 /出错的次数赋值为0 LoginSucceeded = True /登陆成功 Me.Hide /隐藏登陆框 MainForm.Show /主窗口显示 Else trycount = trycount + 1 /否则出错次数加1 MsgBox 无效的密码,请重试!, , 信息提示/弹出提示框提示信息:无效的密码,请重试! txtPassword.SetFocus /focus落在密码处 SendKeys Home+End /发送 HOME 和END 键 End If /*/是不是与上面的那段重复了呀? Else trycount = trycount + 1 MsgBox 无效的密码,请重试!, , 信息提示 txtPassword.SetFocus SendKeys Home+End End If/*/ End If Else MsgBox 非法用户!, , 信息提示/弹出提示框提示: 非法用户! Unload Me /当前窗口关闭 End IfEnd Sub4.2物流系统操作管理表单新建立MAINFORM这个表单是主界面表单,是物流系统操作管理的主要界面。在这个界面中,用户可以进行系统的所有操作,通过主界面上端的菜单选择进入各个模块。包括运单增加、客户管理、结算管理、系统管理和退出系统。代码如下:/*设置窗口的宽度和高度*/Private Sub MDIForm_Load() MainForm.Caption = 欢迎使用物流管理系统 MainForm.Left = Screen.Width * 0.1 MainForm.Top = Screen.Height * 0.1 MainForm.Width = Screen.Width * 0.8 MainForm.Height = Screen.Height * 0.8End Sub/*关闭所有的窗*/Private Sub MDIForm_Unload(Cancel As Integer) 关闭所有窗体 Unload frmBillManage Unload frmChangePassword Unload frmClient Unload frmClientAdd Unload frmClientUpdate Unload frmLogin Unload frmProduct Unload frmQuery Unload frmReport Unload frmStation Unload frmTraffic Unload frmTrafficAdd Unload frmTrafficUpdateEnd Sub/*点击某个按钮,显示对应的窗口*/Private Sub ParticularPrint_Click() frmBillManage.Show End SubPrivate Sub ProductManage_Click() frmProduct.ShowEnd SubPrivate Sub ReportPrint_Click() frmReport.ShowEnd SubPrivate Sub StationManage_Click() frmStation.ShowEnd SubPrivate Sub TrafficAdd_Click() frmTrafficAdd.ShowEnd SubPrivate Sub TrafficView_Click() frmTraffic.ShowEnd Sub741物流运输管理系统4.3新增运单管理表单新建FRMTRAFFICADD表单用来增加物流系统的新接待业务在新增运单管理模块中,用户输入车号、车类型、品名、发货日期、发站、到站、发货人、收货人、货物类型、重量、运输费用等各个信息,自动在表单下面出现合计信息。新增运单窗体的控件及属性取值如下:控件属性属性取值FrameNameFrame1Caption运单费用Labe3NameLabe3Caption品名TextNametxtItemcommandbuttonNamecmdAddCaption新增commandbuttonNamecmdExitCaption取消代码如下:Private Sub Form_Load()/*设置窗体的宽高*/ Me.Top = 0 Me.Left = 0 Me.Width = MainForm.Width * 0.8 Me.Height = MainForm.Height * 0.7 取得最大ID Dim inum As Integer Dim strsql As String Dim DB As New clsDataBase Dim rs As New ADODB.Recordset strsql = SELECT MAX(ID) AS MAXID FROM TRAFFIC Set rs = sys.DB.OpenRecordSet(strsql)/ 从数库中的TRAFFIC表中取出/最大的ID值,并且rs为返回值 If Not IsNull(rs(0) Then /ID最大值在第一列 ID = rs(0) + 1 /将最大值加1,便是现在的最大值 Else ID = 0 End If txtId.Text = ID 初始化车类型 cmbTrainType.AddItem (高边) cmbTrainType.ItemData(0) = 0 cmbTrainType.AddItem (蓬车) cmbTrainType.ItemData(1) = 1 cmbTrainType.ListIndex = 0 初始化货物类型 cmbProductType.AddItem (包装) cmbProductType.ItemData(0) = 0 cmbProductType.AddItem (散装) cmbProductType.ItemData(1) = 1 cmbProductType.ListIndex = 0 初始化品名 strsql = SELECT * FROM PRODUCT /strsql为一张表 Set rs = sys.DB.OpenRecordSet(strsql) /rs放一张表,此时rs指/向第一列 If Not (rs.BOF) Or (rs.EOF) Then /如果当前的rs所指的列在第一/列和最后一列之间的话 inum = 0 Do While Not rs.EOF /当rs所指的值不是取后一条数据时 cmbProductName.AddItem (rs(NAME)/把当前列名为NAME的值添加到cmbProductName里 cmbProductName.ItemData(inum) = rs(ID) /把当前列的ID赋给cmbProductName.ItemData(inum) rs.MoveNext /让rs指向下一条 inum = inum + 1 Loop /循环 当rs.EOF为TRUE时,说明到最后一行了,跳出循环 End If If cmbProductName.ListIndex -1 Then /判断cmbProductName/是否为空 cmbProductName.ListIndex = 0 Else cmbProductName.ListIndex = -1 End If/*下面的与上面这段基本是一样的*/ 初始化发站 strsql = SELECT * FROM STATION ORDER BY NAME Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbSendStation.AddItem (rs(NAME) cmbSendStation.ItemData(inum) = rs(ID) rs.MoveNext inum = inum + 1 Loop End If If cmbSendStation.ListIndex -1 Then cmbSendStation.ListIndex = 0 Else cmbSendStation.ListIndex = -1 End If 初始化到站 strsql = SELECT * FROM STATION ORDER BY NAME DESC Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbReceiveStation.AddItem (rs(NAME) cmbReceiveStation.ItemData(inum) = rs(ID) rs.MoveNext inum = inum + 1 Loop End If If cmbReceiveStation.ListIndex -1 Then cmbReceiveStation.ListIndex = 0 Else cmbReceiveStation.ListIndex = -1 初始化发货人 strsql = SELECT * FROM CLIENT ORDER BY NAME Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbSender.AddItem (rs(NAME) cmbSender.ItemData(inum) = rs(ID) rs.MoveNext inum = inum + 1 Loop End If If cmbSender.ListIndex -1 Then cmbSender.ListIndex = 0 Else cmbSender.ListIndex = -1 End If 初始化收货人 strsql = SELECT * FROM CLIENT ORDER BY NAME DESC Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbReceiver.AddItem (rs(NAME) cmbReceiver.ItemData(inum) = rs(ID) rs.MoveNext inum = inum + 1 Loop End If If cmbReceiver.ListIndex -1 Then cmbReceiver.ListIndex = 0 Else cmbReceiver.ListIndex = -1 End If dtpDateNum.Value = DateEnd Sub合计Private Sub MakeTotal() txtTotal.Text = sys.TextToNum(txtBasicCarriage.Text) + sys.TextToNum(txtLocalCarriage.Text) + sys.TextToNum(txtServeCharge.Text) - sys.TextToNum(txtFavourabile.Text) + sys.TextToNum(txtLoadCharge.Text) + sys.TextToNum(txtShortCarriage.Text) + sys.TextToNum(txtStorageCharge.Text) + sys.TextToNum(txtClearCharge.Text) If sys.TextToNum(txtWeight.Text) 0 Then txtAvg.Text = FormatNumber(sys.TextToNum(txtTotal.Text / txtWeight.Text), 2) /把sys.TextToNum(txtTotal.Text / txtWeight.Text)/格式化为小数点后两位小数点的数 Else txtAvg.Text = 0 End IfEnd Sub检查表单数据Private Function CheckForm() As Boolean CheckForm = False If txtCarNum.Text = Then MsgBox 车号不能为空! txtCarNum.SetFocus ElseIf cmbProductName.Text = Then MsgBox 品名不能为空! cmbProductName.SetFocus ElseIf cmbSendStation.Text = Then MsgBox 发站不能为空! cmbSendStation.SetFocus ElseIf cmbReceiveStation.Text = Then MsgBox 到站不能为空! cmbReceiveStation.SetFocus ElseIf txtWeight.Text = Then MsgBox 重量不能为空! txtWeight.SetFocus ElseIf txtBasicCarriage.Text = Then MsgBox 国铁运费不能为空! txtBasicCarriage.SetFocus ElseIf txtServeCharge.Text = Then MsgBox 服务费不能为空! txtServeCharge.SetFocus Else CheckForm = True End IfEnd FunctionPrivate Sub Form_Unload(Cancel As Integer) If frmTraffic.Visible = True Then Call frmTraffic.query /调用frmTraffic模块中的函数query 物流运输管理系统 End IfEnd SubPrivate Sub txtBasicCarriage_Change() Call MakeTotal /调用本模块中的函数MakeTotalEnd SubPrivate Sub txtClearCharge_Change() Call MakeTotalEnd SubPrivate Sub txtFavourabile_Change() Call MakeTotalEnd SubPrivate Sub txtLoadCharge_Change() Call MakeTotalEnd SubPrivate Sub txtLocalCarriage_Change() Call MakeTotalEnd SubPrivate Sub txtServeCharge_Change() Call MakeTotalEnd SubPrivate Sub txtShortCarriage_Change() Call MakeTotalEnd SubPrivate Sub txtStorageCharge_Change() Call MakeTotalEnd SubPrivate Sub txtWeight_Change() Call MakeTotalEnd Sub 4.4查看运单表单新建FRMTRAFFIC表单,查看运单表单,用来查询、浏览、修改和删除所接受的物流业务。选择表单可以浏览、修改和删除运单单据。查看运单窗体的控件及属性取值如下:控件属性属性取值LabelNamelblTitleCaption查看运单CommandbuttonNamecmdmodifyCaption修改CommandbuttonNamecmddeleteCaption删除CommandbuttonNameCommand4Caption查询代码如下:Private Sub Form_Load() Me.Top = 0 Me.Left = 0 Me.Width = MainForm.Width * 0.8 Me.Height = MainForm.Height * 0.7 Call queryEnd SubPublic Sub query(Optional ByVal strsql As String = SELECT * FROM TRAFFIC ORDER BY ID DESC) 查询运单 Dim inum As Integer Dim rs As New ADODB.Recordset ReDim arrTraffic(8, 0) 禁止向前,向后翻页 cmdForWard.Enabled = False cmdNext.Enabled = False Set rs = sys.DB.OpenRecordSet(strsql) rs.PageSize = 50 If Not (rs.BOF) Or (rs.EOF) Then 计算翻页 MaxPage = rs.PageCount - 1 total = rs.RecordCount NowPage = 0 取出记录集 inum = 0 Do While Not rs.EOF ReDim Preserve arrTraffic(8, inum)/ 重新定义arrTraffic为/8行inum列 arrTraffic(0, inum) = rs.Fields(ID) /取ID的值赋给第/1行,第inum列,下面的以此类推 arrTraffic(1, inum) = rs.Fields(CARNUM) arrTraffic(2, inum) = rs.Fields(DATENUM) arrTraffic(3, inum) = rs.Fields(PRODUCTNAME) arrTraffic(4, inum) = rs.Fields(SENDSTATION) arrTraffic(5, inum) = rs.Fields(RECEIVESTATION) arrTraffic(6, inum) = rs.Fields(SENDER) arrTraffic(7, inum) = rs.Fields(WEIGHT) arrTraffic(8, inum) = rs.Fields(TOTAL) inum = inum + 1 rs.MoveNext /指向下一列 Loop 初始化品名 ReDim arrProduct(1, 0) /初始化一个二位数组 strsql = SELECT * FROM PRODUCT / strsql为PRODUCT表 Set rs = sys.DB.OpenRecordSet(strsql)/数据库中查询这个表,结果返回rs If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF ReDim Preserve arrProduct(1, inum) arrProduct(0, inum) = rs(ID) arrProduct(1, inum) = rs(NAME) rs.MoveNext inum = inum + 1 Loop End If 初始化车站 ReDim arrstation(1, 0) strsql = SELECT * FROM STATION ORDER BY NAME Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF ReDim Preserve arrstation(1, inum) arrstation(0, inum) = rs(ID) arrstation(1, inum) = rs(NAME) rs.MoveNext inum = inum + 1 Loop End If 初始化客户 ReDim arrclient(1, 0) strsql = SELECT * FROM CLIENT ORDER BY NAME Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF ReDim Preserve arrclient(1, inum) arrclient(0, inum) = rs(ID)物流运输管理系统 arrclient(1, inum) = rs(NAME) rs.MoveNext inum = inum + 1 Loop End If Call GotoPage(NowPage, arrTraffic) End IfEnd SubPrivate Sub GotoPage(ByVal pg As Integer, ByVal arr) 清除原有 lsvTraffic.ListItems.Clear With lsvTraffic lsvTraffic.ColumnHeaders.Clear .ColumnHeaders.Add , , 序号, 600 .ColumnHeaders.Add , , 日期, 1200 .ColumnHeaders.Add , , 品名, 1200 .ColumnHeaders.Add , , 车号, 1200 .ColumnHeaders.Add , , 发站, 1200 .ColumnHeaders.Add , , 到站, 1200 .ColumnHeaders.Add , , 发货人, 1200 .ColumnHeaders.Add , , 重量, 1200 .ColumnHeaders.Add , , 运费, 1200 .GridLines = True .ColumnHeaders.Item(1).Alignment = lvwColumnLeft .ColumnHeaders.Item(2).Alignment = lvwColumnCenter .ColumnHeaders.Item(3).Alignment = lvwColumnCenter .ColumnHeaders.Item(4).Alignment = lvwColumnCenter .ColumnHeaders.Item(5).Alignment = lvwColumnCenter .ColumnHeaders.Item(6).Alignment = lvwColumnCenter .ColumnHeaders.Item(7).Alignment = lvwColumnCenter .ColumnHeaders.Item(8).Alignment = lvwColumnCenter .ColumnHeaders.Item(9).Alignment = lvwColumnCenter End With Dim iq As Integer Dim ia As Integer For iq = 0 To 49 Set Item = lsvTraffic.ListItems.Add(, , ) If 50 * pg + iq 0 Then cmdForWard.Enabled = True Else cmdForWard.Enabled = False End If If pg MaxPage Then cmdNext.Enabled = True Else cmdNext.Enabled = False End If Label2.Caption = 共 & total & 条记录 共 & MaxPage + 1 & 页 当前第 & NowPage + 1 & 页End Sub物流运输管理系统4.5更改运单表单新建立FRMTRAFFICUPDATE表单,用来更改物流系统的业务表单,通过该表单可以修改业务单据中的各个项目信息。更改运单窗体的控件及属性取值如下:控件属性属性取值LabelNamelblTitleCaption更改运单FrameNameFrame1Caption运输费用(单位:元)CommandbuttonNamecmdmodifyCaption修改NamecmdExitCaption取消代码如下:Private Sub Form_Load() 调整位置 Me.Top = 0 Me.Left = 0 Me.Width = MainForm.Width * 0.8 Me.Height = MainForm.Height * 0.7 Dim inum As Integer Dim strsql As String Dim DB As New clsDataBase Dim rs As New ADODB.Recordset 初始化车类型 cmbTrainType.AddItem (高边) cmbTrainType.ItemData(0) = 0 cmbTrainType.AddItem (蓬车) cmbTrainType.ItemData(1) = 1 初始化货物类型 cmbProductType.AddItem (包装) cmbProductType.ItemData(0) = 0 cmbProductType.AddItem (散装) cmbProductType.ItemData(1) = 1 初始化品名 strsql = SELECT * FROM PRODUCT Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbProductName.AddItem (rs(NAME) cmbProductName.ItemData(inum) = rs(ID) rs.MoveNext inum = inum + 1 Loop End If 初始化发站 strsql = SELECT * FROM STATION ORDER BY NAME Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbSendStation.AddItem (rs(NAME) cmbSendStation.ItemData(inum) = rs(ID) rs.MoveNext inum = inum + 1 Loop End If 初始化到站 strsql = SELECT * FROM STATION ORDER BY NAME DESC Set rs = sys.DB.OpenRecordSet(strsql) If Not (rs.BOF) Or (rs.EOF) Then inum = 0 Do While Not rs.EOF cmbReceiveStatio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论