瑞安做微网站,泰州网络营销,哪家网站开发好,dw怎么做连接到另外一个网站点击返回目录- 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇-基于C#开发web网页管理系统模板流程-主界面管理员入库和出库功能完善_c#web程序设计-CSDN博客 统计功能是管理系统很常见的功能#xff0c;例如仓库管理系统要统计某时间段的出入库以… 点击返回目录- 基于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();//这里有两天sqlsql1用于查询入库相关、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 11 ;sql2 11 ;//依旧是复合查询的关口需要将最后一个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】中添加相应的出入库菜单这一步博主偷懒一下罢~你一定会的