源码下载;

http://pan.baidu.com/s/1o7OEMc6

321.rar

总结结构;业务层,数据库访问工厂,实体层,数据库访问接口,sqlserver数据库访问层,展现层(oaPro);

业务层;主要是对各个表的操作;

通讯录业务类;主要是增删改查;

通讯录业务类代码情况;

资产管理业务类;增删改查;

资产管理业务类代码情况;

文件业务类;增删改查;

文件业务类代码情况;

业务层其他类类似;

数据库访问工厂层;

返回访问各个表的接口对象;

数据缓存类;

实例化一个接口对象的代码如下;

        /// <summary>/// 通过反射机制,实例化addresslist接口对象/// </summary>///<returns>addresslist接口对象/returns>public static IaddresslistDAL addresslistDALInstance(){string CacheKey = DALFactory._path + ".addresslistDAL";object objType = DALFactory.GetInstance(CacheKey);return (IaddresslistDAL)objType;}

GetInstance方法代码如下;

        /// <summary>/// 通过反射机制,实例化接口对象/// </summary>/// <param name="CacheKey">接口对象名称(键)</param>///<returns>接口对象/returns>private static object GetInstance(string CacheKey){object objType = DataCache.GetCache(CacheKey);if (objType == null){try{objType = Assembly.Load(DALFactory._path).CreateInstance(CacheKey);DataCache.SetCache(CacheKey, objType);}catch (Exception ex){throw ex;}}return objType;}

用接口对象名称创建实例并返回;同时缓存接口对象名称和创建的实例;

数据缓存类设置和获取缓存代码如下;

/// <summary>/// 获得缓存对象/// </summary>/// <param name="CacheKey">键</param>/// <returns>缓存对象</returns>public static object GetCache(string CacheKey){System.Web.Caching.Cache objCache = HttpRuntime.Cache;return objCache[CacheKey];}/// <summary>/// 设置缓存对象/// </summary>/// <param name="CacheKey">键</param>/// <param name="objObject">要被缓存的对象</param>public static void SetCache(string CacheKey, object objObject){System.Web.Caching.Cache objCache = HttpRuntime.Cache;objCache.Insert(CacheKey, objObject);}

是通过System.Web.Caching.Cache类来实现;

实体层;与数据库结构对应;

部门表department
id,部门名称

权限表popedom
id,权限

操作表operate
id 用户id(外键),权限id(外键)

用户表users
id,用户名,用户密码,所在部门id(外键),档案(员工)Id(外键),状态,最后登陆ip,登陆时间,登陆次数,email(密码绑定),
所在群id(外键)

文件类别表filetype
id,文件类别名称

文件表file
id,文件名,文件类别Id(外键),所属部门Id(外键),发送人ID,接收人ID(外键),是否共享,备注,是否回执,
读否,阅读次数,发布时间,状态

文件回复表filerevert
id,回复内容,文件id(外键),回复人ID(外键),回复时间

消息表message
id,标题,内容,接受人id(外键),发送人id,群组id(外键),发布时间,是否回执

群组表group
id,群名

公文表document
id,部门id(外键),群id(外键),接收人id(外键),标题,附件,下载次数,阅读次数,点击次数,发布时间,发布人id

通知表sendword
id,标题,内容,部门id(外键),发布人id(外键),发布时间,浏览次数,状态

新闻表news
id,标题,内容,部门id(外键),发布人id(外键),发布时间,状态

论坛表bbs
id,标题,内容,头像,作者,发布时间,部门id(外键),回复次数,查看次数

论坛回复表bbsrevert
id,论坛id(外键),回复内容,回复时间,回复人(外键)

工作日志表worklog
id,标题,内容,发送人id(外键),发送时间,状态,点击次数,批阅人id,批阅内容,批阅时间

日程计划表timeorder
id,日程日期,标题,内容,发送人id(外键),发送日期,状态,是否批阅,批阅人id ,批阅内容,批阅时间

总结类型表sumuptype
id,类型

