快递管理系统系统设计报告C#
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
题 目 快递管理系统
系统设计报告
课 程 名 称 软件项目实践
院 部 名 称 龙蟠学院 专 业 计算机科学与技术 班 级 M09计算机科学与技术Ⅱ 学 生 姓 名 彭振东 学 号 0921123066 课程设计地点 A203 课程设计学时 12 指 导 教 师 钟睿
金陵科技学院教务处制
成绩
1. 目的:该文档是关于学生选课系统的功能和性能描述,重点描述了模块划分。
2 概要设计
2.1 项目规划
应用管理的主要功能是对系统中的基本信息管理。
包括客户信息、货物信息以及派送人员信息等功能。
1.客户管理主要实现的功能是对客户的基本信息进行添加、修改和删除;
2.库管管理主要实现的功能是对货物的出库以及入库的管理;
3.调度管理主要实现的是货物的派送。
2.2 系统功能结构图
快递管理系统的系统功能结构图如图1所示。
图1 系统功能结构图
图2 系统功能结构图
应用管理
信息的编辑
货物的出库
库管管理
信息的查询
信息的添加
客户管理
调度管理
货物的入库
货物的查询
货物的派送
2.3 业务需求 2.
3.1:票据管理
1.功能描述:
票据管理的主要功能是对票据本的分发,查询,修改和删除。
2.流程图如图2-1所示:
填写票据
修改票据
数据库
删除票据
添加
票据状态
查询修改
删除
查询
查询
图2-1票据管理流程图
2.3.2 投递人员管理 流程图 如图2-4所示:
填写职员修改职员
数据库
删除职员
添加
修改删除
查询
查询
图2-4投递人员流程图
2.3.3接货管理
1、功能描述:
接货管理的主要功能是填写一份货运单合同,该合同的内容包括货运单编号、发货客户信息、收货客户信息、运费、保险费等。
在货物列表中,添加货物,主要填写货物的名称、重量、体积、货物价值等信息。
2、流程图 如图2-6所示:
填写货运单
修改货运单
数据库
删除货运单
添加
货运单状态
查询修改
删除
修改票据本状态为已填
是否待发
是
否
是否待发
否
是
图2-6接货管理流程图
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)在窗体中添加2个CommandButton控件,分别将Name属性设置为“Cmd_Ok”和“Cmd_Cancel”,Caption属性设置为“登陆”和“取消”。
2.代码设计
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using WuLiuXiTongDAL;
namespace KuaiDi
{
public partial class FormLogin : Form
{
private string _EmployeeID="";//员工ID
private string _EmployeeName="";//员工姓名
private int _Role=0;//员工角色
public FormLogin()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
#region验证文本框是否为空
if (txtUser.Text.Length == 0)
{
MessageBox.Show("请输入您的用户名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
if (txtPwd.Text.Length == 0)
{
MessageBox.Show("请输入您的密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
#endregion
#region登陆用户和角色判断
int Judge = 0;//判断登录
EmployeeInfo EmpInfo = new EmployeeInfo();
EmpInfo.EmployeeID = txtUser.Text.ToString().Trim();
EmpInfo.PassWord = txtPwd.Text.ToString().Trim();
Judge=EmpInfo.Login();
//用户名存在,登陆成功
if (Judge == 1)
{
_EmployeeID = this.txtUser.Text.Trim();
_EmployeeName= EmpInfo.EmpNameWay(this.txtUser.Text.Trim());
_Role = EmpInfo.EmpRoleWay(this.txtUser.Text.Trim());
RoleOfWindows(_Role);
//RoleOfWindows(0);
//RoleOfWindows(1);
//RoleOfWindows(2);
//RoleOfWindows(3);
//RoleOfWindows(4);
//RoleOfWindows(5);
}
if (Judge == 0)
{
MessageBox.Show("用户名不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtUser.Clear();
txtPwd.Clear();
}
if (Judge == 2)
{
MessageBox.Show("对不起,密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtPwd.Clear();
}
#endregion
}
//窗体加载
private void FormLogin_Load(object sender, EventArgs e)
{
//密码框加载键盘输入事件
txtPwd.KeyDown += new KeyEventHandler(txtPwd_KeyDown);
ControlBox = false;
}
//键盘输入事件处理代码
void txtPwd_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnOK_Click(sender, e);
}
}
//取消按钮
private void btnColear_Click(object sender, EventArgs e)
{
this.Close();
}
#region登陆界面选择
private void RoleOfWindows(int RoleOfForm)
{
string EmpName="";//登陆者姓名
//
EmpName = _EmployeeName;
switch (RoleOfForm)
{
case 0:
formYeWuYuan YeWuYuan = new formYeWuYuan(EmpName,
this.txtUser.Text.ToString().Trim(), "业务员");
YeWuYuan.Show();
this.Hide();
break;
case 1:
formKuGuanYuan KuGuanYuan = new formKuGuanYuan(EmpName, this.txtUser.Text.ToString().Trim(), "库管员");
KuGuanYuan.Show();
this.Hide();
break;
case 2:
formDiaoDuYuan DiaoDuY uan = new formDiaoDuYuan(EmpName, this.txtUser.Text.ToString().Trim(), "调度员");
DiaoDuYuan.Show();
this.Hide();
break;
case 3:
//formGongSiZhuGuan GongSiZhuGuan = new formGongSiZhuGuan(EmpName, this.txtUser.Text.ToString().Trim(), "公司主管");
//GongSiZhuGuan.Show();
//this.Hide();
break;
case 4:
formXiTongGuanLiYuan XiTongGuanLiYuan = new formXiTongGuanLiYuan(EmpName, this.txtUser.Text.ToString().Trim(), "系统管理员");
XiTongGuanLiYuan.Show();
this.Hide();
break;
default:
MessageBox.Show("没有这个角色!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
}
#endregion
}
}
3.2 业务员管理界面
业务员管理界面只要是员工的信息的管理,其中可以生产订单,功能包括信息的添加,删除,修改以及会员客户的信息保存。
如下图2所示:
图4 车辆调度安排窗体的运行结果。
图5 车辆调度安排窗体的设计结果1.代码设计
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using KuaiDi.YeWuYuan;
using WuLiuXiTongDAL;
using WuLiuXiTongDAL.Table;
using System.IO;
namespace KuaiDi
{
public partial class formYeWuYuan : Form
{
//声明数据集
public DataSet1 ds;
private string _EmployeeID;
private string _EmployeeName;
private int UpDateEmp = 0;
//退单
private int Cancel_Reason = 0;
//构造函数传值
public formYeWuYuan(string EmployeeName, string EmployeeID, string Position)
{
InitializeComponent();
this.ds = new DataSet1();//窗体传值
barButtonItem8.Caption = "系统登录者:" + EmployeeName;
barButtonItem9.Caption = "系统角色:" + Position;
_EmployeeID = EmployeeID;
_EmployeeName = EmployeeName;
}
* 工具栏
* ===============================
*/
//开单
private void barButtonItem31_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 0;
LiuShui();
}
private void barButtonItem11_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
}
//退单
private void barButtonItem12_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 1;
}
;
//理赔
private void barButtonItem13_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 2;
}
//退单
private void barButtonItem18_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 1;
}
//返单
//private void barButtonItem19_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{
// tabControl1.SelectedIndex = 0;
// tabControl2.SelectedIndex = 1;
//}
//理赔
private void barButtonItem20_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 2;
}
//收钱
private void barButtonItem21_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 3;
}
#endregion
#region员工个人信息查看与修改
//=================================================
//员工个人信息查看与修改
//=================================================
//修改个人信息
private void button10_Click(object sender, EventArgs e)
{
int PanDuan = UpDateEmp;
if (UpDateEmp == 0)
{
MessageBox.Show("您没有做任何修改!");
return;
}
EmployeeInfo UpdateEmpInfo = new EmployeeInfo();
UpdateEmpInfo.EmployeeID = txtID.Text.Trim();
UpdateEmpInfo.EmployeeName = txtName.Text.Trim();
UpdateEmpInfo.ConsigneeTell = txtLianXi.Text.Trim();
UpdateEmpInfo.Address = txtDiZhi.Text.Trim();
UpdateEmpInfo.Remark = txtRemark.Text.Trim();
if (cmbSex.SelectedIndex == 0)
{
UpdateEmpInfo.Sex = 0;
}
else
{
UpdateEmpInfo.Sex = 1;
}
if (UpdateEmpInfo.UpDate_EmpInfo())
{
MessageBox.Show("员工信息修改成功!");
LockEmpInformation();
}
else
{
MessageBox.Show("员工信息修改失败!");
}
UpDateEmp = 0;
}
//===================================================================== //业务员客户退单操作
//===================================================================== //查找客户要退订的订单
private void button15_Click(object sender, EventArgs e)
{
Find_Order();
textCancel_Reason.Text = "请填写客户退单原因";
textCancel_Reason.ForeColor = Color.DarkGray;
}
//查找业务员退单方法
public void Find_Order()
{
// 清空文本框
textCancel_Name.Clear();
textCancel_Tell.Clear();
textCancel_Address.Clear();
DataSet ds = new DataSet();
string SqlStr = "SELECT [CustomerName],[CustomerTell],[CustomerAddress]FROM [Order] Where [OrderID]='"+textCancel_Order.Text.Trim()+"' and Handle="+0;
ds = DB.getds(SqlStr, "Order");
foreach (DataRow Row in ds.Tables[0].Rows)
{
textCancel_Name.Text = Row["CustomerName"].ToString();
textCancel_Tell.Text = Row["CustomerTell"].ToString();
textCancel_Address.Text = Row["CustomerAddress"].ToString();
Find_Goods();
}
}
#region会员管理操作
//会员管理操作
//查找
private void button21_Click(object sender, EventArgs e)
{
VIPInfoLoad();
}
//单击单元格
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//DataSet ds = new DataSet();
//string SqlStr = "SELECT [VIPID] AS 会员编号,[ViPName] AS 会员姓名,[Sex] AS 性别,[VIPTell] AS 电话号码,[Address] AS 详细地址,[Remark] AS 备注信息FROM [VIPInfo]";
//ds = DB.getds(SqlStr, "VIPInfo");
//foreach(DataRow)
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
VIPInfoFill();
}
//所有会员信息加载方法
public void VIPInfoLoad()
{
DataSet ds = new DataSet();
string SqlStr = "SELECT [VIPID] AS 会员编号,[ViPName] AS 会员姓名, '会员性别' = CASE WHEN [Sex] = 0 THEN '男' WHEN [Sex] = 1 THEN '女' END,";
SqlStr += "[VIPTell] AS 电话号码,[Address] AS 详细地址,[Remark] AS 备注信息FROM
[VIPInfo]";
ds = DB.getds(SqlStr, "VIPInfo");
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
3.3 库管员管理模块
在正式托运货物之前,需要进行托运货物入库出库,这个模块做的正是这个.
库管员管理模块的运行结果如下图所示。
2.代码设计
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars.Docking;
using System.Data.SqlClient;
using WuLiuXiTongDAL;
using WuLiuXiTongDAL.Table;
namespace KuaiDi
{
public partial class formKuGuanYuan : Form
{
private string _EmployeeID;
private string _EmployeeName;
private string _OrderID;//订单编号
//构造函数传值
public formKuGuanYuan(string EmployeeName, string EmployeeID, string Position)
{
InitializeComponent();
barButtonItem4.Caption = "系统登录者:" + EmployeeName;
barButtonItem5.Caption = "系统角色:" + Position;
_EmployeeID = EmployeeID;
_EmployeeName = EmployeeName;
}
public formKuGuanYuan()
{
InitializeComponent();
}
//窗体加载事件
private void formKuGuanYuan_Load(object sender, EventArgs e)
{
//绑定ComboBox控件
BindingOrderID();
//获取入库流水号
LiuShui();
//获取出库流水号
ChuKuLiuShui();
//绑定派送员姓名和ID
BangDingPaiSongYuanID();
//绑定出库的订单号
BangDingWeiChuKuOrderID();
//查找所有入库单信息2010-6-16
FoundInDepotWay();
}
//窗体关闭时
private void formKuGuanYuan_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();//关闭整个应用程序
}
#region选项卡切换代码
//选项卡切换代码
//入库审核
private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 0;
}
//查看已入库信息
private void navBarItem2_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 1;
FoundInDepotWay();//显示入库单简略信息
}
//选项卡切换事件
private void tabControl2_SelectedIndexChanged(object sender, EventArgs e)
{
FoundInDepotWay();//显示入库单简略信息
}
//货物出库开单
private void navBarItem3_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 1;
tabControl3.SelectedIndex = 0;
}
//查看已出库信息
private void navBarItem4_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 1;
tabControl3.SelectedIndex = 1;
//查看已经出库的方法
FoundOutDepotWay();
}
//派送员销单
private void navBarItem7_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 1;
tabControl3.SelectedIndex = 2;
BoundXiaoDanRenYuan();//绑定要销单的派送人员
BoundXiaoDanOrderID();//绑定还未销单的订单号
}
#endregion
//有用的代码,
private void button1_Click(object sender, EventArgs e)
{
dockPanel2.Visibility = DockVisibility.Visible;
}
#region货物出库操作
//==============================================
//货物出库操作
//==============================================
//获取出库货物流水号
private void button14_Click(object sender, EventArgs e)
{
ChuKuLiuShui();
}
#region出库人的选择
private void button12_Click(object sender, EventArgs e)
{
listView2.Items.Clear();
DataSet ds = new DataSet();
string str = "SELECT [OrderID],[GoodsName],[GoodsPiece],[GoodsWeight],[GoodsV olume],[PlanPerson],[PlanPersonID],[PlanDate],[ ConsigneeAddress] FROM [tywl].[dbo].[Divide] Where Handle="+ 0 + "And PlanPerson='"+ this.cmbSendPerson.Text.Trim() + "'";// And PlanDate Like " + this.dateTimePicker1.Value.ToShortDateString();
ds = DB.getds(str, "Divide");
foreach (DataRow rw in ds.Tables[0].Rows)
{
ListViewItem Lv = new ListViewItem("确认出库");
Lv.SubItems.Add(rw["PlanPerson"].ToString());
Lv.SubItems.Add(rw["OrderID"].ToString());
Lv.SubItems.Add(rw["GoodsName"].ToString());
Lv.SubItems.Add(rw["GoodsPiece"].ToString());
Lv.SubItems.Add(rw["GoodsWeight"].ToString());
Lv.SubItems.Add(rw["GoodsV olume"].ToString());
Lv.SubItems.Add(rw["ConsigneeAddress"].ToString());
listView2.Items.Add(Lv);
}
}
#endregion
#region货物单的选择
private void button8_Click(object sender, EventArgs e)
{
listView2.Items.Clear();
DataSet ds = new DataSet();
string str = "SELECT [OrderID],[GoodsName],[GoodsPiece],[GoodsWeight],[GoodsV olume],[PlanPerson],[PlanPersonID],[PlanDate],[ ConsigneeAddress] FROM [tywl].[dbo].[Divide] Where Handle="+ 0 + "And OrderID='"+ this.cmbOrderID2.Text.Trim() + "'";// And PlanDate Like " + this.dateTimePicker1.Value.ToShortDateString();
ds = DB.getds(str, "Divide");
foreach (DataRow rw in ds.Tables[0].Rows)
{
ListViewItem Lv = new ListViewItem("确认出库");
Lv.SubItems.Add(rw["PlanPerson"].ToString());
Lv.SubItems.Add(rw["OrderID"].ToString());
Lv.SubItems.Add(rw["GoodsName"].ToString());
Lv.SubItems.Add(rw["GoodsPiece"].ToString());
Lv.SubItems.Add(rw["GoodsWeight"].ToString());
Lv.SubItems.Add(rw["GoodsV olume"].ToString());
Lv.SubItems.Add(rw["ConsigneeAddress"].ToString());
listView2.Items.Add(Lv);
}
}
#endregion
#region获取流水号的方法货物出库
public void ChuKuLiuShui()
{
string shijian = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();
ControlClass ZiDong = new ControlClass();
ZiDong.autoNum("SELECT [OutDepotID]FROM [tywl].[dbo].[OutDepot] Where OutDepotID Like" + "'CK" + shijian + "%'", "OutDepot", "OutDepotID", "CK", "100001", this.txtOutDepotID);
}
#endregion
#region确认出库
private void button6_Click(object sender, EventArgs e)
{
lebXinXiTiShi.Text = "";
if (listView2.Items.Count == 0)
{
MessageBox.Show("没有任何可以出库的数据,请确认!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
OutDepot IntoOutDepot = new OutDepot();
IntoOutDepot.OutDepotMan = _EmployeeName;
IntoOutDepot.OutDepotEmployeeID = _EmployeeID;
IntoOutDepot.SendPerson = this.cmbSendPerson.Text.Trim();
IntoOutDepot.SendPersonID = this.cmbSendPerson.SelectedValue.ToString();
foreach (ListViewItem Item in listView2.Items)
{
if (Item.Checked == true)
{
ChuKuLiuShui();
IntoOutDepot.OutDepotID = this.txtOutDepotID.Text.Trim();//出库流水编号
IntoOutDepot.OrderID = Item.SubItems[2].Text.ToString().Trim();
IntoOutDepot.GoodsName = Item.SubItems[3].Text.ToString().Trim();
IntoOutDepot.InsertIntoOutDepot();
lebXinXiTiShi.Text += "出库流水号:【" + IntoOutDepot.OutDepotID + "】操作成功." + System.Environment.NewLine;
Item.Remove();
}
}
BangDingWeiChuKuOrderID();
dockPanel2.Visibility = DockVisibility.Visible;
dockPanel2.Visibility = DockVisibility.AutoHide;
}
#endregion
private void barButtonItem7_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
Application.Exit();
}
}
}
3.4 调度员管理模块
调度员管理模块只要负责配货分单以及查看分单,如下图所示:
代码设计using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using WuLiuXiTongDAL;
using KuaiDi.DiaoDuYuan;
using WuLiuXiTongDAL.Table;
namespace KuaiDi
{
public partial class formDiaoDuYuan : Form
{
private string _EmployeeID;
private string _EmployeeName;
//构造函数传值
public formDiaoDuYuan(string EmployeeName, string EmployeeID, string Position)
{
InitializeComponent();
//this.ds = new DataSet1();//窗体传值
barButtonItem1.Caption = "系统登录者:" + EmployeeName;
barButtonItem2.Caption = "系统角色:" + Position;
_EmployeeID = EmployeeID;
_EmployeeName = EmployeeName;
}
public formDiaoDuYuan()
{
InitializeComponent();
}
//窗体加载事件
private void formDiaoDuYuan_Load(object sender, EventArgs e)
{
BindingOrderID();//绑定订单号
BangDingPaiSongYuanID();//绑定员工号和员工姓名
//查询分单信息方法
FoundDivideWay();
//查询分单信息方法
FoundDivideWay();
}
#region绑定入库订单号(来自视图)
public void BindingOrderID()
{
DataSet ds = new DataSet();
ds = DB.getds("SELECT Distinct [OrderID] FROM [tywl].[dbo].[View_Order_InDepot_InDepotGoods] Where [Handle]="+ 0, "[View_Order_InDepot_InDepotGoods]");
cmbOrderID.DataSource = ds.Tables[0].DefaultView;
cmbOrderID.DisplayMember = "OrderID";
}
#endregion
#region绑定派送员姓名和编号
public void BangDingPaiSongYuanID()
{
DataSet ds = new DataSet();//
ds = DB.getds("SELECT [EmployeeID],[EmployeeName]FROM [tywl].[dbo].[EmployeeInfo] Where [Role]=" + 6, "[tywl].[dbo].[EmployeeInfo]");
cmbPlanPerson.DataSource = ds.Tables[0].DefaultView;
cmbPlanPerson.DisplayMember = "EmployeeName";
cmbPlanPerson.ValueMember = "EmployeeID";
}
#endregion
//窗体关闭事件
private void formDiaoDuYuan_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
#region查询该派送人员的派单
private void button7_Click(object sender, EventArgs e)
{
PaiDanMingXi Pdmx = new PaiDanMingXi(this.cmbPlanPerson.Text.ToString(), this.cmbPlanPerson.SelectedValue.ToString());
Pdmx.Owner = this;
Pdmx.StartPosition = FormStartPosition.CenterParent;
Pdmx.ShowDialog();
}
#endregion
#region订单的模糊查询
private void button6_Click(object sender, EventArgs e)
{
QingKongYeMian();//清空
DataSet ds = new DataSet();
string str = @"SELECT [OrderID],[GoodsName],[GoodsPiece],[GoodsWeight],[GoodsV olume],[ConsigneeAddress]FROM
[tywl].[dbo].[View_Order_InDepot_InDepotGoods] Where [Handle]=" + 0 + " And [ConsigneeAddress] Like '%" + this.txtAddress.Text.ToString().Trim() + "%' And [GoodsHandle]="+0;
ds = DB.getds(str, "[View_Order_InDepot_InDepotGoods]");
//txtAddress.Text = str;
foreach (DataRow rw in ds.Tables[0].Rows)
{
ListViewItem Lv = new ListViewItem("是否选中");
//string cs = ds.Tables[0].Rows[0]["GoodsName"].ToString();
Lv.SubItems.Add(rw["OrderID"].ToString());
Lv.SubItems.Add(rw["GoodsName"].ToString());
Lv.SubItems.Add(rw["GoodsPiece"].ToString());
Lv.SubItems.Add(rw["GoodsWeight"].ToString());
Lv.SubItems.Add(rw["GoodsV olume"].ToString());
Lv.SubItems.Add(rw["ConsigneeAddress"].ToString());
listView1.Items.Add(Lv);
}
}
#endregion
#region辅助查询
private void button1_Click(object sender, EventArgs e)
{
QingKongYeMian();
DataSet ds = new DataSet();
string str = @"SELECT [OrderID],[GoodsName],[GoodsPiece],[GoodsWeight],[GoodsV olume],[ConsigneeAddress]FROM
[tywl].[dbo].[View_Order_InDepot_InDepotGoods] Where [Handle]="+ 0 + " And [OrderID] = '"+ this.cmbOrderID.Text.ToString() + "' And GoodsHandle="+0;
ds = DB.getds(str, "[View_Order_InDepot_InDepotGoods]");
//txtAddress.Text = str;
foreach (DataRow rw in ds.Tables[0].Rows)
{
ListViewItem Lv = new ListViewItem("是否选中");
//string cs = ds.Tables[0].Rows[0]["GoodsName"].ToString();
Lv.SubItems.Add(rw["OrderID"].ToString());
Lv.SubItems.Add(rw["GoodsName"].ToString());
Lv.SubItems.Add(rw["GoodsPiece"].ToString());
Lv.SubItems.Add(rw["GoodsWeight"].ToString());
Lv.SubItems.Add(rw["GoodsV olume"].ToString());
Lv.SubItems.Add(rw["ConsigneeAddress"].ToString());
listView1.Items.Add(Lv);
}
}
#endregion
//添加记录
private void button3_Click(object sender, EventArgs e)
{
if (listView1.Items.Count == 0)
{
MessageBox.Show("没有可以分配的订单!");
return;
}
Divide IntoDivide = new Divide();
//分单人信息
IntoDivide.DivideMan = _EmployeeName;
IntoDivide.DivideemployeeID = _EmployeeID;
//页面上面信息
IntoDivide.PlanPerson = cmbPlanPerson.Text.ToString();
IntoDivide.PlanPersonID = cmbPlanPerson.SelectedValue.ToString().Trim();
IntoDivide.PlanDate = dateTimePicker1.Value;
foreach (ListViewItem Item in listView1.Items)
{
if (Item.Checked == true)
{
IntoDivide.OrderID = Item.SubItems[1].Text.ToString().Trim();
IntoDivide.GoodsName = Item.SubItems[2].Text.ToString().Trim();
IntoDivide.GoodsPiece = Int32.Parse(Item.SubItems[3].Text.ToString().Trim());
IntoDivide.GoodsWeight = double.Parse(Item.SubItems[4].Text.ToString().Trim());
IntoDivide.GoodsV olume = double.Parse(Item.SubItems[5].Text.ToString().Trim());
IntoDivide.InsertIntoDivide();
Item.Remove();
}
}
MessageBox.Show("任务分配成功!");
BindingOrderID();//绑定订单号
}
//取消该记录
private void button4_Click(object sender, EventArgs e)
{
}
#region清空页面
public void QingKongYeMian()
{
BangDingPaiSongYuanID();//绑定员工号和员工姓名
listView1.Items.Clear();
#endregion
//选项卡的切换
//配货分单
private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 0;
}
//查看分单
private void navBarItem2_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 1;
//查询分单信息方法
FoundDivideWay();
}
private void button2_Click(object sender, EventArgs e)
{
//查询分单信息方法
FoundDivideWay();
}
//查询分单信息方法
public void FoundDivideWay()
{
string _OrderID = textFenDan_OrderID.Text.Trim();
string SqlStr = "SELECT [OrderID] 订单编号,[DivideDate] 分单时间,[DivideMan] 调度人,[GoodsName] 货物名,";
SqlStr += "[PlanPerson] 派送人,[PlanDate] 派送时间,[ConsigneeName] 收件人FROM [Divide] Where [OrderID] Like '"+_OrderID+"%'";
DataSet ds = new DataSet();
ds = DB.getds(SqlStr, "Divide");
if (ds == null)
{
return;
}
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
private void tabControl2_SelectedIndexChanged(object sender, EventArgs e)
//查询分单信息方法
FoundDivideWay();
}
private void barButtonItem11_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
Application.Exit();
}
}
}
4参考文献
【1】郑诚著.软件工程课程设计:机械工业出版社.2010 【2】杨文宏,李心辉.面向对象的软件测试:中信出版社. 2008 【3】杨少波,卢苇. J2EE项目实训--UML及设计模式.北京:清华大学出版
社.2008
【4】覃国蓉. 基于B/S架构的软件项目实训.北京:电子工业出版社,2010
5应用环境
硬件环境:普通PC
操作系统:windows xp
数据库:SQL Server 2005
开发平台:Microsoft Visual Studio 2005。