ASP.NET基于WEB的工作计划流程管理系统的设计与实现

摘  要

信息技术的飞速发展,尤其是网络通讯技术、数据库技术及自动化技术的日新月异,为单位、企业的办公带来了极大的便利。但是由于单位、企业的工作性质众多,工作流程各有差异,企业、单位、部门之间的管理机制各不相同,从而使单位、企业不能对工作计划流程进行有效的控制,导致各种资源的浪费,因此工作计划流程管理系统应运而生。

本设计着重解决了三方面的问题:(1)、根据人员的权限实现对工作计划的创建;(2)、根据人员的权限实现对工作完成情况的录入;(3)、根据人员的权限实现对工作的审查。工作计划流程管理系统主要分为工作计划的创建区、工作人员的工作区与工作的审查区三个模块,其中工作区是整个工作计划流程管理系统的核心。

本文共五章,第一章对当前背景与国内外现状进行分析;第二章对数据库技术、面向对象的技术进行简单介绍;第三章对当前单位、企业进行了需求分析并提出解决方案;第四章根据解决方案对系统进行设计;第五章对工作计划流程管理系统进行测试并得出测试结果。

关键词:工作计划流程;创建;工作区;审查;权限

2.1  数据库技术

关系数据库解决了网状数据库和层次数据库在数据的独立性和抽象级别上的缺陷,SQL就属于关系数据库。SQL有Internet 集成、可伸缩性和可用性、企业级数据库功能、易于安装,部署和使用、数据仓库的特性。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。是目前使用最广泛的数据库,它与windows网络操作系统的无缝继承,智能化的内容管理,强大的功能,使它得到广大用户的喜爱。

2.2  面向对象技术

工作计划流程管理系统采用了C#语言,C#语言是从面向对象语言C++派生出来的,是为.net量身定做的编程语言,功能非常强大,是asp.net的编程基础。C#本身并无类库,而是直接使用.net框架所提供的类库。C#不仅具有C++的强大功能,而且具有Visual Basic简单易用的特性。C#的语法与C++基本相同,最大的变化是没有了C和C++中的指针,C#只支持其中的一个“.”。C#具有面向对象的编程语言所应用的一切特性,如封装、继承和多态。在C#的类型系统中,每种类型都可以看作一个对象,但C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。 C#没有全局函数、全局变量和全局常量,所有的变量、常量和函数都必须封装在一个类中。因此,用C#编写代码具有更好的可读性,而且减少了发生命名冲突的可能。

2.3  B/S架构的WEB程序设计技术

B/S(Browser/Server)结构即浏览器和服务器结构。B/S(浏览器/服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术,这种结构更成为当今应用软件的首选体系结构。

4.3  系统功能模块设计

        4.3.1  登录

图4-4 登录界面

图4-5 登录失败界面

图4-6 主页面(登录成功后显示)

图4-4中利用“登录”按钮来接收数据的具体代码如下:

  …………

            //创建连接对象和命令对象

             SqlConnection myConnection=new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);

             SqlCommand myCommand=new SqlCommand("UserLogin",myConnection);

             //定义命令对象的类型为存储过程

                  myCommand.CommandType=CommandType.StoredProcedure;

            //向存储过程中添加参数

             SqlParameter parameterLoginName=new SqlParameter("@login_id",

                  SqlDbType.Int);

             parameterLoginName.Value=TextBox1.Text;

             myCommand.Parameters.Add(parameterLoginName);

           //参数集合的对象,专门用于接收数据

             SqlParameter parameterPassword=new SqlParameter("@customer_passwd",

                  SqlDbType.NVarChar,16);

             parameterPassword.Value=TextBox2.Text;

             myCommand.Parameters.Add(parameterPassword);

             SqlParameter parameterSuccess=new SqlParameter("@success",SqlDbType.Int);

             parameterSuccess.Direction=ParameterDirection.Output;

             myCommand.Parameters.Add(parameterSuccess);

     …………

   

对登录有两种处理,首先根据parameterSuccess.Value的值判断输入的用户名与密码是否在数据库中有相对应的,如果有则转入图4-6;如果没有则转入图4-5,并生成相应的错误信息。具体代码如下:

