基于WEB的MIS系统动态表单域设计与应用

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:y358549797
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:基于WEB的MIS系统正在日益普及,本文叙述了基于WEB的MIS系统中表单域编辑的一种动态实现方案,讲述了该方案的设计原理,并与传统方式进行比较,特别针对该方案的实现程序进行了详细的分析和解释,文中还通过一个典型的例子阐述了该方案的应用。
  关键词:WEB;MIS;动态表单域
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)21-30393-04
  Designation and Application of MIS Dynamic Form Domain on the Basis of WEB
  LU Yue-hua, JIANG Hao, CHEN Zhong-ming
  (Southeast University,Nanjing 210004,China)
  Abstract: The MIS based on WEB is being used widely. This paper brings forward a scheme that can edit the MIS form based on WEB dynamically; explains the principle of the scheme thoroughly comparing with the traditional scheme and analyzing and demonstrating the program of realization; and at last explains the application of the scheme through a typical enxample.
  Key words: WEB; MIS; dynamic form domain
  
  1 引言
  
  各机构、部门高层领导的决策依赖于大量信息,要求企业的各种业务信息能通过一个简单、一致的浏览器界面来收集和传送,这要求计算机管理信息系统(MIS)设计应基于B/S(Browse/Server)模式[3]。该模式的MIS系统还具有便捷安装、客户端零维护、方便移植等优势,越来越受到各单位的青睐。
  通常意义上的MIS系统都包括两大方面内容:基础数据的管理和在基础数据上进行分析与挖掘。以满足单位基层人员的日常工作需要和提供对高层管理人员的辅助分析。
  MIS系统中基础数据的管理往往是针对一堆业务表格的管理,实现业务表格的添加、修改、删除、查询功能,统称为表单域编辑。目前比较通用的基于WEB的一些开发框架、开发工具都提供了许多便捷性操作,方便表单编辑功能的开发,但都存在一个问题,各业务表格的编辑功能相似,但业务表格之间的关系、表格内容、表格各项格式不一样,因此,每个业务表格的管理都需要一套代码来实现。一般情况下,一个MIS系统中的基础表格数量比较大,这样就需要庞大的代码量,延长了系统的开发时间,也不利于将来代码的维护与功能的扩展。
  如何克服上述弊端呢?本文就如何利用动态表单域技术,实现以一套代码管理所有业务表单操作,并基于数据表动态生成提交表单和动态生成处理表单的源程序作一些探讨。
  
  2 设计原理
  
  传统的提交表单是根据具体的业务内容来生成的,表单编辑的实现方式如图1所示,用户打开某个业务表格的录入页面录入数据并存入数据库时,系统提供该业务表格的具体录入页面给用户录入,然后再提交到数据库中存储。
  通常每个表单的提交页面及处理程序是由熟悉网页设计的程序员事先编程实现,然后再上传发布的。这样的缺点是:第一,不能由非专业人员完成,必须由相关专业人员才能完成开发工作。第二,不同的提交内容需要设计不同的提交表单和处理程序,程序没有通用性[1]。
  
  3.3 程序实现
  从上述序列图中可以看出,实现的关键是“5、生成动态提交页面”和“8、生成SQL处理语句”两段程序。
  3.3.1 生成动态提交页面的程序
  提交页面布局思路:用一个两列的表格来分别存放内容项的标题和输入框。为了页面的美观,隐藏表格的表格线。
  页面提交时的输入内容校验可以有多种方法,如果使用struts、Spring等框架,还可以用这些框架定义的标签,这里使用了自定义标签,这样输入内容可以根据自定义标签用JS来实现校验。自定义标签说明:chname指输入域中文名,当输入内容出错时可以用中文来提示出错的输入域;maxsize指输入最大长度控制,避免存入数据库时的超长输入错误;isnull指是否可以不填,可校验页面是否是必填项;datatype指数据类型,可判断用户输入的数据类型是否正确,比如是否在文本框中输入了整数等。
  另外一个值得一提的是,输入域中如果是下拉列表选择项或单选项的,这里我们把选择项另外存储(例如使用数据库表等),并且设计成可以通过表名和字段名来获取这些选择项,这样这些选择项即能独立管理又能方便编辑页面的获取,这里不详细描述了。
  具体生成动态提交页面的程序如下所示:
