前言:
做任何事情都需要有一个好的思路,只有思路明确之后才能将一件事情给做好,而且思路明确还能将复杂的事情变简单,将繁琐的事情变容易。反之,如果没有一个号的思路,拿着就去做,那么很容易碰壁,而且可能会将简单的事情复杂化,容易的事情繁琐化。
遇到问题:
今天接到任务,说需要在原来的已经完整的项目上增加一个新功能,就是原来页面上所有的内容给导出到Excel表格中,因为以前没有这方面的经历,所以第一次遇到这样的情况还是有点措手不及的。
分析问题:
因为这个项目是比较完整的,所以先分析这个框架,这个是一个用Mvc搭建的三层框架,所以在前端部分需要考虑到Model、Views、JS、Controllers。又因为这是需要导出页面上所有内容,所以也要用到后端到数据库中区查找数据,即又用到了IBLL、BLL、IDAL、DAL、SQLHelper这些层里面的信息,所以这些层里面也需要考虑,然后再分析所有页面,看看有没有相类是的功能在有些页面上已经实现了,如果有的话直接提取出相应的信息出来就可以了,没有的话就只能自己根据所需慢慢自己调整了。
我的分析过程是:
首先建立文档分析,用文档将需要改动的地方都罗列出来,然后再在增加/修改功能的时候直接对照着文档进行就好了,省的这里改一下,那里改一下,很盲目。比如用这次在Mvc搭建的三层框架中,我需要在Web界面上添加一个导出Excel表格的按钮,列出的分析如下:
1. 需要在Web界面上增加导出Excel表格的按钮。
导出的Excel表格的样式是什么?
按钮的属性和方法有那些?
2. Views页面上应当怎样的布局和增加相应的代码?
按钮的位置应该在那个地方
按钮的颜色、规格、大小应当怎样布局
按钮的功能应该有哪些
3. JS页面上应当在那个位置增加那些方法?
应当嵌套在那个里面,亦或是建立新方法?
4. Controllers界面上有需要怎样的控制?
面对不同的需求表格式样是否瞒住所需?
3. IBLL层中增加通往BLL层的数据。
需要增加的接口和内容是什么?
4. BLL层中增加调取数据库中信息的内容。
应该建立一个怎样的业务逻辑?
5. IDAL层中增加通往DAL层的数据。
需要增加的接口和内容是什么?
6. DAL层中带参查询库存中的信息。
需要增加什么类型的查询信息以及查询语句?
7. SQLHelper层中
SQLHelper层中的数据库连接信息是否满足,需要增加吗?
按照上面的这个流程分析,基本上都分析到了,如果没有分析到的再到具体行动中去,毕竟不实际行动的话永远也不会遇到问题
。
行动起来:
我的分析过程是:
基本上按照分析问题的方式付出实际行动就好,接下来简单介绍一个页面中增加导出Excel表格的方法:
1.在MvcApplication1下的Views文件夹中找到Inventory文件下的Index.cshtml
第81行增加按钮代码
:
<a href="#" onclick="xport()" style="width: 8%; margin: 0;">批量导出</a>
2.在MvcApplication1下的JS文件夹中找到Inventory.js
第 263 行增加方法
:
xport(){
Windo