我们上一篇文章写到了要从editcgd.action为入口讲。我们要做的事根据edicgd.acion进入到Action层的一个函数,在这个函数里面要做的就是从数据库中把采购单表里面的数据都查出来显示在页面上。

这个action中要做的工作是:

1:从系统配置表中把系统的一些信息查出来(比如采购状态用作下拉表),用来修改采购单信息。

2:根据传进来的采购单的id,找出采购单。

3:把采购单加入到Model中,传到页面,显示。

达到的效果是:

来到这个页面:

输入信息,然后点击保存按钮之后。

来到这个页面:

我们可以看到在后面这个页面上把YycgdCusom的对象信息都显示到了页面上。我们接下来就看一下具体怎么实现的。

点击保存之后执行:

window.location='${baseurl}cgd/editcgd.action?id='+yycgdid;

这个yycgdid就是采购单的主键id也就是“年份+序列号”。

我们看editcgd.action:

@RequestMapping("/editcgd")
public String edifcgd(Model model,String id) throws Exception
{ // 采购状态
List<Dictinfo> cgztlist = systemConfigService.findDictinfoByType("011");
List<Dictinfo> jyztlist = systemConfigService.findDictinfoByType("003");
model.addAttribute("cgztlist", cgztlist);
model.addAttribute("jyztlist", jyztlist); // 调用service获取采购单信息 YycgdCustom yycgdCustom = yycdgService.findYycgdById(id);
model.addAttribute("yycgd", yycgdCustom); return "/business/cgd/editcgd"; }

我们看到其实就是把YycgdCusom取出来在页面上显示。

-------------------------------------------------------------------------------------------------------------------------------------

重点在于 YycgdCustom yycgdCustom = yycdgService.findYycgdById(id);

我们看这行代码函数:

@Override
public YycgdCustom findYycgdById(String id) throws Exception {
String year=id.substring(0, 4);//id是2014100054,但是我们只想要年份,所以我们截取2014
YycgdExample yycgdExample=new YycgdExample();
YycgdExample.Criteria criteria=yycgdExample.createCriteria();
criteria.andIdEqualTo(id);
yycgdExample.setBusinessyear(year);//因为YycgdExample继承了BussinessBasePo里面有year这个属性
/*
* 为什么要用YycgdExample去查呢?
* 因为如果用id去查的话那么year这个值就不能传进去了。一旦year这个值传不进去的话,就不能去
* 找到数据库里面的采购单里面的表。
* 所以我们要找到能把year传进去的方法。
* 所以我们要用selectByExample这种方法把YycgdExample这个值传进去。这个类继承了BussinessBasePo
* 里面有year这属性
*
*/
Yycgd yycgd=null;
List<Yycgd> yycgdlist=yycgdMapper.selectByExample(yycgdExample);
YycgdCustom yycgdCustom=new YycgdCustom();
if(yycgdlist!=null&&yycgdlist.size()==1)//能娶到值的话
{ yycgd=yycgdlist.get(0);//把yycgd对象取出来 BeanUtils.copyProperties(yycgd, yycgdCustom);//把yycgd对象里面的值全部复制到yycgdCusom里面
}else //不能取到值的话就报错
{ ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 501, null)); }
//得到提交的状态,因为我们的页面上要显示的自定义的“提交”“未提交”这样状态。我们要根据zt
//系统表里面去查找。
String zt=yycgd.getZt();
String yycgztmc=systemConfigService.findDictinfoByDictcode("010", zt).getInfo();
yycgdCustom.setYycgdztmc(yycgztmc); return yycgdCustom;
}