…………

  if ((int)parameterSuccess.Value>0)

    {

     //登陆成功

    FormsAuthentication.SetAuthCookie (TextBox1.Text,false);

Response.Redirect("seeworks.aspx");

    else

    {

    Label3.Text="登录失败,请检查你的帐号和密码.";//提示错误信息

    }

…………

​​​​​​​        4.3.2  录入系统

图4-7  录入工作界面

根据录入权限进行了两种处理,具有录入权限(即luru字段为1)的员工进入录入界面图4-7,不具有录入权限的员工进入无权的提示页面。具体代码如下:

…………

string rb=Context.User.Identity.Name;  //获取当前用户名

       SqlConnection conn1=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

         conn1.Open();

         SqlDataAdapter myAdapter=new SqlDataAdapter("select b.luru as 权限 from users a,bumen b where a.group_id=b.group_id and a.login_id='"+rb+"'",conn1); //取出当前用户权限

         DataSet ds=new DataSet();

         DataTable dt=new DataTable();

         dt=ds.Tables.Add("A");

         DataColumn dc=new DataColumn();

         dc=dt.Columns.Add("权限");

         myAdapter.Fill(ds.Tables["A"]);

         int i=Convert.ToInt32(ds.Tables["A"].Rows[0]["权限"]);

        if(i==0)  //对用户权限进行判断

         {Response.Redirect("error.aspx");}

conn1.Close();  

…………   

   

进入录入系统的人员将能对工作、人员、部门分别进行创建、修改、删除的操作。图4-7界面为创建工作。创建的具体代码如下:      

…………

string zt=DropDownList1.SelectedItem.Value; //获取状态信息

          string jj=DropDownList2.SelectedItem.Value; //获取紧急程度信息

          string ctime=TextBox3.Text; //获取创建时间信息

          string cname=TextBox7.Text; //获取创建者信息

          string contain1=TextBox7.Text; //获取内容信息

         SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

        string strcomm="insert into works (work_name,zhuangtai,jingji,contain,creattime,creatname) values ('"+name+"','"+zt+"','"+jj+"','"+contain1+"','"+ctime+"','"+cname+"')";    //创建工作操作       SqlCommand comm=new SqlCommand(strcomm,conn);

         conn.Open();

         comm.ExecuteNonQuery(); //将信息入库

         conn.Close();

         Response.Redirect("luru.aspx");

       …………

  在新创建一个工作后,要为指定该工作的第一个工作人员,具体代码如下:

…………

string gb=TextBox1.Text; //获取工作编号

string rb=TextBox8.Text; //获取人员编号

    SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

    string strcomm="insert into wcqk (work_id,login_id) values ('"+gb+"','"+rb+"')";//指定某工作的第一个工作人员

    SqlCommand comm=new SqlCommand(strcomm,conn);

    conn.Open();

    comm.ExecuteNonQuery();//将信息入库

    conn.Close();

  Response.Redirect("luru.aspx");

         }

……………

       

图4-8 修改工作界面

在创建了工作后,发现工作信息有误或需要进行修改,则进入修改工作界面(图4-8),修改的具体代码:

…………

string bh=TextBox1.Text; //获取工作编号

       string name=TextBox2.Text;//获取工作名称

       string zt=DropDownList1.SelectedItem.Value;//获取状态值

       string jj=DropDownList2.SelectedItem.Value;//获取紧急程度值

       string ctime=TextBox5.Text;//获取创建时间

       string cname=TextBox6.Text;//获取创建者

       string contain1=TextBox7.Text;//获取内容

       SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

      string strcomm="update works set work_name='"+name+"',zhuangtai='"+zt+"',jingji='"+jj+"',contain='"+contain1+"',creattime='"+ctime+"',creatname='"+cname+"' where work_id='"+bh+"'";//定义修改字符串

         SqlCommand comm=new SqlCommand(strcomm,conn);

         conn.Open();

         comm.ExecuteNonQuery();//执行修改库

         conn.Close();

         Response.Redirect("workxg.aspx");

        …………

图4-9 删除工作界面

