jqGrud树形表格+树形菜单+底部合计+点击列可编辑

树形表格+底部合计+点击列可编辑 


<form id="controlNum_sgjf_list_form" class="form-horizontal" method="post" enctype="multipart/form-data">
	<table class="bs_table" id="controlNum_sgjf_list_table"></table>
	<div id="controlNum_sgjf_list_num_table"></div>
</form>
<script type="text/javascript">
$(function(){
	var xmzt='1';
	var changeId="";
	saveparameters = {
			"successfunc" : null,
			"url" : 'clientArray',
			"extraparam" : {},
			"aftersavefunc" : null,
			"errorfunc": null,
			"afterrestorefunc" : null,
			"restoreAfterError" : true,
			"mtype" : "POST"
	};
	var $tableC = $("#controlNum_sgjf_list_table");
	$tableC.jqGrid({
		url:path+"/xmk/sanGongControlNumController/getSanGongControlNum.do",
		ExpandColumn:"INCODE",  // 指定某列用于展开表格 
		height:"auto", //高度自适应
		rowNum : "-1",  
		scrollrows:true,
		treeGrid:true,
		shrinkToFit : false,
		autowidth: true,
		treedatatype:"json",
		treeGridModel:"adjacency", //treeGrid模式,跟json元数据有关 ,adjacency/nested  
		loadonce:true,
		ExpandColClick:true,
		treeReader:{
			"parent_id_field":"PARENT_ID",
			"level_field":"ORG_LEVEL",  // 树的等级根节点为0,依次递增
			"leaf_field":"isLeaf",  // 是否是子节点
			"expanded_field":"expanded",  // 是否展开 
			"loaded":"loaded", //是否异步加载
 			"icon_field":"icon",
			"sort_field":"INCODE"  //指定字段排序
		},
		datatype:"json",
		styleUI : 'Bootstrap', 
		postData:{ywzt:xmzt},
		colModel:[
			{name:'ID',label:'ID',index:'ID', hidden:true,key:true,frozen: true,editable:true},
			{name:"INCODE",label:"单位编码",index:"INCODE"},
			{name:"NAME",label:"单位名称",index:"INCODEORNAME",align:'center'},
			{name:"XYJE",label:"现有金额",index:"XYJE",align:'center',formatter:function(value,options,row){return formatCurrency(value);}},
			{name:"SGJFKZJE",label:"控制金额",index:"SGJFKZJE",align:'center',editable:true,formatter:function(value,options,row){return formatCurrency(value);}},
			{name:"YEAR",hidden:true,label:"年度",index:"YEAR",align:'center'},
			${ysndlb}
			{name:"KZREMARK",label:"控制说明",index:"KZREMARK",align:'center',editable:true},
			{name:"BZ",label:"备注",index:"BZ",editable:true,align:'center'},
		],
		footerrow: true,//是否显示表尾行,表尾是一空白行
		gridComplete: completeMethod,//底部合计列
		useFooter : true,
//		userDataOnFooter: true,//是否将返回来的表尾数据(返回的json对象的userdata数据)放到表尾行
		loadComplete:function(data){
		
		},
		onSelectRow:function(rowid){//判断点击列可编辑
			if(changeId!=""){
				formSave();
				$tableC.jqGrid('saveRow',changeId,saveparameters);
			}
			$tableC.jqGrid('editRow', rowid);
			changeId=rowid;
		}
	});
	
	/*统计合计 */
	function completeMethod(){
		xmzt = $("#controlNum_sgjf_list_ywzt").val();
		var nameOrId = $("#controlNum_sgjf_list_nameOrId").val();
		$.ajax({  
        	type: 'POST',
        	dataType: 'json',
        	url:path+'/xmk/sanGongControlNumController/getControlNumTotal.do',
        	data:{ywzt:xmzt,'nameOrId':nameOrId},
        	success: function(data){	
        		$("#controlNum_sgjf_list_table").footerData('set', data);//底部合计
        	}
    	});
	}
});
 
//根据条件模糊查找          
function refreshTable(){
	xmzt = $("#controlNum_sgjf_list_ywzt").val();
	var nameOrId = $("#controlNum_sgjf_list_nameOrId").val();
	$("#controlNum_sgjf_list_table").jqGrid('setGridParam',{ 
		url:path+"/xmk/sanGongControlNumController/getSanGongControlNum.do",
		postData:{'ywzt':xmzt,'nameOrId':nameOrId}, //发送数据 
		treedatatype:'json',
		mtype:'post'
	}).trigger("reloadGrid");  
}