工作总结表worksumup
id,总结类型id(0年总结,2月总结)(外键),总结年份,总结月份,常规工作,下一步工作计划,建议,总结时间,状态,总结人id(外键)

审批表examine
id,申请事由,详细说明,备注,申请人(外键),申请时间,状态,审批(接收)人,审批意见,审批时间,部门id(外键),

籍贯表native
id,籍贯

户口所在地表province
id,省名

政治面貌表visage
id,政治面貌

民族表nation
id,民族

学历表learn
id,学历

档案表employee
id,档案编号,姓名,曾用名,性别,出生日期,婚姻状况,籍贯id(外键n_id),民族id(外键na_id),户口所在地表id(外键),身高,体重,政治面貌id(外键),
身份证号,健康状况,血型,目前电话,手机,电子邮件,毕业院校,专业,学历id(外键),毕业日期,学位,外语语种,外语水平,
获得证书(外语),计算机水平:获得证书(电脑):计算机擅长:普通话水平:家庭地址:邮编:现住址:家庭电话:
住址邮编:家庭情况:档案存放地:职称,何时参加工作:何时到本单位工作:累计工龄:本单位工龄:所在部门id(外键) ,职务:
备 注:录入人id:录入时间:照片

考勤表attendance
id,日期,上午时间,下午时间,姓名id(用户表外键),部门id(外键)

资产管理表assetmanage
id,资产名称:  编号:  计量单位:  数量:  规格型号:   出厂编号:  技术证书号:  购买价格:  安装费:  折旧:  净值:  
生产单位:  生产年月:  交付使用日期:  预计使用年限:  请购人或部门:  保管人或部门:  用途:  使用部门id(外键):  使用地点:  
使用状态:  录入人id:  备注: 录入时间,是否报废

通讯录表addresslist
id,姓名id(外键):部门id(外键): 职 务:手 机:小灵通:办公电话:分 机:传 真: Email:Q Q,Msn:地 址:备 注:

一个实体类的结构如下;

数据库访问接口层;主要是定义访问表的接口;

论坛表访问接口;定义了以下类型方法的接口;

文件表访问接口;

数据库访问层;针对各个表的具体访问;

访问bbs表,有如下方法;

继承自接口并具体实现;一共有如下类型的方法;

添加方法;有两种;普通插入和带事务的插入;

更新方法,两种,普通和带事务;

删除方法,根据id,根据实体对象,带和不带事务;

select方法;根据行返回实体,根据数据阅读者返回实体,根据id返回实体,根据id、子表、父表返回实体;

论坛表的父表是部门表;论坛表的子表是论坛回复表;

查询方法;返回全部记录,是否与父/子表关联的情况下返回全部记录,根据查询条件返回记录,等;

其他查询方法;

根据sql命令返回记录;

展现层;内容很多;

再将展现层用understand单独建一个项目;过滤器要手动添加*.aspx,否则此类文件不会被加入;

打开一个aspx文件看下,支持不友好,不折叠代码,也无任何分析;