我们看一下editcgd.jsp代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="/WEB-INF/jsp/base/tag.jsp"%>
<html>
<head>
<title>采购单修改</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <%@ include file="/WEB-INF/jsp/base/common_css.jsp"%>
<%@ include file="/WEB-INF/jsp/base/common_js.jsp"%> <script type="text/javascript">
//采购单保存
function yycgdsave(){
//由form被多个功能公用,每次操作设置form的url
$("#yycgdsaveForm").attr("action","${baseurl}cgd/editcgdsubmit.action");
jquerySubByFId('yycgdsaveForm', yycgdsave_callback, null);
} function yycgdsave_callback(data) {
var result = getCallbackData(data);
_alert(result);
} //采购单提交
function yycgdsubmit(){
_confirm('提交后采购单将不允许修改,是否继续?',null,
function(){
$("#yycgdsaveForm").attr("action","${baseurl}cgd/submitYycgd.action");
jquerySubByFId('yycgdsaveForm', yycgdsubmit_callback, null);
}
); }
//采购单提交回调
function yycgdsubmit_callback(data) {
var result = getCallbackData(data);
_alert(result);
//提交成功再刷新本页面,提交按钮就不显示
if(result.type==TYPE_RESULT_SUCCESS){
//重新再次跳转到修改页面,页面上的提交按钮、添加、删除的控制就不显示了。
window.location="${baseurl}cgd/editcgd.action?id=${yycgd.id}";
} } //采购单明细列表的工具栏
//采购药品添加
function yycgdmxaddshow(){
var sendUrl="${baseurl}cgd/queryaddyycgdmx.action?yycgdid=${yycgd.id}";
createmodalwindow("采购药品添加", 1124, 500, sendUrl);
}
//采购药品删除
function yycgdmxdelete(){
_confirm('您确定要删除选择的采购药品吗?',null,
function(){ var indexs = [];//选择记录的序号
var rows = $('#yycgdmxlist').datagrid('getSelections');
for(var i=0;i<rows.length;i++){
var index=$('#yycgdmxlist').datagrid('getRowIndex',rows[i]);
indexs.push(index);
}
if(rows.length>0){
$("#indexs").val(indexs.join(','));
//由于删除和保存对同一个form进行操作,所以这里给yycgdmxForm的action重新赋值
$("#yycgdmxForm").attr("action",'${baseurl}cgd/yycgdmxdelsubmit.action');
jquerySubByFId('yycgdmxForm', yycgdmxdelete_callback, null);
}else{
alert_warn("请选择要删除的采购药品");
}
}
)
}
function yycgdmxdelete_callback(data) {
var result = getCallbackData(data);
_alert(result);
yycgdmxquery();
}
//保存采购药品信息
function yycgdmxsave(){
_confirm('您确定要保存选择的采购药品吗?',null,
function(){ var indexs = [];//选择记录的序号
var rows = $('#yycgdmxlist').datagrid('getSelections');
for(var i=0;i<rows.length;i++){
var index=$('#yycgdmxlist').datagrid('getRowIndex',rows[i]);
indexs.push(index);
}
if(rows.length>0){
$("#indexs").val(indexs.join(','));
//由于保存和删除对同一个form进行操作,所以这里给yycgdmxForm的action重新赋值
$("#yycgdmxForm").attr("action",'${baseurl}cgd/savecgl.action');
jquerySubByFId('yycgdmxForm',yycgdmxsave_callback, null);
}else{
alert_warn("请选择要保存的采购药品");
}
}
)
}
function yycgdmxsave_callback(data){
var result = getCallbackData(data);
_alert(result);
yycgdmxquery();
}
var toolbar=[];
//如果采购单未提交或审核不通过显示此下操作按钮 toolbar = [{
id : 'yycgdmxaddshow',
text : '采购药品添加',
iconCls : 'icon-add',
handler : yycgdmxaddshow
}
,{
id : 'yycgdmxdelete',
text : '采购药品删除',
iconCls : 'icon-add',
handler : yycgdmxdelete
}
,{
id : 'yycgdmxsave',
text : '保存采购药品信息',
iconCls : 'icon-add',
handler : yycgdmxsave
}
]; //采购单明细列表的列定义 var columns = [ [{
checkbox:true
},{
field : 'useryymc',
title : '医院',
width : 100 /* ,
formatter:function (value,row,index){
//如果从json中取不出useryymc则显示成总计两个字
if(value){
return value;
}else{
return "总计";
}
} */
},{
field : 'ypxxid',
hidden : true,
formatter: function(value,row,index){
if(value){//因为有总计行,而总计行中id的值为null,所以这里需要添加判断,不为空则生成hidden
return '<input type="hidden" name="yycgdmxs['+index+'].ypxxid" value="'+value+'" />';
} }
},{
field : 'bm',
title : '流水号',
width : 50 },{
field : 'mc',
title : '通用名',
width : 100
},{
field : 'jx',
title : '剂型',
width : 70
},{
field : 'gg',
title : '规格',
width : 70
},{
field : 'zhxs',
title : '转换系数',
width : 50
},{
field : 'zbjg',
title : '中标价',
width : 50
},{
field : 'jyztmc',
title : '交易状态',
width : 50
},{
field : 'jyjg',
title : '交易价',
width : 50
},{
field : 'cgl',
title : '采购量',
width : 50,
formatter:function(value,row,index){
/* if(row.ypxxid){//如果有药品信息id表示不是总计行
return '<input type="text" name="yycgdmxs['+index+'].cgl" value="'+(value?value:"")+'" />';
}else{
return value;
} */
return '<input type="text" name="yycgdmxs['+index+'].cgl" value="'+(value?value:"")+'" />';
}
},{
field : 'cgje',
title : '采购金额',
width : 50
},{
field : 'scqymc',
title : '生产企业',
width : 100
},{
field : 'spmc',
title : '商品名称',
width : 100
},{
field : 'cgztmc',
title : '采购状态',
width : 80
},{
field : 'usergysmc',
title : '供货商',
width : 100
}]]; //加载datagrid(采购单明细列表)
$(function() {
$('#yycgdmxlist').datagrid({
title : '采购药品列表',
showFooter:true,//是否显示总计行
striped : true,
url : '${baseurl}cgd/queryYycgdmx_result.action',//这里边后边带了一个参数,所以form中不需要此参数yycgdid
queryParams:{//url的参数,初始加载datagrid时使用的参数
id:'${yycgd.id}'//yycgdid是参数名称,如果参数名称中间有点,将参数用单引号括起来
},
idField : 'yycgdmxid',//采购药品明细id
//frozenColumns : frozenColumns,
columns : columns,
pagination : true,
rownumbers : true,
showFooter:true,//显示总计
toolbar : toolbar,
loadMsg:"",
pageList:[15,30,50,100]
} );
}); //采购药品明细查询方法
function yycgdmxquery(){
var formdata = $("#yycgdmxForm").serializeJson();
//alert(formdata);
$('#yycgdmxlist').datagrid('unselectAll');//取所有选中,避免重新load保留选中状态
$('#yycgdmxlist').datagrid('load', formdata);
}
</script>
</HEAD>
<BODY>
<!-- 采购单主信息保存form -->
<form id="yycgdsaveForm" name="yycgdsaveForm" action="${baseurl}cgd/yycgdeditsubmit.action" method="post">
<input type="hidden" name="id" value="${yycgd.id}"/>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="70%" bgColor=#c4d8ed align=center>
<TBODY>
<TR>
<TD background=images/r_0.gif width="100%">
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD>&nbsp;药品采购单</TD>
<TD align=right>&nbsp;</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<TABLE class="toptable grid" border=1 cellSpacing=1 cellPadding=4
align=center>
<TBODY> <TR>
<TD height=30 width="15%" align=right>采购单编号:</TD>
<TD class=category width="35%">
${yycgd.bm}
</TD>
<TD height=30 width="15%" align=right >采购单名称:</TD>
<TD class=category width="35%">
<div>
<input type="text" id="yycgd_mc" name="yycgdCustom.mc" value="${yycgd.mc}" style="width:260px" /> </div>
<div id="yycgd_mcTip"></div>
</TD>
</TR>
<TR>
<TD height=30 width="15%" align=right >建单时间:</TD>
<TD class=category width="35%">
<fmt:formatDate value="${yycgd.cjtime}" pattern="yyyy-MM-dd"/>
</TD>
<TD height=30 width="15%" align=right >提交时间:</TD>
<TD class=category width="35%">
<fmt:formatDate value="${yycgd.tjtime}" pattern="yyyy-MM-dd"/>
</TD> </TR>
<TR>
<TD height=30 width="15%" align=right>联系人:</TD>
<TD class=category width="35%">
<input type="text" name="yycgdCustom.lxr" id="yycgd.lxr" value="${yycgd.lxr}" style="width:260px" />
</TD>
<TD height=30 width="15%" align=right >联系电话:</TD>
<TD class=category width="35%">
<input type="text" name="yycgdCustom.lxdh" id="yycgd.lxdh" value="${yycgd.lxdh}" style="width:260px" />
</TD>
</TR>
<TR>
<TD height=30 width="15%" align=right>采购单状态:</TD>
<TD class=category width="35%">
${yycgd.yycgdztmc}
</TD>
<TD height=30 width="15%" align=right>备注:</TD>
<TD colspan=3>
<textarea rows="2" cols="30" name="yycgdCustom.bz">${yycgd.bz}</textarea>
</TD>
</TR> <TR>
<TD height=30 width="15%" align=right>审核时间:</TD>
<TD class=category width="35%">
<fmt:formatDate value="${yycgd.shtime}" pattern="yyyy-MM-dd"/>
</TD>
<TD height=30 width="15%" align=right >审核意见:</TD>
<TD class=category width="35%">
${yycgd.shyj}
</TD>
</TR> <tr>
<td colspan=4 align=center class=category>
<a href="#" onclick="yycgdsave()" class="easyui-linkbutton" iconCls='icon-save'>保存</a>
<!-- 采购单状态为1:未提交、或、4:审核不通过显示提交 -->
<c:if test="${yycgd.zt =='1' or yycgd.zt=='4'}">
<a href="#" onclick="yycgdsubmit()" class="easyui-linkbutton" iconCls='icon-save'>提交</a>
</c:if>
</td>
</tr>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE>
</form>
<!-- 采购单主信息保存form --> <!-- 采购单明细信息 -->
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%" bgColor=#c4d8ed>
<TBODY>
<TR>
<TD background=images/r_0.gif width="100%">
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD>&nbsp;采购药品列表</TD>
<TD align=right>&nbsp;</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
</TBODY>
</TABLE> <!-- 采购单明细查询form -->
<form id="yycgdmxForm" name="yycgdmxForm" method="post" >
<input type="hidden" name="indexs" id="indexs" />
<!-- 采购单id -->
<input type="hidden" name="id" value="${yycgd.id}"/>
<TABLE class="table_search">
<TBODY>
<TR> <TD class="left">通用名:</td>
<td><INPUT type="text" name="ypxxCustom.mc" /></TD>
<TD class="left">剂型:</TD>
<td ><INPUT type="text" name="ypxxCustom.jx" /></td>
<TD class="left">规格:</TD>
<td ><INPUT type="text" name="ypxxCustom.gg" /></td>
<TD class="left">转换系数:</TD>
<td ><INPUT type="text" name="ypxxCustom.zhxs" /></td>
</TR>
<TR>
<TD class="left">流水号:</TD>
<td ><INPUT type="text" name="ypxxCustom.bm" /></td>
<TD class="left">生产企业:</TD>
<td ><INPUT type="text" name="ypxxCustom.scqymc" /></td>
<TD class="left">商品名称:</TD>
<td ><INPUT type="text" name="ypxxCustom.spmc" /></td>
<td class="left">价格范围:</td>
<td>
<INPUT id="ypxxCustom.zbjglower" name="ypxxCustom.zbjglower" style="width:70px"/>