<br>  <b><%=参数.表中文名%>录入页面</b> <br>  <table id="tab"width="98%" border="0"  align="center"> <br>  for(int i=0;i<参数个数;i++) //循环该表中每个参数对象 <br>  {  <br>  <tr > <br>  <td class="CSS中定义的标题样式"><%=当前参数对象.字段中文名%></td> <br>  <td> <br>  if(当前参数对象.字段页面显示样式.equalsIgnoreCase("text")) //输入域样式为text <br>  { <br>  <input type="text" name="<%=当前参数对象.字段名%>" value="<%=当前参数对象.默认值%>" class="CSS中定义的文本框样式" chname="<%=当前参数对象.字段中文名%>" maxsize= "<%=当前参数对象.字段长度%>" isnull="<%=当前参数对象.是否为必填项%>" datatype="<%=当前参数对象.字段类型%>" >  <br>  }  <br>  else if(当前参数对象.字段页面显示样式.equalsIgnoreCase("select"))//输入域样式为下拉选择框 <br>  { <br>  ArrayList theList = TypeBean.getTypeList(当前参数对象.表名,当前参数对象.字段名); <br>  //根据表名和字段名得到预设该下拉框中应该显示的输入信息列表 <br>  <select name="<%=当前参数对象.字段名%>" chname="<%=当前参数对象.字段中文名%>" size=1 isnull="<%=当前参数对象.是否为必填项%>"> <br>  <option value=>请选择</option> <br>  for(int j=0;j<theList.size();j++) //循环列表,输入在下拉选择框中 <br>  if(当前参数对象.默认值.equalsIgnoreCase(列表中当前项))//与默认值相同则选中 <br>  <option value=<%=列表中当前项%> selected><%=列表中当前项%></option> <br>  else  <br>  <option value=<%=列表中当前项%> ><%=列表中当前项%></option> <br>  </select> <br>  } <br>  elseif(当前参数对象.字段页面显示样式.equalsIgnoreCase("radio")) //输入域样式为单选项 <br>  { <br>  ArrayList theList = TypeBean.getTypeList(当前参数对象.表名,当前参数对象.字段名); <br>  //根据表名和字段名得到预设该单选项的所有选择项 <br>  for(int j=0;j<theList.size();j++) //循环列表,生成各单选项 <br>  if(当前参数对象.默认值.equalsIgnoreCase(列表中当前项))//与默认值相同则选中 <br>  <input type="radio" chname="<%=当前参数对象.字段中文名%>" name="<%=当前参数对象.字段名%>" value="<%=列表中当前项%>"selected><%=列表中当前项%>  <br>  else <br>  <input type="radio" chname="<%=当前参数对象.字段中文名%>" name="<%=当前参数对象.字段名%>" value="<%=列表中当前项%>"><%=列表中当前项%>  <br>  } <br>  else if(当前参数对象.字段页面显示样式.equalsIgnoreCase("textarea")) //输入域样式为文本域 <br>  { <br>  <TEXTAREAname="<%=当前参数对象.字段名%>" class="CSS中定义的文本框样式" chname="<%=当前参数对象.字段中文名%>" maxsize= "<%=当前参数对象.字段长度%>" isnull="<%=当前参数对象.是否为必填项%>" datatype="<%=当前参数对象.字段类型%>" ><%=当前参数对象.默认值%></TEXTAREA>
  }
  elseif(当前参数对象.字段页面显示样式.equalsIgnoreCase("date"))//输入域样式为日期
  {
  <scriptlanguage="javascript">
  varmyDates=newdateSelector();
  //使用一个公用的JS实现一个日期的选择控件,这里调用一下
  myDates.inputName='<%=当前参数对象.字段名%>';
  myDates.value=<%=当前参数对象.默认值%>;
  myDates.display();
  </script>
  }
  </td>
  </tr>
  }
  </table>
  3.3.2生成动态SQL处理语句的程序
  在生成动态提交页面的程序中,我们可以看到页面中各输入域的名称都是以参数中的字段名命名,这是该程序的一个巧妙之处,这样该页面提交后各输入项内容就能很方便地通过表中各字段名来获取了,这样提交后SQL处理语句可以通过获取各输入项内容来动态生成。
  表单提交的动态SQL处理语句的实现程序:
  StringtmpFieldStr="";//表中字段名拼成的以逗号分隔的字符串
  StringtmpValueStr="";//各输入项内容拼成的以逗号分隔的字符串
  for(inti=0;i<参数个数;i++)//循环该表中每个参数对象
  {
  tmpFieldStr=tmpFieldStr+当前参数对象.字段名+",";
  StringIntValue=request.getParameter(当前参数对象.字段名);//通过字段名获取输入值if((当前参数对象.字段类型.equalsIgnoreCase("integer"))
  ||(当前参数对象.字段类型.equalsIgnoreCase("real")))
  {
  if(intValue==null||intValue.equalsIgnoreCase(""))intValue="0";
  }
  elseif(intValue==null)intValue="";
  tmpValueStr=tmpValueStr+intValue+",";
  }
  tmpFieldStr=tmpFieldStr.substring(0,tmpFieldStr.length()-1);//去掉最后一个多余的逗号
  tmpValueStr=tmpValueStr.substring(0,tmpValueStr.length()-1);//去掉最后一个多余的逗号
  Stringsql="";//最后生成的录入SQL语句
  sql="insertinto"+参数.表名+"("+tmpFieldStr +")values("+tmpValueStr+")";
  4应用
  一般MIS系统都是针对机构、部门进行管理的,这里我们以物业管理系统中的“部门大事记”这样一个表单为例来说明如何应用本方案,不需添加多余代码即可实现这个表单管理。
  假设部门大事记包含以下内容:部门名称、事件类型、标题、时间、内容、备注、记录日期、记录人。我们根据这些内容在数据库中创建一个表:部门大事表,并设该表的主关键字“流水号”为自动增量字段。
  并在“表单编辑参数配置表”中配置如下记录:
  
  然后调用通用编辑页面,传入参数,如:http://发布路径/PublicEdit.jsp?tablename=T_BMDS。即可显示如图6所示的编辑页面,在该页面上录入信息点击“确定”按钮,系统校验录入内容后把录入内容存入数据库中。
  
  
  5结束语
  
  这种利用配置思想实现的动态生成提交页面的方法使得MIS中的表单编辑的开发和维护费用降低,开发速度加快,开发人员减少,而配置方式不仅提高了程序的复用程度,而且其适应性、灵活性和可扩展性也增强了。这种应用配置思想的设计本身是一个循环迭代的过程,它在不断应用于实践的过程中得到更新和提高。下一步工作要在该方法上不断进行改进,对于多表单复杂编辑的配置方式还需要进一步探讨。
  
  参考文献:
  [1]刘友生,陈一平,胡浪.基于数据表的动态表单处理技术[J].计算机工程与应用,2004(34):199.
  [2]张严林,胡战虎,张江洋.JAVAWEB框架动态表单域编程在物业管理中的应用[J].广东自云贵化与信息工程,2005(3).
  [3]谢天保,李薇.基于WEB模式的管理信息系统的设计[J].湖南大学学报,2002,29(1).
  