//金额格式化
function formatCurrency(num) {
	if(num==null||num===""){
    	return "";
    }
	num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
}
</script>
@RequestMapping(value = "getSanGongControlNum")
	@ResponseBody
	public List<Map<String, Object>> getSanGongControlNum(HttpServletRequest request,String ywzt,String nameOrId){
		String ysnd = sysParamFacade.getParamValue("当前年度");
		String jzee = sysParamFacade.getParamValue("基础数据库名");
		
		String sql="select o.ID DWID,o.IN_CODE DWBM,o.NAME DWMC,o.PARENT_ID DWFJID,o.ORG_LEVEL DWLEVEL,o.YEAR,s.* from "+jzee+".sys_org o"+
				" left join t_sgjfkzs_controlnum s on o.ID=s.UNITID and s.YSND=? and s.YWZT=? and o.YEAR=? where o.YEAR=?";
		List<String> param = new ArrayList<String>();
		param.add(ysnd);
		param.add(ywzt);
		param.add(ysnd);
		param.add(ysnd);
		if(null!=nameOrId&&!nameOrId.equals("")){
			sql+=" and (o.IN_CODE = ? or o.NAME like ? )";
			param.add(nameOrId);
			param.add("%"+nameOrId+"%");
		}
		sql+=" order by o.IN_CODE;";
		
		List<Map<String, Object>> list = sanGongControlNumFacade.findListMapBySql(sql, param.toArray());
		//现有金额
		Map<String, Object> xyjeMap = sanGongControlNumFacade.getUnitSanGongXyje(ywzt, ysnd);
		
		//获取三公字段的列表
		List<Map<String, Object>> dataInfos = sanGongControlNumFacade.getSanGongZiDuan();
		
		List<Map<String, Object>> sgControlNumlist = new ArrayList<>();
		
		if(null!=list&&list.size()>0){
			for (Map<String, Object> lis : list) {
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("ID", lis.get("DWID"));
				map.put("NAME", lis.get("DWMC"));
				map.put("INCODE", lis.get("DWBM"));
				map.put("PARENT_ID", lis.get("DWFJID"));
				map.put("ORG_LEVEL", lis.get("DWLEVEL"));
				if(xyjeMap.containsKey(lis.get("DWID"))){
					map.put("XYJE", xyjeMap.get(lis.get("DWID")));
				}else{
					map.put("XYJE", 0);
				}
				map.put("expanded", true);// 是否展开 
				
				for (Map<String, Object> map2 : dataInfos) {
					map.put(map2.get("FIELD_ENAME").toString(),lis.get(map2.get("FIELD_ENAME"))==null?null:lis.get(map2.get("FIELD_ENAME")));
				}
				map.put("SGJFKZJE",lis.get("SGJFKZJE"));
				map.put("KZREMARK",lis.get("KZREMARK"));
				map.put("BZ",lis.get("BZ"));
				int subCount = sysOrgFacade.findTotalBySql("SELECT COUNT(ID) FROM SYS_ORG E WHERE E.YEAR=? AND E.PARENT_ID=?", ysnd, lis.get("DWID"));
				if(subCount>0){
					map.put("isLeaf", "false"); //是否子节点
				}else{
					map.put("isLeaf", "true");
				}
				sgControlNumlist.add(map);
			}
		}
		return sgControlNumlist;
	}
/**
 * 合计	
 * @param ywzt
 * @param nameOrId
 * @return
 */
	@RequestMapping(value = "getControlNumTotal")
	@ResponseBody
	public Map<Object, Object> getControlNumTotal(String ywzt,String nameOrId){
		String ysnd = sysParamFacade.getParamValue("当前年度");
		//获取资金来源的列表
		List<Map<String, Object>> dataInfos = sanGongControlNumFacade.getSanGongZiDuan();
		
		String zje="SUM(SGJFKZJE) AS SGJFKZJE,";
		if(dataInfos==null||dataInfos.size()==0){	
		}else{
			for(Map<String, Object>map:dataInfos){
				zje+="SUM("+map.get("FIELD_ENAME").toString()+") AS "+map.get("FIELD_ENAME").toString()+"," ;
			}
		}
		zje=zje.substring(0, zje.length()-1);
		
		String sql="SELECT "+zje+" FROM T_SGJFKZS_CONTROLNUM WHERE YSND=? and YWZT=? ";
		List<String> param = new ArrayList<String>();
		param.add(ysnd);
		param.add(ywzt);
		if(null!=nameOrId&&!nameOrId.equals("")){
			sql+=" and (UNITNUMBER = ? or UNITNAME like ? )";
			param.add(nameOrId);
			param.add("%"+nameOrId+"%");
		}
		//存储总金额
		List<Map<String, Object>> sanGongNum=sanGongControlNumFacade.findListMapBySql(sql,param.toArray());
		
		Map<Object, Object> numMap=new HashMap<>();
		numMap.put("INCODE", "合计");
		if(sanGongNum.get(0).get("SGJFKZJE")!=null &&!sanGongNum.get(0).get("SGJFKZJE").equals("") && !sanGongNum.get(0).get("SGJFKZJE").equals("")){
			numMap.put("SGJFKZJE", sanGongNum.get(0).get("SGJFKZJE"));
		}else{
			numMap.put("SGJFKZJE", "0.00");
		}
		if(dataInfos==null||dataInfos.size()==0){
		}else{
			for(Map<String, Object>map:dataInfos){
				if(sanGongNum.get(0).get(map.get("FIELD_ENAME"))!=null && !sanGongNum.get(0).get(map.get("FIELD_ENAME")).equals("null") && !sanGongNum.get(0).get(map.get("FIELD_ENAME")).equals("")){
					numMap.put(map.get("FIELD_ENAME"), sanGongNum.get(0).get(map.get("FIELD_ENAME")));
				}else{
					numMap.put(map.get("FIELD_ENAME"), "0.00");
				}
			}
		}
		return numMap;
	}

