客运综合管理系统项目解析-领导查询(模块)-废票查询
2015-06-04 21:17
369 查看
2.4-3 废票查询
废票查询是基于售票管理-废票模块的基础的一个功能,记录着由于各种原因所造成废票的废票记录明细信息,可以根据多条件查询相关废票,也可以更详细知道售票信息,功能如下图2.4-3从界面上可以看到我们这里用到工具箱的控件有:
控件名称 | 说明 |
容器控件(框) GroupBox | 每个控件都可以根据需要的功能更改其属性,右键查看.也可以进行编辑事件-->找到一个闪电图标点击查看需要的事件,例如:查询按钮(btnSrean)是修改过按钮文本Text属性的重命名! btnSrean_Click这是单击查询事件,还有很多的事件根据项目需求找到来编辑. |
公共控件(单选框)CheckBox | |
公共控件(文字描写) Label | |
公共控件(按钮)Button | |
公共控件(日期)DateTimePicker | |
公共控件(文本框)TextBox | |
所有Windows窗体(dgv)DataGridView | |
公共控件(下拉框)ComboBox |
第一步:数据库
1、 表与表关系(图2.4-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 | 安检否 |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
StationID | int - Identity | 主键 | 站点ID |
StationNumber | char (100) | 站点编号 | |
StationName | char (100) | 站点名称 | |
WindowID | int | 外键 | 窗口ID |
StopNo | bit | 调用否 |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
ASeatNumberID | int - Identity | 主键 | 座号ID |
ASeatNumber | char (10) | 座号 | |
VehicleID | int | 外键 | 车辆ID |
SeatStateID | int | 外键 | 座位状态ID |
UserNo | bit | 使用否 | |
LinkNo | bit | 连接否 |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
TicketNumberID | int - Identity | 主键 | 票号ID |
TicketNumber | char (100) | 票号 | |
ASeatNumberID | int | 外键 | 座号ID |
UserNo | bit | 使用否 |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
BillID | int - Identity | 主键 | 票据ID |
TicketNumber | char (100) | 票号 | |
GetOnStation | char (100) | 上车站 | |
GetOffStation | char (100) | 下车站 | |
RunningWaterNo | bit | 流水否 | |
BillTypeID | int | 外键 | 票据类型ID |
BillStatusID | int | 外键 | 票据状态ID |
SellTicKetTime | datetime | 售票时间 | |
SellTicketSatffID | int | 外键 | 售票员ID |
ASeatNumberID | int | 外键 | 座号ID |
SellTicKetYuan | decimal (18, 3) | 售票价 | |
CheckTicketID | int | 外键 | 检票ID |
TicketNumberID | int | 外键 | 票号ID |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
BillTypeID | int - Identity | 主键 | 票据类型 |
BillTypeName | char (100) | 票据类型MC | |
TicketPrice | decimal (18, 3) | 票价 |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
AbolishTicketID | int - Identity | 主键 | 废票ID |
AbolishTicketCause | char (100) | 废票原因 | |
BillID | int | 外键 | 票据ID |
SatffID | int | 外键 | 员工ID |
AbandonTicketTime | datetime | 废票时间 |
主要包含如下字段信息:(说明)
列名 | 数据类型 | 主键/外键 | 说明 |
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) | 相片 |
数据库对应逻辑层(BLL)和界面层(UIL)文件夹:
LeadDemand_frmAbolishTicketSearch(废票查询窗体和对应的类的存储过程)
USE [客运综合管理系统2015] GO /****** Object: StoredProcedure [dbo].[LeadDemand_frmAbolishTicketSearch] Script Date: 06/02/2015 15:17:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ALTER PROCEDURE [dbo].[LeadDemand_frmAbolishTicketSearch]--[领导查询-废票查询] @Type CHAR(200)='' AS BEGIN IF @Type='frmAbolishTicketSearch_Load_cboAbolishTicketStaff'--绑定cboAbolishTicketStaff BEGIN SELECT StaffID, LTRIM(RTRIM(StaffName))AS StaffName FROM StaffList END IF @Type='frmAbolishTicketSearch_Load_dgvAbolishTicket'--绑定dgvAbolishTicket BEGIN SELECT ASeatNumberList.ASeatNumberID, VehicleList.VehicleID,LTRIM(RTRIM(VehicleList.VehicleBlockNumber))AS VehicleBlockNumber, LTRIM(RTRIM(ASeatNumberList.ASeatNumber))AS ASeatNumber, LTRIM(RTRIM(BillList.GetOffStation))AS GetOffStation, LTRIM(RTRIM(BillList.GetOnStation))AS GetOnStation, LTRIM(RTRIM(BillTypeList.BillTypeName))AS BillTypeName, LTRIM(RTRIM(BillList.SellTicKetYuan))AS SellTicKetYuan, BillList.SellTicKetTime, LTRIM(RTRIM(StaffList.StaffName))AS StaffName, LTRIM(RTRIM(VehicleList.Classes))AS Classes, VehicleList.OpenVehicleTime, StationList.StationID AS OpenVehicleSiteID, LTRIM(RTRIM(StationList.StationName)) AS OpenVehicleSite, StationList_1.StationID AS EndVehicleSiteID, LTRIM(RTRIM(StationList_1.StationName)) AS EndVehicleSite, LTRIM(RTRIM(TicketNumberList.TicketNumber))AS TicketNumber, AbolishTicketList.BillID, StaffList_1.StaffID, LTRIM(RTRIM(StaffList_1.StaffName)) AS StaffNameOne, AbolishTicketList.AbandonTicketTime, LTRIM(RTRIM(AbolishTicketList.AbolishTicketCause))AS AbolishTicketCause, TicketNumberList.TicketNumberID FROM ASeatNumberList INNER JOIN VehicleList ON ASeatNumberList.VehicleID = VehicleList.VehicleID INNER JOIN BillList ON ASeatNumberList.ASeatNumberID = BillList.ASeatNumberID INNER JOIN BillTypeList ON BillList.BillTypeID = BillTypeList.BillTypeID INNER JOIN StaffList ON BillList.SellTicketSatffID = StaffList.StaffID INNER JOIN StationList ON VehicleList.OpenVehicleSiteID = StationList.StationID INNER JOIN StationList AS StationList_1 ON VehicleList.EndVehicleSiteID = StationList_1.StationID INNER JOIN AbolishTicketList ON BillList.BillID = AbolishTicketList.BillID INNER JOIN StaffList AS StaffList_1 ON AbolishTicketList.SatffID = StaffList_1.StaffID INNER JOIN TicketNumberList ON BillList.TicketNumberID = TicketNumberList.TicketNumberID ORDER BY AbolishTicketList.AbandonTicketTime DESC--数据按最新日期排序 END END
第二步:服务端BLL(逻辑层)写方法<---调用数据库代码:
对应文件夹: LeadDemand_frmAbolishTicketSearch.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客运综合管理系统.LeadDemand { [ServiceContract]//添加服务标签 public class frmAbolishTicketSearch { DALPublic.DALMethod myDALMethod = new DALPublic.DALMethod(); #region 绑定cboAbolishTicketStaff方法 [OperationContract]//添加行为标签 public DataSet frmAbolishTicketSearch_Load_cboAbolishTicketStaff()//自定义方法名称 { SqlParameter[] mySqlParameters = { new SqlParameter("@Type", SqlDbType.Char), }; mySqlParameters[0].Value = "frmAbolishTicketSearch_Load_cboAbolishTicketStaff";//对应数据库名称 DataTable dt = myDALMethod.QueryDataTable("LeadDemand_frmAbolishTicketSearch", mySqlParameters); DataSet ds = new DataSet(); ds.Tables.Add(dt); return ds;//返回值 } #endregion #region 绑定dgvAbolishTicket方法 [OperationContract]//添加行为标签 public DataSet frmAbolishTicketSearch_Load_dgvAbolishTicket()//自定义方法名称 { SqlParameter[] mySqlParameters = { new SqlParameter("@Type", SqlDbType.Char), }; mySqlParameters[0].Value = "frmAbolishTicketSearch_Load_dgvAbolishTicket";//对应数据库名称 DataTable dt = myDALMethod.QueryDataTable("LeadDemand_frmAbolishTicketSearch", mySqlParameters); DataSet ds = new DataSet(); ds.Tables.Add(dt); return ds;//返回值 } #endregion } }
第三步:客户端UIL(界面层)写调用方法<---调用BLL(逻辑层)代码:
对应文件夹: LeadDemand_frmAbolishTicketSearch.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.LeadDemand { public partial class frmAbolishTicketSearch : Form { public frmAbolishTicketSearch() { InitializeComponent(); } public delegate void ChangeFormColor(bool topmost);//自定义方法调用 public delegate void ChangeFormColor1(bool topmost1);//自定义方法调用 public event ChangeFormColor ChangeColor;//自定义方法调用 public event ChangeFormColor1 ChangeColor1;//自定义方法调用窗体 BLL客运综合管理系统.LeadDemand.frmAbolishTicketSearch.frmAbolishTicketSearchClient myfrmAbolishTicketSearchClient = new BLL客运综合管理系统.LeadDemand.frmAbolishTicketSearch.frmAbolishTicketSearchClient();//实例化调用BLL方法 private void frmFeiPiaoGuanLi_FormClosing(object sender, FormClosingEventArgs e) { ChangeColor1(true);//开关 ChangeColor(true); } #region frmAbolishTicketSearch_Load事件功能 DataTable dtdgvAbolishTicket;//声明一个全局变量 private void frmAbolishTicketSearch_Load(object sender, EventArgs e) { DataTable dtcboAbolishTicketStaff=myfrmAbolishTicketSearchClient.frmAbolishTicketSearch_Load_cboAbolishTicketStaff().Tables[0];//绑定数据
cboAbolishTicketStaff.DataSource = dtcboAbolishTicketStaff;//下拉框绑定数据方法 cboAbolishTicketStaff.DisplayMember = "StaffName"; cboAbolishTicketStaff.ValueMember = "StaffID"; cboAbolishTicketStaff.SelectedValue = -1;
dtdgvAbolishTicket=myfrmAbolishTicketSearchClient.frmAbolishTicketSearch_Load_dgvAbolishTicket().Tables[0]; dgvReturnATicketRecord.DataSource = dtdgvAbolishTicket;//DGV绑定数据 this.dgvReturnATicketRecord = SYS_PublicStaticClass.SetDgv(dgvReturnATicketRecord);//设置dgv序号 this.dgvReturnATicketRecord.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;//设置dgv三维凹陷边框 this.dgvReturnATicketRecord.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv列标题居中 this.dgvReturnATicketRecord.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv单元格内容居中
dtpAbolishTicketDate.Format = DateTimePickerFormat.Custom;//设置时间格式2015-04-20 10:46:00 dtpAbolishTicketDate.CustomFormat = "yyyy-MM-dd HH:mm:ss"; dtpAbolishTicketDateOne.Format = DateTimePickerFormat.Custom; dtpAbolishTicketDateOne.CustomFormat = "yyyy-MM-dd HH:mm:ss";
string[] strtxtTicketNumber = new string[dtdgvAbolishTicket.Rows.Count]; for (int i = 0; i < dtdgvAbolishTicket.Rows.Count; i++) { strtxtTicketNumber[i] = dtdgvAbolishTicket.Rows[i]["TicketNumber"].ToString().Trim(); } txtTicketNumber.AutoCompleteSource = AutoCompleteSource.CustomSource;//设置票号自动完成源方法 txtTicketNumber.AutoCompleteCustomSource.AddRange(strtxtTicketNumber); txtTicketNumber.AutoCompleteMode = AutoCompleteMode.SuggestAppend; } #endregion
#region 多条件查询功能:btnSearch_Click单击事件 private void btnSearch_Click(object sender, EventArgs e) { DataView dvAbolishTicket = new DataView(dtdgvAbolishTicket);//实例化调用数据 DateTime dtAbolishTicketDate = dtpAbolishTicketDate.MinDate;//获取日期最小值 DateTime dtAbolishTicketDateOne = dtpAbolishTicketDateOne.MaxDate;//获取日期最大值 string strTicketNumber = ""; string strAbolishTicketStaff = "";//声明一个变量并赋值
if (chkAbolishTicketDate.Checked == true)//判断单选框是否选择 { dtAbolishTicketDate = dtpAbolishTicketDate.Value;//获取日期文本值 dtAbolishTicketDateOne = dtpAbolishTicketDateOne.Value;//获取日期文本值 } if (txtTicketNumber.Text != "")//判断文本框是否为空 { strTicketNumber = txtTicketNumber.Text.ToString().Trim();//获取文本值 } if (cboAbolishTicketStaff.Text != "")//判断下拉框是否为空 { strAbolishTicketStaff = cboAbolishTicketStaff.Text.ToString().Trim();//获取值 } dvAbolishTicket.RowFilter = "AbandonTicketTime>='" + dtAbolishTicketDate + "'AND AbandonTicketTime<='" + dtAbolishTicketDateOne + "'AND TicketNumber LIKE'%" + strTicketNumber + "%'AND StaffName LIKE'%" + strAbolishTicketStaff + "%'"; dgvReturnATicketRecord.DataSource = dvAbolishTicket.ToTable();//返回数据查询信息 } #endregion } }
以上是领导查询-废票查询功能实现步骤:数据库-->BLL-->UIL
----实现功能待续!!!
以上仅供学习参考,禁止商业用途!!!
相关文章推荐
- 求两个整数的最大公约数及其应用
- UIScrollView
- bzoj2801
- 为什么有时全表扫描比通过索引扫描效率更高 (转)
- Java I/O : Bit Operation 位运算
- UITableView固定表头
- 动态添加拍照图片、本地图片以及文件
- LeetCode:Reverse Words in a String
- Microsoft.Office.Access数据库引擎无法打开文件
- hibernate更新
- Java I/O : Bit Operation 位运算
- 使用Highcharts制作系统报表
- War-shall 算法 【求传递闭包】 离散数学记录
- ubuntu下mysql中文乱码问题完美解决
- sgu 176 上下界网络流最小可行流带输出方案
- 第一章 计算机系统概论
- HDU 2476 - String painter(区间DP)
- 面试题:在9个点上画十条直线,每条直线上至少三个点
- 【leetcode】Contains Duplicate II
- Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded,QSqlDatabase: available drivers: QSQLITE QMYSQL