<INPUT id="ypxxCustom.zbjgupper" name="ypxxCustom.zbjgupper" style="width:70px"/> </td>
</tr>
<tr> <TD class="left">药品类别:</TD>
<td >
<!-- 药品类别从数据字典中取id作为页面传入action的value -->
<select id="ypxxCustom.lb" name="ypxxCustom.lb" style="width:150px">
<option value="">全部</option>
<c:forEach items="${lblist}" var="value">
<option value="${value.id}">${value.info}</option>
</c:forEach>
</select>
</td>
<TD class="left">交易状态:</TD>
<td >
<!-- 交易状态从数据字典中取出dictcode作为页面传入action的value -->
<select id="ypxxCustom.jyzt" name="ypxxCustom.jyzt" style="width:150px">
<option value="">全部</option>
<c:forEach items="${jyztlist}" var="value">
<option value="${value.dictcode}">${value.info}</option>
</c:forEach>
</select> </td>
<TD class="left">采购状态:</TD>
<td > <select id="yycgdmxCustom.cgzt" name="yycgdmxCustom.cgzt" style="width:150px">
<option value="">全部</option>
<c:forEach items="${cgztlist}" var="value">
<option value="${value.dictcode}">${value.info}</option>
</c:forEach>
</select> </td> <td colspan=2> <a id="btn" href="#" onclick="yycgdmxquery()" class="easyui-linkbutton" iconCls='icon-search'>查询</a>
</td> </TR> </TBODY>
</TABLE> <!-- 采购明细列表 -->
<TABLE border=0 cellSpacing=0 cellPadding=0 width="99%" align=center>
<TBODY>
<TR>
<TD>
<!-- 采购单明细列表 -->
<table id="yycgdmxlist"></table>
</TD>
</TR>
</TBODY>
</TABLE>
</form> </BODY>
</HTML>