其他文献
摘要:通过对J2EE架构的分析,提出了基于J2EE体系的办公自动化总体架构和子系统的分块,然后分别阐述了各子系统的功能及设计方法。  关键词:J2EE架构;办公自动化;设计  中图分类号:TP317文献标识码:A文章编号:1009-3044(2008)09-11656-03    The Analysis and Design of OA System Based on J2EE Frame  L
摘要:网络团购已经成为一种新的购物时尚,中国的团购网站不再是单纯的模仿Groupon模式,而是走出了一条本土化发展的道路,该文将从网络团购的含义和现状介绍起,分析中国目前团购模式本土化的情况和存在的问题,最后预测网络团购本土化未来的发展趋势。  关键词:网络团购;本土化;发展问题;未来预测  中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)03-0543-03   1什
摘要:结合中职课堂教学现状介绍交互式电子白板在中职课堂教学中的优势和应用原则。设计中职课堂教学案例,并进行设计反思。  关键词:中职课堂;交互式电子白板;课堂教学  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2013)28-6356-03  根据人本主义的观点,在课堂教学中,要以“人”为中心,充分调动学生的积极性。传统的课堂教学主要借助黑板 粉笔进行,教学方式单一,主要是
摘要:VHDL作为一种新型的硬件描述语言,主要用于数字电路与系统的描述、模拟和自动设计,是当今电子设计自动化(EDA)的核心技术。文章通过十六位计数器的实例介绍了用VHDL语言设计数字系统的流程和方法,并通过仿真实现预定目的。实践证明,VHDL语言在数字系统设计中具有硬件描述能力强,设计方法灵活等优点,从而降低了数字系统设计的难度,提高了工作效率。  关键词:VHDL;MAX PLUSⅡ;仿真;数
学生的核心素养是指适应学生个人终身发展和社会发展的必备品德和关键能力。把核心素养落实到课堂教学中,是当前教学改革的重要任务。核心素养必须从课程建设和教学模式两个方面落实,二者相辅相成、缺一不可。那么作为一线教师,具体该如何做呢?高茂军、王英兰主编的《核心素养引领下的课堂教学革新》一书围绕这一问题,通过五个专题,指导教师基于学生核心素养的发展,转变观念,创新思路,多路径、多方法改革课堂教学,实现教学
摘要:针对我国高校毕业生就业形势日趋严峻,用人单位招不到符合要求的毕业生,毕业生找不到适合自己的岗位等问题,以海南经贸职业技术学院的就业信息化建设情况为例,通过对毕业生、教师及其他高校的就业信息网的调查研究,分析海南经贸职业技术学院的就业信息网的组成、使用效果及其原因,并借鉴各高校的就业信息网的优点,结合学校实际情况,分析存在问题并提出解决建议。  关键词:高校;信息化;就业;信息网;招聘  中图
摘要:讲述了Windows API拦截的关键技术和方法,重点讲述了dll的注入技术和API拦截技术,并对各种技术进行了优缺点分析。  关键词:API;拦截  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)27-1920-03  Windows API Hooking Method  SHI Yong-lin,PAN Jin,LI Guo-Peng  (Departme
摘要:“任务驱动”是一种建立在建构主义教学理论基础上的教学方法。该文在建构主义学习理论和任务驱动教学思想的指导下,结合教学案例,探索在PROTEL99 SE教学中采用任务驱动的教学模式,在教学过程中通过任务的提出、分析、实现与评价等环节培养学生自主学习与协作学习的习惯,以达到增强学习主观能动性、提高教学效果的目的。  关键词:任务驱动;建构主义;PROTEL99 SE 教学  中图分类号:G642
人民教育出版社2013年秋季用书“语文·七年级上”重新将魏巍的《我的老师》选入教材。文中蔡老师教我们读过的《过印度洋》一诗对作者的注释是:“[她教我们的诗]下文所选的诗节选自周无君的《过印度洋》。”查阅工具书等相关资料,《过印度洋》这首诗的作者是“周太玄”或“周无”,并没有“周无君”这个名字。  周太玄于1895年1月20日(农历)生于四川省新都县,原名周焯号朗宣,后改名为周无,号太玄。我国著名生
摘要:描述了将Linux 移植到基于SEP4020处理器的目标板上的方法和过程,包括交叉编译环境的建立,开发工具使用,内核的裁剪、编译以及文件系统的移植。  关键词:嵌入式;Linux;移植  中图法分类号:TP316文献标识码:B 文章编号:1009-3044(2008)15-20ppp-0c    An Embedded Linux Porting Based on SEP4020 Proce