当需要对工作进行删除时,需要首先删除该工作的完成情况表与审查表中的内容,再进行工作的删除,具体代码:

…………

     string bh=TextBox1.Text;

SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

          string strcomm1="delete sc  where work_id='"+bh+"'";//删除审查表中的相关工作评价

           string strcomm2="delete wcqk  where work_id='"+bh+"'";//删除工作表中的工作情况

          string strcomm="delete works where work_id='"+bh+"'";//删除工作

           SqlCommand comm1=new SqlCommand(strcomm1,conn);

          SqlCommand comm2=new SqlCommand(strcomm2,conn);

          SqlCommand comm=new SqlCommand(strcomm,conn);

          conn.Open();

          comm1.ExecuteNonQuery();

          comm2.ExecuteNonQuery();

          comm.ExecuteNonQuery();

          conn.Close();

          Response.Redirect("worksc.aspx");

…………

        4.3.3   工作系统

图4-10 工作系统(a)

对进入工作系统的人员进行权限的判别,其具体代码前面已给出,在此不再重复。对进入了工作系统的人员显示需要该工作人员完成的工作。具体代码如下:

…………

string a=Context.User.Identity.Name;//获取用户名

    SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

    SqlDataAdapter da=new SqlDataAdapter("select a.id as 编号,a.login_id as 工作人员编号,a.work_id as 工作号,a.wanchengf as 完成否,a.qingkuang as 完成情况,b.work_name as 工作名称,b.contain as 内容,c.login_name as 人员名称 from wcqk a,works b,users c where a.work_id=b.work_id and a.login_id=c.login_id and c.login_id='"+a+"'",conn);

    DataSet dx=new DataSet();

    conn.Open();

    da.Fill(dx);

    DataGrid1.DataSource=dx;

    DataGrid1.DataBind();

    conn.Close();

…………

在完成工作后实现对该工作的完成情况进行记录,使工作的完成过程有个完整的记录。具体代码如下:

…………

string gb=TextBox1.Text;//获取工作编号

             string rb=Context.User.Identity.Name;//获取人员编号

             string wc=RadioButtonList1.SelectedItem.Value;//获取完成度

             string qk=TextBox3.Text;//获取完成情况

             SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

             string strcomm="update wcqk set wanchengf='"+wc+"',qingkuang='"+qk+"' where work_id='"+gb+"'and login_id= '"+rb+"'";//修改字符串

             SqlCommand comm=new SqlCommand(strcomm,conn);

             conn.Open();

             comm.ExecuteNonQuery();//执行数据库修改

             conn.Close();

      Response.Redirect("next.aspx");

…………

图4-11 工作系统(b)

同时在完成工作后能对该工作进行状态的修改,使工作进度与工作的实际状态相符。具体代码如下:

…………

string gb=TextBox1.Text;//获取人员编号

             string wt=DropDownList1.SelectedItem.Value;//获取完成度

             string ft=TextBox2.Text;//获取完成时间

             string zt=DropDownList2.SelectedItem.Value;//获取状态

             SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

             string strcomm="update works set wancheng='"+wt+"',flishtime='"+ft+"',zhuangtai='"+zt+"' where work_id='"+gb+"'";//修改字符串

             SqlCommand comm=new SqlCommand(strcomm,conn);

             conn.Open();

             comm.ExecuteNonQuery();//执行对工作的修改

             conn.Close();

      Response.Redirect("next1.aspx");

…………

对该页面有两种处理,当工作已经完成点击“结束”,当工作还需要安排下一个工作人员,就点击“提交”,进入图4-12页面。

图4-12 工作系统(c)

录入该工作的下一步工作人员的具体代码如下:

…………

string gb=TextBox1.Text;//获取工作编号

             string rb=TextBox2.Text;//获取人员编号

             SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

             string strcomm="insert into wcqk (work_id,login_id) values ('"+gb+"','"+rb+"')";//录入某工作下一步工作人员

             SqlCommand comm=new SqlCommand(strcomm,conn);

             conn.Open();

             comm.ExecuteNonQuery();//执行入库

             conn.Close();

      Response.Redirect("wcgz.aspx");

          …………

