|
|
@{ 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);
} }); }
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("异常:"); }
}); }
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>
|