C#Winform菜鸟驿站管理系统-快递信息管理界面多条件查询实现方法

1,具体的页面设计如下,

2, 关于下拉框数据填充实现,站点选择代码实现如下,因为站点加载在很多界面需要用到,所以把加载站点的方法独立出来如下;

 /// <summary>
        /// 加载站点下拉框
        /// </summary>
        /// <param name="cboStations"></param>
        public static void LoadCboStations(ComboBox cboStations, StationBLL statBLL)
        {
            List<StationInfo> stationList01 = statBLL.GetCboStationList();
            stationList01.Insert(0, new StationInfo()
            {
                StationId=0,
                StationName= "请选择站点"
            });
            cboStations.DisplayMember = "StationName";
            cboStations.ValueMember = "StationId";
            cboStations.DataSource = stationList01;
        }

 3,在快递信息管理页面调用加载站点的方法,然后在页面初始化的调用LoadCboStations 该方法

 /// <summary>
        /// 加载站点下拉框
        /// </summary>
        private void LoadCboStations()
        {
            FormUtility.LoadCboStations(cboStations, stationBLL);
        }

 4,快递状态和 取件方式 数据绑定如下;

5,点击查询按钮事件代码如下

/// <summary>
        /// 查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnFind_Click(object sender, EventArgs e)
        {
            FindExpressList();
        }

6,FindExpressList 具体实现方法如下

 private void FindExpressList()
        {
            string keywords = txtkeywords.Text.Trim();
            string expType = tvExpTypes.SelectedNode.Text;//选择节点的文本
            if (expType == "快递类别")
                expType = "";
            int stationId = cboStations.SelectedValue.GetInt();
            string expState = cboStates.Text.Trim();
            if (expState == "全部")
                expState = "";
            string pickWay = cboPickWays.Text.Trim();
            if (pickWay == "全部")
                pickWay = "";
            string expNumber = txtExpNo.Text.Trim();
            string receiver = txtReceiver.Text.Trim();
            string recPhone = txtRecPhone.Text.Trim();
            bool showDel = chkShowDel.Checked;
            int startIndex = uPager1.StartIndex;//当页的开始索引
            int pageSize = uPager1.PageSize;//每页记录数
            dgvExpressList.AutoGenerateColumns = false;
            PageModel<ViewExpressInfo> pageModel = expressBLL.FindExpressList(keywords, expType, stationId, expState, expNumber, receiver, recPhone, pickWay, showDel, startIndex, pageSize);
            if (pageModel.TotalCount > 0)
            {
                dgvExpressList.DataSource = pageModel.PageList;
                uPager1.Record = pageModel.TotalCount;
                uPager1.Enabled = true;
            }
            else
            {
                dgvExpressList.DataSource = null;
                uPager1.Enabled = false;
            }
            SetActBtnsVisible(showDel);

        }

7,左侧类别节点加载,在页面初始化调用

/// <summary>
        /// 类别节点树加载
        /// </summary>
        private void LoadTvExpTypes()
        {
            List<ExpressTypeInfo> expTypeList = expressTypeBLL.GetCboExpTypes(1);
            TreeNode rootNode = new TreeNode() { Name = "0", Text = "快递类别" };
            tvExpTypes.Nodes.Add(rootNode);
            //递归加载节点
            AddTvNode(expTypeList, rootNode, 0);
            tvExpTypes.ExpandAll();
        }

8,页面初始化

 9, DAL层如何实现多条件查询以及分页实现代码如下

 /// <summary>
        /// 分页查询快递列表
        /// </summary>
        /// <param name="keywords"></param>
        /// <param name="expType"></param>
        /// <param name="stationId"></param>
        /// <param name="expState"></param>
        /// <param name="expNumber"></param>
        /// <param name="receiver"></param>
        /// <param name="receivePhone"></param>
        /// <param name="pickWay"></param>
        /// <param name="isDeleted"></param>
        /// <param name="startIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public PageModel<ViewExpressInfo> FindExpressList(string keywords, string expType, int stationId, string expState, string expNumber, string receiver, string receivePhone, string pickWay, int isDeleted, int startIndex, int pageSize)
        {
            string strWhere = $"IsDeleted={isDeleted}";
            if (!string.IsNullOrEmpty(keywords))
            {
                strWhere += " and (ExpNumber like @keywords  or SendAddress  like @keywords or ReceiveAddress   like @keywords  or ExpRemark like @keywords)";
            }
            if (!string.IsNullOrEmpty(expType))
            {
                strWhere += " and ExpType like @expType";
            }
            if (stationId > 0)
            {
                strWhere += " and StationId=" + stationId;
            }
            if (!string.IsNullOrEmpty(expState))
            {
                strWhere += " and ExpState=@expState";
            }
            if (!string.IsNullOrEmpty(pickWay))
            {
                strWhere += " and PickWay=@pickWay";
            }
            if (!string.IsNullOrEmpty(expNumber))
            {
                strWhere += " and ExpNumber like @expNumber";
            }
            if (!string.IsNullOrEmpty(receiver))
            {
                strWhere += " and Receiver = @receiver";
            }
            if (!string.IsNullOrEmpty(receivePhone))
            {
                strWhere += " and ReceiverPhone = @receiverPhone";
            }
            string cols = "ExpId,ExpNumber,ExpType,Receiver,ReceiverPhone,StationName,Sender,SenderPhone,ExpState,EnterTime,PickWay";
            SqlParameter[] paras =
            {
                new SqlParameter("@keywords", $"%{keywords}%"),
                new SqlParameter("@expType", $"%{expType}%"),
                new SqlParameter("@expState", expState),
                new SqlParameter("@expNumber", $"%{expNumber}%"),
                new SqlParameter("@receiver", receiver),
                new SqlParameter("@receiverPhone", receivePhone),
                new SqlParameter("@pickWay", pickWay)
            };
            return GetRowsModelList<ViewExpressInfo>(strWhere, cols, "Id", "ExpId", startIndex, pageSize, paras);
        }
    }
}

