软件工程实践记录p3(day7-9)

这三天的主要内容是模仿前6天的客户关系管理系统创建库存管理系统,大体框架和客户系统类似,增加了时间记录、根据数据生成excel文件,另对界面进行了美化。

增加时间相关代码

Date date = new Date();
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String stocktime = format.format(date);
        item.setStocktime(stocktime);

生成excel相关代码

GenerateExcelAction.java

package com.crm.action;

import java.io.InputStream;

import com.crm.service.ItemService;
import com.opensymphony.xwork2.ActionSupport;

public class GenerateExcelAction extends ActionSupport{
    private ItemService excelService;
    public  ItemService getExcelService(){
        return excelService;
    }
    public void setExcelService(ItemService excelService){
        this.excelService =excelService;
    }
    public InputStream getDownloadFile(){
        return this.excelService.getInputStream();

    }
    @Override
    public String execute() throws Exception{
        //TODO Auto-generated method stub
        return SUCCESS;
    }

}

ItemDaoImpl.java创建表格代码

public InputStream getInputStream(){
        //Apache moi hssf对象
        HSSFWorkbook wb = new HSSFWorkbook();
        //创建sheet
        HSSFSheet sheet = wb.createSheet("sheet1");
        //表头开始//创建行
        HSSFRow row = sheet.createRow(0);
        //创建单元格 第一个单元格从零开始 第一列
        HSSFCell cell = row.createCell((short)0);
        //设置编码
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("商品编号");
        //第二列
        cell = row.createCell((short)1);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("名称");
        //第三列
        cell = row.createCell((short)2);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("数量");
        //第四列
        cell = row.createCell((short)3);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("价格");
        //第五列
        cell = row.createCell((short)4);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("种类");
        //第六列
        cell = row.createCell((short)5);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("入库时间");
        //表头结束//查询数据库
        List<Item> list =this.ItemDao.findAllItem();
        for(int i=0;i<list.size();++i){
            Item item = list.get(i);
            //把数据放到表格中
            row = sheet.createRow(i+1);
            cell = row.createCell((short)0);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(item.getItemnumber());
            cell = row.createCell((short)1);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(item.getItemname());
            cell = row.createCell((short)2);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(item.getItemamount());
            cell = row.createCell((short)3);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(item.getItemvariety());
            cell = row.createCell((short)4);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            if("1".equals(item.getItemvariety()){
                cell.setCellValue("日用品");
            }else if( "2".equals(item.getItemvariety()){
                    cell.setCellValue("数码科技");
            }else if("3".equals(item.getItemvariety())){
                    cell.setCellValue("其他");
            }
            cell = row.createCell((short)5);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(item.getItemprice());
            }
            //根据输出流,输出到文件中
        File file = new File("item.xml");
        try{
            OutputStream os = new FileOutputStream(file);
            //输出写入到文件中
            wb.write(os);
            //关闭输出流
            os.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        InputStream is null;
        try {
            is = new FileInputStream(file);
        }catch (FileNotFoundExcept e){
            e.printStackTrace();
        }
        return is;
        }

struts.xml(

jsp->struts.xml->前端映射
->后端Action映射

)配置

    <!-- 导出excel -->
        <action name="GenerateExcelAction" class="GenerateExcelAction">
        <result name="success" type="stream">
        <param name="contentType">application/vnd.ms-excel</param>
        <param name="contentDisposition">filename="AllItem.xls"</param>
        <param name="inputName">downloadFile</param>
        </result>
        </action>

applicationContext.xml配置

<!-- 配置excel -->
    <bean id="GenerateExcelAction" class="com.crm.action.GenerateExcelAction">
    <property name="getInputStream" ref="itemService"></property>
    </bean>

ItemInfo.jsp增加“生成excel”按键:

<input width="100" type = "button" value="生成excel" onClick="funExcel();"/>

HTML添加背景图片:

<BODY background="图片路径">
//图片路径:比如图片保存在images文件夹

通过自己的亲身对ssh框架的实践,我熟悉了这个前端web设计到后端功能设计和配置,数据库的配置。加上软件工程实践之前的电子商务实践,这第二学年的小学期让我收获良多。

时间: 2024-08-29 04:26:41

软件工程实践记录p3(day7-9)的相关文章

软件工程实践记录p2(day4-6)

前三天只要是搭建平台,构建链接,而这三天的实践内容则主要是实现数据的新增,删除,查询和修改. com.crm.action.CustSaveAction.java新增信息代码: package com.crm.action; import com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionSupport; public class CustSaveAction e

软件工程实践感想

这学期学习了软件工程实践这门课,我觉得这是对上学期的软件工程课程学习的检验,上学期学习软件工程只是我们浅显的认识,相比之下,这学期就更加全面的说明了开发一个项目所需要的步骤以及开发项目过程中所需要注意的诸多细节.如果说上学期的课程注重理论基础的话,那么这学期的软工实践,顾名思义,就是侧重我们动手操作的能力. 学习了这门课程, 还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合.整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,

软件工程实践

课程信息 参考教材 <构建之法>   作者:邹欣, 编辑:周筠 他山之石 北京航空航天大学    罗杰, 刘乾 东北师范大学          杨贵福 北京电子科技学院    娄嘉鹏 福大历届软工 2016软件工程 教师:张栋 助教:大史 排骨 对象:大三(上)学生 Loading... 2015软件工程 教师:张栋 助教:范飞龙 对象:大三(上)学生 课程:成绩计算原则 作业列表 作业序号 作业主题 优秀作业 助教点评/总结 作业1(个人) 课程预期.自我目标 + 调研移动平台开发环境的发展

软件工程实践的八大常识

--- 本文摘选自<软件工程核心知识>下卷第1093页,文中所提页码都出自该著作. "常识" (Commonsense), 即多数人信以为真并自觉应用的知识, 受社会的普遍认同,反映当时社会的最一般观念.常识有"内心感官" 之称, 它如同外部感官(视.听.嗅.味和触) 一样, 能近乎"直觉" 和"本能" 地指导个体实践.概言之, 常识既是个体学习和实践的结晶, 又是个体学习和实践的法宝. 软件工程常识是软件实践者的

k8s1.4.3安装实践记录(2)-k8s安装

前面一篇已经安装好了ETCD.docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了 1.K8S 目前centos yum上的kubernetes还是1.2.0,因此我们只能是使用下载的安装包,进行kubernetes的安装 [[email protected] system]# yum list |grep kubernetes cockpit-kubernetes.x86_64 0.114-2.el7.centos extras kubernetes.x

【目标】我的软件工程实践项目

1.这次的软件工程实践项目是要我们开发移动应用的软件,而我本人对于Android较感兴趣,所以对到最后能学习到的能力的预期当然是: · 有能力独自开发能稳定运行功能简单的应用,比如教务处查成绩软件等: · 懂得如何团队协作,想要开发功能稳定,强大的软件,单干肯定不行,所以要积累团队协作的经验: · 当然,如果有能力,能顺便了解下IOS或微信的开发自然最好. 2.而对课程的期望:希望老师能先给我们规划好大概的学习方向,让我们知道从哪开始入手学习,学习哪个方向的知识,不至于走太多歪路.当然,学习过程

《软件工程实践导论》一读后感

<软件工程实践导论>这本书是清华大学出版社2005年出版的图书,作者为金尊和.之所以选择这本书作为本次作业选书,是因为一个学长手上刚好有这本书,而且也向我推荐这本书值得一看.但是书相对较厚,而且内容也并不简单,所以我只能算是浅尝辄止. 这本书前面部分就是软件工程的一些方法概念,以及各工程上的结合,对于代码实际设计和开发过程还是有很大的帮助,感觉很多东西在我们的大作业--<排课系统>里面有都有应用,所以给我的感觉就是和实际应用相互呼应,能用学以致用. 后面部分就是本书具有特色的东西,

个人作业——软件工程实践总结作业

一.回望暑假,展望未来 1)参加软工实践之前,我可能只是在C++方面,有能力完成一些编程题目:在参与课程的过程中,我主要拓展了Android开发方面的知识.不足方面,我认为在合理安排时间方面十分欠缺,几乎每次要交的内容,都是在截止日期前不久奋力完成. 2) 1.我在这门软件工程实践中,完成了1200行代码左右. 2.软件工程各次作业消耗时间 作业名称 时间 软件工程实践2017第一次作业 2小时 软件工程实践2017第二次作业 3天 结队项目--第一次作业 2-3天 团队第一次作业--团队展示

【软件工程实践 &#183; 团队项目】 第一次作业

[软件工程实践 · 团队项目] 第一次作业 队员姓名与学号(标记组长) 学号 姓名 20165211 丁奕(组长) 20165208 孔月 20165230 田坤烨 20165226 刘香杉 队名 快奶我一口 队员风采: 全军出击!!!! 团队的首次合照 团队的特色描述 我们敲认真! 原文地址:https://www.cnblogs.com/KY-high/p/9000409.html