​​​​​​​​​​​​​​        4.3.4  审查系统

图4-13 审查系统

当工作完成后,相关工作人员将对工作进行审查,只有具有审查权限的人员方可进入,具体的权限判断代码前面已经给出。具有审查权的工作人员可以看到所有已经完成的工作,并能根据所提供的信息,对工作进行评价。具体代码如下:

//初始化页面代码

…………

SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

                  SqlDataAdapter da=new SqlDataAdapter("select a.id as 编号,b.work_id as 工作编号,b.work_name as 工作名称,b.contain as 工作内容,sc_name as 人员编号,b.wancheng as 完成度,a.yijian as 审查意见 from sc a, works b where a.work_id=*b.work_id and b.wancheng='100%'",conn);//查询字符串

                  DataSet dx=new DataSet();

                  conn.Open();

                  da.Fill(dx);

                  DataGrid1.DataSource=dx;

                  DataGrid1.DataBind();

                  conn.Close();

……………

//记录审查情况

…………

string rb=Context.User.Identity.Name;//获取当前人员编号

             string gb=TextBox1.Text;//获取工作编号

             string yj=TextBox2.Text;//获取审查意见

             SqlConnection conn=new SqlConnection("server=(local);database=jihua;user id='sa';password='123';");

             string strcomm="insert into sc (work_id,sc_name,yijian) values ('"+gb+"','"+rb+"','"+yj+"')";//创建意见字符串

             SqlCommand comm=new SqlCommand(strcomm,conn);

             conn.Open();

             comm.ExecuteNonQuery();//执行入库

             conn.Close();

             Response.Redirect("sc.aspx");

…………

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用队列实现栈(力扣第225题)

#include "stdio.h" #include "stdbool.h" #include "string.h" #include "stdlib.h" #include "assert.h"//初始化队列 typedef int QueueDataType;typedef struct queue {QueueDataType val;struct queue* next; }Qnode;t…

微信小程序地图polyline坐标太多异常显示BUG

描述 微信小程序map地图上显示polyline线,点位超过1250个出现bug,(仅真机上出现,模拟器上正常) 这里以加载四川省边界为例, 以下是示例代码 // 读取geojson数据 uni.request({url: https://geo.datav.aliyun.com/a…

openplc Linux 使用modbus RTU 从机通讯

1.Linux 环境下,openplc 默认使用的是modbus tcp协议通信。 想要使用串口 modbus rtu 通讯可以通过在runtime中添加SlaveDevices从机设备 2.添加设备,分配地址。 左边添加串口配置,右边是需要通讯的地址,从机地址都是从100开始&am…

yolov8 区域计数

