2.3-2 车辆信息
安全检查-车辆信息是在已有司机信息后新增班次信息。班次名称新增时会自动检测是否已有新增的班次,保证班次不会重复会自动清空,在选择车辆型号(大/中/小型车)或者编辑座位数时,系统会自动检测对应型号的车是否超过对应的最大座位数和加座数.新增班次信息后可以对其添加座位最后进人售票管理-售票,检票管理-检票,出车,到达等一系列流程,当需要报废某班次信息直接点击当前行报废即可,此时对应的班次信息状态为报废.其它功能如图2.3-2
从界面上可以看到我们这里用到工具箱的控件有:
控件名称 | 说明 |
容器控件(框)GroupBox | 每个控件都可以根据需要的功能更改其属性,右键查看.也可以进行编辑事件-->找到一个闪电图标点击查看需要的事件,例如:查询按钮(btnSrean)是修改过按钮文本Text属性的重命名! btnSrean_Click这是单击查询事件,还有很多的事件根据项目需求找到来编辑.
|
公共控件(下拉框)ComboBox | |
公共控件(文字描写)Label | |
公共控件(按钮)Button | |
公共控件(日期)DateTimePicker | |
公共控件(文本框)TextBox | |
所有Windows窗体(dgv)DataGridView | |
所有Windows窗体(右键功能)ContextMenStrip |
车辆信息功能实现:
第一步:数据库
1、 表与表关系(图2.3-3)
从上面可以知道用到的表有:
表1:车辆表 (VehicleList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
VehicleID | int - Identity | 主键 | 车辆ID |
VehicleNumber | char (100) |
| 车辆编号 |
VehicleBlockNumber | char (100) |
| 车牌号 |
VehicleStateID | int | 外键 | 车辆状态ID |
MotorcadeID | int | 外键 | 车队ID |
VehicleClearID | int | 外键 | 车辆明细ID |
VehicleTypeID | int | 外键 | 车型ID |
DriverID | int | 外键 | 司机ID |
DeputyDriverOneID | int | 外键 | 副司机1ID |
DeputyDriverTwoID | int | 外键 | 副司机2ID |
StationID | int | 外键 | 站点ID |
LineID | int | 外键 | 线路ID |
OpenVehicleTime | datetime |
| 发车时间 |
ASeatNumberID | int | 外键 | 座号ID |
EntireTicketNumber | char (100) |
| 全票数 |
HalfTicketNumber | char (100) |
| 半票数 |
DiscountTicketNumber | char (100) |
| 打折票数 |
FreeTicketNumber | char (100) |
| 免票数 |
FeeRateID | int | 外键 | 费率ID |
SeatNumber | char (100) |
| 座位数 |
AddSeatNumber | char (100) |
| 加座数 |
TotalSum | decimal (18, 2) |
| 总金额 |
Remarks | char (100) |
| 备注 |
ClassesLongStopID | int | 外键 | 班次长停ID |
ClassesRepeatID | int | 外键 | 班次循环ID |
ClassesNewsID | int | 外键 | 班次信息ID |
Classes | char (100) |
| 班次 |
OpenVehicleSiteID | int | 外键 | 发车站ID |
EndVehicleSiteID | int | 外键 | 终点站ID |
DeductFeeNo | bit |
| 扣费否 |
MotorTypeNumber | char (100) |
| 发动机型号 |
MotorNumber | char (100) |
| 发动机号 |
VehicleAlterTypeCase | char (100) |
| 车辆改型情况 |
WhetherCheck | char (100) |
| 是否安检 |
SafeCheckNo | bit |
| 安检否 |
表2:站点表 (StationList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
StationID | int - Identity | 主键 | 站点ID |
StationNumber | char (100) |
| 站点编号 |
StationName | char (100) |
| 站点名称 |
WindowID | int | 外键 | 窗口ID |
StopNo | bit |
| 调用否 |
表3:车辆状态表 (VehicleStateList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
VehicleStateID | int - Identity | 主键 | 车辆状态ID |
VehicleStateName | char (100) |
| 车辆状态MC |
表4:线路表 (LineList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
LineID | int - Identity | 主键 | 线路ID |
LineName | char (100) |
| 线路MC |
VehicleID | int | 外键 | 车辆ID |
Remarks | char (100) |
| 备注 |
StopNo | bit |
| 调用否 |
表5:车型表 (VehicleTypeList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
VehicleTypeID | int - Identity | 主键 | 车型ID |
VehicleTypeNumber | char (100) |
| 车型编号 |
VehicleTypeName | char (100) |
| 车型MC |
Load | char (100) |
| 载重 |
表6:员工表 (StaffList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
StaffID | int - Identity | 主键 | 员工ID |
StaffNumber | char (100) |
| 员工编号 |
StaffName | char (100) |
| 员工姓名 |
Sex | char (100) |
| 性别 |
IdentityCardNumber | char (100) |
| 身份证号 |
HomeLocation | char (100) |
| 家庭地址 |
Phone | char (100) |
| 电话 |
StaffTypeID | int | 外键 | 员工类型ID |
OrganizationID | int | 外键 | 机构ID |
StationID | int | 外键 | 站点ID |
Remarks | char (100) |
| 备注 |
LeaveOfficeNo | bit |
| 离职否 |
InvokingNo | bit |
| 调用否 |
Date | datetime |
| 日期 |
Photo | nvarchar (3000) |
| 相片 |
表7:司机表 (DriverList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
DriverID | int - Identity | 主键 | 司机ID |
DriverNumber | char (100) |
| 司机编号 |
WorkValue | char (100) |
| 工价 |
DriveCardNumber | char (100) |
| 驾驶证号 |
GrantDriveVehicleTypeID | int | 外键 | 准驾车型ID |
FollowEnterpriseQualificationCard | char (100) |
| 从业资格证 |
CardCheckDate | datetime |
| 证件验期 |
Remarks | char (100) |
| 备注 |
MountGuardCardValidityDate | datetime |
| 上岗证有效期 |
CardLicenseNewsID | int | 外键 | 证照信息ID |
StaffID | int | 外键 | 员工ID |
Picture | char (100) |
| 图片 |
下面开始编写数据库储存过程:
数据库对应逻辑层(BLL)和界面层(UIL)文件夹:SafetyCheck_frmVehicleNews(车辆信息窗体和对应的类的存储过程)
USE [客运综合管理系统2015]
GO
/****** Object: StoredProcedure [dbo].[SafetyCheck_frmVehicleNews] Script Date: 05/31/2015 15:03:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SafetyCheck_frmVehicleNews]--[安全检查-车辆信息]
@Type CHAR(200)='',@VehicleID INT=0,@VehicleBlockNumber CHAR(100)='',@OpenVehicleTime DATETIME='',
@VehicleTypeID INT=0,@WhetherCheck CHAR(100)='',@DriverID INT=0,@DeputyDriverOneID INT=0,
@DeputyDriverTwoID INT=0,@SeatNumber CHAR(100)='',@AddSeatNumber CHAR(100)='',@MotorTypeNumber CHAR(100)='',
@MotorNumber CHAR(100)='',@VehicleAlterTypeCase CHAR(100)='',@Remarks CHAR(100)='',@StationID INT=0,
@VehicleStateID INT=0,@Classes CHAR(100)='',@OutVehicleID INT=0,@LineID INT=0,@OpenVehicleSiteID INT=0,
@EndVehicleSiteID INT=0,@SafeCheckNo BIT=0,@DeductFeeNo BIT=0
AS
BEGIN
IF @Type='frmVehicleNews_Load_Classes'--绑定下拉框班次
BEGIN
SELECT VehicleID, LTRIM(RTRIM(Classes)) AS Classes
FROM VehicleList
END
IF @Type='frmVehicleNews_Load_OutVehicleState'--绑定下拉框出车状况
BEGIN
SELECT VehicleStateID, LTRIM(RTRIM(VehicleStateName)) AS VehicleStateName
FROM VehicleStateList
END
IF @Type='frmVehicleNews_Load_Line'--绑定下拉框线路
BEGIN
SELECT LineID, LTRIM(RTRIM(LineName)) AS LineName
FROM LineList
END
IF @Type='frmVehicleNews_Select_dgvDriverNews'--绑定司机信息dgv
BEGIN
SELECT DriverList.DriverID, LTRIM(RTRIM(DriverList.DriverNumber))AS DriverNumber,
LTRIM(RTRIM(StaffList.StaffName)) AS DriverName, LTRIM(RTRIM(StaffList.Phone)) AS DriverPhone
FROM DriverList INNER JOIN
StaffList ON DriverList.StaffID = StaffList.StaffID
END
IF @Type='frmVehicleNews_Load_dgvVehicleNews_Select'--车辆信息dgv查询
BEGIN
SELECT VehicleList.VehicleID, LTRIM(RTRIM(VehicleList.Classes)) AS Classes, VehicleList.OpenVehicleTime, LTRIM(RTRIM(VehicleList.VehicleBlockNumber)) AS VehicleBlockNumber,
VehicleList.VehicleTypeID, LTRIM(RTRIM(VehicleTypeList.VehicleTypeName)) AS VehicleTypeName, LTRIM(RTRIM(VehicleList.WhetherCheck)) AS WhetherCheck, VehicleList.DriverID,
LTRIM(RTRIM(StaffList.StaffNumber)) AS DriverNumber, LTRIM(RTRIM(StaffList.StaffName)) AS DriverName, LTRIM(RTRIM(StaffList.Phone)) AS DriverPhone,
LTRIM(RTRIM(DriverList_1.DriverNumber)) AS DeputyDriverOneNumber, LTRIM(RTRIM(StaffList_1.StaffName)) AS DeputyDriverOneName, LTRIM(RTRIM(StaffList_1.Phone))
AS DeputyDriverOnePhone, LTRIM(RTRIM(StaffList_2.StaffNumber)) AS DeputyDriverTwoNumber, LTRIM(RTRIM(StaffList_2.StaffName)) AS DeputyDriverTwoName, LTRIM(RTRIM(StaffList_2.Phone))
AS DeputyDriverTwoPhone, LTRIM(RTRIM(VehicleList.SeatNumber)) AS SeatNumber, LTRIM(RTRIM(VehicleList.AddSeatNumber)) AS AddSeatNumber, LTRIM(RTRIM(VehicleList.MotorTypeNumber))
AS MotorTypeNumber, LTRIM(RTRIM(VehicleList.MotorNumber)) AS MotorNumber, LTRIM(RTRIM(VehicleList.VehicleAlterTypeCase)) AS VehicleAlterTypeCase, LTRIM(RTRIM(VehicleList.Remarks))
AS Remarks, LTRIM(RTRIM(VehicleStateList.VehicleStateName)) AS VehicleStateName, VehicleList.VehicleStateID, VehicleList.StationID, LTRIM(RTRIM(StationList.StationName)) AS StationName,
VehicleList.DeputyDriverOneID, VehicleList.DeputyDriverTwoID, LTRIM(RTRIM(LineList.LineName)) AS LineName, LTRIM(RTRIM(StationList_1.StationName)) AS OpenVehicleSite,
LTRIM(RTRIM(StationList_2.StationName)) AS EndVehicleSite, VehicleList.SafeCheckNo
FROM VehicleList INNER JOIN
VehicleTypeList ON VehicleList.VehicleTypeID = VehicleTypeList.VehicleTypeID INNER JOIN
DriverList ON VehicleList.DriverID = DriverList.DriverID INNER JOIN
StaffList ON DriverList.StaffID = StaffList.StaffID INNER JOIN
DriverList AS DriverList_1 ON VehicleList.DeputyDriverOneID = DriverList_1.DriverID INNER JOIN
StaffList AS StaffList_1 ON DriverList_1.StaffID = StaffList_1.StaffID INNER JOIN
DriverList AS DriverList_2 ON VehicleList.DeputyDriverTwoID = DriverList_2.DriverID INNER JOIN
StaffList AS StaffList_2 ON DriverList_2.StaffID = StaffList_2.StaffID INNER JOIN
VehicleStateList ON VehicleList.VehicleStateID = VehicleStateList.VehicleStateID INNER JOIN
StationList ON VehicleList.StationID = StationList.StationID INNER JOIN
LineList ON VehicleList.LineID = LineList.LineID INNER JOIN
StationList AS StationList_1 ON VehicleList.OpenVehicleSiteID = StationList_1.StationID INNER JOIN
StationList AS StationList_2 ON VehicleList.EndVehicleSiteID = StationList_2.StationID
WHERE VehicleList.DeductFeeNo=0
ORDER BY VehicleList.OpenVehicleTime DESC--数据按日期最新排序
END
IF @Type='btnInsert_Click_Insert_VehicleNews'--新增车辆信息
BEGIN
BEGIN TRAN
INSERT INTO VehicleList
(VehicleBlockNumber,OpenVehicleTime, VehicleTypeID, WhetherCheck,
DriverID, DeputyDriverOneID, DeputyDriverTwoID, SeatNumber,
AddSeatNumber, MotorTypeNumber, MotorNumber, VehicleAlterTypeCase,
Remarks,StationID,VehicleStateID,Classes,LineID,OpenVehicleSiteID,EndVehicleSiteID,SafeCheckNo,DeductFeeNo)
VALUES (@VehicleBlockNumber,@OpenVehicleTime,@VehicleTypeID,@WhetherCheck,
@DriverID,@DeputyDriverOneID,@DeputyDriverTwoID,@SeatNumber,
@AddSeatNumber,@MotorTypeNumber,@MotorNumber,@VehicleAlterTypeCase,
@Remarks,@StationID,@VehicleStateID,@Classes,@LineID,@OpenVehicleSiteID,@EndVehicleSiteID, @SafeCheckNo,@DeductFeeNo)
SELECT @@IDENTITY
COMMIT TRAN
END
IF @Type='frmVehicleNews_Load_Update_SelectVehicleNewsID'--dgv查询ID绑定数据
BEGIN
SELECT VehicleList.VehicleID, VehicleList.Classes, VehicleList.OpenVehicleTime, VehicleList.VehicleBlockNumber, VehicleList.VehicleTypeID, VehicleTypeList.VehicleTypeName, VehicleList.WhetherCheck,
VehicleList.DriverID, StaffList.StaffNumber AS DriverNumber, StaffList.StaffName AS DriverName, StaffList.Phone AS DriverPhone, DriverList_1.DriverNumber AS DeputyDriverOneNumber,
StaffList_1.StaffName AS DeputyDriverOneName, StaffList_1.Phone AS DeputyDriverOnePhone, StaffList_2.StaffNumber AS DeputyDriverTwoNumber,
StaffList_2.StaffName AS DeputyDriverTwoName, StaffList_2.Phone AS DeputyDriverTwoPhone, VehicleList.SeatNumber, VehicleList.AddSeatNumber, VehicleList.MotorTypeNumber,
VehicleList.MotorNumber, VehicleList.VehicleAlterTypeCase, VehicleList.Remarks, VehicleStateList.VehicleStateName, VehicleList.VehicleStateID, VehicleList.StationID, StationList.StationName,
LineList.LineName, StationList_1.StationName AS OpenVehicleSite, StationList_2.StationName AS EndVehicleSite, VehicleList.OpenVehicleSiteID, VehicleList.EndVehicleSiteID
FROM VehicleList INNER JOIN
VehicleTypeList ON VehicleList.VehicleTypeID = VehicleTypeList.VehicleTypeID INNER JOIN
DriverList ON VehicleList.DriverID = DriverList.DriverID INNER JOIN
StaffList ON DriverList.StaffID = StaffList.StaffID INNER JOIN
DriverList AS DriverList_1 ON VehicleList.DeputyDriverOneID = DriverList_1.DriverID INNER JOIN
StaffList AS StaffList_1 ON DriverList_1.StaffID = StaffList_1.StaffID INNER JOIN
DriverList AS DriverList_2 ON VehicleList.DeputyDriverTwoID = DriverList_2.DriverID INNER JOIN
StaffList AS StaffList_2 ON DriverList_2.StaffID = StaffList_2.StaffID INNER JOIN
VehicleStateList ON VehicleList.VehicleStateID = VehicleStateList.VehicleStateID INNER JOIN
StationList ON VehicleList.StationID = StationList.StationID INNER JOIN
LineList ON VehicleList.LineID = LineList.LineID INNER JOIN
StationList AS StationList_1 ON VehicleList.OpenVehicleSiteID = StationList_1.StationID INNER JOIN
StationList AS StationList_2 ON VehicleList.EndVehicleSiteID = StationList_2.StationID
WHERE VehicleList.VehicleID=@VehicleID
END
IF @Type='btnUpdate_Click_Update_VehicleNews'--修改车辆信息
BEGIN
UPDATE VehicleList
SET VehicleBlockNumber=@VehicleBlockNumber,OpenVehicleTime=@OpenVehicleTime,VehicleTypeID=@VehicleTypeID,DeputyDriverOneID=@DeputyDriverOneID,DeputyDriverTwoID=@DeputyDriverTwoID,
SeatNumber=@SeatNumber,AddSeatNumber=@AddSeatNumber,MotorTypeNumber=@MotorTypeNumber, MotorNumber=@MotorNumber,VehicleAlterTypeCase=@VehicleAlterTypeCase,Remarks=@Remarks, StationID=@StationID,VehicleStateID=@VehicleStateID,Classes=@Classes,LineID=@LineID,
OpenVehicleSiteID=@OpenVehicleSiteID,
EndVehicleSiteID=@EndVehicleSiteID
WHERE VehicleList.VehicleID=@VehicleID
END
IF @Type='btnDelete_Click_Delete_VehicleNews'--删除车辆信息
BEGIN
UPDATE VehicleList
SET VehicleList.DeductFeeNo=1
WHERE VehicleList.VehicleID=@VehicleID
END
IF @type='frmVehicleNews_CheckUpdate'--安检
BEGIN
UPDATE VehicleList
SET VehicleList.SafeCheckNo=1
WHERE VehicleList.VehicleID=@VehicleID
END
IF @type='frmVehicleNews_OutVehicle'--出车
BEGIN
UPDATE VehicleList
SET VehicleStateID =3
WHERE VehicleList.VehicleID=@VehicleID
UPDATE OutVehicleList
SET OutVehicleList.UserTo=2
WHERE OutVehicleList.OutVehicleID=@OutVehicleID
END
IF @type='frmVehicleNews_OutVehicleNows'--出车信息
BEGIN
SELECT OutVehicleID, VehicleStateID, OutVehicleTime, VehicleID, UserTo
FROM OutVehicleList
WHERE OutVehicleList.VehicleID=@VehicleID AND OutVehicleList.UserTo=1
END
IF @Type='frmVehicleNews_Load_SelectPhoto'--绑定图片
BEGIN
SELECT VehicleID, VehicleNumber, VehicleBlockNumber
FROM VehicleList
END
END
第二步:服务端BLL(逻辑层)写方法<---调用数据库代码:
对应文件夹: SafetyCheck_frmVehicleNews.cs(车辆信息类)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel; //添加命名空间
using System.Data; //添加命名空间
using System.Data.SqlClient;//添加命名空间
namespace BLL客运综合管理系统.SafeCheck
{
[ServiceContract]//添加服务标签
public class frmVehicleNews
{
DALPublic.DALMethod myDALMethod = new DALPublic.DALMethod();//实例化调用数据库方法
#region 绑定下拉框班次方法
[OperationContract]//添加行为标签
public DataSet frmVehicleNews_Load_Classes()//自定义方法名称
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmVehicleNews_Load_Classes";//对应数据库方法名称
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds; //返回值
}
#endregion
#region 绑定下拉框出车状况方法
[OperationContract]
public DataSet frmVehicleNews_Load_OutVehicleState()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmVehicleNews_Load_OutVehicleState";
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region 绑定单击txt司机信息dgv方法
[OperationContract]
public DataSet frmVehicleNews_Select_dgvDriverNews()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmVehicleNews_Select_dgvDriverNews";
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region 绑定dgv车辆信息方法
[OperationContract]
public DataSet frmVehicleNews_Load_dgvVehicleNews_Select()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmVehicleNews_Load_dgvVehicleNews_Select";
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region 新增车辆信息方法
[OperationContract]
public DataSet btnInsert_Click_Insert_VehicleNews(string strVehicleBlockNumber, DateTime dtOpenVehicleTime, int intVehicleTypeID,
string strWhetherCheck, int intDriverID,int intDeputyDriverOneID, int intDeputyDriverTwoID,
string strSeatNumber, string strAddSeatNumber, string strMotorTypeNumber, string strMotorNumber,
string strVehicleAlterTypeCase, string strRemarks, int intStationID, int intVehicleStateID, string strClasses,
int LineID, int OpenVehicleSiteID, int EndVehicleSiteID, bool boolSafeCheckNo, bool DeductFeeNo)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleBlockNumber", SqlDbType.Char),
new SqlParameter("@OpenVehicleTime", SqlDbType.DateTime),
new SqlParameter("@VehicleTypeID", SqlDbType.Int),
new SqlParameter("@WhetherCheck", SqlDbType.Char),
new SqlParameter("@DriverID", SqlDbType.Int),
new SqlParameter("@DeputyDriverOneID", SqlDbType.Int),
new SqlParameter("@DeputyDriverTwoID", SqlDbType.Int),
new SqlParameter("@SeatNumber", SqlDbType.Char),
new SqlParameter("@AddSeatNumber", SqlDbType.Char),
new SqlParameter("@MotorTypeNumber", SqlDbType.Char),
new SqlParameter("@MotorNumber", SqlDbType.Char),
new SqlParameter("@VehicleAlterTypeCase", SqlDbType.Char),
new SqlParameter("@Remarks", SqlDbType.Char),
new SqlParameter("@StationID", SqlDbType.Int),
new SqlParameter("@VehicleStateID", SqlDbType.Int),
new SqlParameter("@Classes", SqlDbType.Char),
new SqlParameter("@LineID", SqlDbType.Int),
new SqlParameter("@OpenVehicleSiteID", SqlDbType.Int),
new SqlParameter("@EndVehicleSiteID", SqlDbType.Int),
new SqlParameter("@SafeCheckNo", SqlDbType.Bit),
new SqlParameter("@DeductFeeNo", SqlDbType.Bit)
};
mySqlParameters[0].Value = "btnInsert_Click_Insert_VehicleNews";
mySqlParameters[1].Value = strVehicleBlockNumber;
mySqlParameters[2].Value = dtOpenVehicleTime;
mySqlParameters[3].Value = intVehicleTypeID;
mySqlParameters[4].Value = strWhetherCheck;
mySqlParameters[5].Value = intDriverID;
mySqlParameters[6].Value = intDeputyDriverOneID;
mySqlParameters[7].Value = intDeputyDriverTwoID;
mySqlParameters[8].Value = strSeatNumber;
mySqlParameters[9].Value = strAddSeatNumber;
mySqlParameters[10].Value = strMotorTypeNumber;
mySqlParameters[11].Value = strMotorNumber;
mySqlParameters[12].Value = strVehicleAlterTypeCase;
mySqlParameters[13].Value = strRemarks;
mySqlParameters[14].Value = intStationID;
mySqlParameters[15].Value = intVehicleStateID;
mySqlParameters[16].Value = strClasses;
mySqlParameters[17].Value = LineID;
mySqlParameters[18].Value = OpenVehicleSiteID;
mySqlParameters[19].Value = EndVehicleSiteID;
mySqlParameters[20].Value = boolSafeCheckNo;
mySqlParameters[21].Value = DeductFeeNo;
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region dgv查询ID绑定数据方法
[OperationContract]
public DataSet frmVehicleNews_Load_Update_SelectVehicleNewsID(int intVehicleID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleID", SqlDbType.Int),
};
mySqlParameters[0].Value = "frmVehicleNews_Load_Update_SelectVehicleNewsID";
mySqlParameters[1].Value = intVehicleID;
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region 修改车辆信息方法
[OperationContract]
public int btnUpdate_Click_Update_VehicleNews(string strVehicleBlockNumber, DateTime dtOpenVehicleTime, int intVehicleTypeID,
string strWhetherCheck,int intDriverID,int intDeputyDriverOneID, int intDeputyDriverTwoID,
string strSeatNumber, string strAddSeatNumber, string strMotorTypeNumber,string strMotorNumber,
string strVehicleAlterTypeCase, string strRemarks, int intStationID, int intVehicleStateID, string strClasses, int intVehicleID,
int LineID, int OpenVehicleSiteID, int EndVehicleSiteID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleBlockNumber", SqlDbType.Char),
new SqlParameter("@OpenVehicleTime", SqlDbType.DateTime),
new SqlParameter("@VehicleTypeID", SqlDbType.Int),
new SqlParameter("@WhetherCheck", SqlDbType.Char),
new SqlParameter("@DriverID", SqlDbType.Int),
new SqlParameter("@DeputyDriverOneID", SqlDbType.Int),
new SqlParameter("@DeputyDriverTwoID", SqlDbType.Int),
new SqlParameter("@SeatNumber", SqlDbType.Char),
new SqlParameter("@AddSeatNumber", SqlDbType.Char),
new SqlParameter("@MotorTypeNumber", SqlDbType.Char),
new SqlParameter("@MotorNumber", SqlDbType.Char),
new SqlParameter("@VehicleAlterTypeCase", SqlDbType.Char),
new SqlParameter("@Remarks", SqlDbType.Char),
new SqlParameter("@StationID", SqlDbType.Int),
new SqlParameter("@VehicleStateID", SqlDbType.Int),
new SqlParameter("@Classes", SqlDbType.Char),
new SqlParameter("@VehicleID", SqlDbType.Int),
new SqlParameter("@LineID", SqlDbType.Int),
new SqlParameter("@OpenVehicleSiteID", SqlDbType.Int),
new SqlParameter("@EndVehicleSiteID", SqlDbType.Int),
};
mySqlParameters[0].Value = "btnUpdate_Click_Update_VehicleNews";
mySqlParameters[1].Value = strVehicleBlockNumber;
mySqlParameters[2].Value = dtOpenVehicleTime;
mySqlParameters[3].Value = intVehicleTypeID;
mySqlParameters[4].Value = strWhetherCheck;
mySqlParameters[5].Value = intDriverID;
mySqlParameters[6].Value = intDeputyDriverOneID;
mySqlParameters[7].Value = intDeputyDriverTwoID;
mySqlParameters[8].Value = strSeatNumber;
mySqlParameters[9].Value = strAddSeatNumber;
mySqlParameters[10].Value = strMotorTypeNumber;
mySqlParameters[11].Value = strMotorNumber;
mySqlParameters[12].Value = strVehicleAlterTypeCase;
mySqlParameters[13].Value = strRemarks;
mySqlParameters[14].Value = intStationID;
mySqlParameters[15].Value = intVehicleStateID;
mySqlParameters[16].Value = strClasses;
mySqlParameters[17].Value = intVehicleID;
mySqlParameters[18].Value = LineID;
mySqlParameters[19].Value = OpenVehicleSiteID;
mySqlParameters[20].Value = EndVehicleSiteID;
int i = myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
return i;
}
#endregion
#region 删除车辆信息方法
[OperationContract]
public int btnDelete_Click_Delete_VehicleNews(int intVehicleID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleID", SqlDbType.Int),
};
mySqlParameters[0].Value = "btnDelete_Click_Delete_VehicleNews";
mySqlParameters[1].Value = intVehicleID;
return myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
}
#endregion
#region 安检方法
[OperationContract]
public int frmVehicleNews_CheckUpdate(int intVehicleID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleID", SqlDbType.Int),
};
mySqlParameters[0].Value = "frmVehicleNews_CheckUpdate";
mySqlParameters[1].Value = intVehicleID;
int dt = myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
return dt;
}
#endregion
#region 出车方法
[OperationContract]
public int frmVehicleNews_OutVehicle(int intVehicleID, int intOutVehicleID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleID", SqlDbType.Int),
new SqlParameter("@OutVehicleID", SqlDbType.Int)
};
mySqlParameters[0].Value = "frmVehicleNews_OutVehicle";
mySqlParameters[1].Value = intVehicleID;
mySqlParameters[2].Value = intOutVehicleID;
int dt = myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
return dt;
}
#endregion
#region 绑定图片方法
[OperationContract]
public DataSet frmVehicleNews_Load_SelectPhoto()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmVehicleNews_Load_SelectPhoto";
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region 报班方法
[OperationContract]
public DataSet frmVehicleNews_OutVehicleNows(int intVehicleID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
new SqlParameter("@VehicleID", SqlDbType.Int),
};
mySqlParameters[0].Value = "frmVehicleNews_OutVehicleNows";
mySqlParameters[1].Value = intVehicleID;
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
#region 绑定下拉框线路方法
[OperationContract]
public DataSet frmVehicleNews_Load_Line()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmVehicleNews_Load_Line";
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
#endregion
}
}
第三步:客户端UIL(界面层)写调用方法<---调用BLL(逻辑层)代码:
对应文件夹: SafetyCheck_frmVehicleNews.cs(车辆信息窗体)对应各种功能详解:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text; //添加命名空间
using System.Windows.Forms;//添加命名空间
namespace XX集团客运综合管理系统client.SafeCheck
{
public partial class frmVehicleNews : Form
{
public frmVehicleNews()
{
InitializeComponent();
}
BLL客运综合管理系统.SafeCheck.frmVehicleNews.frmVehicleNewsClient myfrmVehicleNewsClient =
new BLL客运综合管理系统.SafeCheck.frmVehicleNews.frmVehicleNewsClient();//实例化调用BLL方法使用
BLL客运综合管理系统.SafeCheck.frmDriverNews.frmDriverNewsClient myfrmDriverNewsClient =
new BLL客运综合管理系统.SafeCheck.frmDriverNews.frmDriverNewsClient();//实例化调用BLL方法使用
BLL客运综合管理系统.LeadDemand.frmSettleAccounts.frmSettleAccountsClient myfrmSettleAccountsClient = new BLL客运综合管理系统.LeadDemand.frmSettleAccounts.frmSettleAccountsClient();//实例化调用BLL方法使用
BLL客运综合管理系统.frmMain.frmMainClient myfrmMainClient = new BLL客运综合管理系统.frmMain.frmMainClient();//实例化调用BLL方法使用
int intStaffFlag = 0;//声明变量:0是司机,1是司机1,2是司机2
public delegate void ChangeFormColor(bool topmost); //自定义方法使用
public delegate void ChangeFormColor1(bool topmost1); //自定义方法使用
public event ChangeFormColor ChangeColor; //自定义方法使用
public event ChangeFormColor1 ChangeColor1;//自定义方法使用
private void frmCheLiangXinXi_FormClosing(object sender, FormClosingEventArgs e)
{
ChangeColor1(true); //开关
ChangeColor(true);
}
#region frmVehicleNews_Load事件功能
DataTable dtdgvVehicleNews;//声明一个全局变量
bool KaiGuan = false;//设置一个开关
private void frmVehicleNews_Load(object sender, EventArgs e)
{
try
{
dtdgvVehicleNews = myfrmVehicleNewsClient.frmVehicleNews_Load_dgvVehicleNews_Select().Tables[0];
<img src="https://img-blog.csdn.net/20150603221449794?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
dgvVehicleNews.DataSource = dtdgvVehicleNews;//dgv绑定数据
this.dgvVehicleNews = SYS_PublicStaticClass.SetDgv(dgvVehicleNews);//dgv序号
this.dgvVehicleNews.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;//设置dgv三维凹陷边框
this.dgvVehicleNews.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv列标题居中
this.dgvVehicleNews.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv单元格内容居中
DataTable dtcboClasses = myfrmVehicleNewsClient.frmVehicleNews_Load_Classes().Tables[0];
<img src="https://img-blog.csdn.net/20150603221711661?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
cboClassesOne.DataSource = dtcboClasses;//绑定班次下拉框方法
cboClassesOne.DisplayMember = "Classes";
cboClassesOne.ValueMember = "VehicleID";
cboClassesOne.SelectedIndex = -1;
DataTable dtcboVehicleType = myfrmDriverNewsClient.frmDriverInformation_Load_CheckVehicle().Tables[0];
<img src="https://img-blog.csdn.net/20150603221727448?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
<pre name="code" class="csharp" style="font-size: 18px;">//绑定车型
cboVehicleType.DataSource = dtcboVehicleType; cboVehicleType.DisplayMember = "VehicleTypeName"; cboVehicleType.ValueMember = "VehicleTypeID"; cboVehicleType.SelectedIndex = -1; DataTable dtcboStation = myfrmDriverNewsClient.frmDriverInformation_Load_StationName().Tables[0]; cboStation.DataSource = dtcboStation;//绑定下拉框站点方法 cboStation.DisplayMember = "StationName"; cboStation.ValueMember = "StationID"; cboStation.SelectedIndex = -1;
<img src="https://img-blog.csdn.net/20150603222003284?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
cboStationOne.DataSource = dtcboStation.Copy();//绑定站点需要复制用同样数据使用时
cboStationOne.DisplayMember = "StationName";
cboStationOne.ValueMember = "StationID";
cboStationOne.SelectedIndex = -1;
cboArriveStation.DataSource = dtcboStation.Copy();
cboArriveStation.DisplayMember = "StationName";
cboArriveStation.ValueMember = "StationID";
cboArriveStation.SelectedIndex = -1;
DataTable dtcboOutVehicleState = myfrmVehicleNewsClient.frmVehicleNews_Load_OutVehicleState().Tables[0]; //获取dt
cboOutVehicleState.DataSource = dtcboOutVehicleState;
cboOutVehicleState.DisplayMember = "VehicleStateName";
cboOutVehicleState.ValueMember = "VehicleStateID";
cboOutVehicleState.SelectedIndex = -1;<pre name="code" class="csharp" style="font-size: 18px;">//绑定出车状况
<img src="https://img-blog.csdn.net/20150603222004197?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="baseline" alt="" />
cboOutVehicleStateOne.DataSource = dtcboOutVehicleState.Copy();
cboOutVehicleStateOne.DisplayMember = "VehicleStateName";
cboOutVehicleStateOne.ValueMember = "VehicleStateID";
cboOutVehicleStateOne.SelectedIndex = -1;
DataTable dtLine = myfrmVehicleNewsClient.frmVehicleNews_Load_Line().Tables[0];
cboLine.DataSource = dtLine;
cboLine.DisplayMember = "LineName";
cboLine.ValueMember = "LineID";
cboLine.SelectedIndex = -1;<pre name="code" class="csharp" style="font-size: 18px;">//绑定线路下拉框
DataTable dtdgvDriverNews = myfrmVehicleNewsClient.frmVehicleNews_Select_dgvDriverNews().Tables[0]; dgvDriverNews.DataSource = dtdgvDriverNews; dtpRegisterDate.Format = DateTimePickerFormat.Custom;//设置时间格式2015-04-21 19:55:00 dtpRegisterDate.CustomFormat = "yyyy-MM-dd HH:mm:ss"; dtpOpenDate.Format = DateTimePickerFormat.Custom;//时间格式2015-04-21 19:55:00 dtpOpenDate.CustomFormat = "yyyy-MM-dd HH:mm:ss"; KaiGuan = true; //开关值是真 } catch { } } #endregion
#region 打开dgv选择员工信息传递参数是为区别是司机还是同副司机1还是副司机2(都是同一个页面)功能
<pre name="code" class="csharp" style="font-size: 18px;">//点击<span style="font-family: Arial, Helvetica, sans-serif;">司机事件</span>
private void txtDriverNumber_Click(object sender, EventArgs e) { dgvDriverNews.Visible = true; //隐藏DGV显示出来 intStaffFlag = 0; //获取对应所代表的司机 this.dgvDriverNews = SYS_PublicStaticClass.SetDgv(dgvDriverNews);//dgv序号 this.dgvDriverNews.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;//设置dgv三维凹陷边框 this.dgvDriverNews.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv列标题居中 this.dgvDriverNews.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv单元格内容居中 }
<pre name="code" class="csharp" style="font-size: 18px;">//点击<span style="font-family: Arial, Helvetica, sans-serif;">副司机1事件</span>
private void txtDeputyDriverOneNumber_Click(object sender, EventArgs e) { dgvDriverNews.Visible = true;//隐藏的dgv显示出来 intStaffFlag = 1;//绑定对应的司机 }
//点击<span style="font-family: Arial, Helvetica, sans-serif;">副司机2事件</span>
private void txtDeputyDriverTwoNumber_Click(object sender, EventArgs e) { dgvDriverNews.Visible = true; //隐藏的dgv显示出来 intStaffFlag = 2; //绑定对应的司机 } #endregion #region 鼠标离开dgv后会隐藏dgv
<pre name="code" class="csharp" style="font-size: 18px;">//点击DGV离开<span style="font-family: Arial, Helvetica, sans-serif;">事件</span>
private void dgvDriverNews_MouseLeave(object sender, EventArgs e)//鼠标离开事件 { dgvDriverNews.Visible = false;//隐藏dgv } #endregion #region 点击显示dgv选择员工功能
<pre name="code" class="csharp" style="font-size: 18px;">//DGV双击<span style="font-family: Arial, Helvetica, sans-serif;">事件</span>
private void dgvDriverNews_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex >= 0)//如果双击的行不是标题 { if (intStaffFlag == 0) //判断条件是否成立 { txtDriverNumber.Text = dgvDriverNews.CurrentRow.Cells["司机编号"].Value.ToString().Trim();//获取相对应的文本值 txtDriver.Text = dgvDriverNews.CurrentRow.Cells["司机名称"].Value.ToString().Trim(); txtDriverPhone.Text = dgvDriverNews.CurrentRow.Cells["司机电话"].Value.ToString().Trim();//绑定对应数据 PublicStaticObject.intDriverID = Convert.ToInt32(dgvDriverNews.CurrentRow.Cells["司机ID"].Value);//获取公共ID方便调用 } else if (intStaffFlag == 1) { txtDeputyDriverOneNumber.Text = dgvDriverNews.CurrentRow.Cells["司机编号"].Value.ToString().Trim(); txtDeputyDriverOne.Text = dgvDriverNews.CurrentRow.Cells["司机名称"].Value.ToString().Trim(); txtDeputyDriverOnePhone.Text = dgvDriverNews.CurrentRow.Cells["司机电话"].Value.ToString().Trim(); PublicStaticObject.intDeputyDriverOneID = Convert.ToInt32(dgvDriverNews.CurrentRow.Cells["司机ID"].Value); } else if (intStaffFlag == 2) { txtDeputyDriverTwoNumber.Text = dgvDriverNews.CurrentRow.Cells["司机编号"].Value.ToString().Trim(); txtDeputyDriverTwo.Text = dgvDriverNews.CurrentRow.Cells["司机名称"].Value.ToString().Trim(); txtDeputyDriverTwoPhone.Text = dgvDriverNews.CurrentRow.Cells["司机电话"].Value.ToString().Trim(); PublicStaticObject.intDeputyDriverTwoID = Convert.ToInt32(dgvDriverNews.CurrentRow.Cells["司机ID"].Value); } dgvDriverNews.Visible = false; //显示的DGV再次隐藏起来 } } #endregion #region 多条件查询功能 private void btnSearch_Click(object sender, EventArgs e) { try { DataView dvVheicleNewsInformation = new DataView(dtdgvVehicleNews);//实例化调用参数 string strClassesOne = ""; string strStation = ""; string strOutVehicleState = ""; string strWhetherCheckNo = "";//声明变量并赋值 if (cboClassesOne.SelectedValue != null)//判断下拉框是否为空 { strClassesOne = cboClassesOne.Text.Trim();//获取下拉框文本值 } if (cboStation.SelectedValue != null) { strStation = cboStation.Text.Trim(); } if (cboOutVehicleState.SelectedValue != null) { strOutVehicleState = cboOutVehicleState.Text.Trim(); } if (cboWhetherCheckNo.Text != null) { strWhetherCheckNo = cboWhetherCheckNo.Text.Trim(); } dvVheicleNewsInformation.RowFilter = "Classes LIKE '%" + strClassesOne + "%'AND StationName LIKE'%" + strStation + "%'AND VehicleStateName LIKE'%" + strOutVehicleState + "%'AND WhetherCheck LIKE'%" + strWhetherCheckNo + "%'"; dgvVehicleNews.DataSource = dvVheicleNewsInformation.ToTable();//返回数据查询 } catch { } } #endregion #region 重置功能 private void btnReset_Click(object sender, EventArgs e) { txtClasses.Text = "";//清空文本数据 txtVehicleBlockNumber.Text = ""; cboVehicleType.Text = ""; cboWhetherCheck.Text = ""; txtDriverNumber.Text = ""; txtDriver.Text = ""; txtDriverPhone.Text = ""; txtDeputyDriverOneNumber.Text = ""; txtDeputyDriverOne.Text = ""; txtDeputyDriverOnePhone.Text = ""; txtDeputyDriverTwoNumber.Text = ""; txtDeputyDriverTwo.Text = ""; txtDeputyDriverTwoPhone.Text = ""; txtSeatNumber.Text = ""; txtAddSeatNumber.Text = ""; txtMotorTypeNumber.Text = ""; txtMotorNumbe.Text = ""; txtVehicleAlterTypeCase.Text = ""; txtRemarks.Text = ""; cboClassesOne.Text = ""; cboStation.Text = ""; cboOutVehicleState.Text = ""; cboWhetherCheckNo.Text = "";//清空数据 } #endregion #region dgv单击获取ID功能 private void dgvVehicleNews_CellClick(object sender, DataGridViewCellEventArgs e) { PublicStaticObject.intVehicleThreeID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value); //绑定对应的公共ID方便调用 PublicStaticObject.intDriverID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["员工ID"].Value); PublicStaticObject.intDeputyDriverOneID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["副司机1ID"].Value); PublicStaticObject.intDeputyDriverTwoID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["副司机2ID"].Value);//点击事件获取需要的公共ID } #endregion #region 安检功能 private void btnCheck_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要安检:" + txtClasses.Text + "班次信息?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); //获取值判断条件是否成立 if (str == true) { MessageBox.Show("对不起!已经安检过了,不用重复安检!!!"); return; } else { if (myfrmVehicleNewsClient.frmVehicleNews_CheckUpdate(PublicStaticObject.intVehicleThreeID) > 0) //判断条件如果成立 { MessageBox.Show("安检:" + txtClasses.Text + "班次成功!"); frmVehicleNews_Load(null, null); //调用方法 } else { MessageBox.Show("安检失败!"); frmVehicleNews_Load(null, null); } } } } catch { } } #endregion #region 出车功能 private void btnOutVehicle_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要把:" + txtClasses.Text + "班次出车?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { int intOutVehicleID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["车辆状态ID"].Value); //获取ID if (intOutVehicleID == 3) { MessageBox.Show("此车已经出过了!请重新选择还没出车的数据!!!"); return; } else { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); //获取是否值 if (str == true) //判断是否成立 { if (dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value != null) { int intVehicle = (int)dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value; DataTable dt = myfrmVehicleNewsClient.frmVehicleNews_OutVehicleNows(intVehicle).Tables[0]; int intOutVehicleOneID = (int)dt.Rows[0]["OutVehicleID"];//执行出车方法 if (myfrmVehicleNewsClient.frmVehicleNews_OutVehicle(PublicStaticObject.intVehicleThreeID, intOutVehicleOneID) > 0) { MessageBox.Show(txtClasses.Text + "班次出车成功!"); frmVehicleNews_Load(null, null); } else { MessageBox.Show("出车失败!"); frmVehicleNews_Load(null, null); return; } } } else { MessageBox.Show("请先安检!"); return; } } } } catch { MessageBox.Show("数据有误,请检查出车代码!"); } } #endregion #region 新增车辆信息功能 private void btnInsert_Click(object sender, EventArgs e) { if (cboVehicleType.Text == "" || cboWhetherCheck.Text == "")//判断条件是否同时满足 { MessageBox.Show("注意!所有下拉框的数据都不能为空,否则不能新增!!!");//提示框内容 return; } DateTime dtOutVehicleTime = Convert.ToDateTime(dtpOpenDate.Text.ToString().Trim()); if (MessageBox.Show("您确定要新增车辆并第一次出车时间为:(" + dtOutVehicleTime + ")?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { try { string strVehicleBlockNumber = txtVehicleBlockNumber.Text.ToString().Trim();//绑定对应文本值 DateTime dtOpenVehicleTime = Convert.ToDateTime(dtpRegisterDate.Text.ToString().Trim()); int intVehicleTypeID = Convert.ToInt32(cboVehicleType.SelectedValue); //绑定对应的ID string strWhetherCheck = cboWhetherCheck.Text.ToString().Trim(); int intDriverID = PublicStaticObject.intDriverID; //赋值 int intDeputyDriverOneID = PublicStaticObject.intDeputyDriverOneID; int intDeputyDriverTwoID = PublicStaticObject.intDeputyDriverTwoID; string strSeatNumber = txtSeatNumber.Text.ToString().Trim(); string strAddSeatNumber = txtAddSeatNumber.Text.ToString().Trim(); string strMotorTypeNumber = txtMotorTypeNumber.Text.ToString().Trim(); string strMotorNumber = txtMotorNumbe.Text.ToString().Trim(); string strVehicleAlterTypeCase = txtVehicleAlterTypeCase.Text.ToString().Trim(); string strRemarks = txtRemarks.Text.ToString().Trim(); int intStationID = Convert.ToInt32(cboStation.SelectedValue); int intVehicleStateID = Convert.ToInt32(cboOutVehicleState.SelectedValue); string strClasses = txtClasses.Text.ToString().Trim(); int LineID = (int)(cboLine.SelectedValue); int OpenVehicleSiteID = Convert.ToInt32(cboStation.SelectedValue); int EndVehicleSiteID = Convert.ToInt32(cboArriveStation.SelectedValue); Boolean boolSafeCheckNo = false; Boolean DeductFeeNo = false; //赋值为false DataTable dt = myfrmVehicleNewsClient.btnInsert_Click_Insert_VehicleNews(strVehicleBlockNumber, dtOpenVehicleTime, intVehicleTypeID, strWhetherCheck, intDriverID, intDeputyDriverOneID, intDeputyDriverTwoID, strSeatNumber, strAddSeatNumber, strMotorTypeNumber, strMotorNumber, strVehicleAlterTypeCase, strRemarks, intStationID, intVehicleStateID, strClasses, LineID, OpenVehicleSiteID, EndVehicleSiteID, boolSafeCheckNo, DeductFeeNo).Tables[0]; int intdgvVehicleNewsSuccess = Convert.ToInt32(dt.Rows[0][0]);//执行新增方法 if (intdgvVehicleNewsSuccess > 0) { int intVehicleStateOneID = 2; int intVehicleID = intdgvVehicleNewsSuccess; int intUserTo = 1; int j = myfrmSettleAccountsClient.frmSettleAccounts_InsertOutVehicle(intVehicleStateOneID, dtOutVehicleTime, intVehicleID, intUserTo); MessageBox.Show("ok!新增数据成功!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); } else { MessageBox.Show("NO!新增失败了!!!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); return; } } catch { MessageBox.Show("新增数据有误,请查看新增代码!!!"); } } } #endregion #region 修改车辆信息功能 private void btnUpdate_Click(object sender, EventArgs e) { if (txtClasses.Text == "")//判断文本是否为空 { MessageBox.Show("注意!请选择一行数据来右键修改!!!"); return; } if (MessageBox.Show("您确定要修改:" + txtClasses.Text + "班次信息?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { try { string strVehicleBlockNumber = txtVehicleBlockNumber.Text.ToString().Trim();//获取对应数据 DateTime dtOpenVehicleTime = Convert.ToDateTime(dtpRegisterDate.Text.ToString().Trim()); int intVehicleTypeID = Convert.ToInt32(cboVehicleType.SelectedValue); //获取下拉框选择时所对应的ID string strWhetherCheck = cboWhetherCheck.Text.ToString().Trim(); int intDriverID = PublicStaticObject.intDriverID; //赋值 int intDeputyDriverOneID = PublicStaticObject.intDeputyDriverOneID; int intDeputyDriverTwoID = PublicStaticObject.intDeputyDriverTwoID; string strSeatNumber = txtSeatNumber.Text.ToString().Trim();//获取值 string strAddSeatNumber = txtAddSeatNumber.Text.ToString().Trim(); string strMotorTypeNumber = txtMotorTypeNumber.Text.ToString().Trim(); string strMotorNumber = txtMotorNumbe.Text.ToString().Trim(); string strVehicleAlterTypeCase = txtVehicleAlterTypeCase.Text.ToString().Trim(); string strRemarks = txtRemarks.Text.ToString().Trim(); int intStationID = Convert.ToInt32(cboStation.SelectedValue); int intVehicleStateID = Convert.ToInt32(cboOutVehicleState.SelectedValue); string strClasses = txtClasses.Text.ToString().Trim(); int intVehicleID = PublicStaticObject.intVehicleThreeID; int LineID = (int)(cboLine.SelectedValue); int OpenVehicleSiteID = Convert.ToInt32(cboStation.SelectedValue); int EndVehicleSiteID = Convert.ToInt32(cboArriveStation.SelectedValue); int intUpdatedgvVehicleNewsSuccess = myfrmVehicleNewsClient.btnUpdate_Click_Update_VehicleNews(strVehicleBlockNumber, dtOpenVehicleTime, intVehicleTypeID, strWhetherCheck, intDriverID, intDeputyDriverOneID, intDeputyDriverTwoID, strSeatNumber, strAddSeatNumber, strMotorTypeNumber, strMotorNumber, strVehicleAlterTypeCase, strRemarks, intStationID, intVehicleStateID, strClasses, intVehicleID, LineID, OpenVehicleSiteID, EndVehicleSiteID);//执行修改方法 if (intUpdatedgvVehicleNewsSuccess > 0) { MessageBox.Show("ok!修改" + txtClasses.Text + "班次信息成功!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); } else { MessageBox.Show("NO!修改失败了!!!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); return; } } catch { MessageBox.Show("您确定已把数据绑定完成了?"); } } } #endregion #region 报废车辆信息功能 private void btnDelete_Click(object sender, EventArgs e) { try { if (PublicStaticObject.intVehicleThreeID <= 0) //判断公共ID条件是否满足 { MessageBox.Show("对不起!请选择数据后才能报废或者按右键报废!!!"); return; } DialogResult dr = MessageBox.Show("您确定要报废:" + txtClasses.Text + "该班次?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { int DeleteCount = myfrmVehicleNewsClient.btnDelete_Click_Delete_VehicleNews(PublicStaticObject.intVehicleThreeID);//执行报废方法 if (DeleteCount > 0) //判断条件 { MessageBox.Show("OK!报废成功!!!"); frmVehicleNews_Load(null, null); //调用load事件方法 } else { MessageBox.Show("NO!报废失败!!!"); frmVehicleNews_Load(null, null); return; } } } catch { MessageBox.Show("报废数据有误,请查看代码!!!"); } } #endregion #region 右键功能(新增/修改/删除)功能 private void 新增ToolStripMenuItem_Click(object sender, EventArgs e) { btnInsert_Click(null, null);//调用新增方法 } private void 修改ToolStripMenuItem_Click(object sender, EventArgs e) { if (PublicStaticObject.intVehicleThreeID <= 0) //判断是否成立 { MessageBox.Show("注意!请选择一行数据来绑定修改!!!"); return; } try { DataTable dtVehicleNews = myfrmVehicleNewsClient.frmVehicleNews_Load_Update_SelectVehicleNewsID(PublicStaticObject.intVehicleThreeID).Tables[0]; //获取数据 txtClasses.Text = dtVehicleNews.Rows[0]["Classes"].ToString().Trim();//绑定对应的文本值 dtpRegisterDate.Value = Convert.ToDateTime(dtVehicleNews.Rows[0]["OpenVehicleTime"].ToString().Trim());//绑定对应的文本值 txtVehicleBlockNumber.Text = dtVehicleNews.Rows[0]["VehicleBlockNumber"].ToString().Trim();//绑定对应的文本值 cboVehicleType.Text = dtVehicleNews.Rows[0]["VehicleTypeName"].ToString().Trim();//绑定对应的文本值 cboWhetherCheck.Text = dtVehicleNews.Rows[0]["WhetherCheck"].ToString().Trim();//绑定对应的文本值 txtDriverNumber.Text = dtVehicleNews.Rows[0]["DriverNumber"].ToString().Trim();//绑定对应的文本值 txtDriver.Text = dtVehicleNews.Rows[0]["DriverName"].ToString().Trim(); txtDriverPhone.Text = dtVehicleNews.Rows[0]["DriverPhone"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverOneNumber.Text = dtVehicleNews.Rows[0]["DeputyDriverOneNumber"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverOne.Text = dtVehicleNews.Rows[0]["DeputyDriverOneName"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverOnePhone.Text = dtVehicleNews.Rows[0]["DeputyDriverOnePhone"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverTwoNumber.Text = dtVehicleNews.Rows[0]["DeputyDriverTwoNumber"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverTwo.Text = dtVehicleNews.Rows[0]["DeputyDriverTwoName"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverTwoPhone.Text = dtVehicleNews.Rows[0]["DeputyDriverTwoPhone"].ToString().Trim();//绑定对应的文本值 txtSeatNumber.Text = dtVehicleNews.Rows[0]["SeatNumber"].ToString().Trim();//绑定对应的文本值 txtAddSeatNumber.Text = dtVehicleNews.Rows[0]["AddSeatNumber"].ToString().Trim();//绑定对应的文本值 txtMotorTypeNumber.Text = dtVehicleNews.Rows[0]["MotorTypeNumber"].ToString().Trim();//绑定对应的文本值 txtMotorNumbe.Text = dtVehicleNews.Rows[0]["MotorNumber"].ToString().Trim();//绑定对应的文本值 txtVehicleAlterTypeCase.Text = dtVehicleNews.Rows[0]["VehicleAlterTypeCase"].ToString().Trim();//绑定对应的文本值 txtRemarks.Text = dtVehicleNews.Rows[0]["Remarks"].ToString().Trim();//绑定对应的文本值 cboStation.Text = dtVehicleNews.Rows[0]["StationName"].ToString().Trim();//绑定对应的文本值 cboOutVehicleState.Text = dtVehicleNews.Rows[0]["VehicleStateName"].ToString().Trim();//绑定对应的文本值 cboLine.Text = dtVehicleNews.Rows[0]["LineName"].ToString().Trim();//绑定对应的文本值 cboArriveStation.Text = dtVehicleNews.Rows[0]["EndVehicleSite"].ToString().Trim();//绑定对应数据用于修改 } catch { MessageBox.Show("注意!数据绑定有误,请查看代码!!!"); } } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { btnDelete_Click(null, null);//调用删除方法 } #endregion #region 添加座位功能 private void btnPlaySeat_Click(object sender, EventArgs e) { if (PublicStaticObject.intVehicleThreeID > 0) //判断条件 { frmASeat myfrmASeat = new frmASeat();//实例化窗体 myfrmASeat.ShowDialog();//显示在最前面进行下一步操作 } else { MessageBox.Show("请先点击选择一项绑定车辆信息!"); } } #endregion 右键添加座位调用方法,可以调用添加座位方法 private void 添加座位ToolStripMenuItem_Click(object sender, EventArgs e) { if (PublicStaticObject.intVehicleThreeID > 0) //判断公共ID是否成立 { frmASeat myfrmASeat = new frmASeat();//实例化窗体 myfrmASeat.ShowDialog();//显示在最前面 } else { MessageBox.Show("请先点击选择一项绑定车辆信息!"); } } private void 安检ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要安检:" + txtClasses.Text + "该班次车辆?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); if (str == true) { MessageBox.Show("对不起!已经安检过了,不用重复安检!!!"); return; } else { if (myfrmVehicleNewsClient.frmVehicleNews_CheckUpdate(PublicStaticObject.intVehicleThreeID) > 0) //判断方法添加是否成立 { MessageBox.Show("安检:" + txtClasses.Text + "班次成功!"); frmVehicleNews_Load(null, null); } else { MessageBox.Show("安检失败!"); frmVehicleNews_Load(null, null); } } } } catch { MessageBox.Show("安检数据有误,请查看代码!"); } } private void 出车ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要把:"+ txtClasses.Text +"班次出车?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { int intOutVehicleID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["车辆状态ID"].Value); //绑定ID if (intOutVehicleID == 3) { MessageBox.Show("此车已经出过了!请重新选择还没出车的数据!!!"); return; //返回 } else { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); //判断条件是否成立 if (str == true) { if (dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value != null) { int intVehicle = (int)dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value; DataTable dt = myfrmVehicleNewsClient.frmVehicleNews_OutVehicleNows(intVehicle).Tables[0]; int intOutVehicleOneID = (int)dt.Rows[0]["OutVehicleID"]; if (myfrmVehicleNewsClient.frmVehicleNews_OutVehicle(PublicStaticObject.intVehicleThreeID, intOutVehicleOneID) > 0) { MessageBox.Show(txtClasses.Text + "班次出车成功!"); frmVehicleNews_Load(null, null); } else { MessageBox.Show("出车失败!"); frmVehicleNews_Load(null, null); } } } else { MessageBox.Show("请先安检!"); } } } } catch { MessageBox.Show("出车数据有误,请查看出车代码!"); } } #region 检测dgv是否已存在该班次功能 private void txtClasses_Leave(object sender, EventArgs e) { for (int i = 0; i < dgvVehicleNews.Rows.Count; i++) { string one = dgvVehicleNews.Rows[i].Cells["班次"].Value.ToString().Trim();//循环遍历获取值 if (one == txtClasses.Text.ToString().Trim())//获取的值加以判断 { MessageBox.Show("注意!已存在该班次!"); txtClasses.Text = ""; } } } #endregion #region 检测不同车类型所对应的最大/小座位数功能 private void cboVehicleType_SelectedIndexChanged(object sender, EventArgs e) { txtSeatNumber_Leave(null, null); txtAddSeatNumber_Leave(null, null); //调用方法显现 } #endregion #region 检测不同最大/小座位数所对应的车类型 private void txtSeatNumber_Leave(object sender, EventArgs e) { if (KaiGuan == true) //开关判断 { if (cboVehicleType.Text == "大型车")//文本判断 { if (txtSeatNumber.Text != "") { if (Convert.ToInt32(txtSeatNumber.Text) > 60) { MessageBox.Show("注意!已超过大型车的最大座位数:60位!"); //提示框内容 txtSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtSeatNumber.Text) < 40) { MessageBox.Show("注意!已低于大型车的最小座位数:40位!"); txtSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "中型车") { if (txtSeatNumber.Text != "") { if (Convert.ToInt32(txtSeatNumber.Text) > 50) { MessageBox.Show("注意!已超过中型车的最大座位数:50位!"); txtSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtSeatNumber.Text) < 30) { MessageBox.Show("注意!已低于中型车的最小座位数:30位!"); txtSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "小型车") { if (txtSeatNumber.Text != "") { if (Convert.ToInt32(txtSeatNumber.Text) > 40) { MessageBox.Show("注意!已超过小型车的最大座位数:40位!"); txtSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtSeatNumber.Text) < 20) { MessageBox.Show("注意!已低于小型车的最小座位数:20位!"); txtSeatNumber.Text = ""; return; } } } } } #endregion #region 检测不同最大/小加座数所对应的车类型功能 private void txtAddSeatNumber_Leave(object sender, EventArgs e) { if (KaiGuan == true) //开关判断 { if (cboVehicleType.Text == "大型车")//文本判断 { if (txtAddSeatNumber.Text != "") { if (Convert.ToInt32(txtAddSeatNumber.Text) > 6) //判断条件是否成立 { MessageBox.Show("已超过大型车的最大加座数:6位!"); //条件成立时,出现提示框,带有提示内容 txtAddSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtAddSeatNumber.Text) < 0) { MessageBox.Show("已低于大型车的最小加座数:0位!"); txtAddSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "中型车") { if (txtAddSeatNumber.Text != "") { if (Convert.ToInt32(txtAddSeatNumber.Text) > 4) { MessageBox.Show("已超过中型车的最大加座数:4位!"); txtAddSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtAddSeatNumber.Text) < 0) { MessageBox.Show("已低于中型车的最小加座数:0位!"); txtAddSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "小型车") { if (txtAddSeatNumber.Text != "") { if (Convert.ToInt32(txtAddSeatNumber.Text) > 2) { MessageBox.Show("已超过小型车的最大加座数:2位!"); txtAddSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtAddSeatNumber.Text) < 0) { MessageBox.Show("已低于小型车的最小加座数:0位!"); txtAddSeatNumber.Text = ""; return; } } } } } #endregion #region 禁止输入负数功能 private void txtRemarks_KeyPress(object sender, KeyPressEventArgs e) { SYS_PublicStaticClass.txt_GongGong(txtRemarks, e);//调用公共方法 //if (e.KeyChar == '-') //{ // e.Handled = true; //} } #endregion }}
以上是安全检查-车辆信息功能实现步骤:数据库-->BLL-->UIL
----实现功能待续!!!