2.3-4 出站检查查询
安全检查-出站检查查询是是基础数据的一个记录查询,功能如图2.3-4
从界面上可以看到我们这里用到工具箱的控件有:
控件名称 | 说明 |
容器控件(框)GroupBox | 每个控件都可以根据需要的功能更改其属性,右键查看.也可以进行编辑事件-->找到一个闪电图标点击查看需要的事件,例如:查询按钮(btnSrean)是修改过按钮文本Text属性的重命名! btnSrean_Click这是单击查询事件,还有很多的事件根据项目需求找到来编辑.
|
公共控件(单选框)CheckBox | |
公共控件(文字描写)Label | |
公共控件(按钮)Button | |
公共控件(日期)DateTimePicker | |
公共控件(文本框)TextBox | |
所有Windows窗体(dgv)DataGridView | |
公共控件(下拉框)ComboBox | |
公共控件(显示图像)PictureBox |
|
出站检查查询情况功能实现:
第一步:数据库
1、 表与表关系(图2.3-4)
从上面可以知道用到的表有:
表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:出车表(OutVehicleList)
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
OutVehicleID | int - Identity | 主键 | 出车ID |
VehicleStateID | int | 外键 | 车辆类型ID |
OutVehicleTime | datetime |
| 出车时间 |
VehicleID | int | 外键 | 车辆ID |
UserTo | int |
| 有用否 |
下面开始编写数据库储存过程:
数据库对应逻辑层(BLL)和界面层(UIL)文件夹:SafetyCheck_frmOutStopDemand(出站检查查询窗体和对应的类的存储过程)
USE [客运综合管理系统2015]
GO
/****** Object: StoredProcedure [dbo].[SafetyCheck_frmOutStopDemand] Script Date: 06/01/2015 08:45:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SafetyCheck_frmOutStopDemand]--[安全检查]
@Type CHAR(200)=''
AS
BEGIN
IF @Type='frmOutStopDemand_Load_dgvOutStopDemand'--dgv查询
BEGIN
SELECT VehicleList.VehicleID, OutVehicleList.OutVehicleTime, LTRIM(RTRIM(VehicleList.VehicleBlockNumber))AS VehicleBlockNumber, LTRIM(RTRIM(VehicleStateList.VehicleStateName))AS VehicleStateName,
LTRIM(RTRIM(StationList.StationName))AS StationName, LTRIM(RTRIM(LineList.LineName))AS LineName, LTRIM(RTRIM(VehicleList.AddSeatNumber))AS AddSeatNumber, LTRIM(RTRIM(VehicleList.Classes))AS Classes,
LTRIM(RTRIM(StationList_1.StationName)) AS OpenStationName, LTRIM(RTRIM(StationList_2.StationName)) AS EndStationName, LTRIM(RTRIM(VehicleList.SeatNumber))AS SeatNumber, LTRIM(RTRIM(VehicleList.WhetherCheck))AS WhetherCheck,
VehicleList.SafeCheckNo, LTRIM(RTRIM(VehicleList.Remarks))AS Remarks
FROM VehicleList 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
OutVehicleList ON VehicleList.VehicleID = OutVehicleList.VehicleID 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 OutVehicleList.UserTo<>3
ORDER BY OutVehicleList.OutVehicleTime DESC--数据按日期最新排序
END
END
第二步:服务端BLL(逻辑层)写方法<---调用数据库代码:
对应文件夹: SafetyCheck_frmOutStopDemand.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 frmOutStopDemand
{
DALPublic.DALMethod myDALMethod = new DALPublic.DALMethod();//实例化调用数据库方法
#region 绑定dgv信息
[OperationContract]//添加行为标签
public DataSet frmOutStopDemand_Load_dgvOutStopDemand()
{
SqlParameter[] mySqlParameters = {
new SqlParameter("@Type", SqlDbType.Char),
};
mySqlParameters[0].Value = "frmOutStopDemand_Load_dgvOutStopDemand";//对应数据库方法名称
DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmOutStopDemand", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds; //返回值
}
#endregion
}
}
第三步:客户端UIL(界面层)写调用方法<---调用BLL(逻辑层)代码:
对应文件夹: SafetyCheck_frmOutStopDemand.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 frmOutStopDemand : Form
{
public frmOutStopDemand()
{
InitializeComponent();
}
BLL客运综合管理系统.SafeCheck.frmOutStopDemand.frmOutStopDemandClient myfrmOutStopDemandClient =
new BLL客运综合管理系统.SafeCheck.frmOutStopDemand.frmOutStopDemandClient();//实例化调用BLL方法
public delegate void ChangeFormColor(bool topmost); //自定义方法使用
public delegate void ChangeFormColor1(bool topmost1); //自定义方法使用
public event ChangeFormColor ChangeColor; //自定义方法使用
public event ChangeFormColor1 ChangeColor1;//自定义方法使用
private void frmChuZhangChaXun_FormClosing(object sender, FormClosingEventArgs e)
{
ChangeColor1(true);
ChangeColor(true);
}
#region frmOutStopDemand_Load事件功能
DataTable dtdgvOutStopDemand;//声明一个全局变量
private void frmOutStopDemand_Load(object sender, EventArgs e)
{
dtdgvOutStopDemand = myfrmOutStopDemandClient.frmOutStopDemand_Load_dgvOutStopDemand().Tables[0];
dgvOutStopDemand.DataSource = dtdgvOutStopDemand;//绑定dgv信息
this.dgvOutStopDemand = SYS_PublicStaticClass.SetDgv(dgvOutStopDemand);//序号
this.dgvOutStopDemand.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;//设置dgv三维凹陷边框
this.dgvOutStopDemand.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv列标题居中
this.dgvOutStopDemand.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv单元格内容居中
string[] strVehicleBlockNumber=new string[dtdgvOutStopDemand.Rows.Count];
for (int i = 0; i < dtdgvOutStopDemand.Rows.Count; i++)
{
strVehicleBlockNumber[i] = dtdgvOutStopDemand.Rows[i]["VehicleBlockNumber"].ToString().Trim();
}
txtVehicleBlockNumber.AutoCompleteSource = AutoCompleteSource.CustomSource;//设置车牌号自动完成源
txtVehicleBlockNumber.AutoCompleteCustomSource.AddRange(strVehicleBlockNumber);
txtVehicleBlockNumber.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
dtpCheckTickeDate.Format = DateTimePickerFormat.Custom;//设置时间格式2015-04-21 11:09:00
dtpCheckTickeDate.CustomFormat = "yyyy-MM-dd HH:mm:ss";
dtpCheckTickeDateOne.Format = DateTimePickerFormat.Custom;
dtpCheckTickeDateOne.CustomFormat = "yyyy-MM-dd HH:mm:ss";
}
#endregion
#region 多条件查询功能:btnSearch_Click单击事件
private void btnSearch_Click(object sender, EventArgs e)
{
DataView dvOutStopDemand = new DataView(dtdgvOutStopDemand);//实例化
DateTime dtCheckTickeDate = dtpCheckTickeDate.MinDate;//获取日期最小值
DateTime dtCheckTickeDateOne = dtpCheckTickeDateOne.MaxDate;//获取日期最大值
string strVehicleBlockNumber = "";//声明变量赋值
if (chkCheckTickeDate.Checked==true)//判断
{
dtCheckTickeDate = dtpCheckTickeDate.Value;//获取日期控件的日期值
dtCheckTickeDateOne = dtpCheckTickeDateOne.Value;
}
if (txtVehicleBlockNumber.Text != null)
{
strVehicleBlockNumber = txtVehicleBlockNumber.Text.ToString().Trim();
}
dvOutStopDemand.RowFilter = "OutVehicleTime>='" + dtCheckTickeDate + "'AND OutVehicleTime<='" +
dtCheckTickeDateOne + "'AND VehicleBlockNumber LIKE'%" + strVehicleBlockNumber + "%'";
dgvOutStopDemand.DataSource = dvOutStopDemand.ToTable();//绑定返回数据查询
}
#endregion
}
}
以上是安全检查-出站检查查询功能实现步骤:数据库-->BLL-->UIL
----实现功能待续!!!