标签:
前面一篇文章已经分析好了数据库的表,这篇文章针对购销合同表做一个增删改查。
和之前的表的增删该查类似。
项目结构如下:
上面红色的框出来的部分就是这个项目要用的文件代码。
依次涵盖了从ContractMapper.xml->Dao层->Service层->Controll控制层
代码依次如下:
ContractMapper.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.ContractMapper"> <resultMap type="cn.itcast.jk.domain.Contract" id="contractRM"> <id property="id" column="CONTRACT_ID" /> <result property="offeror" column="OFFEROR" /> <result property="contractno" column="CONTRACT_NO" /> <result property="signingDate" column="SIGNING_DATE" /> <result property="inputBy" column="INPUT_BY" /> <result property="checkBy" column="CHECK_BY" /> <result property="inspector" column="INSPECTOR" /> <result property="totalAmount" column="TOTAL_AMOUNT" /> <result property="importNum" column="IMPORT_NUM" /> <result property="crequest" column="CREQUEST" /> <result property="customName" column="CUSTOM_NAME" /> <result property="deliveryPeriod" column="DELIVERY_PERIOD" /> <result property="shipTime" column="SHIP_TIME" /> <result property="tradeTerms" column="TRADE_TERMS" /> <result property="remark" column="REMARK" /> <result property="printStyle" column="PRINT_STYLE" /> <result property="oldState" column="OLD_STATE" /> <result property="state" column="STATE" /> <result property="outState" column="OUT_STATE" /> <result property="createBy" column="CREATE_BY" /> <result property="createDept" column="CREATE_DEPT" /> <result property="createTime" column="CREATE_TIME" /> </resultMap> <!-- 自定义查找 --> <select id="find" parameterType="map" resultMap="contractRM"> select * from contract_c where 1=1 </select> <!-- 查找一個数据 --> <select id="get" parameterType="string" resultMap="contractRM"> select * from contract_c where contract_id=#{pid} </select> <!-- 增加 --> <insert id="insert" parameterType="cn.itcast.jk.domain.Contract"> insert into contract_c(CONTRACT_ID,OFFEROR,CONTRACT_NO,SIGNING_DATE,INPUT_BY,CHECK_BY,INSPECTOR,TOTAL_AMOUNT,IMPORT_NUM,CREQUEST, CUSTOM_NAME,DELIVERY_PERIOD,SHIP_TIME,TRADE_TERMS,REMARK,PRINT_STYLE,OLD_STATE,STATE,OUT_STATE,CREATE_BY,CREATE_DEPT,CREATE_TIME ) values( #{id,jdbcType=VARCHAR}, #{offeror,jdbcType=VARCHAR}, #{contractno,jdbcType=VARCHAR}, #{signingDate,jdbcType=TIMESTAMP}, #{inputBy,jdbcType=VARCHAR}, #{checkBy,jdbcType=VARCHAR}, #{inspector,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, #{importNum,jdbcType=INTEGER}, #{crequest,jdbcType=VARCHAR}, #{customName,jdbcType=VARCHAR}, #{deliveryPeriod,jdbcType=VARCHAR}, #{shipTime,jdbcType=TIMESTAMP}, #{tradeTerms,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{printStyle,jdbcType=VARCHAR}, #{oldState,jdbcType=INTEGER}, #{state,jdbcType=INTEGER}, #{outState,jdbcType=INTEGER}, #{createBy,jdbcType=VARCHAR}, #{createDept,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP} ) </insert> <!-- 通过Id刪除数据 --> <delete id="deleteById" parameterType="string"> delete from contract_c where id=#{pid} </delete> <!-- 刪除数据 --> <delete id="delete" parameterType="string"> delete from contract_c where CONTRACT_ID in <foreach collection="array" item="id" open="(" close=")" separator=","> #{id} </foreach> </delete> <!-- 更新 --> <update id="update" parameterType="cn.itcast.jk.domain.Contract"> update contract_c <set> <if test="offeror!=null">OFFEROR=#{offeror,jdbcType=VARCHAR},</if> <if test="contractno!=null">CONTRACT_NO=#{contractno,jdbcType=VARCHAR},</if> <if test="signingDate!=null">SIGNING_DATE=#{signingDate,jdbcType=TIMESTAMP},</if> <if test="inputBy!=null">INPUT_BY=#{inputBy,jdbcType=VARCHAR},</if> <if test="checkBy!=null">CHECK_BY=#{checkBy,jdbcType=VARCHAR},</if> <if test="inspector!=null">INSPECTOR=#{inspector,jdbcType=VARCHAR},</if> <if test="totalAmount!=null">TOTAL_AMOUNT=#{totalAmount,jdbcType=DECIMAL},</if> <if test="importNum!=null">IMPORT_NUM=#{importNum,jdbcType=INTEGER},</if> <if test="crequest!=null">CREQUEST=#{crequest,jdbcType=VARCHAR},</if> <if test="customName!=null">CUSTOM_NAME=#{customName,jdbcType=VARCHAR},</if> <if test="deliveryPeriod!=null">DELIVERY_PERIOD=#{deliveryPeriod,jdbcType=VARCHAR},</if> <if test="shipTime!=null">SHIP_TIME=#{shipTime,jdbcType=TIMESTAMP},</if> <if test="tradeTerms!=null">TRADE_TERMS=#{tradeTerms,jdbcType=VARCHAR},</if> <if test="remark!=null">REMARK=#{remark,jdbcType=VARCHAR},</if> <if test="printStyle!=null">PRINT_STYLE=#{printStyle,jdbcType=VARCHAR},</if> <if test="oldState!=null">OLD_STATE=#{oldState,jdbcType=INTEGER},</if> <if test="state!=null">STATE=#{state,jdbcType=INTEGER},</if> <if test="outState!=null">OUT_STATE=#{outState,jdbcType=INTEGER},</if> <if test="createBy!=null">CREATE_BY=#{createBy,jdbcType=VARCHAR},</if> <if test="createDept!=null">CREATE_DEPT=#{createDept,jdbcType=VARCHAR},</if> <if test="createTime!=null">CREATE_TIME=#{createTime,jdbcType=TIMESTAMP},</if> </set> </update> </mapper>
Dao层的代码:
/** * Create by 沈晓权 * Create on 2016年8月29日上午11:45:00 */ package cn.itcast.jk.dao.impl; import java.util.Map; import org.springframework.stereotype.Repository; import cn.itcast.jk.dao.ContractDao; import cn.itcast.jk.dao.FactoryDao; import cn.itcast.jk.domain.Contract; import cn.itcast.jk.domain.Factory; /* * @Repository这注册了才能在包扫面的时候把这个实例注册进bean容器。 * */ @Repository public class ContractDaoImpl extends BaseDaoImpl<Contract> implements ContractDao { /** * */ public ContractDaoImpl() { //设置命名空间 super.setNs("cn.itcast.jk.mapper.ContractMapper"); } /* (non-Javadoc) * @see cn.itcast.jk.dao.FactoryDao#updatestate() */ @Override public void updatestate(Map map) { super.getSqlSession().update(super.getNs()+".updateState", map); } }
Service层:ContractServicImpl.xml:
/** * Create by 沈晓权 * Create on 2016年8月29日下午3:13:23 */ package cn.itcast.jk.service.impl; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.Resource; import org.springframework.stereotype.Service; import cn.itcast.jk.dao.ContractDao; import cn.itcast.jk.domain.Contract; import cn.itcast.jk.pagination.Page; import cn.itcast.jk.service.ContractService; @Service public class ContractServiceImpl implements ContractService{ @Resource ContractDao contractdao; @Override public List<Contract> findPage(Page page) { return null; } @Override public List<Contract> find(Map paraMap) { return contractdao.find(paraMap); } @Override public Contract get(Serializable id) { return contractdao.get(id); } @Override public void insert(Contract contract) { contract.setId(UUID.randomUUID().toString());//设置UUID contract.setState(0);//设置状态。默认启用,0代表草稿,默认是0; contractdao.insert(contract); } @Override public void update(Contract contract) { contractdao.update(contract); } //删除一条记录 @Override public void deleteById(Serializable id) { contractdao.deleteById(id); } //删除多条记录 @Override public void delete(Serializable[] ids) { contractdao.delete(ids); } //启用 @Override public void submit(Serializable[] ids) { Map map=new HashMap(); map.put("state", 1);//1代表上報 map.put("ids",ids); contractdao.updatestate(map); } //停用 @Override public void cancel(Serializable[] ids) { Map map=new HashMap(); //这里设的两个参数都是为了后面Dao层要用的。 map.put("state", 0);//0代表草稿 map.put("ids",ids); contractdao.updatestate(map); } }
控制层:ContractController:
package cn.itcast.jk.controller.cargo.contract; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import cn.itcast.jk.controller.BaseController; import cn.itcast.jk.domain.Contract; import cn.itcast.jk.domain.Factory; import cn.itcast.jk.service.ContractService; @Controller public class ContractController extends BaseController { @Resource ContractService contractService; //列表 @RequestMapping("/cargo/contract/list.action") public String list(Model model) { List<Contract> datalist=contractService.find(null); model.addAttribute("datalist", datalist);//将我的数据传递到页面; return "/cargo/contract/jContractList.jsp"; } //跳转到新增的页面 @RequestMapping("/cargo/contract/tocreate.action") public String tocreate(Factory factory ) { return "/cargo/contract/jContractCreate.jsp"; } //保存新增加的数据 @RequestMapping("/cargo/contract/insert.action") public String insert(Contract contract ) { contractService.insert(contract); return "redirect:/cargo/contract/list.action"; } //跳转到修改的页面 //根据传入的参数id来找到要修改的Factory. @RequestMapping("/cargo/contract/toupdate.action") public String toupdate(String id ,Model model) {//根据id找到一个Factory,然后把这个factory传给jsp页面,然后在页面上回显数据并做修改。 //为什么取名叫做obj呢,就是为了后续拷贝的时候少做修改。 Contract obj=contractService.get(id); model.addAttribute("obj", obj); return "/cargo/contract/jContractUpdate.jsp"; } //保存新修改的数据 @RequestMapping("/cargo/contract/updatecontract.action") public String updatecontract(Contract contract) { contractService.update(contract); return "redirect:/cargo/contract/list.action"; } //删除多个 @RequestMapping("/cargo/contract/delete.action") //@RequestParam("id")String[] ids 表示在页面上叫做id,但是我封装的时候封装成ids //因为声明的是数组所以会自动的拆分 public String delete(@RequestParam("id")String[] ids) { contractService.delete(ids); return "redirect:/cargo/contract/list.action"; } //查看 @RequestMapping("/cargo/contract/toview.action") public String toview(String id,Model model) { Contract obj=contractService.get(id); model.addAttribute("obj", obj); return "/cargo/contract/jContractView.jsp"; } //批量的启用 @RequestMapping("/cargo/contract/submit.action") public String submit(@RequestParam("id")String[] ids) { contractService.submit(ids); return "redirect:/cargo/contract/list.action"; } //批量的停用 @RequestMapping("/cargo/contract/stop.action") public String stop(@RequestParam("id")String[] ids) { contractService.cancel(ids); return "redirect:/cargo/contract/list.action"; } }
页面代码:
新增合同的页面:
JContractCreate.jsp:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../base.jsp"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!-- <script type="text/javascript" src="../../js/datepicker/WdatePicker.js"></script> --> </head> <body> <form method="post"> <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="text" name="customName" /></td> <td class="columnTitle_mustbe">收购方</td> <td class="tableContent"><input type="text" name="offeror" /></td> </tr> <tr> <td class="columnTitle_mustbe">合同编号:</td> <td class="tableContent"><input type="text" name="contractno" /></td> <td class="columnTitle_mustbe">打印版式</td> <td class="tableContent"><input type="text" name="printStyle" /></td> </tr> <tr> <td class="columnTitle_mustbe">签单日期</td> <td class="tableContent"> <input type="text" style="width:90px;" name="signingDate" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:‘yyyy-MM-dd‘});"/> </td> <td class="columnTitle_mustbe">重要程度</td> <td class="tableContent"><input type="text" name="importNum" /></td> </tr> <tr> <td class="columnTitle_mustbe">交货日期</td> <td class="tableContent"><input type="text" name="deliveryPeriod" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:‘yyyy-MM-dd‘});" /></td> <td class="columnTitle_mustbe">船期</td> <td class="tableContent"><input type="text" name="shipTime" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:‘yyyy-MM-dd‘});" /></td> </tr> <tr> <td class="columnTitle_mustbe">贸易条款</td> <td class="tableContent"><input type="text" name="tradeTerms" /></td> <td class="columnTitle_mustbe">验货员</td> <td class="tableContent"><input type="text" name="inspector" /></td> </tr> <tr> <td class="columnTitle_mustbe">制单人</td> <td class="tableContent"><input type="text" name="inputBy" /></td> <td class="columnTitle_mustbe">审单人</td> <td class="tableContent"><input type="text" name="checkBy" /></td> </tr> <tr> <td class="columnTitle_mustbe">要求</td> <td class="tableContent"><textarea name="crequest" style="height:120px"></textarea></td> <td class="columnTitle_mustbe">说明</td> <td class="tableContent"><textarea name="remark" style="height:120px"></textarea></td> </tr> </table> </div> </div> </form> </body> </html>
列表页面:
jContractList.jsp:
<%@ page language="java" pageEncoding="UTF-8"%> <hr> <font color="blue"><b>引入CSS、JS区域</b></font> <hr> <%@ include file="../../baselist.jsp"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form name="icform" method="post"> <div id="menubar"> <div id="middleMenubar"> <div id="innerMenubar"> <div id="navMenubar"> <ul> <hr> <font color="blue"><b>按钮区域</b></font> <hr> <li id="view"><a href="#" onclick="formSubmit(‘toview.action‘,‘_self‘);this.blur();">查看</a></li> <li id="new"><a href="#" onclick="formSubmit(‘tocreate.action‘,‘_self‘);this.blur();">新增</a></li> <li id="update"><a href="#" onclick="formSubmit(‘toupdate.action‘,‘_self‘);this.blur();">修改</a></li> <li id="delete"><a href="#" onclick="formSubmit(‘delete.action‘,‘_self‘);this.blur();">批量删除</a></li> <li id="delete"><a href="#" onclick="formSubmit(‘submit.action‘,‘_self‘);this.blur();">提交</a></li> <li id="delete"><a href="#" onclick="formSubmit(‘cancel.action‘,‘_self‘);this.blur();">取消</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"> <hr> <font color="blue"><b>标题</b></font> <hr> 购销合同列表 </div> </div> </div> <div> <hr> <font color="blue"><b>列表区域</b></font> <hr> <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> <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><a href="toview.action?id=${o.id}">${o.contractno}</a></td> <td>${o.signingDate}</td> <td>${o.customName}</td> <td>${o.inputBy}</td> <td>${o.checkBy}</td> <td>${o.inspector}</td> <td>${o.deliveryPeriod}</td> <td>${o.shipTime}</td> <td>${o.outState}</td> <td>${o.totalAmount}</td> <td> <c:if test="${o.state==1}"><font color="green">提交</font></c:if> <c:if test="${o.state==0}">取消</c:if> </td> </tr> </c:forEach> </tbody> </table> </div> </div> </form> </body> </html>
更改页面:
jContractUpdate.jsp:
<%@ page language="java" pageEncoding="UTF-8" %> <%@ include file="../../base.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript" src="../../js/datepicker/WdatePicker.js"></script> </head> <body> <form method="post"> <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="text" name="customName" value="${obj.customName}" /></td> <td class="columnTitle_mustbe">收购方</td> <td class="tableContent"><input type="text" name="offeror" value="${obj.offeror}"/></td> </tr> <tr> <td class="columnTitle_mustbe">合同编号:</td> <td class="tableContent"> <input type="text" name="contractno" value="${obj.contractno}"/> </td> <%-- <td class="columnTitle_mustbe">打印版式</td> <td class="tableContentAuto"> <!-- 注意这里的处理方法。用<c:if>来处理的 --> <input type="radio" name="printStyle" value="2" class="input" <c:if test="${obj.printStyle==‘2‘}">checked</c:if>>两款 <input type="radio" name="printStyle" value="1" class="input" <c:if test="${obj.printStyle==‘1‘}">checked</c:if>>一款 </td> --%> </tr> <tr> <td class="columnTitle_mustbe">签单日期</td> <td class="tableContent"> <input type="text" style="width:90px;" name="signingDate" value="<fmt:formatDate value="${obj.deliveryPeriod}" pattern="yyyy-MM-dd"/>" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:‘yyyy-MM-dd‘});" /> </td> <td class="columnTitle_mustbe">重要程度</td> <td class="tableContent"><input type="text" name="importNum" /></td> </tr> <tr> <td class="columnTitle_mustbe">交货日期</td> <td class="tableContent"><input type="text" name="deliveryPeriod" value="<fmt:formatDate value="${obj.deliveryPeriod}" pattern="yyyy-MM-dd"/>" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:‘yyyy-MM-dd‘});" /></td> <td class="columnTitle_mustbe">船期</td> <td class="tableContent"> <input type="text" name="shipTime" value="<fmt:formatDate value="${obj.shipTime}" pattern="yyyy-MM-dd"/>" onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:‘yyyy-MM-dd‘});" /> </td> </tr> <tr> <td class="columnTitle_mustbe">贸易条款</td> <td class="tableContent"><input type="text" name="tradeTerms" /></td> <td class="columnTitle_mustbe">验货员</td> <td class="tableContent"><input type="text" name="inspector" /></td> </tr> <tr> <td class="columnTitle_mustbe">制单人</td> <td class="tableContent"><input type="text" name="inputBy" /></td> <td class="columnTitle_mustbe">审单人</td> <td class="tableContent"><input type="text" name="checkBy" /></td> </tr> <tr> <td class="columnTitle_mustbe">要求</td> <td class="tableContent"><textarea name="crequest" style="height:120px"></textarea></td> <td class="columnTitle_mustbe">说明</td> <td class="tableContent"><textarea name="remark" style="height:120px"></textarea></td> </tr> </table> </div> </div> </form> </body> </html>
预览界面:
<%@ page language="java" pageEncoding="UTF-8" %> <%@ include file="../../base.jsp"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form method="post"> <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="text" name="customName" value="${obj.customName}" /></td> <td class="columnTitle_mustbe">收购方</td> <td class="tableContent"><input type="text" name="offeror" value="${obj.offeror}"/></td> </tr> <tr> <td class="columnTitle_mustbe">合同编号:</td> <td class="tableContent"> <input type="text" name="contractno" value="${obj.contractno}"/> </td> <%-- <td class="columnTitle_mustbe">打印版式</td> <td class="tableContentAuto"> <!-- 注意这里的处理方法。用<c:if>来处理的 --> <input type="radio" name="printStyle" value="2" class="input" <c:if test="${obj.printStyle==‘2‘}">checked</c:if>>两款 <input type="radio" name="printStyle" value="1" class="input" <c:if test="${obj.printStyle==‘1‘}">checked</c:if>>一款 </td> --%> </tr> <tr> <td class="columnTitle_mustbe">签单日期</td> <td class="tableContent"> <input type="text" style="width:90px;" name="signingDate" value="<fmt:formatDate value="${obj.deliveryPeriod}" pattern="yyyy-MM-dd"/>" /> </td> <td class="columnTitle_mustbe">重要程度</td> <td class="tableContent"><input type="text" name="importNum" /></td> </tr> <tr> <td class="columnTitle_mustbe">交货日期</td> <td class="tableContent"><input type="text" name="deliveryPeriod" value="<fmt:formatDate value="${obj.deliveryPeriod}" pattern="yyyy-MM-dd"/>" /></td> <td class="columnTitle_mustbe">船期</td> <td class="tableContent"> <input type="text" name="shipTime" value="<fmt:formatDate value="${obj.shipTime}" pattern="yyyy-MM-dd"/>" /> </td> </tr> <tr> <td class="columnTitle_mustbe">贸易条款</td> <td class="tableContent"><input type="text" name="tradeTerms" /></td> <td class="columnTitle_mustbe">验货员</td> <td class="tableContent"><input type="text" name="inspector" /></td> </tr> <tr> <td class="columnTitle_mustbe">制单人</td> <td class="tableContent"><input type="text" name="inputBy" /></td> <td class="columnTitle_mustbe">审单人</td> <td class="tableContent"><input type="text" name="checkBy" /></td> </tr> <tr> <td class="columnTitle_mustbe">要求</td> <td class="tableContent"><textarea name="crequest" style="height:120px">${obj.crequest}</textarea></td> <td class="columnTitle_mustbe">说明</td> <td class="tableContent"><textarea name="remark" style="height:120px">${obj.remark}</textarea></td> </tr> </table> </div> </div> </form> </body> </html>
009杰信-创建购销合同Excel报表系列-2-建立购销合同(增删改查)
标签:
原文地址:http://www.cnblogs.com/shenxiaoquan/p/5874007.html