jqGrud树形表格+树形菜单+底部合计+点击列可编辑

树形菜单

 

项目支出:<input id="controlNum_cost_property_list_xmzc_text" name="" type="text"  value="" style="width: 150px;height:30px;" readonly="readonly" onclick="toControlNumCostPropertyXmzc()" />&nbsp;&nbsp;
			<input id="controlNum_cost_property_list_xmzc_id"  type="hidden" name="xmzc"/>

jqGrud树形表格+树形菜单+底部合计+点击列可编辑 

function toControlNumCostPropertyXmzc(){
// 	var id = $("#controlNum_cost_property_list_xmzc_id").val();
	var id = null;
	var controlNumCostPropertyXmzc = $jzee.dialog({
		title: '项目支出选择',
		hiddenBtn:false,
		url : path+'/xmk/control/controlNum_cost_property_xmzc.jsp?xmzcId='+id,
		width:400,
		height:400,
		ok: function () {//确定按钮事件
			var dataId=$("#xmzc_id").val();
			var datatext=$("#xmzc_text").val();
			$("#controlNum_cost_property_list_xmzc_id").val(dataId);
			$("#controlNum_cost_property_list_xmzc_text").val(datatext);
			controlNumCostPropertyXmzc.modal('hide');
			refreshTable();
		}
	});
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% String path =  request.getContextPath(); %>
<div id="controlNum_cost_property_xmzc_tree"></div>
<input id="xmzc_id"  type="hidden"/>
<input id="xmzc_text"  type="hidden"/>
<script type="text/javascript">
$(function(){
	$("#controlNum_cost_property_xmzc_tree").jstree({
		"core" : {
			"cache": false,
	        "data" : {
	            "url" : path+'/xmk/costPropertyControlNumController/getXmzcTree.do?xmzcId=${param.xmzcId}'
	        }
	    },
// 	    "plugins" : ["types","checkbox","search"]
	    "plugins" : ["types","search"]
	}).on('loaded.jstree',function(e, data) {
	
	}).on('select_node.jstree',function(e, data) {//绑定选择事件1
		$("#xmzc_id").val(data.node['id']);
		$("#xmzc_text").val(data.node['text']);
	});  
});

</script>
@RequestMapping(value = "getXmzcTree")
	@ResponseBody
	public Object getXmzcTree(String xmzcId) {
		List<String> xmzcIdList = Arrays.asList(xmzcId.split(","));
		JSONArray fjson = new JSONArray();
		//获取口径列表
		List<CaliberEntity>  caliberList=caliberFacade.getEntityListOrder();
		if (caliberList!=null&&caliberList.size()>0) {
			for (CaliberEntity map : caliberList) {
				JSONObject item = new JSONObject();
				item.put("id", map.getId());
				item.put("text",  "["+map.getShowNo()+"]"+map.getName());
				JSONObject stateObject = new JSONObject();
				stateObject.put("opened", true);//默认展开子节点
				if(xmzcIdList.contains(map.getId())){
					stateObject.put("selected", true);//是否勾选
				}else{
					stateObject.put("selected", false);//是否勾选
				}
//					stateObject.put("selected", judgeMenuIsChecked(menu, roleMenuMap));//是否勾选
				item.put("state", stateObject);
				//构建父子节点关系
				item.put("parent", "#");//如果是一级菜单必须要赋值"#",这是bootstrap-table的要求
				fjson.add(item);
			}
		}
		return fjson;
	}

jqGrud树形表格+树形菜单+底部合计+点击列可编辑