BLL层代码如下;

/// <summary>
        /// 分页查询快递信息
        /// </summary>
        /// <param name="keywords"></param>
        /// <param name="expType"></param>
        /// <param name="stationId"></param>
        /// <param name="expState"></param>
        /// <param name="expNumber"></param>
        /// <param name="receiver"></param>
        /// <param name="receivePhone"></param>
        /// <param name="pickWay"></param>
        /// <param name="blShowDel"></param>
        /// <param name="startIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public PageModel<ViewExpressInfo> FindExpressList(string keywords, string expType, int stationId, string expState, string expNumber, string receiver, string receivePhone, string pickWay, bool blShowDel, int startIndex, int pageSize)
        {
            int isDeleted = blShowDel ? 1 : 0;
            return viewExpressDAL.FindExpressList(keywords, expType, stationId, expState, expNumber, receiver, receivePhone, pickWay, isDeleted, startIndex, pageSize);
        }

以上就是综合查询的内容展示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/248756.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

案例064:基于微信小程序的考研论坛设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

cat EOF快速创建一个文件,并写入内容

在linux系统中&#xff0c;如果你有这个需求 vi一个文件 /etc/docker/daemon.json 在这个文件中写入内容 { "registry-mirrors": ["https://iw3lcsa3.mirror.aliyuncs.com","http://10.1.8.151:8082"],"insecure-registries":[&quo…

本地项目添加到gitlab命令操作

gitlab上面创建一个跟项目名同名的文件夹 创建文件夹&#xff0c;填写信息 添加readme文档&#xff0c;先保存下创建的文件夹 回到项目&#xff0c;复制项目的git 地址 然后进入到本地项目的文件夹&#xff0c;如d:/workspace/spring-demo&#xff0c;右键打开git bash弹框 命令…

【深度学习】机器学习概述(二)优化算法之梯度下降法(批量BGD、随机SGD、小批量)

​ 文章目录 一、基本概念二、机器学习的三要素1. 模型a. 线性模型b. 非线性模型 2. 学习准则a. 损失函数b. 风险最小化准则 3. 优化机器学习问题转化成为一个最优化问题a. 参数与超参数b. 梯度下降法梯度下降法的迭代公式具体的参数更新公式学习率的选择 c. 随机梯度下降批量…

提升英语学习效率,尽在Eudic欧路词典 for Mac

Eudic欧路词典 for Mac是一款专为英语学习者打造的强大工具。无论您是初学者还是高级学习者&#xff0c;这款词典都能满足您的需求。 首先&#xff0c;Eudic欧路词典 for Mac具备丰富的词库&#xff0c;涵盖了各个领域的单词和释义。您可以轻松查询并学习单词的意思、用法和例…

金蝶云星空协同开发环境应用内执行单据类型脚本

文章目录 金蝶云星空协同开发环境应用内执行单据类型脚本业务界面查询单据类型表数据导出数据执行数据库脚本单据类型xml检验是否执行成功检查数据库检查业务数据 金蝶云星空协同开发环境应用内执行单据类型脚本 业务界面 查询单据类型表数据 先使用类型中文在单据类型多语言…

扫地机器人测试点

简介&#xff1a;在科技发展的浪潮下&#xff0c;扫地机器人已经成为越来越多家庭的“贴心管家”&#xff0c;助力我们迎战尘埃和杂物。但是&#xff0c;面对市面上五花八门的扫地机器人&#xff0c;以下为一般情况下扫地机器人的功能测试要点。 历史攻略&#xff1a; AI语音…

VSCode如何编辑Markdown文件

VSCode如何编辑Markdown文件 一、安装插件二、常用命令 一、安装插件 需要在VSCode安装一个插件Markdown Theme Kit 二、常用命令 1、CtrlShiftV 预览模式

