You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

290 lines
9.9 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>分组平铺</title>
<script language="JavaScript" src="../../Comm/JScript.js" type="text/javascript" ></script>
<script type="text/javascript" src="../../Scripts/bootstrap/js/jquery.min.js"></script>
<script src="../../Scripts/QueryString.js" type="text/javascript"></script>
<!-- 引用通用的js文件. -->
<script type="text/javascript" src="../../Scripts/config.js"></script>
<script type="text/javascript" src="../../Comm/Gener.js"></script>
<link href="../../../DataUser/Style/ccbpm.css" rel="Stylesheet" />
<script type="text/javascript">
var selectedEles = null;
var mapExt = null;
var webUser = new WebUser();
function loadEntities(mapExt) {
selectedEles = new Entities("BP.Sys.FrmEleDBs");
selectedEles.Retrieve("FK_MapData", mapExt.FK_MapData, "EleID", mapExt.AttrOfOper, "RefPKVal", GetQueryString("PKVal"));
}
$(function () {
$("#Msg").html("正在加载,请稍后......");
var mypk = GetQueryString("FK_MapExt");
mapExt = new Entity("BP.Sys.MapExt", mypk);
//获取设置显示的列数
var showSpan = mapExt.GetPara("ShowCol");
if (showSpan == null || showSpan == undefined || showSpan == "")
showSpan = 3;
var entities;
if (mapExt.DBType == 0) {
entities = GetDataTableByField("Tag2");
} else {
var srcOfEntitis = mapExt.Tag2; //实体.
srcOfEntitis = DealSQL(srcOfEntitis);
entities = DBAccess.RunDBSrc(srcOfEntitis, mapExt.DBType); //数据源.
}
//创建实体.
//var sfTableEn = new Entity("BP.Sys.SFTable", mapExt.Tag2);
// var entities = sfTableEn.DoMethodReturnJSON("GenerDataOfJson");
var html = "<table style='width:98%;' >";
var isRB = true;
if (mapExt.GetPara('SelectType') == 1)
isRB = false;
//获得已经选择的集合.
loadEntities(mapExt);
var myNum = -1;
for (var idx = 0; idx < entities.length; idx++) {
en = entities[idx];
var myidx = 0;
var oOfEn;
for (var obj in en) {
if (myidx == 2) {
oOfEn = obj;
break;
}
myidx++;
}
myidx = 0;
var oOfGroup;
for (var obj in en) {
if (myidx == 0) {
oOfGroup = obj;
break;
}
myidx++;
}
var isHave = false;
for (var iEle = 0; iEle < selectedEles.length; iEle++) {
var ele = selectedEles[iEle];
if (ele == null || ele == undefined)
continue;
if (ele.Tag1 == en.No) {
isHave = true;
break;
}
}
var lab = en.Name;
var checked = "";
if (isHave) {
lab = "<font color=green>" + en.Name + "</font>";
checked = "checked";
}
myNum++;
if (myNum == 0)
html += "<TR>";
if (isRB == true)
html += "<td><input type='radio' name='RB' id='RB_" + en.No + "' value='" + en.No + "' " + checked + " /><label for='RB_" + en.No + "'>" + lab + "</label></td>";
else
html += "<td><input type='checkbox' name='" + en.No + "' id='CB_" + en.No + "' value='" + en.No + "' " + checked + " /><label for='CB_" + en.No + "'>" + lab + "</label></td>";
if (myNum == showSpan - 1) {
html += "</tr>";
myNum = -1;
}
}
html += "</table>";
$("#Msg").html("");
$("#Msg").html(html);
});
//选择与取消选择.
function CheckAll(checked, no) {
$("input[name='" + no + "']").each(function () {
this.checked = checked;
});
}
function DealSQL(dbSrc) {
//dbSrc = dbSrc.replace(/~/g, "'");
if (webUser == null || webUser == undefined)
webUser = new WebUser();
//替换表达式常用的用户信息
dbSrc = dbSrc.replace('@WebUser.No', webUser.No);
dbSrc = dbSrc.replace('@WebUser.Name', webUser.Name);
dbSrc = dbSrc.replace("@WebUser.FK_DeptNameOfFull", webUser.FK_DeptNameOfFull);
dbSrc = dbSrc.replace('@WebUser.FK_DeptName', webUser.FK_DeptName);
dbSrc = dbSrc.replace('@WebUser.FK_Dept', webUser.FK_Dept);
//SQL语句中含有@符号,替换父窗体表单字段值
if (dbSrc.indexOf("@") != -1) {
var reg = new RegExp("(\~(.+?)\~)");
var results = dbSrc.match(reg);
$.each(results, function (i, param) {
param = param.replace("@", "");
//获取父窗体中的字段
var obj = $('#TB_' + param, parent.document);
if (obj.length == 0)
obj = $('#DDL_' + param, parent.document);
if (obj.length == 0)
obj = $('#CB_' + param, parent.document);
if (obj.length != 0)
dbSrc = dbSrc.replace("@" + param, obj.val());
});
}
dbSrc = dbSrc.replace(/~/g, "'");
return dbSrc;
}
//保存.
function Save() {
//获得存储的值.
var selectVals = [];
//获得存储的text
var selectValTexts = [];
//获得选择的数据.
var selectType = mapExt.GetPara("SelectType");
if (selectType == "0") { //单选.
selectVals.push($("input[name='RB']:checked").val());
selectValTexts.push({ No:$("input[name='RB']:checked").val(),Name: $("input[name='RB']:checked").siblings().text() });
} else {
var cbs = $("input[type='checkbox']:checked");
cbs.each(function () {
if (this.id.indexOf('CB_') == -1)
return true;
selectVals.push(this.value);
selectValTexts.push({ No: this.value, Name: $(this).siblings().text() });
});
}
//删除变量中没有的数据,已经取消掉的. selectedEles 数据.
var FK_MapData = mapExt.FK_MapData;
var keyOfEn = mapExt.AttrOfOper;
var oid = GetQueryString("PKVal");
//
var insertArray = selectedElements(selectedEles, selectValTexts);
$.each(insertArray, function (i, o) {
var frmEleDB = new Entity("BP.Sys.FrmEleDB");
frmEleDB.MyPK = keyOfEn + "_" + oid + "_" + o.No;
frmEleDB.FK_MapData = FK_MapData;
frmEleDB.EleID = keyOfEn;
frmEleDB.RefPKVal = oid;
frmEleDB.Tag1 = o.No;
frmEleDB.Tag2 = o.Name;
if (frmEleDB.Update() == 0) {
frmEleDB.Insert();
}
});
var deleteArray = canceledElements(selectedEles, selectVals);
$.each(deleteArray, function (i, o) {
var frmEleDB = new Entity("BP.Sys.FrmEleDB");
frmEleDB.MyPK = keyOfEn + "_" + oid + "_" + o;
frmEleDB.Delete();
});
return selectValTexts;
}
// 新增
function selectedElements(entities, selectedArray) {
var array = [];
$.each(selectedArray, function (i, e) {
if (typeof e === "undefined") {
return true;
}
var exists = false;
$.each(entities, function (n, o) {
if (o.Tag1 == e.No) {
exists = true;
return false;
}
});
if (!exists) {
array.push(e);
}
});
return array;
}
// 删除
function canceledElements(entities, selectedArray) {
if (!$.isArray(selectedArray)) {
return;
}
var array = [];
$.each(entities, function (i, o) {
var value = o.Tag1;
var t = selectedArray.filter(function (e) {
return e == value;
});
if (t.length == 0) {
array.push(value);
}
});
return array;
}
/**
* 根据字段参数查询类型获取JSON数据
* @param field mapExt需要查询的字段
* @param paras 参数值
*/
function GetDataTableByField(field, paras) {
var en = new Entity("BP.Sys.MapExt", mapExt.MyPK);
var json = en.DoMethodReturnString("GetDataTableByField", field, paras, null, GetQueryString("OID"));
if (json.indexOf("err@") != -1) {
alert(json);
return "";
}
json = JSON.parse(json);
return json;
}
</script>
</head>
<body>
<table id="Table1" >
</table>
<input type=button id="Btn_Save" onclick="Save();" style="display: none;" value="Save"/>
<div id="Msg"> </div>
</body>
</html>