040医疗项目-模块四:采购单模块—采购单创建好之后跳转到采购单修改页面(editcgd.action)的更多相关文章

  1. 模块四-shutil模块

    shutil模块 高级的文件处理模块 主要是文件的处理,移动,压缩和解压缩 shutil模块的使用方法: shutil.copyfile()#拷贝文件 shutil.copy()#拷贝文件和权限 sh ...

  2. 常见模块(四) os模块

    注: os模块是实现python程序对操作系统(operation system)的操作 1.对文件或者目录进行删除或者创建的相关操作 # os.rename("b"," ...

  3. 005医疗项目-模块一:用户的查找:1.用户表查询的sql语句

    这是医疗项目的第一个模块:做一个用户的查询,可以根据用户的账号,用户的名称,单位的名称,用户的类型去查询.要求效果如下:

  4. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

    我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...

  5. 048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)

    需求: 我们之前把采购单交给监督单位审核了,审通过的采购单就要受理.供货商决定采购单发不发货. 说明: 我们要查的就是登录的供货商的要提供的采购药品,我们查看的是采购单详细表,至于查询条件我们用的是就 ...

  6. 047医疗项目-模块四:采购单模块—采购单审核提交(Dao,Service,Action三层)

    我们之前把采购单都审核了,这篇文章说的就是审核之后提交. 其实就是改变(update)采购单的审核状态. 需求: 用户要先查看采购单的内容. 查看采购单页面:页面布局同采购单修改页面. 选择审核结果. ...

  7. 045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)

    我们之前做的就是采购单的编辑,在采购单里面添加了药品,然后我们这篇文章要做的就是说提交这个采购单. 当我们创建完成采购单,确定采购单不再修改,需要提交采购单,由监管单位进行审核. 我们在提交这个采购单 ...

  8. 043医疗项目-模块四:采购单模块—采购单明细查询(Dao,Service,Action三层)

    前一篇文章我们做的是在医院的角度上添加在采购单里面添加药品.这一篇文章是查看我们添加的采购单信息. 我们先看一下要实现的效果:当: 按下确认添加时,会在这里 显示出刚才添加的数据. 好,我们就来做这个 ...

  9. 039医疗项目-模块四:采购单模块—采购单的创建-----------Dao层,service层,Acion层

    我们根据数据库里面的表格:生成对应的Mapper接口文件和...Mapperxml文件: YYCGD:采购单模板表. YYCGD2014:采购单动态生成表,由存储过程生成. YYCGDMX:采购单明细 ...

