前面的一篇文章做的是修改删除,这篇文章做的是合同货物的修改和删除。

业务功能如下:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGkAAAGqCAIAAAA3Mo5BAAAgAElEQVR4nO3da6wd12Efegb9VBTtxyDKo4mA235IgyCN0tSoowBB0IcJFWlqE7EVSy5g+0i6xvWVLR20TCg7kUqHtmxLSEhZDhUrsGyLrcpAMSnraYmOTVtAEiWW2iYiD0XZcakHpfPiS5RlTT8Mz3DOPNaafc7ee2b2/H4YELNnrz17Zq119ll/rtlztvyz37+psHzkrw4lAAAA5GyRnQAAAKJkJwAAgDjZCQAAIE52AgAAiJOdAAAA4mQnAACAONkJAAAgTnYCAACIk50AAADixpmdVl8/v/2JB+e/+sAMLNufeHD19fNjqWLVAgAAM2Cc2el3v/7Y362unDi9OgPL362u/O7XHxtLFasWAACYAePMTh9+7ODK+fNn3vj+hJbTE9tzeVk5f/7Djx0cSxWrFgAAmAHjzE7zX31g8bVzq6+f79GyUrN98bVz8199YCxVrFoAAGAGDD07rb5+fvW87NRCtQAAQL9MLzv94M0f/Jsnfv6d3/yVd37zVz74rfe3nw1azU677nxo150P3fIHBz/y6T/9z7v+x/U33/vU//zO6mur838y/+zLz7ZfJ7ITAACsN9Xs9Ktf++lPn37Xvje3/9yBS8Y70K+7xmzDyxSyU77M9Tff+5FP/+lT//M7tzxyyz/66D+44eANb/zgjdmuFgAA6JcpZadr/+Kqd37zV375sf9n1+Lb//DsdT9yz9/f8PD9Lb99w8e/vD9c5h2f/tg7Pv2xjoSEymr5vc88mD775ptvvvb9H1x/873p8uzLz/7kH//wPz/4UzccvCFweF8/8jc/fs3VlU/9+DVXb9m2Naui9GHd8oXDX5OdAACgifFnp5XXz6+8fn7l9dfWlvMrr7927V9c9amld3/85Xf97gtX3L74nr/32S1fOHLPX578i7UCpeX8hZ28/dMfywb6u768f9eX9xeG/mslz/9YMCR88I8/W/1GF4923ZZXz405OxWq5Xduvz99Ns1OZ17/wcKrr17/O3evvrb6U5/74XcvXP6Te39k+fxyXbWsvH5+15f3v/3TH1t5/Xy+ii7UycWS53/smqtrzve1t3/6YxcKt1EtAADQL2POTi+eOf3KubOvnDv7yrkzr5w7c/Lc2VfOnT157uzJc2f/7dcuu+m7b7vpu2+75cX/+PGX33XLi//xV7/20x/56986eaH8hZIX1s+m62fShz92zdWvnDt799ef+PVP7Uy37Lz/vl//1M5Xz509efZsvkxpOfPqubMf+NydH/jcnev2n3vHk2vF8htfPH16jNmpXC1pdnrzzTe//8abZ17/weprbzz6jb959Bt/883//b9++r4f/+CJrf/qwX/6xW8eDFfLv/ytDz/xt//r1z+1c+f99+VP59VzZ19pUC2//qmdf/z1J9qqFgAA6JcxZ6e/W105cfrUidOnXjh9Kl05cebUidOrJ06f+uC33r/tz39m+3d+9abvvm3X4tt/7sAl73j011648EdXT2XLC6dP5basnji9+kdfe+y6P7rjxOnVH73m6h8tTS5d90efeeH0avouL1x81akTFzam+1y3w/X7L/6bFv7e6soYs1O5Wn7r4/clSfK9Uye3feU3vnfq5OK5N3bd+dAnn/7kz3/psn/9Zz97y8pv/Os/+9l/cufP3PDITXXV8sKFQ139tU/+1/I824WzPnPqR6+5+oXTp+762lfzz/6L7R86cfrUf/jkf73ra18dqVr+bnzVAgAA/TLm7HRseen51eXjqyvPr66k/z5/avn51eWnnvqrFxdO/tpXfmX7d371d1+44h/f9w+3/fd3vPS9l55fXc4tK+nK8Ysry8dXV35h+4fSEf+dTzx6yTVXHXzm25954rFf2P6h51dX3n/Xnvfftef51ZWP/sm+wAV7W7ZtveSaqy4cz9obHc+O8MLRLl885tXlY8tLY8xO5Wr5L7/335bPL1/2p7/4sVO/edmf/uL3Tq383mcefP0Hr/+7B9/2sVO/eXdy3SfOvvuf3Pkz+77yjcpqSevk33/yluOrK//+k7d85olH09M5vrr8wDPf/oXtHzp+4TRXLrnmqudXVz7zxKNp4XT9F7Z/KH3hnU882la1AABAv4w5Oz27+MrC8tLC8tKx5cWF5cWF5aUnn3zy29/+9qFDh3b/wZ533XjlL3/9R//xff9wx1d/+7VXz584ceKhhx6699578y85trx4bHlpYXlpYXlxYXlxx/4vbdm2dc/jD19x6817Hn/kkrmrCqHofXt3LywvZS9Ze9/FLdu2Lqytr+12Mbdlqe7fY8uLC8tLzy6+OsbsVK6WfV/5xi8fvPwTZ999d3Ldx0795r978G133XcoSZIzb5z55YOX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" alt="" />

