钟表维修管理系统技术解析(七) 保修记录、条件分页查询
此模块可以查询录入的销售保修单,可以根据日期范围、关键字进行分页查询,可以看单据的详细信息,还可以修改和作废保修单如(图1)所示。
(图1)
单据详细如(图2)所示。
(图2)
从界面上可以看到我们这里用到的控件有
控件名称 |
说明 |
日期控件(DateTimePicker) |
控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。 |
文本(TextBox) |
|
按钮(Button) |
|
数据表格(DataGridView) |
数据库表与关系如(图3)所示:
(图3)
表1: 销售单表(pw_XiaoShouDan)
列名 |
数据类型 |
主键/外键 |
说明 |
XiaoShouDanID |
int |
主键 |
销售单ID |
LuRuYuanID |
int |
外键 |
员工表,员工ID |
XiaoShouMenDianID |
int |
外键 |
备用 |
FuKuanZhuangTaiID |
int |
外键 |
属性明细表,付款状态ID |
KeHuID |
int |
外键 |
客户表,客户ID |
PinPaiID |
int |
外键 |
品牌表,品牌ID |
ZhongBiaoKuanShiID |
int |
外键 |
属性明细表,钟表款式ID |
XiaoShouLeiXingID |
int |
外键 |
属性明细表,销售类型ID |
XiaoShouFangShiID |
int |
外键 |
属性明细表,销售方式ID |
SongHuoFangShiID |
int |
外键 |
属性明细表,送货方式ID |
FuKuanFangShiID |
int |
外键 |
属性明细表,付款方式ID |
FuKuanLeiXingID |
int |
外键 |
属性明细表,付款类型ID |
XiaoShouDanBianHao |
nchar(50) |
销售单自动编号 |
|
JieZhangBianHao |
nchar(50) |
结账单自动编号 |
|
DiKeHao |
nchar(50) |
底壳号 |
|
XiaoShouRiQi |
date |
销售日期 |
|
YingShouJinE |
decimal(18, 4) |
应收金额 |
|
ShiShouJinE |
decimal(18, 4) |
实收金额 |
|
GengXinShiJian |
datetime |
更新时间 |
|
BeiZhu |
nchar(100) |
备注 |
|
BaoFeiYuanYin |
nchar(100) |
报废时填写报废原因 |
|
YouXiaoFou |
bit |
有效否 |
表2: 销售单明细表(pw_XiaoShouDanMingXi)
列名 |
数据类型 |
主键/外键 |
说明 |
XiaoShouDanMingXiID |
int |
主键 |
销售单明细ID |
XiaoShouDanID |
int |
外键 |
销售单表,销售单ID |
ChanPinID |
int |
外键 |
产品表,产品ID |
CangWeiID |
int |
外键 |
仓位表,仓位ID (产品提取处) |
BaoXiuQiID |
int |
外键 |
保修期表,保修期ID |
DanJia |
decimal(18, 4) |
产品销售单价 |
|
ShuLiang |
int |
产品数量 |
|
YiTuiHuoShu |
int |
已退货数(默认为0) |
|
YouXiaoFou |
bit |
有效否 |
|
GengXinShiJian |
datetime |
更新时间 |
|
BeiZhu |
nchar(50) |
备注 |
表3: 销售售后单(pw_XiaoShouShouHouDan)
列名 |
数据类型 |
主键/外键 |
说明 |
XiaoShouShouHouDanID |
int |
主键 |
销售售后单ID |
LuRuYuanID |
int |
外键 |
员工表,员工ID |
XiaoShouDanID |
int |
外键 |
销售单表,销售单ID |
XiaoShouShouHouLeiXingID |
int |
外键 |
属性明细表,销售售后类型ID |
XiaoShouShouHouDanBianHao |
nchar(50) |
销售售后单自动编号 |
|
RiQi |
date |
日期 |
|
JinE |
decimal(18, 4) |
金额 (换货单负数为支出) |
|
GengXinShiJian |
datetime |
更新时间 |
|
YouXiaoFou |
bit |
有效否 |
|
BeiZhu |
nchar(50) |
备注 |
表4: 销售售后单明细(pw_XiaoShouShouHouDanMingXi)
列名 |
数据类型 |
主键/外键 |
说明 |
XiaoShouShouHouDanMingXiID |
int |
主键 |
销售售后单明细ID |
XiaoShouShouHouDanID |
int |
外键 |
销售售后单表,销售售后单ID |
XiaoShouDanMingXiID |
int |
外键 |
销售单明细表,销售单明细ID |
ChanPinID |
int |
外键 |
产品表,产品ID |
DanJia |
decimal(18, 4) |
单价 (换货单负数为支出) |
|
ShuLiang |
int |
产品数量 |
|
GengXinShiJian |
datetime |
更新时间 |
|
YouXiaoFou |
bit |
有效否 |
|
BeiZhu |
nchar(50) |
备注 |
表5:产品资料表(pw_ChanPinZiLiao)
列名 |
数据类型 |
主键/外键 |
说明 |
ChanPinID |
int |
主键 |
产品ID |
LuRuYuanID |
int |
外键 |
录入员ID |
CangKuLeiXingID |
int |
外键 |
仓库类型ID |
ChanPinLeiXingID |
int |
外键 |
产品类型ID |
ChanPinZhongLeiID |
int |
外键 |
产品种类ID |
ChanPinPinPaiID |
int |
外键 |
产品品牌ID |
DanWeiID |
int |
外键 |
单位ID |
ChanPinBianHao |
nchar(10) |
产品编号 |
|
ChanPinMingCheng |
nchar(10) |
产品名称 |
|
CaiGouDanJia |
decimal(18, 2) |
采购单价 |
|
YiJiXiaoShouJia |
decimal(18, 2) |
销售价 |
|
JianJie |
nchar(50) |
简介 |
|
GengXinShiJian |
datetime |
更新时间 |
|
YouXiaoFou |
bit |
有效否 |
表6:员工表(sys_YuanGong)
列名 |
数据类型 |
主键/外键 |
说明 |
YuanGongID |
int |
主键 |
员工ID |
LuRuYuanID |
int |
外键 |
录入员ID |
YuanGongZhuangTaiID |
int |
外键 |
员工状态ID |
MenDianID |
int |
外键 |
门店ID |
ZhiWuID |
Int |
外键 |
职务ID |
JueSeID |
int |
外键 |
角色ID |
YuanGongBianHao |
nchar(50) |
员工编号 |
|
YuanGongXingMing |
nchar(50) |
员工姓名 |
|
XingBie |
nchar(50) |
性别 |
|
JiGuan |
nchar(50) |
籍贯 |
|
XueLi |
nchar(50) |
学历 |
|
ChuShengRiQi |
date |
出生日期 |
|
ShenFenZhengHao |
nchar(18) |
身份证号 |
|
RuZhiRiQi |
data |
入职日期 |
|
RuZhiDiDian |
nchar(50) |
入职地点 |
|
YiDongShouJi |
int |
移动手机 |
|
JiaTingDianHua |
nchar(50) |
家庭电话 |
|
DiXin |
decimal(18, 2) |
底薪 |
|
JiShiFou |
bit |
技术否 |
|
HunFou |
bit |
婚否 |
|
TongXunDiZhi |
nchar(50) |
通讯地址 |
|
BeiZhu |
nchar(50) |
备注 |
|
MiMa |
nchar(50) |
密码 |
表7:客户表(sys_KeHu)
列名 |
数据类型 |
主键/外键 |
说明 |
KeHuID |
int |
主键 |
客户ID |
LuRuYuanID |
int |
外键 |
录入员ID |
KeHuLeiXingID |
int |
外键 |
客户类型ID |
SuoShuMenDianID |
int |
外键 |
所属门店ID |
KeHuBianHao |
decimal(18, 2) |
客户编号 |
|
KeHuXingMing |
Nchar(20) |
客户姓名 |
|
XingBie |
Nchar(10) |
性别 |
|
ShenFenZhengHao |
Nchar(18) |
身份证号 |
|
YiDongShouJi |
Nchar(13) |
移动手机 |
|
JiaTingDianHua |
Nchar(10) |
家庭电话 |
|
ChuShenRiQi |
Date |
出生日期 |
|
TongXunDiZhi |
Date |
通讯地址 |
|
KeHuJiFen |
Nchar(10) |
客户积分 |
|
SuoShuDiFang |
Nchar(10) |
所属地方 |
|
QQHao |
Int |
QQ号 |
|
WeiXinHao |
Nchar(10) |
维修号 |
|
WeiBoHao |
Nchar(10) |
微博号 |
|
GenXinShiJian |
datetime |
更新时间 |
|
BeiZhi |
Nchar(10) |
备注 |
|
YouXiaoFou |
Bit |
有效否 |
表8:当日最大单号数表(DangRiZuiDaDanHaoShu)
列名 |
数据类型 |
主键/外键 |
说明 |
ZuiDaDanHaoShuID |
int |
主键 |
最大单号数ID |
CaiGouDanHao |
int |
采购单号 |
|
CaiGouTuiHuoDanHao |
int |
采购退货单号 |
|
XiaoShouDanHao |
int |
销售单号 |
|
XiaoShouTuiHuoDanHao |
int |
销售退货单号 |
|
XiaoShouBaoXiuDanHao |
int |
销售保修单号 |
|
XiaoShouHuanHuoDanHao |
int |
销售换货单号 |
|
GongDanBianHao |
int |
工单编号 |
|
ChuKuDanHao |
int |
出库单号 |
|
RuKuDanHao |
int |
入库单号 |
|
JieZhangDanHao |
int |
结账单号 |
|
WaiPaiDanJuHao |
int |
外派单据号 |
|
QuBiaoFuKuanDanJuHao |
int |
取表付款单据号 |
|
FuKuanBianHao |
int |
付款单号 |
1、查询功能实现
第一步:数据库的存储过程
CREATE PROCEDURE ShuJuBiaoGe_FenYeChaXun@tblName varchar(4000), -- 表名@strGetFields varchar(4000) = '*', -- 需要返回的列@fldName varchar(255)='''', -- 排序的字段名@PageSize int = 10, -- 页尺寸@PageIndex int = 1, -- 页码@doCount bit output, -- 返回记录总数, 非0 值则返回@OrderType bit = 0, -- 设置排序类型, 非0 值则降序@strWhere varchar(1500) = '''' -- 查询条件(注意: 不要加where)ASdeclare @strSQL varchar(5000) -- 主语句declare @strTmp varchar(110) -- 临时变量declare @temp varchar(100)--截取后的临时变量declare @strOrder varchar(400) -- 排序类型if @doCount != 0beginif @strWhere !=''''set @strSQL = 'select count(*) as Total from ' + @tblName + ' where '+@strWhereelseset @strSQL = 'select count(*) as Total from ' + @tblName + ''end
--以上代码的意思是如果@doCount传递过来的不是,就执行总数统计。以下的所有代码都是@doCount为的情况:elsebeginif @OrderType != 0--升序beginset @strTmp = '<(select min'set @strOrder = ' order by ' + @fldName +' desc'--如果@OrderType不是,就执行降序,这句很重要!endelsebeginset @strTmp = '>(select max'set @strOrder = ' order by ' + @fldName +' asc'endif @PageIndex = 1beginif @strWhere != '''' set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ 'from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrderelseset @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder--如果是第一页就执行以上代码,这样会加快执行速度endelsebegin--以下代码赋予了@strSQL以真正执行的SQL代码set @temp=(select SUBSTRING(@fldName,charindex('.',@fldName,1)+1,len(@fldName)) )set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' where ' + @fldName + '' + @strTmp + '(tblTmp.'+ @temp + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from ' + @tblName + '' + @strOrder + ') as tblTmp)'+ @strOrderif @strWhere != ''''set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' where ' + @fldName + '' + @strTmp + '(tblTmp.'+ @temp + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from ' + @tblName + ' where ' + @strWhere + ' '+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrderend end print @strSQL
exec (@strSQL)
第二步:逻辑层代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;namespace BLL
{public class BLLGongGongFenYe{DALPublic.DALMethod myDALMethod = new DALPublic.DALMethod();public DataTable frmXiaoShouDan_select_TongYongFenYe(string strTblName, string strGetFields,string strFldName, int intPageSize, int intPageIndex,bool blDoCount, bool blOrderType, string strWhere){SqlParameter[] mySqlParameters = {new SqlParameter("@tblName",SqlDbType.VarChar,4000 ),//表名new SqlParameter("@strGetFields",SqlDbType.VarChar,4000 ),//需要返回的列new SqlParameter("@fldName",SqlDbType.VarChar,255 ),//排序的字段名new SqlParameter("@PageSize",SqlDbType.Int ),//页尺寸new SqlParameter("@PageIndex",SqlDbType.Int ),//页码new SqlParameter("@doCount",SqlDbType.Bit ),//返回记录总数, 非 0 值则返回new SqlParameter("@OrderType",SqlDbType.Bit ),//设置排序类型, 非 0 值则降序new SqlParameter("@strWhere",SqlDbType.VarChar,1500 ),//查询条件 (注意: 不要加 where)};mySqlParameters[0].Value = strTblName;mySqlParameters[1].Value = strGetFields;mySqlParameters[2].Value = strFldName;mySqlParameters[3].Value = intPageSize;mySqlParameters[4].Value = intPageIndex;mySqlParameters[5].Value = blDoCount;mySqlParameters[6].Value = blOrderType;mySqlParameters[7].Value = strWhere;DataTable dt = myDALMethod.QueryDataTable("ShuJuBiaoGe_FenYeChaXun", mySqlParameters);return dt;}}
}
第三步:界面层代码,自定义字段、方法
#region 查询所需要的字段string detKaiShiRiQi; //开始日期string detJiShuRiQi; //结束日期 decimal decYueShu; //页数#endregion#region 数据库查询需要的参数,表名,字段名,排序字段,每页的大小,查询第几页,where条件string strTblName = " pw_XiaoShouShouHouDan INNER JOIN pw_XiaoShouDan ON pw_XiaoShouShouHouDan.XiaoShouDanID = pw_XiaoShouDan.XiaoShouDanID INNER JOIN sys_ShuXingMingXi ON pw_XiaoShouDan.FuKuanZhuangTaiID = sys_ShuXingMingXi.ShuXingMingXiID INNER JOIN sys_KeHu ON pw_XiaoShouDan.KeHuID = sys_KeHu.KeHuID INNER JOIN sys_YuanGong ON pw_XiaoShouShouHouDan.LuRuYuanID = sys_YuanGong.YuanGongID";string strGetFields = " pw_XiaoShouShouHouDan.XiaoShouShouHouDanID, LTRIM(RTRIM(pw_XiaoShouShouHouDan.XiaoShouShouHouDanBianHao)) AS XiaoShouShouHouDanBianHao, pw_XiaoShouShouHouDan.RiQi, pw_XiaoShouShouHouDan.JinE, "+ " pw_XiaoShouShouHouDan.GengXinShiJian, pw_XiaoShouShouHouDan.YouXiaoFou, LTRIM(RTRIM(pw_XiaoShouShouHouDan.BeiZhu)) AS BeiZhu, pw_XiaoShouDan.LuRuYuanID, LTRIM(RTRIM(sys_YuanGong.YuanGongXingMing)) AS YuanGongXingMing, "+ " pw_XiaoShouDan.FuKuanZhuangTaiID, LTRIM(RTRIM(sys_ShuXingMingXi.ShuXingMingXiMingCheng)) AS FuKuanZhuangTai, pw_XiaoShouDan.KeHuID, LTRIM(RTRIM(sys_KeHu.KeHuXingMing)) AS KeHuXingMing, LTRIM(RTRIM(sys_KeHu.YiDongShouJi)) AS YiDongShouJi, LTRIM(RTRIM(sys_KeHu.TongXunDiZhi)) AS TongXunDiZhi, "+ " pw_XiaoShouDan.ShiShouJinE, LTRIM(RTRIM(pw_XiaoShouDan.XiaoShouDanBianHao)) AS XiaoShouDanBianHao, pw_XiaoShouShouHouDan.XiaoShouDanID";string strFldName = " pw_XiaoShouShouHouDan.XiaoShouShouHouDanID ";//排序的字段名int intPageSize = 20;//页尺寸int intPageIndex = 1;//页码string strWhere = " pw_XiaoShouShouHouDan.YouXiaoFou=1 AND pw_XiaoShouShouHouDan.XiaoShouShouHouLeiXingID=50 "; //查询条件 (注意: 不要加 where) #endregionBLL.BLLGongGongFenYe myBLLGongGongFenYe = new BLL.BLLGongGongFenYe();#region 查询DataTable ChaXunShuJu(int intXianShiHang, int intDangQianYeShu, bool bolChaXingZhongShu, bool bolDaoXu){strWhere = " pw_XiaoShouShouHouDan.YouXiaoFou=1 AND pw_XiaoShouShouHouDan.XiaoShouShouHouLeiXingID=50 ";//初始化查询条件XiaoShouShouHouLeiXingID=50,销售售后类型ID=50,是保修单detKaiShiRiQi = dtpKaiShi.Value.ToString();//获取开始时间detJiShuRiQi = dtpJeiShu.Value.ToString();//获取结束时间strWhere += " and (pw_XiaoShouShouHouDan.RiQi between'" + detKaiShiRiQi + "'and '" + detJiShuRiQi + "')";//累加筛选条件,大于开始时间,小于结束时间if (txtMoHu.Text != ""){strWhere += " and (pw_XiaoShouShouHouDan.XiaoShouShouHouDanBianHao like '%'+'" + txtMoHu.Text.Trim() + "'+'%' or pw_XiaoShouShouHouDan.BeiZhu like '%'+'" + txtMoHu.Text.Trim() + "'+'%'" +" or sys_YuanGong.YuanGongXingMing like '%'+'" + txtMoHu.Text.Trim() + "'+'%' or sys_ShuXingMingXi.ShuXingMingXiMingCheng like '%'+'" + txtMoHu.Text.Trim() + "'+'%'" +" or sys_KeHu.YiDongShouJi like '%'+'" + txtMoHu.Text.Trim() + "'+'%' or sys_KeHu.TongXunDiZhi like '%'+'" + txtMoHu.Text.Trim() + "'+'%'" +" or sys_KeHu.KeHuXingMing like '%'+'" + txtMoHu.Text.Trim() + "'+'%' or pw_XiaoShouDan.XiaoShouDanBianHao like '%'+'" + txtMoHu.Text.Trim() + "'+'%')";//累加模糊查询内容}decYeShu = Convert.ToDecimal(myBLLGongGongFenYe.frmXiaoShouDan_select_TongYongFenYe(strTblName, strGetFields, strFldName, intPageSize, intPageIndex, true, true, strWhere).Rows[0][0]);//获取查询结果的行数if (decYeShu / intXianShiHang <= Convert.ToInt32(decYeShu / intXianShiHang))//判断有多少页{decYeShu = Convert.ToInt32(decYeShu / intXianShiHang);}else{decYeShu = Convert.ToInt32(decYeShu / intXianShiHang) + 1;}if (intDangQianYeShu > decYeShu)//如果当前页数大于最大页数,则重新赋值为最大页数{intPageIndex = (int)decYeShu;intDangQianYeShu = (int)decYeShu;}if (intPageIndex == 0 || intDangQianYeShu == 0)//如果当前页数为0,则重新赋值为1{intPageIndex = 1;intDangQianYeShu = 1;}lblZhongShu.Text = "/" + decYeShu.ToString();//给页总数文本框赋值txtDangQianYeShu.Text = intDangQianYeShu.ToString();//给当前页数文本框赋值return myBLLGongGongFenYe.frmXiaoShouDan_select_TongYongFenYe(strTblName, strGetFields, strFldName, intXianShiHang, intDangQianYeShu, bolChaXingZhongShu, bolDaoXu, strWhere);//返回查询出来的结果}#endregion
第四步:保修记录窗体的Load事件
private void frmXiaoShouBaoXiu_Select_Load(object sender, EventArgs e){cboYeDaXiao.Text = "20";//每页显示的行数dgvBaoXiuDan.AllowUserToAddRows = false;//设置禁止让用户手动添加行dgvBaoXiuDan.AutoGenerateColumns = false;//设置禁止自动添加列dgvBaoXiuDan.ReadOnly = true;//设置禁止编辑DGV单元格dtpKaiShi.Value = DateTime.Now.AddMonths(-3);//开始时间,默认减去3个月dtpJeiShu.Value = DateTime.Now.AddDays(1);//结束时间,默认加上一天btnChaXun_Click(null, null);//调用查询按钮的单击事件}
第五步:查询按钮的单击事件
private void btnChaXun_Click(object sender, EventArgs e){intPageIndex = 1;//默认为第一页dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);//调用查询方法,把返回的值,赋给DGV}
第六步:首页按钮的单击事件
private void btnShouYe_Click(object sender, EventArgs e){intPageIndex = 1;//跳到第一页dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);}
第七步:上一页按钮的单击事件
private void btnShangYiYe_Click(object sender, EventArgs e){if (intPageIndex <= 1)//如果已经是第一页,则返回(跳出){return;}intPageIndex--;//页数减一dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);}
第八步:下一页按钮的单击事件
private void btnXiaYiYe_Click(object sender, EventArgs e){if (intPageIndex >= decYueShu)//如果是最后一页,则返回(跳出){return;}intPageIndex++;//页数加一dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);}
第九步:尾页按钮的单击事件
private void btnWeiYe_Click(object sender, EventArgs e){intPageIndex = Convert.ToInt32(decYueShu);//把最大页数赋值给当前页数dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);}
第十步:跳转按钮的单击事件
private void btnTiaoZhuan_Click(object sender, EventArgs e){if (txtTiaoZhuanYeShu.Text == "")//如果跳转页数文本框为空,则返回{ return; }if (Convert.ToInt32(txtTiaoZhuanYeShu.Text) > Convert.ToInt32(decYueShu) || Convert.ToInt32(txtTiaoZhuanYeShu.Text) < 1)//判断页数是否在范围内{MessageBox.Show("输入的页数不在范围之内", "提示"); return;}intPageIndex = Convert.ToInt32(txtTiaoZhuanYeShu.Text);//把跳转页数文本框的值转化成整形,并赋值给当前页数dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);}
第十一步:页大小下拉框的下拉框关闭事件
private void cboYeDaXiao_DropDownClosed(object sender, EventArgs e){try{intPageSize = Convert.ToInt32(cboYeDaXiao.Text);//设置每页显示的行数dgvBaoXiuDan.DataSource = ChaXunShuJu(intPageSize, intPageIndex, false, true);}catch { }}
注:此文章只供学习参考,禁止用于商业用途。
钟表维修管理系统技术解析(七) 保修记录、条件分页查询相关推荐
- 钟表维修管理系统技术解析 维修记录(五)
维修记录模块 维修记录就是记录钟表的维修内容和所使用的配件,使用配件时会生成出库记录,记录库存的数量变化.如果单据维修完成,也可以执行完成维修的操作. 实现思路: 当点击维修记录时跳转到维 ...
- 钟表维修管理系统技术解析(四) 销售单录入中的录入数据
录入销售单这个模块,可以录入销售单,如果一个客户同时修多个表,有个再录一条按钮为同一个客户录入多条销售单,最后结账如(图1)所示. (图1) 从界面上可以看到我们这里用到的控件有 控件名称 说明 日期 ...
- 钟表维修管理系统技术解析 工单派工(三)
工单派工模块 工单派工是对工单进行维修师傅分配的操作,就是指定某条工单由某个师傅负责维修,派工可以进行修改(更换维修师傅),每一次派工都会生成派工记录.新的单据选择维修师傅后单据的颜色会变成墨绿色,保 ...
- WCF医院管理系统技术解析(七)体检登记(六)前台收费
WCF医院管理系统技术解析(七)体检登记(六)前台收费 设置好病人的体检项目后,病人就要到前台进行支付体检的相关费用,点击体检登记界面中的 前台收费中的界面效果如图所示: 2.9.8(图57) ...
- WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel)
WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel) 医院支持对各个科室的体检收入,同时也可以查询到每个体检科室收入的审核医生.效果如图所示: 界面用到的控件有: 控件 说 ...
- 海马汽车经销商管理系统技术解析(二)维修收银
海马汽车经销商管理系统技术解析(二)维修收银 维修收银这个模块可以查看已经结算和已经收款的工单.可以通过工单号.车主姓名等条件对工单进行筛选查询.还可以对工单进行收银.刷新操作. 主界面如图(图1)所 ...
- 海马汽车经销商管理系统技术解析(三)应收管理
海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...
- WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表)
WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表) 对于已经完成体检的病人,对其进行体检结果的打印,其体检结果报告打印效果如图: 界面涉及到的控件有: 控件 说明 从工具箱中找到对应的报表控 ...
- 海马汽车经销商管理系统技术解析(五)车辆续保提醒
海马汽车经销商管理系统技术解析(五)车辆续保提醒 车辆续保提醒这个模块会把三天后需要续保的客户及车辆信息显示在车辆续保提醒界面,然后可以对信息进行提醒操作,还有查询.上页.下页操作. 车辆续保提醒主界 ...
- 海马汽车经销商管理系统技术解析(六)顾客生日祝贺
海马汽车经销商管理系统技术解析(六)顾客生日祝贺 顾客生日祝贺模块会把当天生日的顾客信息显示在顾客生日祝贺界面,然后可以对客户进行生日祝贺,还有上页.下页操作. 顾客生日祝贺主界面如图(图1)所示: ...
最新文章
- 将用户添加至sudoers列表
- vagrant 基本命令讲解
- 网易技术干货 | 云信跨平台C++ SDK开发实战
- 以太坊账户 相关知识
- Leetcode每日一题:738.monotone-increasing-digits(单调递增的数字)
- UE4之脚本导入fbx
- win7程序员御用主题包制作
- 如何成为一名出色的演说者
- 小程序 跳转到腾讯文档小程序
- Python批量下载XKCD漫画只需20行命令!
- 深入浅出 SSL/TLS 协议
- 多线程——start()和run()
- 强化学习实战-使用Sarsa算法解决悬崖问题
- Windows 系统重装 - 制作 Win10 启动盘
- LRUCache算法
- 北京天宇联科技有限责任公司-T语言中html页面keys键值的设置
- 有了TeamViewer,在家工作不是难事
- css中overflow属性失效,页面始终不能滚动显示溢出的内容
- ac9260网卡linux,#Linux# 在OpenSUSE下安装9260AC驱动
- 【spark运行报错】