基于C#开发web网页管理系统模板流程-主界面统计功能完善

本文主要是介绍基于C#开发web网页管理系统模板流程-主界面统计功能完善,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计-CSDN博客

统计功能是管理系统很常见的功能,例如仓库管理系统要统计某时间段的出入库以整合利润情况,再例如论文管理系统要统计男女生的分数情况等等

不可否认的是其实现思路与上一篇实现的出库管理功能中的【查询】按钮的功能基本相同,都是通过编写按钮的脚本,实现select查询sql语句,然后将查询的结果通过合适的控件显示出来


一,新建tj(统计的拼音)文件夹

希望你养成这个好习惯,将不同功能的脚本分门别类的放在不同的文件夹中

创建一个【包含母版页的Web窗体】,将其命名为tjgl.aspx(统计管理)

点击添加后再弹出的【选择母版页】窗口中选择唯一一个母版页Site.Master


二,添加控件并配置控件

按具体需求添加控件并给出配置

表格的设置就不赘述了,相信看到这里的你应该都懂这些套路了

用到的控件,【DropDownList】,,【Button】,和一个【Panel

前两样都是老朋友,【Panel】的作用是方便我们能显示查询的结果

然后我们添加一些【Label】控件,来显示对应的想要的结果,你可以做一些个性化的设置,例如将利润标红显示,在属性的【Font】对字体大小进行设置,【ForeColor】设置颜色,很简单,你试试就知道了


三,DropDownList配置

(一)下拉菜单选择货品

我们希望*按货品统计*之后的下拉菜单的选项中,能够自动显示出数据库中拥有的货品,该怎么做?希望你还有印象,因为这个问题在上一篇中是完整实现过的!

为货品号这个字段的下拉式菜单添加一个新的数据源,流程和前面配置数据源时基本一致

到【配置Select语句】这个窗口时注意切换成货品表

自定义语句只需要一条查询语句,此处的查询语句读者根据自己的管理系统来决定想要查询的内容

此处采用一种“货品号和货品名绑定显示”的查询机制,因此使用了如下这条SQL语句

select hno, concat(hno, hname) as hpm from hpb

(二)下拉菜单选择年份

同理,需要只显示数据库中出现过出入库操作的年份

年份的数据源配置,其它都是一样的,主要是*自定义Select语句*

select distinct year(rk_date) as rkn from rkb union
select distinct year(ck_date) as ckn from ckb

解释一下这里的sql,分别是查询入库表*rkb*中的入库日期的年份*year(rk_date)*和出库表*ckb*中的出库日期的年份*year(ck_date)*,查询结果只要一个(即不重复,因此用distinct关键字),as关键字为查询字段重命名

最后用union关键字将两条语句的结果取并集

(三)下拉菜单选择月份

这个是最简单的,毕竟每年12月是固定的

我们选择*编辑项*

添加并修改节点的文本(这里如果想修改成具体的*一月*这种中文选项,需要在后续的脚本做格外处理)

(四)效果展示


四,所有控件脚本

在设置脚本前先添加三个【CheckBox】控件,并在它们的【Text】属性中输入一个空格(让名字为空)

打开【rkgl.aspx.cs】文件,将下面的代码复制到该文件中,即可实现所有控件的功能,实现思路见代码注释!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Odbc;        //ODBC命名空间namespace ckgl.admin.tj {public partial class tjgl : System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e) {}protected void Button1_Click(object sender, EventArgs e) {OdbcConnection con = DB.Lianjie();con.Open();//这里有两天sql,sql1用于查询入库相关、sql2查询出库相关string sql1 = " select IFNULL(sum(hno),0) as rksl, IFNULL(sum(rk_zprice), 0) as rkje from rkb where ";  //IFNULL用于判断求和是否位null,如果是则取0,否则null会影响字符串转整数string sql2 = " select IFNULL(sum(hno),0) as cksl, IFNULL(sum(ck_zprice), 0) as ckje from ckb where ";//然后根据对应的CheckBox来决定sql要怎么查询if (CheckBox1.Checked == true) {//按货品统计,查询货品号sql1 += " hno='" + DropDownList1.Text + "' and ";sql2 += " hno='" + DropDownList1.Text + "' and ";}if (CheckBox2.Checked == true) {//按年份统计,查询出入库年份sql1 += " year(rk_date)=" + DropDownList2.Text + " and  ";sql2 += " year(ck_date)=" + DropDownList2.Text + " and  ";}if (CheckBox3.Checked == true) {//按月份统计,查询出入库年份sql1 += " month(rk_date)=" + DropDownList3.Text + " and ";sql2 += " month(ck_date)=" + DropDownList3.Text + " and ";}sql1 += " '1'='1' ";sql2 += " '1'='1' ";//依旧是复合查询的关口,需要将最后一个and关键字吞掉使sql语法正确OdbcCommand mycommand1 = new OdbcCommand(sql1, con);OdbcCommand mycommand2 = new OdbcCommand(sql2, con);OdbcDataReader sdr1 = mycommand1.ExecuteReader();OdbcDataReader sdr2 = mycommand2.ExecuteReader();//结果查到了,接下来提取需要显示的关键数据,以下变量分别代表——//入库总数-出库总数-入库总额-出库总额-库存量-总利润int rkzs = 0, ckzs = 0, rkze = 0, ckze = 0, kcl = 0, zlr = 0;if (sdr1.Read()) {//如果sql1查询入库相关有结果,那么将其中的入库总数和入库总额记录下来rkzs = Convert.ToInt32(sdr1["rksl"]);rkze = Convert.ToInt32(sdr1["rkje"]);}if (sdr2.Read()) {//如果sql2查询出库相关有结果,那么将其中的出库总数和出库总额记录下来ckzs = Convert.ToInt32(sdr2["cksl"]);ckze = Convert.ToInt32(sdr2["ckje"]);}kcl = rkzs - ckzs;//库存量 = 入库总数 - 出库总数zlr = ckze - rkze;//总利润 = 出库总额 - 入库总额//最后对相应的Label标签设置文本,即可显示出结果!Label1.Text = rkzs.ToString();Label2.Text = ckzs.ToString();Label3.Text = rkze.ToString();Label4.Text = ckze.ToString();Label5.Text = kcl.ToString();Label6.Text = zlr.ToString();con.Close();}protected void Button2_Click(object sender, EventArgs e) {//重置的常规操作,这么多篇了,相信你能明白!CheckBox1.Checked = false;CheckBox2.Checked = false;CheckBox3.Checked = false;Label1.Text = Label2.Text = Label3.Text = Label4.Text = Label5.Text = Label6.Text = "";}}
}


五,添加菜单

在母版页【Site.Master】中添加相应的出入库菜单,这一步博主偷懒一下罢~你一定会的!

这篇关于基于C#开发web网页管理系统模板流程-主界面统计功能完善的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052806

相关文章

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间