进入上面页面后,有删除和修改两个链接。项目结构如下:

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,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" alt="" />

上面的红色框框就是这个功能的代码结构:

我们还是按照Mapper.xml文件->Dao层->Service层->控制层。

COntractProductMapper.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.itcast.jk.mapper.ContractProductMapper">
<resultMap type="cn.itcast.jk.domain.ContractProduct" id="contractProductRM"> <id property="id" column="CONTRACT_PRODUCT_ID"/>
<result property="contractid" column="CONTRACT_ID"/>
<result property="factoryid" column="FACTORY_ID"/> <result property="factoryname" column="FACTORY_NAME"/>
<result property="productno" column="PRODUCT_NO"/>
<result property="productimage" column="PRODUCT_IMAGE"/>
<result property="productdesc" column="PRODUCT_DESC"/>
<result property="cnumber" column="CNUMBER"/>
<result property="outnumber" column="OUT_NUMBER"/>
<result property="loadingrate" column="LOADING_RATE"/>
<result property="boxnum" column="BOX_NUM"/>
<result property="packingunit" column="PACKING_UNIT"/>
<result property="price" column="PRICE"/>
<result property="amount" column="AMOUNT"/>
<result property="finished" column="FINISHED"/>
<result property="exts" column="CONTRACT_ID"/>
<result property="orderno" column="CONTRACT_ID"/>
</resultMap> <!-- 开始写sql语句 -->
<select id="find" parameterType="map" resultMap="contractProductRM" >
select * from contract_product_c where 1=1
<if test="contractId != null">and CONTRACT_ID=#{contractId}</if>
</select> <!-- 取一个数据 -->
<select id="get" parameterType="string" resultMap="contractProductRM">
<!-- 这个pid可以随便取的 --> select * from contract_product_c where CONTRACT_PRODUCT_ID=#{pid}
</select> <insert id="insert" parameterType="cn.itcast.jk.domain.ContractProduct">
insert into contract_product_c
(
CONTRACT_PRODUCT_ID,CONTRACT_ID,FACTORY_ID,FACTORY_NAME,PRODUCT_NO,PRODUCT_IMAGE,PRODUCT_DESC,CNUMBER,OUT_NUMBER,LOADING_RATE,BOX_NUM,PACKING_UNIT,PRICE,AMOUNT,FINISHED,EXTS,ORDER_NO
)
values
(
<!-- 因为 id,contractid,factoryid肯定不能为空,所以jdbcType就不用写了。-->
#{id},
#{contractid},
#{factoryid},
#{factoryname,jdbcType=VARCHAR},
#{productno,jdbcType=VARCHAR},
#{productimage,jdbcType=VARCHAR},
#{productdesc,jdbcType=VARCHAR},
#{cnumber,jdbcType=INTEGER},
#{outnumber,jdbcType=INTEGER},
#{loadingrate,jdbcType=VARCHAR},
#{boxnum,jdbcType=INTEGER},
#{packingunit,jdbcType=VARCHAR},
#{price,jdbcType=VARCHAR},
#{amount,jdbcType=VARCHAR},
#{finished,jdbcType=INTEGER},
#{exts,jdbcType=VARCHAR},
#{orderno,jdbcType=INTEGER} ) </insert> <!-- 修改合同货物 -->
<update id="update" parameterType="cn.itcast.jk.domain.ContractProduct">
update contract_product_c
<set> <if test="factoryname!=null">FACTORY_NAME=#{factoryname}</if>
<if test="productno!=null">PRODUCT_NO=#{productno}</if>
<if test="productimage!=null">PRODUCT_IMAGE=#{productimage}</if>
<if test="productdesc!=null">PRODUCT_DESC=#{productdesc}</if>
<if test="cnumber!=null">CNUMBER=#{cnumber}</if>
<if test="outnumber!=null">OUT_NUMBER=#{outnumber}</if>
<if test="loadingrate!=null">LOADING_RATE=#{loadingrate}</if>
<if test="boxnum!=null">BOX_NUM=#{boxnum}</if>
<if test="packingunit!=null">PACKING_UNIT=#{packingunit}</if>
<if test="price!=null">PRICE=#{price}</if>
<if test="amount!=null">AMOUNT=#{amount}</if>
<if test="finished!=null">FINISHED=#{finished}</if>
<if test="exts!=null">EXTS=#{exts}</if>
<if test="orderno!=null">ORDER_NO=#{orderno}</if>
</set>
<!-- 这里的id是 ContractProduct这个类里面的id-->
where CONTRACT_PRODUCT_ID=#{id}
</update>
<!-- 删除合同货物 -->
<delete id="deleteById" parameterType="string" >
delete from contract_product_c where CONTRACT_PRODUCT_ID=#{id}
</delete> </mapper>

Dao层:就是基础的BaseDaoImpl.java

package cn.itcast.jk.dao.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map; import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired; import cn.itcast.jk.dao.BaseDao;
import cn.itcast.jk.pagination.Page; public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao<T>{
@Autowired
//mybatis-spring 1.0无需此方法;mybatis-spring1.2必须注入。
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
super.setSqlSessionFactory(sqlSessionFactory);
}
private String ns; //命名空间
public String getNs() {
return ns;
}
public void setNs(String ns) {
this.ns = ns;
} public List<T> findPage(Page page){
List<T> oList = this.getSqlSession().selectList(ns + ".findPage", page);
return oList;
} public List<T> find(Map map) {
List<T> oList = this.getSqlSession().selectList(ns + ".find", map);
return oList;
}
public T get(Serializable id) {
return this.getSqlSession().selectOne(ns + ".get", id);
} public void insert(T entity) {
this.getSqlSession().insert(ns + ".insert", entity);
} public void update(T entity) {
this.getSqlSession().update(ns + ".update", entity);
} public void deleteById(Serializable id) {
this.getSqlSession().delete(ns + ".deleteById", id);
} public void delete(Serializable[] ids) {
this.getSqlSession().delete(ns + ".delete", ids);
}
}