yolov8 区域计数 1. 基础2. 计数功能2.1 计数模块2.2 判断模块 3. 主代码4. 实验结果5. 源码 1. 基础 本项目是在 WindowsYOLOV8环境配置 的基础上实现的,测距原理可见上边文章 2. 计数功能 2.1 计数模块 在指定区域内计数模块 def count_objects_in_region(bo…

STM32 堆栈内存以及变量存储分布

STM32的程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内, 地址范围为0x0000 0000至0xFFFF FFFF。其中FLASH为ROM类型,储存的数据掉电不易失;RAM中存储的数据掉电易失。以STM32F103系列为例,最多有512KB的FLA…

Discuz! X3.4 升级至 Discuz! X3.5 详细教程

第一步:从其他以前的 Discuz! X 版本升级Discuz! X3.4 请先升级到Discuz! X3.4,升级教程网上比较普遍,在此不再论述。 第二步:Discuz! X3.4 升级至 Discuz! X3.5 (Discuz 从 X3.5 以后,不在发布GBK版本&…

【软考】UML中的图之类图

目录 1. 说明2. 图示3. 类图使用方式3.1 对系统的词汇建模3.2 对简单的协作建模3.3 对逻辑数据库模式建模 1. 说明 1.类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系。2.在面向对象系统的建模中所建立的最常见的图是类图。3.类图给出系…

离线数仓数据导出-hive数据同步到mysql

离线数仓数据导出-hive数据同步到mysql MySQL建库建表数据导出 为方便报表应用使用数据,需将ads各指标的统计结果导出到MySQL数据库中。 datax支持hive同步MySQL:仅仅支持hive存储的hdfs文件导出。所以reader选hdfs-reader,writer选mysql-wri…

怎样在外网登录访问CRM管理系统?

一、什么是CRM管理系统? Customer Relationship Management,简称CRM,指客户关系管理,是企业利用信息互联网技术,协调企业、顾客和服务上的交互,提升管理服务。为了企业信息安全以及使用方便,企业…

SSM小程序作品集展示微信小程序

采用技术 SSM小程序作品集展示微信小程序的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringMVCMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 用户功能 用户注册 用户首页 作品集 优秀作者 我的分享 管…

powershell@命令行提示符样式配置自定义@pwsh重写prompt显示电量内存时间等信息

文章目录 abstract流行的powershell prompt模块示例 powershell原生修改Prompt函数配置文档Prompt命令来自哪里 简单修改带上电量和时间的Prompt 复杂修改预览FAQ:没有必要修改相关仓库地址样式选择平衡样式花哨样式响应性能 小结 abstract 在 PowerShell 中,可以通…

CSDN积分和等级和 能创建专栏数量的关系。还差1000多分!

积分查询:CSDN 博客积分规则 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准。博客等级也将由博客积分唯一决定。积分规则具体如下: 1、每发布一篇原创或者翻译文章:可获得10分; 2、每发布一篇转载…

做一个答题pk小程序多少钱

在探讨“做一个答题pk小程序多少钱”这一问题时,我们首先需要明确的是,小程序的价格并非固定不变,而是受到多种因素的影响。这些因素包括但不限于小程序的复杂度、功能需求、开发周期、技术难度以及开发团队的规模和经验等。因此,…

Web前端 JavaScript笔记7

js的执行机制 js是单线程 同步:前面一个任务执行结束之后,执行后一个 异步:异步任务,引擎放在一边,不进入主线程,而进入任务队列的任务 js通过浏览器解析,浏览器靠引擎解析 回调函数同步任务执行…

LabVIEW卡尔曼滤波技术

LabVIEW卡尔曼滤波技术 在现代航空导航中,高精度和快速响应的方位解算对于航空安全至关重要。通过LabVIEW平台实现一种卡尔曼滤波方位解算修正技术,以改善传统导航设备在方位解算中的噪声干扰问题,从而提高其解算精度和效率。通过LabVIEW的强…

Java基础之JVM基础调优与常见问题

常见命令 以下命令的介绍,全部在jdk8环境下运行的; jps ☆☆☆☆☆ 查看当前运行的进程号; jmap ☆☆☆ jmap命令可以查看jvm的内存信息,class对应的实例个数以及占用的内存大小 jmap -histo 查看当前java进程 [rdVM-8-12-c…

Ugee手写板Ex08 S设置流程

手写笔的结构 笔尖 鼠标左键 上面第一个键:鼠标右键(效果有时候也不完全等同) 上面第二个键:鼠标中键 WPS ①打开pdf ②批注->随意画->画曲线 效果如下:

小程序中使用HTTPS调用自带文本安全内容检测接口(msg_sec_check)的实现方法

在小程序中调用自带的文本安全内容检测接口,你需要使用小程序提供的wx.request方法。以下是一个示例代码: javascript代码: // 假设你已经获取了access_token,如果不知道如何获取,可以参考我上一篇文章 const access_token 你的access_tok…

Python 基于docker部署的Mysql备份查询脚本

前言 此环境是基于docker部署的mysql,docker部署mysql可以参考如下链接: docker 部署服务案例-CSDN博客 颜色块文件 rootbogon:~ 2024-04-18 16:34:23# cat DefaultColor.py ######################################################################…

java音乐播放器系统设计与实现springboot-vue

后端技术 SpinrgBoot的主要优点有: 1、为所有spring开发提供了一个更快、更广泛的入门体验; 2、零配置; 3、集成了大量常用的第三方库的配置; Maven: 项目管理和构建自动化工具,用于java项目。 java: 广泛使用的编程语…