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

531 lines
18 KiB

@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<link href="~/Content/css/CommonReport/CommonReport.css" rel="stylesheet" />
<script src="~/Content/js/CommonReport/CommonReport.js"></script>
<style>
.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td {
overflow:hidden;
}
.DropMenu {
position: absolute;
display: block;
top: 5px;
right: 10px;
opacity: 0.3;
z-index: 888;
}
.DropMenuHidden {
position: absolute;
display: none;
top: 5px;
right: 10px;
opacity: 0.2;
z-index: 1;
}
.HiddenDiv {
position: absolute;
display: block;
top: 5px;
right: 10px;
opacity: 0;
z-index:1;
}
.ShowDiv {
position: absolute;
display: block;
top: 5px;
right: 10px;
opacity: 1;
background: #1abc9c;
border: 2px solid #1abc9c;
text-align:center;
width:200px;
z-index: 888;
}
</style>
<script>
var _MenuID = "";//菜单ID
var _SourceID = "";//数据源ID
var _sqlTxt = "";//加上参数的sql
var _sqlTxt_Condition = new Array();
var _sqlTxt_AddCondition = "";//加上过滤条件的sql
var _IsExistsDataSource = "";
var _DBName = "";//s数据库
var _Cols = new Array();//列
var _ReportName = "";
var _TempName = "";
var _Filter = "";
var _footerrow = false;//是否有合计项
var _footercols = new Array();//合计项
var _formatcols = new Array();//个性化项
var _formatcols_Row = new Array();//个性化项的行
var _Mergercols = new Array();//合并项
var timer;
var timer2;//刷新数据时间
var GunDongRate = 10000;
var GunDongRow = 0;
var DataF = 15*60;
// var CurrentscrollTop = 0;
var IsFirstShow = false;
$(function () {
//fullScreen();
_MenuID = $.request("_MenuID");
_TempName = $.request("TempName");
GetMenu();
_sqlTxt_AddCondition = _sqlTxt;
var _sqlTxt_ConditionStr = $.request("_sqlTxt_Condition");
if (_sqlTxt_ConditionStr != undefined && _sqlTxt_ConditionStr != "") {
var data;
_sqlTxt_Condition = eval("data=" + _sqlTxt_ConditionStr);
if (_sqlTxt_Condition != undefined && _sqlTxt_Condition.length > 0) {
for (var i = 0; i < _sqlTxt_Condition.length; i++) {
_sqlTxt_AddCondition = ReplaceALL(_sqlTxt_AddCondition, _sqlTxt_Condition[i].CIndex, _sqlTxt_Condition[i].Content);
}
}
}
gridList();
$(window).resize(function () {
$("#gridListW").setGridWidth($(window).width() * 0.99);
$("#gridListW").setGridWidth(document.body.clientWidth * 0.99);
$("#gridListW").setGridHeight($(window).height() - 82);
$("#gridListW").setGridHeight(document.body.clientHeight - 82);
GunDongRow = 0;
});
scrollBody();
//刷新数据
timer2 = setInterval(function () {
gridList();
}, DataF*1000);
$('#gridListW').mouseover(function () {//添加over事件,停止滚动
timer = window.clearInterval(timer);
});
$('#gridListW').mouseout(function (e) {//添加mouseout事件,继续滚动
scrollBody();
});
});
//自动滚动
function scrollBody() {
timer = setInterval(function () {
var ob3 = $('#gridListW').getGridParam("records");
var div = $('#gridListW').closest('.ui-jqgrid-bdiv')[0];
var offsetHeight = div.offsetHeight;
var scrollHeight = div.scrollHeight - offsetHeight;
if (GunDongRow == 0)
{
var hh = offsetHeight;
GunDongRow = Math.floor(hh / 30.3);
}
// div.scrollTop = div.scrollTop + 1;
if (div.scrollTop >= scrollHeight) {//循环滚动
scrollHeight = div.scrollHeight - offsetHeight;//如果在滚动过程中添加过数据,需要重新结算scrollHeight
if (div.scrollTop >= scrollHeight) {
div.scrollTop = 0; //循环滚动,重置滚动头即可
IsFirstShow = true;
}
if (div.scrollTop >= ob3 * 30.4) {
div.scrollTop = 0; //循环滚动,重置滚动头即可
IsFirstShow = true;
}
}
if (!IsFirstShow) {
div.scrollTop = div.scrollTop + (GunDongRow * 30.3);
}
else { IsFirstShow = false;}
}, GunDongRate);
}
//end 自动滚动
function GetMenu() {
$.ajax({
url: "/SystemManage/CommonReport/GetMenu?MenuID=" + _MenuID + "&" + Math.random(),
dataType: "json",
async: false,
success: function (data) {
if (data != false && data != null) {
_sqlTxt = data.sqlTxt;
// _sqlTxt_AddCondition = data.sqlTxt;
_DBName = data.DBName;
_SourceID = data.SourceID;
_IsExistsDataSource = data.IsExistsDataSource;
_ReportName = data.ReportName;
_Mergercols = eval(data.Mergercols);
_formatcols = data.formatcols;
_footerrow = data.footerrow;
_footercols = eval(data.footercols);
_Cols = SetCols(eval(data.Cols));
}
else {
alert("获取菜单栏位等信息异常。" + data);
}
},
error: function (aa) {
//alert("异常:" + aa.responseText);
$.modalAlertNew("WMS00015", aa.responseText);
}
});
}
function SetCols(datacols) {
var cols = new Array();
if (datacols != null && datacols.length > 0) {
for (var i = 0; i < datacols.length; i++) {
var ColCaption = datacols[i].ColCaption;
var ColFiledName = datacols[i].ColFiledName;
var DataType = datacols[i].DataType;
var DataTypeStr = GetDataTypeByNum(DataType);
var ColWidth = datacols[i].ColWidth;
var DeciamlNum = datacols[i].DeciamlNum;
var sortable = datacols[i].sortable;
var ColMerFlag = datacols[i].ColMerFlag;
var IsFormat = datacols[i].IsFormat;
var obj = new Array();
if (IsFormat == "1") {
obj = {
label: ColCaption,
name: ColFiledName,
width: ColWidth,
align: "left",
sortable: sortable,
cellattr: addCellAttr,
}
}
else {
obj = {
label: ColCaption,
name: ColFiledName,
width: ColWidth,
align: "left",
sortable: sortable,
cellattr: addCellAttr_ID,
}
}
switch (DataTypeStr) {
case "数值型":
var Formatoptions = new { decimalPlaces: DeciamlNum };
obj.push({ formatter: "number" });
obj.push({ formatoptions: Formatoptions });
break;
case "字符型":
case "日期型":
case "布尔值":
break;
}
//if (IsFormat) {
// obj.push({ cellattr: addCellAttr });
//}
cols.push(obj);
}
var collast = { label: "", name: "", width: "20", align: "left", sortable: false };
cols.push(collast);
}
return cols;
}
function Getformatcol(formatcols, colname) {
var formatList = new Array();
if (formatcols != null && formatcols.length > 0) {
for (var i = 0; i < formatcols.length; i++) {
if (formatcols[i].ColFiledName == colname) {
formatList.push(formatcols[i]);
}
}
}
return formatList;
}
//个性化栏位背景色
function addCellAttr(rowId, val, rawObject, cm, rdata) {
var rr = ' id=\'' + cm.name + '' + rowId + "\' ";
var formatList = Getformatcol(_formatcols, cm.name);//获取format所有条件
if (formatList != null && formatList.length > 0) {
for (var i = 0; i < formatList.length; i++) {
var formatcol = formatList[i];//条件
var IsRow = false;
if (formatcol.AllRowFlag) {
IsRow = true;
var rr = {
rowid: rowId - 1,
backgroundcolor: formatcol.Color,
}
}
var LogStr = GetLogStringByNum(parseInt(formatcol.LogStr));
switch (LogStr) {
case "等于": if (val == formatcol.SValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "不等于": if (val != formatcol.SValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "小于": if (val < formatcol.SValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "大于": if (val > formatcol.SValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "小于等于": if (val <= formatcol.SValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "大于等于": if (val >= formatcol.SValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "范围内": if (val >= formatcol.SValue && val <= formatcol.DValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "范围外": if (val < formatcol.SValue || val > formatcol.DValue) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "包含": if (val.indexOf(formatcol.SValue) != -1) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "头部包含": if (val.indexOf(formatcol.SValue) == 0) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "尾部包含": if (val.indexOf(formatcol.SValue) == formatcol.length - val.length) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
case "不包含": if (val.indexOf(formatcol.SValue) == -1) {
if (IsRow) { _formatcols_Row.push(rr); }
else { rr += "style='background-color:" + formatcol.Color + "'"; return rr; }
}
break;
}
}
}
return rr;
}
//个性化栏位背景色
function addCellAttr_ID(rowId, val, rawObject, cm, rdata) {
var rr = ' id=\'' + cm.name + '' + rowId + "\' ";
return rr;
}
function gridList() {
//IsFirstShow = true;
document.getElementById("gridPanel").innerHTML = ' <table id="gridListW"></table> <div id="gridPager"></div>';//重置grid
_formatcols_Row = new Array();
var $gridList = $("#gridListW");
$gridList.dataGrid({
url: "/SystemManage/CommonReport/GetGridJson",
height: $(window).height() - 86,
postData: { sqlTxt: _sqlTxt_AddCondition, DBName: _DBName, TempName: _TempName },
colModel: _Cols,
pager: "#gridPager",
viewrecords: true,
scroll: true,
//altRows: true,
//altclass: "ui-priority-secondary",
jsonReader: {
repeatitems: true,
id: "0"
},
footerrow: _footerrow,
gridComplete: function () {
var strIds = $("#gridListW").jqGrid("getDataIDs");
if (_formatcols_Row.length > 0) {
for (var i = 0; i < _formatcols_Row.length; i++) {
$("#" + strIds[_formatcols_Row[i].rowid] + " td").css("background-color", _formatcols_Row[i].backgroundcolor);
}
}
//合并行
if (_Mergercols != undefined && _Mergercols.length > 0) {
for (var i = 0; i < _Mergercols.length; i++) {
Merger("gridListW", _Mergercols[i]);
}
}
//合计
if (_footerrow == "True") {
var footerData = {};
for (var i = 0; i < _footercols.length; i++) {
var total = 0;
for (var j = 0; j < strIds.length; j++) {
var qty = $("#gridListW").jqGrid("getCell", strIds[j], _footercols[i]);
if (qty != "") {
total += parseInt(qty);
}
}
footerData[_footercols[i]] = total;
}
$("#gridListW").footerData('set', footerData);
$("#gridListW").footerData('set', { "rn": "合计" });
}
},
loadError: function (data) {
//alert("异常:");
$.modalAlertNew("WMS00015");
}
});
}
function btn_SetOther() {
$("#SetDivMenu").removeClass("DropMenu");
$("#SetDivMenu").addClass("DropMenuHidden");
$("#GRate").val(GunDongRate / 1000);
$("#GHang").val(GunDongRow);
$("#DataFalsh").val(DataF);
$("#SetDiv").removeClass("HiddenDiv");
$("#SetDiv").addClass("ShowDiv");
}
function btn_SetOtherOK()
{
// var dd = document.getElementById("SetDiv");
var rrate = $("#GRate").val();
var rhang = $("#GHang").val();
var DataFalsh = $("#DataFalsh").val();
GunDongRate = Number(rrate) * 1000;
GunDongRow = Number(rhang);
DataF = Number(DataFalsh);
$("#SetDiv").removeClass("ShowDiv");
$("#SetDiv").addClass("HiddenDiv");
$("#SetDivMenu").removeClass("DropMenuHidden");
$("#SetDivMenu").addClass("DropMenu");
//刷新数据
timer2 = setInterval(function () {
gridList();
}, DataF * 1000);
scrollBody();
}
function btn_SetOtherNO()
{
$("#SetDiv").removeClass("ShowDiv");
$("#SetDiv").addClass("HiddenDiv");
$("#SetDivMenu").removeClass("DropMenuHidden");
$("#SetDivMenu").addClass("DropMenu");
}
</script>
<form id="form1">
<div style="margin-top: 10px; margin-left: 10px; margin-right: 10px;">
<div class="gridPanel" id="gridPanel">
<table id="gridListW"></table>
<div id="gridPager"></div>
</div>
</div>
<div class="DropMenu" id="SetDivMenu">
<a id="NF-SetOther" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_SetOther()"><i class="fa fa-caret-down"></i></a>
</div>
<div class="HiddenDiv" id="SetDiv">
<table class="form">
<tr>
<th class="formTitle">数据刷新(秒):</th>
<td>
<input class="form-control" name="DataFalsh" id="DataFalsh" style="width: 50px" />
</td>
</tr>
<tr>
<th class="formTitle">滚动时间(秒):</th>
<td>
<input class="form-control" name="GRate" id="GRate" style="width: 50px" />
</td>
</tr>
<tr>
<th class="formTitle">滚动行数:</th>
<td>
<input class="form-control" name="GHang" id="GHang" style="width: 50px" />
</td>
</tr>
<tr>
<td></td>
<td>
<a authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_SetOtherNO()"><i class="fa fa-close"></i></a>
<a authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_SetOtherOK()"><i class="fa fa-check"></i></a>
</td>
</tr>
</table>
</div>
</form>