然后在ContractProductDaoImpl.java中写:

package cn.itcast.jk.dao.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map; import org.springframework.stereotype.Repository; import cn.itcast.jk.dao.ContractProductDao;
import cn.itcast.jk.domain.ContractProduct;
import cn.itcast.jk.pagination.Page;
@Repository
public class ContractProductDaoImpl extends BaseDaoImpl<ContractProduct> implements ContractProductDao { public ContractProductDaoImpl()
{
super.setNs("cn.itcast.jk.mapper.ContractProductMapper"); }
}

Service层:

ContractProductServiceImpl.java:

package cn.itcast.jk.service.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.UUID; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import cn.itcast.jk.dao.ContractProductDao;
import cn.itcast.jk.domain.Contract;
import cn.itcast.jk.domain.ContractProduct;
import cn.itcast.jk.pagination.Page;
import cn.itcast.jk.service.ContractProductService;
@Service
public class ContractProductServiceImpl implements ContractProductService{
@Resource
ContractProductDao contractProductDao; @Override
public List<ContractProduct> findPage(Page page) {
return contractProductDao.findPage(page);
} @Override
public List<ContractProduct> find(Map paraMap) {
return contractProductDao.find(paraMap);
} @Override
public ContractProduct get(Serializable id) {
return contractProductDao.get(id);
} @Override
public void insert(ContractProduct contractproduct) {
contractproduct.setId(UUID.randomUUID().toString());
contractProductDao.insert(contractproduct); } @Override
public void update(ContractProduct contractproduct) {
contractProductDao.update(contractproduct);
} @Override
public void deleteById(Serializable id) {
contractProductDao.deleteById(id);
} @Override
public void delete(Serializable[] ids) {
contractProductDao.delete(ids);
} }