随机推荐

  1. UISegmentedControl(人物简介)

    效果图 当你点击上面人物名字的时候 ,就可以随意切换人物. 这个很有趣 , 你还可以试着添加音乐播放器 .以及一些别的来完善你想做的. 好吧 , 废话不多说 , 上代码. #import " ...

  2. IntelliJ IDEA 使用Git怎样记住密码和忘记密码的方法

    IntelliJ IDEA 使用Git怎样记住密码的方法 1.当使用Ctrl+T进行更新时,弹出密码框(此时不要输入任何字符),直接点"Cancel" 2.略等二三秒,会弹出新的密 ...

  3. zh-Hans vs.net 通过 管理nuget程序包下载简体中文语言包 zh-cn

    zh-Hans  vs.net 通过 管理nuget程序包下载简体中文语言包 在搜索中输入:zh-hans

  4. openstack新建虚机、网络、路由时候对应的ovs网桥的变化

    [root@wb5 ~]# [root@wb5 ~]# [root@wb5 ~]# [root@wb5 ~]# [root@wb5 ~]# [root@wb5 ~]# [root@wb5 ~]# [r ...

  5. ORA-00030: User session ID does not exist.

    同事在Toad里面执行SQL语句时,突然无线网络中断了,让我检查一下具体情况,如下所示(有些信息,用xxx替换,因为是在处理那些历史归档数据,使用的一个特殊用户,所以可以用下面SQL找到对应的会话信息 ...

  6. 多年前写的文本框扩展控件(有ValueChanging事件等),已放github

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 起因 代码 使用 GitHub ...

  7. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

  8. win8.1 user profile service 服务登录失败

    在Win 8.1 上新建个用户后,不能登录. 出现 user profile service 服务登录失败. 无法加载用户配置文件. 网上大部分相同提示的问题是有关已有账号不能再次登陆的. 解决方式是 ...

  9. 【转】总结:2015这一年App Store审核指南都有哪些变化

    本文针对此前版本的<App Store审核指南>进行了更新,并标注了2015年苹果对<App Store审核指南>进行的一些调整. App Store Review Guide ...

  10. iOS TabbarController 设置底部Toolbar图片和文字颜色选中样式

    提取公共方法: -(void)createChildVcWithVc:(UIViewController *)vc Title:(NSString *)title image:(NSString *) ...