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.

321 lines
14 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>
<link href="../../../../Scripts/easyUI145/themes/icon.css" rel="stylesheet" type="text/css" />
<link href="../../../../Scripts/easyUI145/themes/default/easyui.css" rel="stylesheet" type="text/css" />
<link href="../../../../../DataUser/Style/ccbpm.css" rel="stylesheet" type="text/css" />
<script src="../../../../Scripts/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="../../../../Scripts/QueryString.js" type="text/javascript"></script>
<script src="../../../../Scripts/config.js" type="text/javascript"></script>
<script src="../../../../Scripts/QueryString.js" type="text/javascript"></script>
<script src="../../../../Comm/Gener.js" type="text/javascript"></script>
<script src="DDLBar.js" type="text/javascript"></script>
<script src="../../../CCFlowEnum.js"></script>
<link href="../../../../Scripts/layui/layui/css/layui.css" rel="stylesheet" />
<script src="../../../../Scripts/layui/layui/layui.js"></script>
<script type="text/javascript">
//页面启动函数.
var frmID = GetQueryString("FK_MapData") || GetQueryString("FrmID");
var flowNo = GetQueryString("FK_Flow");
var nodeID = GetQueryString("FK_Node");
var btnFrmLib = null;
var selFrmNode = null;
var Btn_Flows = null;
var curDBSrcNo = '';
var curDBSrcName = '';
var curTableName = '';
$(function () {
InitBar("ExternalDataSourseImp");
//数据源集合.
var ens = new Entities("BP.Sys.SFDBSrcs");
ens.RetrieveAll();
var html = "<ul>";
for (var i = 0; i < ens.length; i++) {
var en = ens[i];
html += "<li><a href='javascript:GoToStep2(\"" + en.No + "\",\"" + en.Name + "\")'>" + en.No + " - " + en.Name + " - " + en.DBSrcTypeText + "</a></li>";
}
html += "</ul>";
//加载完成.
$("#Step1").html(html);
$("#Step2").hide();
$("#Step3").hide();
});
//2.1 点击数据源,进入第二步
function GoToStep2(dbSrcNo, dbSrcName) {
$("#Step2").show();
$("#Step3").hide();
curDBSrcNo = dbSrcNo;
curDBSrcName = dbSrcName;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_FoolFormDesigner_ImpExp");
handler.AddPara("FK_SFDBSrc", dbSrcNo);
var data = handler.DoMethodReturnString("Imp_Src_Step2_Init");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
//转化成json.
data = JSON.parse(data);
if (data) {
//1、左侧列表
var ul = '<ul class=\'ulcols\' style="height:300px;overflow-y:auto">';
data.forEach(function (item) {
ul += "<li><a id='" + item["NO"] + "' href='#' onclick=\"GetColumns('" + item["NO"] + "')\" >" + item["NAME"] + "</a></li>";
});
ul += '</ul>';
$('#Step21H').html('选择' + dbSrcName + ' 数据表/视图');
$('#Step21B').html(ul);
//2、右侧
//填数据(只有个表头)
$('#Step22H').html('请选择要导入的数据列');
Table_Cols(data);
}
}
//2.2 点击表名获取表下的所有的列
function GetColumns(tableName) {
curTableName = tableName;
//1.样式处理。选中节点标红,其他节点去红
var old = $(event.srcElement).css("color");
$(".ulcols li a").css('color', old);
$(event.srcElement).css('color', 'red');
//2.获取数据 FK_MapData=ND18507&FK_SFDBSrc=NKApp&STable=ND104
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_FoolFormDesigner_ImpExp");
handler.AddPara("FK_SFDBSrc", curDBSrcNo);
handler.AddPara("FK_MapData", frmID);
handler.AddPara("STable", tableName);
var data = handler.DoMethodReturnString("Imp_Src_Step2_GetColumns");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
//转化成json.
data = JSON.parse(data);
Table_Cols(data);
}
//2.2.1 根据获取的数据生成字段的table
function Table_Cols(data) {
var tr = "",
tableHtml = "<table class='layui-table' cellpadding='2' cellspacing='2' style='height:300px;overflow-y:auto'>";
tr += "<tr>";
tr += "<td class='GroupTitle' style='height:39px'>序</td>";
tr += "<td class='GroupTitle' style='width:140px;text-align:center;height:39px'><input id='CB_CheckAll' type='checkbox' name='CB_CheckAll' onclick='CheckAll(this.checked);'></td>";
tr += "<td class='GroupTitle' style='height:39px'>中文描述</td>";
tr += "<td class='GroupTitle' style='width:80px;text-align:center;height:39px'>类型</td>";
tr += "<td class='GroupTitle' style='width:50px;text-align:center;height:39px'>最大长度</td>";
tr += "</tr>";
tableHtml += tr;
if (data.TableColumns) {
var tableColumns = data.TableColumns;
var attrs = data.MapAttrs;
tableColumns.forEach(function (item, index) {
tr = "";
tr += "<tr>";
tr += "<td nowrap=''>" + item.colid + "</td>";
var disabletag = "";
if (attrs && attrs.length > 0) {
if ($.grep(attrs, function (attr) {
return attr.KeyOfEn == item.No;
}).length > 0) {
disabletag = "disabled";
}
}
tr += "<td><input " + disabletag + " id='CB_Col_" + item.No + "' type='checkbox' name='" + item.No + "' title='" + item.No + "'/><label for='CB_Col_" + item.No + "'>" + item.No + "</label></td>";
tr += "<td nowrap=''>" + item.Name + "</td>";
tr += "<td nowrap=''>" + item.DBType + "</td>";
tr += "<td class='TDNum'>" + item.DBLength + "</td>";
tr += "</tr>";
tableHtml += tr;
});
} else {
tableHtml += "<tr></tr>";
}
tableHtml += "</table>";
var center = $('#Step22B');
center.html("").append(tableHtml);
if (data.TableColumns) {
//var btnPrev = "<input type='button' id='btnPrev' value='上一步 ' />";
var btnNext = "<input type='button' name='btnNext' value='下一步 ' onclick='Step3();' />";
center.append(btnNext);
}
}
function Step3() {
$("#Step2").hide();
$("#Step3").show();
var chk_value = [];
//获取所有选中的checkbox 字段用,拼接
$('#Step22B input:checked').each(function () {
chk_value.push(this.name);
});
var SColumns = chk_value.join();
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_FoolFormDesigner_ImpExp");
handler.AddPara("FK_SFDBSrc", curDBSrcNo);
handler.AddPara("FK_MapData", frmID);
handler.AddPara("STable", curTableName);
handler.AddPara("SColumns", SColumns);
var data = handler.DoMethodReturnString("Imp_Src_Step3_Init");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
//转化成json.
data = JSON.parse(data);
var tableHtml = "",
impFields = "",
Columns = data.Columns,
EnumsDataType = data.EnumsDataType,
EnumsLGType = data.EnumsLGType,
tr = "";
var optionsEnumsLGType = "",
optionsEnumsDataType;
EnumsLGType.forEach(function (item) {
optionsEnumsLGType += "<option value='" + item.IntKey + "'>" + item.Lab + "</option>";
});
tableHtml += "<form><table class='layui-table' cellpadding='2' cellspacing='2'>";
tableHtml += "<tr><td class='GroupTitle' nowrap=''>序</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>字段名</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>中文描述</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>数据类型</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>逻辑类型</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>绑定值(双击选择)</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>最大长度</td>";
tableHtml += "<td class='GroupTitle' nowrap=''>顺序</td>";
tableHtml += "</tr>";
var dic = { "nvarchar": 1, "int": 2, "smallint": 2, "float": 3, "bit": 4, "double": 5, "date": 6, "datetime": 7, "money": 8 };
if (Columns.length > 0) {
Columns.forEach(function (item, index) {
tr = "";
tr += "<tr>";
tr += "<td class='Idx' nowrap=''>" + index + "</td>";
tr += "<td nowrap=''>" + item.No + "</td>";
tr += "<td><input name='TB_Desc_" + item.No + "' type='text' value='" + (item.Name || item.No) + "' size='20' id='TB_Desc_" + item.No + "' /></td>";
tr += "<td><select name='DDL_DBType_" + item.No + "' id='DDL_DBType_" + item.No + "'>";
tr += _GetOptionsEnumsDataType(EnumsDataType, dic[item.DBType]);
tr += "</select></td>";
tr += "<td><select name='DDL_LogicType_" + item.No + "' id='DDL_LogicType_" + item.No + "'>";
tr += optionsEnumsLGType;
tr += "</select></td>";
tr += "<td><input name='TB_BindKey_" + item.No + "' type='text' size='30' id='TB_BindKey_" + item.No + "' ondblclick='OpenSelectBindKey(this)' /></td>";
tr += "<td><input name='TB_Len_" + item.No + "' type='text' value='" + item.DBLength + "' size='5' id='TB_Len_" + item.No + "' /></td>";
tr += "<td style='text-align:center' nowrap=''><a href='javascript:void(0)' onclick='up(this, 6)' class='easyui-linkbutton l-btn' data-options='iconCls:'icon-up'' group='' id=''><span class='l-btn-left'><span class='l-btn-text'><span class='l-btn-empty icon-up'>&nbsp;</span></span></span></a>&nbsp;<a href='javascript:void(0)' onclick='down(this, 6)' class='easyui-linkbutton l-btn' data-options='iconCls:'icon-down'' group='' id=''><span class='l-btn-left'><span class='l-btn-text'><span class='l-btn-empty icon-down'>&nbsp;</span></span></span></a>";
tr += "</td>";
tr += "</tr>";
tableHtml += tr;
impFields += item.No + ","
});
}
tableHtml += "</table></form>";
$('#Step3').html("").html(tableHtml);
var hidImpFields = "<input type='hidden' id='hidImpFields' name='hidImpFields' value='" + impFields + "' />";
var btnNext = "<input type='button' name='btnNext' value='导入字段 生成表单 ' onclick='Save_Click();' />";
//var btnPrev = "<input type='button' id='btnPrev' value='上一步 ' />";
$('#Step3').append(hidImpFields).append(btnNext);
}
//3、TODO导入字段 生成表单
function Save_Click() {
//2.获取数据 FK_MapData=ND18507 &FK_SFDBSrc=NKApp&STable=ND104
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_FoolFormDesigner_ImpExp");
handler.AddPara("FK_MapData", frmID);
handler.AddPara("hidImpFields", $("#hidImpFields").val());
handler.AddFormData();
var data = handler.DoMethodReturnString("Imp_Src_Step3_Save");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
alert(data);
}
function CheckAll(checked) {
$.each($(":checkbox"), function () {
this.checked = checked;
});
}
function _GetOptionsEnumsDataType(EnumsDataType, key) {
var ret = "";
EnumsDataType.forEach(function (item) {
ret += "<option value='" + item.IntKey + "' " + (item.IntKey == key ? "selected" : "") + ">" + item.Lab + "</option>";
});
return ret;
}
</script>
</head>
<body>
<div id="bar"></div>
<fieldset style="height: 90%;">
<legend>第一步:选择数据源:<a href="javascript:NewDB();">新建数据源</a> </legend>
<div id="Step1"></div>
<legend>第二步:选择表</legend>
<div id="Step2">
<div class="layui-row">
<div class="layui-col-xs4" id="Step21">
<div class="layui-card">
<div class="layui-card-header" id="Step21H" style="font-weight:bold"></div>
<div class="layui-card-body" id="Step21B" style="height:300px">
</div>
</div>
</div>
<div class="layui-col-xs8" id="Step22">
<div class="layui-card">
<div class="layui-card-header" id="Step22H" style="font-weight:bold"></div>
<div class="layui-card-body" id="Step22B" style="height:300px;overflow-y:auto">
</div>
</div>
</div>
</div>
</div>
<legend>第三步:设置关系</legend>
<div id="Step3"></div>
<legend>帮助 </legend>
<ul>
<ol>第1步请选择数据源.</ol>
<ol>第2步请选表.</ol>
<ol>第3步设置关系. </ol>
</ul>
</fieldset>
</body>
</html>