页面层:

新增页面(包含了修改和删除的链接)

jCOntractproductCreate.jsp:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!-- 设置 id为factoryname的input的值-->
<script type="text/javascript">
function setfactoryName(val)
{ var ere=document.getElementById("factoryname");
ere.value=val; } </script>
<!-- <script type="text/javascript" src="../../js/datepicker/WdatePicker.js"></script> -->
</head>
<body>
<form method="post">
<input text="text" name="contractid" value="${contractId}"> <div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="save"><a href="#"
onclick="formSubmit('insert.action','_self');">确定</a></li>
<li id="back"><a href="list.action">返回</a></li>
</ul>
</div>
</div>
</div>
</div> <div class="textbox" id="centerTextbox"> <div class="textbox-header">
<div class="textbox-inner-header">
<div class="textbox-title">新增合同货物信息</div>
</div>
</div>
<div> <div>
<table class="commonTable" cellspacing="1">
<tr>
<td class="columnTitle_mustbe">厂家名称:</td>
<td class="tableContent"> <!-- <input type= name="factoryname" /> -->
<!-- this.selectedIndex当前选中的索引值 -->
<select name="factoryid" onchange="setfactoryName(this.options[this.selectedIndex].text)">
<option value="">--请选择--</option>
<c:forEach items="${listfactory}" var="f">
<option value="${f.id}">${f.factoryName }</option> </c:forEach> </select>
<input type="hidden" id="factoryname" name="factoryname"> </td> <td class="columnTitle_mustbe">货号</td>
<td class="tableContent"><input type="text" name="productno" /></td>
</tr> <tr>
<td class="columnTitle_mustbe">货物照片</td>
<td class="tableContent"><input type="text" name="productimage" /></td>
<td class="columnTitle_mustbe">货物描述</td>
<td class="tableContent"><input type="text" name="productdesc" /></td>
</tr>
<tr>
<td class="columnTitle_mustbe">数量</td>
<td class="tableContent"><input type="text" name="cnumber" /></td> <td class="columnTitle_mustbe">实际出货数量</td>
<td class="tableContent"><input type="text" name="outnumber" /></td>
</tr> <tr>
<td class="columnTitle_mustbe">装率</td>
<td class="tableContent"><input type="text" name="loadingrate" /></td> <td class="columnTitle_mustbe">箱数</td>
<td class="tableContent"><input type="text" name="boxnum" /></td>
</tr>
<tr>
<td class="columnTitle_mustbe">包装单位</td>
<td class="tableContent"><input type="text" name="packingunit" /></td>
<td class="columnTitle_mustbe">单价</td>
<td class="tableContent"><input type="text" name="price" /></td> </tr>
<tr>
<td class="columnTitle_mustbe">总金额</td>
<td class="tableContent"><input type="text" name="amount" /></td>
<td class="columnTitle_mustbe">是否出货完毕</td>
<td class="tableContent"><input type="text" name="finished" /></td> </tr>
<tr>
<td class="columnTitle_mustbe">附件</td>
<td class="tableContent"><input type="text" name="exts" /></td>
<td class="columnTitle_mustbe">排序号</td>
<td class="tableContent"><input type="text" name="orderno" /></td> </tr>
</table>
</div>
</div>
</form> <div class="eXtremeTable" >
<table id="ec_table" class="tableRegion" width="98%" >
<thead>
<tr>
<td class="tableHeader"><input type="checkbox" name="selid" onclick="checkAll('id',this)"></td>
<td class="tableHeader">厂家名称</td>
<td class="tableHeader">货号</td>
<td class="tableHeader">数量</td>
<td class="tableHeader">实际出货数量</td>
<td class="tableHeader">装率</td>
<td class="tableHeader">箱数</td>
<td class="tableHeader">包装单位</td>
<td class="tableHeader">单价</td>
<td class="tableHeader">总金额</td>
<td class="tableHeader">操作</td>
</tr>
</thead> <tbody class="tableBody" >
<!--var="o"的意思是给datalist取个别名,之后用起来就简单了-->
<c:forEach items="${datalist}" var="o" varStatus="status">
<tr class="odd" onmouseover="this.className='highlight'" onmouseout="this.className='odd'" >
<!-- 做了一个选择框 -->
<td><input type="checkbox" name="id" value="${o.id}"/></td>
<td>${status.index+1}</td> <td>${o.factoryname}</td>
<td>${o.productno}</td>
<td>${o.cnumber}</td>
<td>${o.outnumber}</td>
<td>${o.loadingrate}</td>
<td>${o.boxnum}</td>
<td>${o.packingunit}</td>
<td>${o.price}</td>
<td>${o.amount}</td>
<td>
<a href="${ctx}/cargo/contractproduct/update.action?id=${o.id}">[修改]</a>
<a href="${ctx}/cargo/contractproduct/deleteByid.action?id=${o.id}&contractId=${o.contractid}">[删除]</a>
</td> </tr>
</c:forEach> </tbody>
</table>
</div>
</body>
</html>