104基于matlab的人工蜂群数据聚类算法ABCO-K-均值

基于matlab的人工蜂群数据聚类算法ABCO-K-均值。该代码提供了比K-均值算法更准确的结果。关键技术人工蜂群优化&#xff08;ABCO&#xff09;是自然发式优化方法&#xff0c;这是类似于在自然界寻找食物的方式的蜜蜂&#xff0c;以及优化算法搜索最佳的组合优化问题&#xff0c…

HTTP 414错误:请求URI过长,如何避免

在Web开发中&#xff0c;HTTP状态码是用于表示Web服务器响应的各种状态。其中&#xff0c;HTTP 414错误表示请求URI过长&#xff0c;这意味着客户端发送的请求URL超过了服务器所能处理的长度限制。 当请求的URI过长时&#xff0c;服务器可能无法正确处理请求&#xff0c;从而导…

正则表达式:简化模式匹配的利器

正则表达式&#xff1a;简化模式匹配的利器 一、正则表达式简介1.1 正则表达式介绍1.2 正则表达式使用场景 二、正则表达式语法2.1 正则表达式元字符和特性2.2 正则表达式常用匹配 三、正则表达式实战3.1 常见的正则表达式用法3.2 正则表达式的过滤用法3.3 正则表达式的代码用法…

SpringBoot Starter机制(自定义Start案例,实际开发场景中的短信模拟,AOP实现日志打印)

前言&#xff1a; 在我们上一篇博客中&#xff0c;实现Freemarke的增删改查&#xff0c;今天分享的是关于SpringBoot Starter机制-- 1.SpringBoot Starter 1.1.什么是SpringBoot Starter SpringBoot中的starter是一种非常重要的机制(自动化配置)&#xff0c;能够抛弃以前繁杂…

云开发微信小程序实战

随着移动互联网的快速发展&#xff0c;微信小程序作为一种轻量级的应用程序&#xff0c;逐渐成为了企业开展业务和提升用户体验的重要工具。而云开发则为企业提供了高效、安全、可靠的后台服务&#xff0c;使得小程序的开发和维护更加便捷。本文将详细介绍如何使用微信小程序与…

web应用开发技术的一些概念

一、Servlet 1.Servlet的工作过程&#xff1a; Servelt的工作流程示意图 &#xff08;1&#xff09;客户端发起一个Http请求到服务器&#xff0c;请求特定的资源或者是要执行特定的操作 &#xff08;2&#xff09;服务器在接收到请求后&#xff0c;根据请求相应的URL将请求分发…

【node】 地址标准化 解析手机号、姓名、行政区

地址标准化 解析手机号、姓名、行政区 实现效果链接源码 实现效果 将东光县科技园南路444号马晓姐13243214321 解析为 东光县科技园南路444号 13243214321 河北省;沧州市;东光县;东光镇 马晓姐 console.log(address, phone, divisions,name);链接 API概览 源码 https://gi…

WPS Office JS宏实现Excel转换为JSON格式数据

通过Excel JS宏&#xff0c;将表格中的数据以”列“形式导出为JSON数据格式。 我们在整理文档时&#xff0c;产品会通过Excel将功能点和功能描述分层级整理出来&#xff0c;有时需要将此数据导入到系统中&#xff0c;Web端对Json这类数据比较友好&#xff0c;所以这里试着使用E…

【Android】在Android上使用mlKit构建人脸检测程序

在Android上构建人脸检测程序 目录 1、导入mlKit依赖包2、配置人脸检测器并且获取人脸检测器3、加载图片资源4、调用人脸检测器5、绘制矩形边框6、完整代码7、效果展示 1、导入mlKit依赖包 dependencies {// ...// Use this dependency to bundle the model with your appi…

用23种设计模式打造一个cocos creator的游戏框架----(十七)命令模式

1、模式标准 模式名称&#xff1a;命令模式 模式分类&#xff1a;行为型 模式意图&#xff1a;将一个请求封装为一个对象&#xff0c;从而使得可以用不同的请求对客户进行参数化:对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 结构图&#xff1a; 适用于&am…

DS冲刺整理做题定理(四)查找与排序

最后一期更新&#xff0c;考试之前应该不会再出该专题了&#xff0c;之后有时间会出一些有关链表的代码题&#xff0c;其他章节只挑选重点的总结~ 一.查找 1.顺序查找 又被称为线性查找&#xff0c;对顺序表和链表都使用~基本思想是从某一端开始&#xff0c;逐个检查关键字是否…

GZ015 机器人系统集成应用技术样题1-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书&#xff08;学生赛&#xff09; 样题1 选手须知&#xff1a; 本任务书共 25页&#xff0c;如出现任务书缺页、字迹不清等问题&#xff0c;请及时向裁判示意&#xff0c;并进行任务书的更换。参赛队…