此模块可以查询录入的销售保修单,可以根据日期范围、关键字进行分页查询,可以看单据的详细信息,还可以修改和作废保修单如(图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. 钟表维修管理系统技术解析 维修记录(五)

    维修记录模块 维修记录就是记录钟表的维修内容和所使用的配件,使用配件时会生成出库记录,记录库存的数量变化.如果单据维修完成,也可以执行完成维修的操作. 实现思路:       当点击维修记录时跳转到维 ...

  2. 钟表维修管理系统技术解析(四) 销售单录入中的录入数据

    录入销售单这个模块,可以录入销售单,如果一个客户同时修多个表,有个再录一条按钮为同一个客户录入多条销售单,最后结账如(图1)所示. (图1) 从界面上可以看到我们这里用到的控件有 控件名称 说明 日期 ...

  3. 钟表维修管理系统技术解析 工单派工(三)

    工单派工模块 工单派工是对工单进行维修师傅分配的操作,就是指定某条工单由某个师傅负责维修,派工可以进行修改(更换维修师傅),每一次派工都会生成派工记录.新的单据选择维修师傅后单据的颜色会变成墨绿色,保 ...

  4. WCF医院管理系统技术解析(七)体检登记(六)前台收费

    WCF医院管理系统技术解析(七)体检登记(六)前台收费 设置好病人的体检项目后,病人就要到前台进行支付体检的相关费用,点击体检登记界面中的    前台收费中的界面效果如图所示: 2.9.8(图57) ...

  5. WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel)

    WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel) 医院支持对各个科室的体检收入,同时也可以查询到每个体检科室收入的审核医生.效果如图所示: 界面用到的控件有: 控件 说 ...

  6. 海马汽车经销商管理系统技术解析(二)维修收银

    海马汽车经销商管理系统技术解析(二)维修收银 维修收银这个模块可以查看已经结算和已经收款的工单.可以通过工单号.车主姓名等条件对工单进行筛选查询.还可以对工单进行收银.刷新操作. 主界面如图(图1)所 ...

  7. 海马汽车经销商管理系统技术解析(三)应收管理

    海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...

  8. WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表)

    WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表) 对于已经完成体检的病人,对其进行体检结果的打印,其体检结果报告打印效果如图: 界面涉及到的控件有: 控件 说明 从工具箱中找到对应的报表控 ...

  9. 海马汽车经销商管理系统技术解析(五)车辆续保提醒

    海马汽车经销商管理系统技术解析(五)车辆续保提醒 车辆续保提醒这个模块会把三天后需要续保的客户及车辆信息显示在车辆续保提醒界面,然后可以对信息进行提醒操作,还有查询.上页.下页操作. 车辆续保提醒主界 ...

  10. 海马汽车经销商管理系统技术解析(六)顾客生日祝贺

    海马汽车经销商管理系统技术解析(六)顾客生日祝贺 顾客生日祝贺模块会把当天生日的顾客信息显示在顾客生日祝贺界面,然后可以对客户进行生日祝贺,还有上页.下页操作. 顾客生日祝贺主界面如图(图1)所示:  ...

最新文章

  1. 将用户添加至sudoers列表
  2. vagrant 基本命令讲解
  3. 网易技术干货 | 云信跨平台C++ SDK开发实战
  4. 以太坊账户 相关知识
  5. Leetcode每日一题:738.monotone-increasing-digits(单调递增的数字)
  6. UE4之脚本导入fbx
  7. win7程序员御用主题包制作
  8. 如何成为一名出色的演说者
  9. 小程序 跳转到腾讯文档小程序
  10. Python批量下载XKCD漫画只需20行命令!
  11. 深入浅出 SSL/TLS 协议
  12. 多线程——start()和run()
  13. 强化学习实战-使用Sarsa算法解决悬崖问题
  14. Windows 系统重装 - 制作 Win10 启动盘
  15. LRUCache算法
  16. 北京天宇联科技有限责任公司-T语言中html页面keys键值的设置
  17. 有了TeamViewer,在家工作不是难事
  18. css中overflow属性失效,页面始终不能滚动显示溢出的内容
  19. ac9260网卡linux,#Linux# 在OpenSUSE下安装9260AC驱动
  20. 【spark运行报错】

热门文章

  1. 冰冻三尺,非一日之寒。数据解析——正则解析(2)
  2. 最简行阶梯矩阵生成器
  3. 测试管理工具【禅道】使用详解
  4. 如何使用计算机管理员账户密码是什么意思,电脑管理员密码是什么
  5. 自定义View显示超大图片
  6. java mail 匿名_java开发邮件发送匿名
  7. spotbug常见错误心得
  8. 数据库分析之概念结构设计
  9. makefile终极目标
  10. IT人物TOP100英雄人物榜