更新页面:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!-- 设置 id为factoryname的input的值-->
<script type="text/javascript">
function setfactoryName(val)
{ var ere=document.getElementById("factoryname");
ere.value=val; } </script>
<!-- <script type="text/javascript" src="../../js/datepicker/WdatePicker.js"></script> -->
</head>
<body>
<form method="post">
<input text="text" name="contractid" value="${contractId}"> <div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
<div id="navMenubar">
<ul>
<li id="save"><a href="#"
onclick="formSubmit('update.action','_self');">确定</a></li>
<li id="back"><a href="list.action">返回</a></li>
</ul>
</div>
</div>
</div>
</div> <div class="textbox" id="centerTextbox"> <div class="textbox-header">
<div class="textbox-inner-header">
<div class="textbox-title">更新合同货物信息</div>
</div>
</div>
<div> <div>
<table class="commonTable" cellspacing="1">
<tr>
<td class="columnTitle_mustbe">厂家名称:</td>
<td class="tableContent"> <!-- <input type= name="factoryname" /> -->
<!-- this.selectedIndex当前选中的索引值 -->
<select name="factoryid" onchange="setfactoryName(this.options[this.selectedIndex].text)">
<option value="">--请选择--</option>
<c:forEach items="${listfactory}" var="f">
<option value="${f.id}">${f.factoryName }</option>
</c:forEach>
</select>
<input type="hidden" id="factoryname" name="factoryname">
</td> <td class="columnTitle_mustbe">货号</td>
<td class="tableContent"><input type="text" name="productno" value=${ obj.productno}/></td>
</tr> <tr>
<td class="columnTitle_mustbe">货物照片</td>
<td class="tableContent"><input type="text" name="productimage" value=${ obj.productimage}/></td>
<td class="columnTitle_mustbe">货物描述</td>
<td class="tableContent">
<textarea name="productDesc" style="height:120px;">${ obj.productdesc}</textarea>
</td>
</tr>
<tr>
<td class="columnTitle_mustbe">数量</td>
<td class="tableContent"><input type="text" name="cnumber" value=${ obj.cnumber}/></td>
<td class="columnTitle_mustbe">实际出货数量</td>
<td class="tableContent"><input type="text" name="outnumber" value=${ obj.outnumber}/></td>
</tr> <tr>
<td class="columnTitle_mustbe">装率</td>
<td class="tableContent"><input type="text" name="loadingrate" value=${ obj.loadingrate}/></td> <td class="columnTitle_mustbe">箱数</td>
<td class="tableContent"><input type="text" name="boxnum" value=${ obj.boxnum}/></td>
</tr>
<tr>
<td class="columnTitle_mustbe">包装单位</td>
<td class="tableContent"><input type="text" name="packingunit" value=${ obj.packingunit}/></td>
<td class="columnTitle_mustbe">单价</td>
<td class="tableContent"><input type="text" name="price" value=${ obj.price}/></td> </tr>
<tr>
<td class="columnTitle_mustbe">总金额</td>
<td class="tableContent"><input type="text" name="amount" value=${ obj.amount}/></td>
<td class="columnTitle_mustbe">是否出货完毕</td>
<td class="tableContent"><input type="text" name="finished" value=${ obj.finished} /></td> </tr>
<tr>
<td class="columnTitle_mustbe">附件</td>
<td class="tableContent"><input type="text" name="exts" value=${ obj.exts}/></td>
<td class="columnTitle_mustbe">排序号</td>
<td class="tableContent"><input type="text" name="orderno" value=${ obj.orderno}/></td>
</tr>
</table>
</div>
</div>
</form> </body>
</html>

运行一切OK.

