基于web技术的合同管理系统的设计和实现.doc_第1页
基于web技术的合同管理系统的设计和实现.doc_第2页
基于web技术的合同管理系统的设计和实现.doc_第3页
基于web技术的合同管理系统的设计和实现.doc_第4页
基于web技术的合同管理系统的设计和实现.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 webweb 技术的合同管理系统的设计和实现技术的合同管理系统的设计和实现 摘要 文章介绍了采用流行的B S模式开发的一个组合是合同管理系统 对于关键 技术 用Apache建立Web站点 MySQL建库策略 PHP编程与应用进行了深入分析 合同管理系统的设计采用了PHP语言 smarty模板等技术开发 在WindowsXP 操 作系统 Apache服务器和Mysql5 1数据库系统的支持下运行 首先说明了开发 合同管理系统的目的 分析并说明了系统的需求 然后应用面向对象模型对系 统的各个子模块 系统流程 组件 类库 数据库和编码等部分进行了分析和 设计 该合同管理系统能够实现数据的输入 删除 修改 查询 日志和统计 等基本功能 适用于中小型企业的合同管理 关键字 Web Apache MySQL PHP 合同管理 Design of Web Based Contract Management System ABSTRACT This paper introduces the use of the popular B S model developed by a combination of a contract management system The key technologies Web site set up by Apache MySQL building a database strategy PHP programming and application of in depth analysis Contract management system was designed with PHP language smarty templates and other technology development in the WindowsXP operating system Apache server and database system support Mysql5 1 run The outset that the purpose of contract management system developed to analyze and explain the system requirements then the object oriented model of each module of the system the system processes components libraries databases and coding parts of the analysis and design The contract management system to input data delete modify query logs and statistics and other basic functions the contract for management of small and medium enterprises Key words Web Apache MySQL PHP Contract Management 目目 录录 ABSTRACT 2 1 相关技术 相关技术 4 1 1 PHP 介绍 4 1 2 数据库 MYSQL 7 1 3 APACHE 介绍 8 1 4 B S 架构介绍 10 2 系系统统分分析析与与设设计计 12 2 1 系统的功能设计 12 2 2 系统的流程设计 12 2 3 系统流程图和功能图 14 2 4 系统功能结构分析 15 2 4 1 添加合同 15 2 4 2 修改合同 15 2 4 3 停用 启用合同 15 2 4 4 打印合同 16 2 4 5 查看日志 16 2 5 数据库设计 16 2 5 1 数据库的设计 17 2 5 2 合同信息表 contract order 的设计 17 2 5 3 合同日志表 log order 的设计 18 2 5 4 管理员表 member 的设计 18 2 5 5 合同信息表和合同日志表的关系 19 3 系系统统实实现现 19 3 1 系统运用的技术 19 3 1 1 JQUERY 的 Ajax 技术 19 3 1 2 PHP SMARTY 让你的开发更简单 21 3 系统功能模块 22 3 2 1 用户管理 22 3 2 2 合同管理 23 3 3 系统前台页面 29 3 3 1 合同列表页 ContractList php 30 3 3 2 合同详细页 ContractManage php action 为 view 30 3 3 3 合同搜索页 ContractSreach php 31 4 结束语结束语 33 致致 谢谢 35 参参考考文文献献 36 1 1 相关技术 相关技术 在 Internet 飞速发展的今天 互联网成为人们快速获取 发布和传递 信息的重要渠道 它在人们的政治 经济 工作甚至日常生活等各个方面发 挥着重要的作用 合同管理是指对合同以及相关资源进行简单而且科学完善的管理 它是企业 管理中不可缺少的重要组成部分 该合同管理系统为企业合同管理找到一种便 捷 有效 实用的方法和途径 编制这样一套合同管理系统软件有着尤为重要的 意义 同时合同管理作为企业管理中的重要一环 对合同数据的准确性 数 据传输的安全性和业务处理的规范性有很高的要求 也正因如此 合同管 理工作中繁琐的业务流程限制了管理人员工作效率的提高 另外 如何有效 地利用庞大的合同历史数据 为合同管理人员提供必要的决策支持也成为一 项新的课题 随着我国企业信息化水平的提高 合同管理已逐步由传统的手工作业转 化为计算机管理 初期的合同管理系统为文档管理系统 实现合同生命周 期的过程记载 而后发展为数字化合同模型 对合同实行元素化管理 形成 了规范的数据结构 可方便进行数据统计 比较和查询分析 所以合同管 理系统也就自然而然的成为公司企业的首选 本文介绍的合同管理系统就是基于中小型企业的合同管理方面的一个应用 程序 PHP技术为开发B S结构的应用程序提供了高效的平台 同时编写PHP语言 的开发工具也有很多供选择 PhpMyAdmin3 10是对Mysql数据库进行操作的辅助 软件 用这个软件可以很快捷的对数据库操作 所以 在这些系统支持下运行应用系统数据通信快 兼容性好 运行效率高 并且还可以提高系统的开发效率 缩短开发周期 1 1 1 1 P PH HP P 介介绍绍 PHP 是英文超级文本预处理语言 Hypertext Preprocessor 的缩写 PHP 是一种 HTML 内嵌式的语言 是一种在服务器端执行的嵌入 HTML 文档的脚本语 言 语言的风格有类似于 C 语言 被广泛的运用 1 PHP 语言简介 PHP 独特的语法混合了 C Java Perl 以及 PHP 自创新的语法 它可以比 CGI 或者 Perl 更快速的执行动态网页 用 PHP 做出的动态页面与其他的编程语言相比 PHP 是将程序嵌入到 HTML 文档中 去执行 执行效率比完全生成 HTML 标记的 CGI 要高许多 PHP 还可以执行 编译后代码 编译可以达到加密和优化代码运行 使代码运行更快 PHP 具 有非常强大的功能 所有的 CGI 的功能 PHP 都能实现 而且支持几乎所有流 行的数据库以及操作系统 2 PHP 的发展 PHP 于 1994 年由 Rasmus Lerdorf 创建 刚刚开始只 是一个简单的用 Perl 语言编写的程序 用来统计他自己网站的访问者 后 来又用 C 语言重新编写 包括可以访问数据库 在 1995 年以 Personal Home Page Tools PHP Tools 开始对外发表第一个版本 在 1995 年中 PHP2 0 发布了 第二版定名为 PHP FI Form Interpreter PHP FI 加入了 对 MySQL 的支持 从此建立了 PHP 在动态网页开发上的地位 到了 1996 年 底 有 15000 个网站使用 PHP FI 1997 年中 使用 PHP FI 的网站数字超 过五万个 而在 1997 年中 开始了第三版的开发计划 开发小组加入了 Zeev Suraski 及 Andi Gutmans 而第三版就定名为 PHP3 2000 年 PHP4 0 又问世了 其中增加了许多新的特性 2008 年 PHP 5 成为了 PHP 唯 一的有在开发的 PHP 版本 将来的 PHP 5 3 将会加入 Late static binding 和一些其他的功能强化 PHP 6 的开发也正在进行中 主要的改进有移除 register globals magic quotes 和 Safe mode 的功能 3 PHP 的特性 1 开放的源代码 所有的 PHP 源代码事实上都可以得到 2 PHP 是免费的 3 PHP 的快捷性 4 跨平台性强 由于 PHP 是运行在服务器端的脚本 可以运行在 UNIX LINUX WINDOWS 下 5 效率高 PHP 消耗相当少的系统资源 6 图像处理 用 PHP 动态创建图像 7 面向对像 在 php4 php5 中 面向对象方面都有了很大的改进 现在 PHP 完全可以用来开发大型商业程序 8 专业专注 PHP 支持脚本语言为主 同为类 C 语言 4 PHP 的技术应用 伪静态 静态页面生成 数据库缓存 过程缓存 DIV CSS w3c 标准 大负荷 分布式 JQUERY 框架集成 flex 桌面程 序应用 5 PHP 语言的优势 我个人认为 PHP 有以下的几点优势 1 PHP 脚本程序的速度相对于 ASP 是很快的 因为 ASP 是建立在 COM 体系结构之上的 当用 VBScript 写 ASP 脚本时 实际上实 在使用 COM 的对象 当向用户浏览器发送信息时 它用的是 Response 对象的 write 方法 当它访问数据库和文件系统的时 候 它用的是其他的 COM 对象 这些 COM 对象的使用使运行速 度下降 在 PHP 代码中 所有的工作都运行在 PHP 的内存空间 中 也就是说 PHP 不是基于 COM 对象的 所以的他的运行速度 会快一些 2 高级内存管理在 IIS4 下 一个 ASP 脚本 header asp 如果 被 20 个页面所包含 那么运行的时候 在内存当中会保留这 20 个 header asp 的编译副本 IIS5 解决了这个问题 但只 有 windows2000 才支持 IIS5 由于这种 IIS5 的不能向下兼 容的原因 许多服务器仍然要使用IIS4 下的低级的内存管 理 而在 PHP 中 不会存在这种问题 只有当require 时 才会调用某个 include 文件 3 MySQL 使 PHP 更精彩 PHP 与 MySQL 的组合既简单又精彩 PHP 有许多管理和维护 MySQL 的工具 对 MySQL 的支持是最 全面的 许多有用的函数如mysql insert id 和 MySQL affected rows 等 其他的数据库则没有 ASP 和 PHP 都是中型网站的较理想的解决方案 但PHP 与 MySQL 的 紧密结合使 PHP 更加优越 MySQL 的虚度比 Microsoft ACCESS 速度快 Mssql 和 Oracle 速度比 MySQL 要快 可是 费用较高 4 Java 和 C 的变成风格 这个优点只是一个看法 我知道你 不会相信一个 Visual Basic 程序员会因为 PHP 有 Java 和 C 的编程风格而转向使用 PHP 但你会相信有许多人还是喜 欢 Java 和 C 的 PHP 是一种具有这两种语言的编程风格的 较容易学习的语言 PHP 支持结构化编程 在 VB 因为他的 继承性使用类还是较少的 而PHP 的像 Java 和 C 一样的 继承性使一个大型的程序中到处都充满了类的影子 5 Bug 的处理 你是否曾经要求 Microsoft 修改 ASP 的一些 Bug 呢 如果你不是一个 像 Boeing 一样的组织 你无法获 得迅速而恰当的修改 那么当你遇到 Bug 而停止工作时 如 果这个 Bug 不修改 你将无法继续你的工作的 PHP 当 你发现 Bug 时 你可以修改他 如果你没有专家的水平 你 可以请专家修改 并且你的修改会得到开放代码组织的接受 和认可 6 PHP 代码可以再 WINDOWS LINUX 下运行 直接复制代码就可 以 方便快捷 综上这些优点所有选择了 PHP 语言进行开发 1 1 2 2 数数据据库库 M MY YS SQ QL L MySQL 名字的来历 MySQL 是一个小型关系型数据库管理系统 开发者为瑞 典 MySQLAB 公司 在 2008 年 1 月 16 号被 Sun 公司收购 MySQL 被广泛地应用 在 Internet 上的中小型网站中 由于其体积小 速度快 总体拥有成本低 尤 其是开放源码这一特点 许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库 1 MYSQL 的特性 1 使用 C 和 C 编写 并使用了多种编译器进行测试 保证源代码的可移 植性 2 支持 AIX FreeBSD HP UX Linux Mac OS Novell Netware OpenBSD OS 2 Wrap Solaris Windows 等多种操作系统 3 为多种编程语言提供了 API 这些编程语言包括 C C Python Java Perl PHP Eiffel Ruby 和 Tcl 等 4 支持多线程 充分利用 CPU 资源 5 优化的 SQL 查询算法 有效地提高查询速度 6 既能够作为一个单独的应用程序应用在客户端服务器网络环境中 也能 够作为一个库而嵌入到其他的软件中提供多语言支持 常见的编码如中文的 GB 2312 BIG5 日文的 Shift JIS 等都可以用作数据表名和数据列名 7 提供 TCP IP ODBC 和 JDBC 等多种数据库连接途径 8 提供用于管理 检查 优化数据库操作的管理工具 9 可以处理拥有上千万条记录的大型数据库 2 MySQL 的应用 与其他的大型数据库例如 Oracle DB2 SQL Server 等 相比 MySQL 自有它的不足之处 如规模小 功能有限 MySQL Cluster 的功能 和效率都相对比较差 等 但是这丝毫也没有减少它受欢迎的程度 对于一般 的个人使用者和中小型企业来说 MySQL 提供的功能已经绰绰有余 而且由于 MySQL 是开放源码软件 因此可以大大降低总体拥有成本 目前 Internet 上 流行的网站构架方式是 LAMP Linux Apache MySQL PHP 即使用 Linux 作为 操作系统 Apache 作为 Web 服务器 MySQL 作为数据库 PHP 作为服务器端脚 本解释器 由于这四个软件都是免费或开放源码软件 FLOSS 因此使用这种 方式不用花一分钱就可以建立起一个稳定 免费的网站系统 1 1 3 3 A AP PA AC CH HE E 介介绍绍 Apache 是世界使用排名第一的 Web 服务器软件 它可以运行在几乎所 有广泛 Apache Server 配置界面 使用的计算机平台上 Apache 源于 NCSAhttpd 服务器 经过多次修改 成为世界上最流行的 Web 服务器软件之一 Apache 取自 a patchy server 的读音 意思是充 满补丁的服务器 因为它是自由软件 所以不断有人来为它开发新的功能 新的特性 修改原来的缺陷 Apache 的特点是简单 速度快 性能稳定 并可做代理服务器来使用 本来它只用于小型或试验 Internet 网络 后来逐步扩充到各种 Unix 系统中 尤其对 Linux 的支持相当完美 Apache 有多种产品 可以支持 SSL 技术 支持多个虚拟主机 Apache 是以进程为基础的结构 进程要比 线程消耗更多的系统开支 不太适合于多处理器环境 因此 在一个 Apache Web 站点扩容时 通常是增加服务器或扩充群集节点而不是增加处理 器 到目前为止 Apache 仍然是世界上用的最多的 Web 服务器 市场占有率 达 60 左右 世界上很多著名的网站如 A Yahoo W3 Consortium Financial Times 等都是 Apache 的产物 它的成功之处主要 在于它的源代码开放 有一支开放的开发队伍 支持跨平台的应用 可以运 行在几乎所有的 Unix Windows Linux 系统平台上 以及它的可移植性等 方面 Apache 的诞生极富有戏剧性 当 NCSAWWW 服务器项目停顿后 那些使 用 NCSA WWW 服务器的人们开始交换他们用于该服务器的补丁程序 他们也 很快认识到成立管理这些补丁程序的论坛是必要的 就这样 诞生了 Apache Group 后来这个团体在 NCSA 的基础上创建了 Apache Apache web 服务器软件拥有以下特性 支持最新的 HTTP 1 1 通信协议 拥有简单而强有力的基于文件的配置过程 支持通用网关接口 支持基于 IP 和基于域名的虚拟主机 支持多种方式的 HTTP 认证 集成 Perl 处理模块 集成代理服务器模块 支持实时监视服务器状态和定制服务器日志 支持服务器端包含指令 SSI 支持安全 Socket 层 SSL 提供用户会话过程的跟踪 支持 FastCGI 通过第三方模块可以支持 Java Servlets APACHE 有名的几个项目介绍 1 HTTP Server 2 Jakarta 3 Struts 4 Tomcat 1 1 4 4 B B S S 架架构构介介绍绍 B S 架构软件的优势与劣势 1 维护和升级方式简单 目前 软件系统的改进和升级越来越频繁 C S 系统的各部分模块中有 一部分改变 就要关联到其它模块的变动 使系统升级成本比较大 B S 与 C S 处理模式相比 则大大简化了客户端 只要客户端机器能上网就可以 对于 B S 而言 开发 维护等几乎所有工作也都集中在服务器端 当企业对 网络应用进行升级时 只需更新服务器端的软件就可以 这减轻了异地用户 系统维护与升级的成本 如果客户端的软件系统升级比较频繁 那么B S 架构的产品优势明显 所有的 升级操作只需要针对服务器进行 这对那 些点多面广的应用是很有价值的 例如一些招聘网站就需要采用B S 模式 客户端分散 且应用简单 只需要进行简单的浏览和少量信息的录入 2 系统的性能 在系统的性能方面 B S 占有优势的是其异地浏览和信息采集的灵活性 任何时间 任何地点 任何系统 只要可以使用浏览器上网 就可以使用 B S 系统的终端 不过 采用 B S 结构 客户端只能完成浏览 查询 数据 输入等简单功能 绝大部分工作由服务器承担 这使得服务器的负担很重 采用 C S 结构时 客户端和服务器端都能够处理任务 这虽然对客户机的要 求较高 但因此可以减轻服务器的压力 而且 由于客户端使用浏览器 使 得网上发布的信息必须是以 HTML 格式为主 其它格式文件多半是以附件的 形式存放 而 HTML 格式文件 也就是 Web 页面 不便于编辑修改 给文件 管理带来了许多不便 比如说很多人每天上 新浪 网 只要安装了浏览 器就可以了 并不需要了解 新浪 的服务器用的是什么操作系统 而事实 上大部分网站确实没有使用 windows 操作系统 但用户的电脑本身安装的 大部分是 windows 操作系统 3 系统的开发 C S 结构是建立在中间件产品基础之上的 要求应用开发者自己去处理 事务管理 消息队列 数据的复制和同步 通信安全等系统级的问题 这对 应用开发者提出了较高的要求 而且迫使应用开发者投入很多精力来解决应 用程序以外的问题 这使得应用程序的维护 移植和互操作变得复杂 如果 客户端是在不同的操作系统上 C S 结构的软件需要开发不同版本的客户端 软件 但是 与 B S 结构相比 C S 技术发展历史更为 悠久 从技术 成熟度及软件设计 开发人员的掌握水平来看 C S 技术应是更成熟 更可 靠的 2 2 系系统统分分析析与与设设计计 2 2 1 1 系系统统的的功功能能设设计计 合同管理系统的主要功能包括合同的录入 合同修改 合同的查询功能 按合同名称 签订合同的单位 合同的有效期合同到期后可邮件通知 合同到 期后的停用 启用功能 合同的详细信息并且可以打印的功能 合同日志的查 看 打印功能 系统功能具体如下 1 录入功能 允许管理员添加新的合同 包括合同的基本信息和乙方 的信息 2 修改功能 允许管理员对合同的基本信息和乙方信息进行修改 3 查询功能 允许管理员对所有合同进行查询 查询方式按合同名称 合同状态 签订合同的单位以及合同的有效期来查询 另外还有可 以按升序降序的排列 4 邮件功能 合同到期时 向合同乙方的管理员发送邮件提醒 5 停用 启用功能 合同到期后可以选择停用合同 续费后可以继续 启用 6 打印功能 在合同的查看详细页面里设有打印按钮 可以打印此页 面的合同内容 2 2 2 2 系系统统的的流流程程设设计计 对此系统使用了控制权限 在页面开始加载的时候会判断是否登录 如果 没有登录直接访问页面的会一律的跳转回登录页面 这样来可以提高系统的安 全性 具体流程如下图所示 登录失败登录成功 没有有 登录登录 验证用户身份验证用户身份 返回返回 访问页面时候判断访问页面时候判断 是否有登录用户是否有登录用户 返回返回添加合同添加合同 返回返回 2 2 3 3 系系统统流流程程图图 和和功功能能图图 由于目前考虑到系统就是一个管理员操作的所以没有设定多用户的程 序 网站管理员首先进行系统登录 登录进来以后 可以对合同进行添加 修改 查看等操作 网站的系统流程图如下 输 入 密 码 读 取 数 据 系统流程图 下面为系统的功能图 管理员登录 登录成功 合同添加 合同修改 合同停用 启用 合同搜索查看 合同日志查看 数据库数据库 前台 PHP 程序 前台 html 模板 数据库数据库 合同添加 合同修改 合同停用 启用 合同搜索查看 合同日志查看 停用 启用 乙方 合同名称 合同有效期 合同状态 2 2 4 4 系系统统功功能能结结构构分分析析 根据客户的需求本系统一共分为合同的添加 合同的修改 合同的打印 合同的停用 启用以及合同的搜索查询和查看合同的日志这六个功能模块 管理员登录系统 后便可以对这六块进行相应的操作 2 2 4 4 1 1 添添加加合合同同 该模块主要是对合同的添加进行的操作 管理员点击创建合同即可进 入合同添加的前台页面 该页面主要需要管理员填写合同的基本信息 比如 合同名称 乙方等等 还会填写乙方的一些信息比如管理员的联系方式等等 另外页面还做了一些效果比如合同日期的选择 不会让管理员自己输入 填 写合同费用后 系统自动会填写数字的大写汉字 加入这些可以更好的提高 用户体验 为管理员带来方便 2 2 4 4 2 2 修修改改合合同同 该模块主要是对合同的修改进行的操作 管理员点击合同详细的后可 以进入详细的页面 在页面最下端有一个修改的按钮 管理员可以点击按 钮进入修改页面 对合同的每个信息进行修改 然后点击提交完成操作 不 想修改的信息就保留不动 这块也有一个 JAVASCRIPT 的用法 就是点击 修改后带有文本框可以修改的表格显示 之前的表格隐藏 2 2 4 4 3 3 停停用用 启启用用合合同同 该模块主要对合同的标识进行的操作 分为过期停用和已签订启用这两 个状态 系统会根据签订的有效期来判断合同的过期时间 管理员可以把 过期的合同置为停用的状态 表明合同暂时 为不可用 当乙方续费成功后管 理员可以把合同的状态置为启用来 表明合同从新生效 这样避免了删除合 同后在想查询此合同数据库里没有的问题 2 2 4 4 4 4 打打印印合合同同 该模块主要对合同的打印进行了操作 在合同的详细页面最低端有打印 的按钮 管理员点击此按钮可以出发JAVASCRIPT 的打印功能 从而打印 页面显示合同信息的表格 2 2 4 4 5 5 查查看看日日志志 该模块主要对合同进行一个统计功能 能够让管理员查看合同都做过哪 项的操作 该功能在添加 修改 停用 启用后都会记录一条信息到数据库 以便管理员将来好进行查看 2 2 5 5 数数据据库库设设计计 在写程序之前 数据库的设计是非常关键的 数据库设计是指对于一 个给定的应用环境 构造最优的数据库模式 建立数据库及其应用系统 使 之能够有效地存储数据 满足各种用户的应用需求 信息要求和处理要求 一个成功的管理系统 是由50 的业务 50 的软件组成 而 50 的成 功软件又由 25 的数据库 25 的程序所组成 所以数据库设计的好坏是一 个关键问题 如果把企业的数据比作生命所必须的血液 那么数据库的设计 就是应用中最重要的一部分 好的数据库可以让程序变得更加的简单 也可以为操作起来所用的时间 减少 可以保证服务器的运行速度和网页的加载速度 实体和属性的定义 合同信息 合同编号 乙方 合同名称 合同的有效期开始时间 合 同的有效期结束时间 服务费用 服务费用大写 支付说明 服务器账号 服务器中文名字 提供服务器的类型 服务器放置位置 乙方负责人姓名 乙方负责人电话 乙方负责人邮件 乙方管理员的姓名 乙方管理员电话 乙方管理员邮件 合同状态 创佳时间 修改时间 订单状态 上面定义了合同信息的主要属性 期中合同编号可以定义为自动增长 的字段 作为主键 其他为合同的一些信息 合同状态为过期和签订 订单 状态为停用和启用 分别用0 和 1 作为标识 2 2 5 5 1 1 数数据据库库的的设设计计 本系统采用 MYSQL 为数据库来存储信息 涉及到的数据库名称是 PKU CONTRACT 期中有三个表分别为 contract order 合同信息表 log order 合同的日志表 member 管理员信息表 合同信息表存放合同的基 本信息和签订合同的乙方的信息 日志表存放操作合同后产生的日志 管理员 信息表存放是管理员的名称与密码 2 2 5 5 2 2 合合同同信信息息表表 c co on nt tr ra ac ct t o or rd de er r 的的设设计计 合同信息表 contract order 此表用来存放合同的基本信息和签订合 同的乙方的信息 下面列出本表的字段及字段类型和说明 合同信息表 contract order 字段名称数据类型字段说明 order id 主键 int 10 auto increment自增 id companyvarchar 255 乙方 order namevarchar 200 合同名称 startdatedate合同有效期开始时间 enddatedate合同有效期结束时间 chargesvarchar 255 服务费用 daxievarchar 200 服务费用大写 Paymentvarchar 255 支付说明 Accountvarchar 255 服务器账号 chinesevarchar 255 服务器中文名字 servertypevarchar 255 提供服务器的类型 localvarchar 255 服务器放置位置 chargenamevarchar 255 乙方负责人姓名 Chargetelvarchar 255 乙方负责人电话 chargeemailvarchar 255 乙方负责人邮件 mangnamevarchar 255 乙方管理员的姓名 mangtelvarchar 255 乙方管理员电话 mangemailvarchar 255 乙方管理员邮件 order stateint 10 合同状态 creatdatedate创建时间 correctdatedate修改时间 typeint 11 订单状态 2 2 5 5 3 3 合合同同日日志志表表 l lo og g o or rd de er r 的的设设计计 合同日志表 log order 此表用来存放合同 被操作后产生的日志信息 其中字段 order id 和合同表的 order id 相对应 下面列出本表的字段及 字段类型和说明 合同日志表 log order 字段名称数据类型字段说明 id 主键 int 10 auto increment自增 id order idint 20 合同 id edit mangervarchar 255 修改者姓名 edit datedate修改日期 contenttext内容 typevarchar 255 类型 2 2 5 5 4 4 管管理理员员表表 m me em mb be er r 的的设设计计 管理员表 member 此表存放管理员的姓名和密码 目前只有admin 这一个管理员 管理员表 member 字段名称数据类型字段说明 useriduserid 主键 int 10 auto increment管理员 id usernameusernamevarchar 200 管理员姓名 passwordpasswordvarchar 200 管理员密码 2 2 5 5 5 5 合合同同信信息息表表和和合合同同日日志志表表的的关关系系 合同日志表 log order 里的 order id 和合同信息表里的主键 order id 是对应的关系 这样 存入日志表里的合同只要存入order id 就 可以了 不用存入其他的信息 想查询合同信息的时候可以根据 order id 字段到合同信息表里查询对应的 order id 即可 3 3 系系统统实实现现 3 3 1 1 系系统统运运用用的的技技术术 系统在编程开发方面 运用一些目前较为流行 的技术 比如 PHP SMARTY 模板 JAVASCRIPT 的 JQUERY 的框架等等 运用这些技术让程 序开发变得更为简单 快捷 同事也方便以后的系统维护 SMARTY 模板 技术修改起来也会非常的容易 下面简单列举一些实力进行说明 3 3 1 1 1 1 J JQ QU UE ER RY Y 的的 A Aj ja ax x 技技术术 Ajax 是一种创建交互式网页应用的网页开发技术 AJAX 的最大机遇 在于用户体验 在使应用更快响应和创新的过程中 定义Web 应用的规则 正在被重写 在本系统中管理员登录的模块就是运用Ajax 技术提交的 下面是源代码分析 以上这段代码就是登录的一个方法 其实ajax 的提交我写到了 Onsubmit 这个函数里 另外还做一个判断用户点击回车后触发这个函数和 点击登录按钮后触发这个函数的方法 3 3 1 1 2 2 P PH HP P S SM MA AR RT TY Y 让让你你的的开开发发更更简简单单 Smarty 是一个使用 PHP 写出来的模板引擎 是目前业界最著名的PHP 模板引擎之一 它分离了逻辑代码和外在的内容 提供了一种易于管理和使 用的方法 用来将原本与 HTML 代码混杂在一起 PHP 代码逻辑分离 简单 的讲 目的就是要使 PHP 程序员同前端人员分离 使程序员改变程序的逻 辑内容不会影响到前端人员的页面设计 前端人员重新修改页面不会影响到 程序的程序逻辑 这在多人合作的项目中显的尤为重要 下面介绍一下具体的应用 例如在合同的列表页里 ContractList php 当从数据库取出所有信息以 后在代码的最下面进行往模板上的赋值 smarty assign arr arr smarty assign username username 的意思就是把变量 arr 和 username 赋值给一个变量 arr 和 uername 而 arr 和 username 是可以再 html 模板中运用的变量 区别就 是 arr 是数组而 username 是单个的变量 smarty display ContractList html 意思就是为 php 页面指定 模板文件 当然要想用到这个方法必须还得引用smarty 的类文件 在 html 模板里也运用到刚刚定义的变量就是这样 对于单个变量的 username 在 html 模板中可以写为 username 直接 使用 对于数组 arr 则必须使用循环语句使用例如 foreach from arr item array pany array order name array charges 等等这些是数组中的键值 foreach 结尾 这样 php 里定义的变量就可以成功的运用到html 模板中了 3 3 系系统统功功能能模模块块 在这节里将具体详细的介绍系统的各个功能的实现 3 3 2 2 1 1 用用户户管管理理 用户方面目前只有 admin 一个管理员用户 没有做到多用户管理 系统 唯一涉及到用户的就是首页的登录页面 具体的涉及的页面是 index php 调用的模板是 login html 1 界面设计 首页的用户登录如下图所示 图 1 用户登录 用户点击登录按钮或者按回车后都会触发 function Onsubmit message empty 此处为清空页面元素 id 为 message 的内容 var username username val var password pwd val 此处是得到 username 和 pwd 的值 ajax ajax 开始 type POST 提交方式为 post url login php 提交到 login php data username username 成功后回调的函数把返回的信息放入message 处 这个函数利用 ajax 的技术提交到 login php 2 后台功能实习 Login php 负责接收页面传过来的参数去数据库进行检索 username POST username password POST password 是接收参数并赋值给变量 然 后用 sql 语句 select from member where username username 去数据库里的 member 表里进行匹配查找 PHP 语 言可以利用 MYSQL 的 mysql num rows 这个函数来获取返回的行数 如 果行数为 0 则说明没有此用户名这时向login html 返回没有该用户 而 MYSQL 的 mysql fetch object 函数可以将查询的结果赋值给一个标 量在用变量去指向表里的字段 这样可以判断 password obj password 是否相等 如果相等登录成功跳转 不相等返回密码输入错 误 这样一个登录的模块就完成了 3 3 2 2 2 2 合合同同管管理理 此处为系统中的重点部分 是针对合同做的一系列的操作 期中包括合同 的添加 修改 打印 停用 启用 查询 日志 打印等功能 涉及的一 个最关键的文件就是 ContractManage php 所有的关于合同的后台操作都 在这一个文件完成 是通过页面提交不同的action 去进行不同的操作 1 创建合同 此模块涉及到的文件有 ContractAdd php ContractAdd html 和 ContractManage php 其中 ContractAdd html 是 ContractAdd php 的模板页 用户点击创建合同后会跳转到 ContractAdd php 这时程序会自动调用到 ContractAdd html 显示 如下图所示分为填写基本信息 和乙方信息 图 2 创建合同 填写完成后点击创建按钮 会把表单提交到 ContractManage php 文件 而 ContractManage php 文件会在接收 传过来的 action 创建合同的 action 为 add 所以程序会执行 add 下的代码即执行插入的 sql 语句 同时会向日志的表中插入一 条信息标记为 插入的新合同 2 修改合同 此模块设计到的文件有 ContractManage php ContractView html 页面 期中 ContractView html 为模板文件 查看详细和修改合同都是这个模 板 用户可以点击列表页里最后一栏的查看详细 这是给 ContractManage php 页面传一个 action 为 view 的参数 ContractManage php 通过 action 调用 ContractView html 页面 页面显示为合同的详细信息 如下图所示 图 3 合同详细页面 管理员可以点击下方的修改按钮 此时会触发一个 javascript 的函数 checkedit click function view hide edit show 此函数的功能就是让显示的部分隐藏 修改的部分显示出来 函数执行完后页面就会变成如下图所示 图 4 合同修改页面 所有的信息全部变为可改的形式供管理员修改 修改完后点击确 定按钮将信息提交到 ContractManage php 页面此时 action 为 edit 进行修改并存入数据库 3 停用 启用合同 此功能涉及到的文件有 ContractManage php ContractView html 页面 期中 ContractView html 为模板文件 此功能的流程为先得到合同当前 的状态 在通过状态来定义页面下方的按钮是停用还是启用 如图 3 所示的信息 在合同相信页面的最下方 现在是停用的按钮 当合 同过期后管理员可以点击停用按钮来停止合同 这里也是运用了 jquery 的 ajax 技术用来提交参数来停用或者启用合同 代码如下 del click function type type val if type 1 me 确定停用该合同吗 else me 确定启用该合同吗 if confirm me true 运用了 javascript 的 一个确认的函数 var order id username order id order id val username username val ajax type POST url ContractManage php data action del else alert 该合同启用成功 location href ContractList php username username else return false 此方法提交到 ContractManage php 页面 action 为 del 来调用 停用和启用的功能 4 查询合同 此功能涉及到的文件有 ContractSreach php 和 ContractSreach html 两个文件 搜索的程序 ContractSreach php 模板为 ContractSreach html 搜索合同分为 按乙方 合同名称 合同有效期和合同状态来进行搜索 如下图所示 图 5 合同的搜索 同时还做了一个按升序降序排序的功能便于管理员的查看 程 序中对提交的参数进行逐一的判断最后根据参数不同来拼出可供查询 的 sql 语句 5 日志功能 此功能是在合同被操作的情况下都会产生一个日志记录下合同变 更的信息 操作人 变更时间等等 例如在修改合同后就会把修改 的内容存入日志表里 首先修改的前台页面在每个input 文本框里 都会写一个 onblur getEditInput this id 事件 这个事件是 当光标移开文本框的时候触发的事件 然后把所有修改的内容存到 一个数组里 数组以 id 为下标 value 为数组值 然后通过函数转 换为字符串 转换函数如下 function getObject o var result for key in o result key o key return result 然后点击提交按钮跳转的 ContractManage php 的 action 为 edit 的代码段 然后执行完更新以后会执行代码 sql insert into log order order id edit manger edit date content type values order id username NOW edit array 更新 mysql query sql 进行网日志里的插入 6 打印功能 打印功能在合同的详细页面如上图3 中有打印按钮 管理员点击打 印会调用 javascript 的打印函数 链接打印机来执行打印 打印功 能代码如下 function doPrint 获得 body 的 html bdhtml window document body innerHTML 打印开始的标志 sprnstr 打印结束的标志 eprnstr 从打印开始的位置截取到末尾 prnhtml bdhtml substr bdhtml indexOf sprnstr 17 从开始截取到打印结束的位置 prnhtml prnhtml substring 0 prnhtml indexOf eprnstr 替换 html window document body innerHTML prnhtml 打印 window print 3 3 3 3 系系统统前前台台页页面面 这一节主要简单的介绍一下系统的前台页面 期中挑一个列表页 合同 的相信页 和合同的搜索页来介绍 3 3 3 3 1 1 合合同同列列表表页页 C Co on nt tr ra ac ct tL Li is st t p ph hp p 合同列表页主要是把所有的合同都列举出来供管理员查看 其中页面 做了分页的功能 页面单间 整洁 便于制作和观看 页面的制作工具为 phpotoshop 和 Dreamweaver 首先对设计人员设计的图片进行裁剪 然后 用 Dreamweaver 来搭建页面 用 css div 的模式 然后 ContractList html 做为模板页去调用 php 程序传过来的变量 列表页界 面如下图 所示 图 6 合同列表页 页面的左上角是系统的 logo 和名称 右侧是目前登录的管理员 下面 左侧是目前页面内容的关键字 右侧的创建合同点击可以进入创建页面 在 往下则是搜索条 分为乙方 合同名称 合同有限期 合同状态的搜索 另 外还有查看全部合同和查看所有日志的按钮 下面是一个排序的功能 可分 为按时间的升序和降序 中间的内容部分是合同的列表 页面显示出的是乙方 合同名称 合同 的状态 有限期和服务的费用 要想看合同的相信信息可以点击操作栏的查 看详细 进入详细页面 详细页面可以打印 可以修改合同 右下角是分页 的功能显示 列出的当前页数和当前有多少项 下方是系统的底部 3 3 3 3 2 2 合合同同详详细细页页 C Co on nt tr ra ac ct tM Ma an na ag ge e p ph hp p a ac ct ti io on n 为为 v vi ie ew w 合同的详细页主要是列出一个合同的所有的详细信息供管理员查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论