看一个展现层的具体代码;删除公文的操作;

        COM.OA.Entity.users loginuser = Session["loginuser"] as COM.OA.Entity.users;if (loginuser == null){Response.Write("<script language='javascript'>parent.document.location.href='../login.aspx'</script>");}else{//取传递的参数docidint docid = Int32.Parse(this.Request.QueryString["docid"].ToString());int flag = documentBLL.Delete(docid);if (flag == 0){this.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('公文删除失败!!');</script>");}this.Response.Write(string.Format(GetRedirect.WINALERT, "公文删除成功!"));this.Response.Write(string.Format(GetRedirect.REDIRECT, "gw_sendnote.aspx"));}}

首先判断是否登录,未登录跳到登录页;

传递id,调用公文业务层的删除方法删除公文;

删除失败弹出对话框提示;成功在页面上提示;

此项目前端主要是纯asp.net;未用其他前端组件;除了一个叫FreeTextBox的组件;

图解understand分析一个asp.net办公系统源码相关推荐

  1. java计算机毕业设计自动化办公系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计自动化办公系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计自动化办公系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 ...

  2. 计算机毕业设计Java医保局综合办公系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java医保局综合办公系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java医保局综合办公系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S ...

  3. 计算机毕业设计Java自动化办公系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java自动化办公系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java自动化办公系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开 ...

  4. OA自动化办公系统springboot办公系统源码

    个人已实践,功能齐全代码简单,强烈推荐使用. javaOA自动化办公系统springboot办公系统源码 springboot freemark jpa mybatis mysql实现的OA自动化办公 ...

  5. 亲测源码分享|顶级OA办公系统源码 OA协同办公系统,包含CRM客户管理系统+内部聊天工具+手机自适应

    前言: 今日分享的是.,顶级OA办公系统源码 OA协同办公系统,包含CRM客户管理系统+内部聊天工具+手机自适应,我这边已经测试过了,已经搭建出来了,并且录制了测试和搭建视频,视频这里我已经上传网盘了 ...

  6. oa办公系统源码OA企业人事管理系统源码php协同自动化办公签到

    介绍: 功能模块包含了人事管理.公告.培训.通知.论坛.考勤.会议.网络磁盘,短消息等功能,看了下功能上算是比较全的了. 安装说明: 1.将完整程序上传至你的服务器,输入http://你的域名/ins ...

  7. 国讯通用OA协同办公系统源码

    国讯通用OA协同办公系统源码 2013-12-06   [VS2008] 源码介绍: 国讯OA工作流管理实现基本功能 1.定义任意形式的工作流程 国讯OA强大的自定义功能可以满足企业对复杂工作流程的定 ...

  8. java计算机毕业设计分时共享办公系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计分时共享办公系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计分时共享办公系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  9. CRM源码 CRM+OA办公系统源码(PC+WAP+APP+小程序源码+IOS源码) CRM小程序源码 客户关系管理系统源码

    开发环境:VS2015+NET4.0+SQL2008R2及以上版本 多合一CRM/OA办公系统/PC+WAP+APP+小程序办公系统源码C#开源版, 功能丰富,主要包括:工作流管理.供应商管理.客户管 ...

最新文章

  1. 程序员这样面试,拿到offer的几率是90%!
  2. 极验行为验证的使用方法
  3. [android] 异步http框架与实现原理
  4. java实现选项卡定时轮播_原生js面向对象编程-选项卡(自动轮播)
  5. 【剑指offer】包含min函数的栈
  6. 弱事件 WeakEvent
  7. 大熊猫学生网页设计模板 静态HTML动物保护学生网页作业成品 DIV CSS大熊猫野生动物主题静态网页
  8. 推动Windows的限制:虚拟内存
  9. 关于Zookeeper的几个问题
  10. Perl的Net::SSH::Perl模块实现远程登陆ssh
  11. 汉字编码对照表(gb2312/unicode/utf8)
  12. 申请公网IP实战 #华北天津联通
  13. 关于tomcat项目中poi报错出现的问题
  14. 【前端】在Vue2中使用Vanta.js炫酷动态背景(全屏背景)
  15. php gd 坐标,【PHP】GD库笔记 初探GD库的坐标
  16. index.php.bak 颓废_CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现
  17. web在线聊天页面代码
  18. 抓铁有力榜:踏石有印,抓铁留痕
  19. 分期的秘密:名义利率和实际利率
  20. linux 命令行 屏蔽输出,Linux命令行监视输出

热门文章

  1. JVM的标配参数和X参数
  2. 二维数组||考试成绩统计: 案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如下表,请分别输出三名同学的总成绩
  3. js实践篇:例外处理Try{}catch(e){}
  4. 网页中返回顶部代码(多种方法)另附注释说明
  5. Docker selenium自动化 - 执行程序没反应、不执行原因,强制处理之前失败的进程,“... requests waiting for a slot to be free“问题解决
  6. 【BLE】TLSR8258开发记录之9--IIC驱动TMP102
  7. CTFshow php特性 web108
  8. android的shadowRadius属性说明
  9. 有关c++中const用法
  10. 损失函数-经验风险最小化-结构风险最小化