011杰信-创建购销合同Excel报表系列-4-建立合同货物(修改,删除):合同货物表是购销合同表的子表的更多相关文章

  1. 010杰信-创建购销合同Excel报表系列-3-新增合同货物:这里涉及到子表的新增(合同货物表是购销合同表的子表)

    效果说明: 前面分析过购销合同的Excel报表需要四张表,这篇讲的是合同货物表. 这个合同货物表是购销合同的子表,是一个购销合同有多个合同货物的关系.在合同货物表中有购销合同的主键作为外键.所以这张表 ...

  2. 009杰信-创建购销合同Excel报表系列-2-建立购销合同(增删改查)

    前面一篇文章已经分析好了数据库的表,这篇文章针对购销合同表做一个增删改查. 和之前的表的增删该查类似. 项目结构如下:

  3. 008杰信-创建购销合同Excel报表系列-1-建四张表

    本博客的内容来自于传智播客: 我们现在开始要做表格了,根据公司要求的表格的形式,来设计数据库.规划针对这个表格要设计几张表,每张表需要哪些字段. 根据公司原有的表格,设计数据库: 原有的表格

  4. c#.net对excel的操作——创建一个excel报表两个sheet就是2个表分别添加内容

    添加引用:Microsoft.Office.Interop.Excel //创建excel对象,就是实例化一个excel对象            Application excel=new Appl ...

  5. 001杰信-创建MyEclipse与maven项目

    准备工作: 自己的私人仓库:

  6. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  7. 10、借助POI实现Java生成并打印excel报表(1)

    10.1.了解 Apache POI 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍.生成报表格式一般是EXCEL或者PDF .利用Apache  PO ...

  8. 个人永久性免费-Excel催化剂功能第68波-父子结构表转换之父子关系BOM表拆分篇

    Excel中制造业行业中,有一个非常刚需的需求是对BOM(成品物料清单)的拆解,一般系统导出的BOM表,是经过压缩处理的,由父子表结构的方式存储数据.对某些有能力使用SAP等专业ERP软件的工厂来说, ...

  9. [原创]Devexpress XtraReports 系列 9 创建邮件合并报表

    昨天发表了Devexpress XtraReports系列第八篇[原创]Devexpress XtraReports 系列 8 创建Drill-Through报表,今天我们继续. 今天的主题是创建邮件 ...

随机推荐

  1. PHP - AJAX 与 PHP

    PHP - AJAX 与 PHP AJAX 被用于创建交互性更强的应用程序. AJAX PHP 实例 下面的实例将演示当用户在输入框中键入字符时,网页如何与 Web 服务器进行通信: 实例 尝试在输入 ...

  2. 爬虫-IP被封解决办法

    方法1. 之前由于公司项目需要,采集过google地图数据,还有一些大型网站数据. 经验如下:1.IP必须需要,比如ADSL.如果有条件,其实可以跟机房多申请外网IP.2.在有外网IP的机器上,部署代 ...

  3. 增强基本选择器[selector_3.html]

    增强基本选择器[selector_3.html] $("ul li:first") $("ul li:last") $("table tr:even& ...

  4. c#通过FileStream读取、写入文件

    网上找过一些FileStream读取写入文件的代码,但是都有些小问题. 于是自己整理一下,以备不时之需.说明一下,以下代码我都运行过. 1.FileStream读取文件 // FileStream读取 ...

  5. moment

    var now = moment(1410181234567)var formatted = now.format('YYYY-MM-DD HH:mm:ss')console.log(formatte ...

  6. C#:向SqlServer数据库中插入imange类型

    using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi ...

  7. The value of 'filter_horizontal[0]' must be a many-to-many field. The value of 'raw_id_fields[0]' must be a foreign key or a many-to-many field.

    在使用django admin的时候 我们遇到这个错误 <class 'Salesman.admin.UsrMngUserAdmin'>: (admin.E020) The value o ...

  8. github上创建ssh连接多个账户

    简单的说用两对ssh密钥来连接多个github账户,有的同学问:用一对连接多个账户行吗?答案是不行,因为密钥和你的账户邮箱关联了. 1.生成密钥. sshkey -t rsa -b 4096 -C & ...

  9. Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制

    Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制 1. 语法错误(ERROR)和运行期错误(Exception) 1 2. 错误类型判断 ...

  10. iOS之美: UIView 与 UIWindow之间的关系

    转自:http://leopard168.blog.163.com/blog/static/168471844201381584533466/ 面对iOS初学者,总会被问到一些不常被关注的问题,比如: ...