当前位置: 首页 > news >正文

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

点击返回目录->

基于C#开发web网页管理系统模板流程-总集篇-CSDN博客


前言

紧接上篇->基于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网页管理系统模板流程-主界面统计功能完善

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计-CSDN博客 统计功能是管理系统很常见的功能,例如仓库管理系统要统计某时间段的出入库以…...

chromedriver114以后版本下载地址汇总chromedriver所有版本下载地址汇总国内源下载

谷歌浏览器版本经常会升级,chromedriver 也得下载匹配的版本 chromedriver 114以前版本下载地址https://registry.npmmirror.com/binary.html?pathchromedriver/ 但是自从115版本及其以后网站就找不到了,因此整理了截止2024年6月16日前所有在windows x6…...

x86计算机的启动初期流程 Linux 启动流程

x86计算机的启动初期流程 CPU: step1,加点开机,cpu自己初始化 step2,cpu 从物理地址 0xFFFFFFF0h 取指令执行;此处存放BIOS代码,这些代码可以是由主板自动从 EEPROM中拷贝至此内存地址处;即下…...

P450Rdb: CYP450数据库--地表最强系列--文献精读24

P450Rdb: A manually curated database of reactions catalyzed by cytochrome P450 enzymes P450Rdb: 一个人工整理的细胞色素P450酶催化反应数据库 http://www.cellknowledge.com.cn/p450rdb/ 还有一篇类似CYP450综述-20年-地表最强系列-文献精读-4 要点: P450…...

ubuntu 22.04下载和安装

ubuntu镜像: https://www.releases.ubuntu.com/22.04/ 然后下载vmwareworkstation16 密钥 ZF3R0-FHED2-M80TY-8QYGC-NPKYF...

Fegin如何传参form-data文件

Form-data传输file参数,这个大家都比较清楚,那么针对于Fegin参数file参数该如何操作呢!下面截图来找到对应的参数关系。 一、之前我们在postMan中是这种传参的,那么如果使用Feigin来传输文件File 二、在Fegin中传form-data参数&a…...

解决 Visual C++ 17.5 __cplusplus 始终为 199711L 的问题

目录 软件环境问题描述查阅资料解决问题参考文献 软件环境 Visual Studio 2022, Visual C, Version 17.5.4 问题描述 在应用 https://github.com/ToniLipponen/cpp-sqlite 的过程中,发现源代码文件 sqlite.hpp 中,有一处宏,和本项目的 C L…...

Mac M3 Pro安装Hadoop-3.3.6

1、下载Hadoop安装包 可以到官方网站下载,也可以使用网盘下载 官网下载地址:Hadoop官网下载地址 网盘地址:https://pan.baidu.com/s/1p4BXq2mvby2B76lmpiEjnA?pwdr62r提取码: r62r 2、解压并添加环境变量 # 将安装包移动到指定目录 mv …...

mac下Xcode在iphone真机上测试运行iOS软件

最近一个需求需要在iPhone真机上测试一个视频直播的项目。 需要解决如何将项目 app 安装到真机上 在进行真机调试。 安装Xcode 直接在App Store上搜索Xcode安装即可。 关键是要安装Simulator。项目需要安装iOS17.5但是由于安装包太大,并且网络不稳定的原因。在Xco…...

Mysql(一):深入理解Mysql索引底层数据结构与算法

众所众知,MySql的查询效率以及查询方式,基本上和索引息息相关,所以,我们一定要对MySql的索引有一个具体到数据底层上的认知。 这一次也是借着整理的机会,和大家一起重新复习一下MySql的索引底层。 本节也主要有一下的…...

WebMvcConfigurer配置不当导致鉴权失败

最近同事说他们有个新需求,需要对接口进行加解密,所以他给项目配置了一个拦截器,但这个拦截器直接导致了所有接口鉴权失败,每次调用接口都是提示没有session信息。 公司内的所有java项目是公用同一套基础依赖,所以我也…...

微信小程序毕业设计-实验室管理系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…...

C#:lock锁与订单号(或交易号)的生成

在弄电商类网站的时候&#xff0c;往往是根据年月日时分秒的格式生成订单号&#xff08;yyyyMMddHHmmss&#xff09;&#xff0c;为了解决并发性&#xff0c;就直接在生成订单号的区域块加上lock。 static void Main(string[] args){for(int i0; i<100; i){//GetRandomTime(…...

计算机图形学入门11:图形管线与着色器

1.什么是图形管线 把场景中的物体经过一系列的处理&#xff0c;最后一张图像的形式在屏幕上显示出来&#xff0c;这一系列过程就是图形管线(Graphics Pipeline)&#xff0c;也叫实时渲染管线(Real-time Rendering Pipeline)。如下图所示&#xff0c;为整个渲染管线的过程。 渲染…...

正解 x86 Linux 内存管理

1&#xff0c;机器解析的思路 发现网络上大量的教程&#xff0c;多是以讹传讹地讲解 Linux 内存管理&#xff1b; 都是在讲&#xff1a; 逻辑地址 -> 线性地址 -> 物理地址 这个转换关系是怎么发生的。 上面这个过程确实是程序运行时地址的翻译顺序&#xff1b; …...

springboot读取配置时,读取到了系统环境变量

在Spring Boot应用中&#xff0c;读取配置通常通过application.properties或application.yml文件进行。不过&#xff0c;Spring Boot也支持从系统环境变量读取配置&#xff0c;这使得应用可以在不同的环境中灵活配置。下面详细介绍如何在Spring Boot中读取系统环境变量。 1. 配…...

平均召回(Average Recall,AR)概述

平均召回&#xff08;Average Recall&#xff0c;AR&#xff09;概述 在深度学习中&#xff0c;平均召回&#xff08;Average Recall, AR&#xff09;是一个衡量模型在不同阈值下的召回率的综合指标&#xff0c;特别常用于目标检测任务。召回率&#xff08;Recall&#xff09;…...

WWDC 2024 回顾:Apple Intelligence 的发布与解析

一年一度的苹果全球开发者大会&#xff08;WWDC&#xff09;如期而至&#xff0c;2024 年的 WWDC 再次成为科技界的焦点。本次发布会中&#xff0c;苹果正式推出了他们在 AI 领域的全新战略——Apple Intelligence。这一全新概念旨在为用户打造“强大、易用、全面、个性化、注重…...

[Cloud Networking] SPDY 协议

文章目录 1. 背景2. SPDY 之前3. SPDY 项目目标4. SPDY 功能特点4.1 SPDY基本功能4.2 SPDY高级功能 1. 背景 TCP是通用的、可靠的传输协议&#xff0c;提供保证交付、重复抑制、按顺序交付、流量控制、拥塞避免和其他传输特性。 HTTP是提供基本请求/响应语义的应用层协议。 不…...

Linux-笔记 samba实现映射网络驱动器到Win 10

前言 之前通过网上的方法成功映射后&#xff0c;现如今在自己电脑想实现映射服务器共享文件夹到Win 10端发现对之前的方法没有总结导致细节出问题&#xff0c;特此写下笔记。 场景 在服务器编译好代码生成镜像后&#xff0c;在Win10端采用软件烧写镜像&#xff0c;但是镜像在服…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...