NGToolsCSharp/NGTools/MobilePages/C_CNG/CNGV_TableCal.aspx
2024-09-13 16:44:30 +08:00

910 lines
44 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CNGV_TableCal.aspx.cs" Inherits="NGTools.MobilePages.C_CNG.CNGV_TableCal" %>
<!DOCTYPE html>
<html>
<head>
<title>CNG体积表格计算</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="../../MYJS/constant.js"></script>
<script src="../../MYJS/MyToolsMobile.js"></script>
<style>
</style>
</head>
<body>
<div data-role="page" id="pageOne">
<div data-role="header" data-position="fixed" data-tap-toggle="false">
<a onclick="window.open('../frmMainMobile.aspx')" class="ui-btn ui-corner-all ui-shadow ui-icon-home ui-btn-icon-left ">主页</a>
<h1>CNG体积表格计算</h1>
<div data-role="navbar">
<ul>
<li><a href="#pageOne" data-role="tab" class="ui-btn-active">工艺参数</a></li>
<li><a href="#pageTwo" data-role="tab">组分数据</a></li>
<li><a href="#pageThree" onclick="FlowCal()" data-role="tab" class="ui-btn">计算结果</a></li>
</ul>
</div>
</div>
<div data-role="main" class="ui-content">
<form method="post" id="WorkPar">
<table>
<tr>
<td style="width: 50%">
<label for="DWCZ" style="width: 110px; font-size: small;">单位/场站</label>
<select id="DWCZ" required="required" data-mini="true">
<option value="-1">请选择场站:</option>
</select>
</td>
<td style="width: 50%">
<label for="JLD" style="width: 110px; font-size: small;">计量点名称</label>
<select id="JLD" required="required" data-mini="true">
<option value="-1">请选择计量点:</option>
</select>
</td>
</tr>
<tr>
<td style="width: 50%">
<label for="inP" style="width: 110px; font-size: small;">起始压力(MPa)</label>
<input style="width: 90px" name="inP" id="inP" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 50%">
<label for="inWd" style="width: 110px; font-size: small;">起始温度(℃)</label>
<input style="width: 90px" name="inWd" id="inWd" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 50%">
<label for="yljg" style="width: 110px; font-size: small;">压力间隔(MPa)</label>
<input style="width: 90px" name="yljg" id="yljg" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 50%">
<label for="wdjg" style="width: 110px; font-size: small;">温度间隔(MPa)</label>
<input style="width: 90px" name="wdjg" id="wdjg" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 50%">
<label for="inPe" style="width: 110px; font-size: small;">终止压力(MPa)</label>
<input style="width: 90px" name="inPe" id="inPe" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 50%">
<label for="inWde" style="width: 110px; font-size: small;">终止温度(℃)</label>
<input style="width: 90px" name="inWde" id="inWde" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 50%">
<label for="DDDQY" style="width: 110px; font-size: small;">大气压(MPa)</label>
<input style="width: 90px" name="DDDQY" id="DDDQY" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 50%">
<label for="CBTJ" style="width: 110px; font-size: small;">参比条件:</label>
<select name="CBTJ" id="CBTJ" required="required" data-mini="true">
<option value="-1">请选择参比条件:</option>
</select>
</td>
</tr>
<tr>
<td style="width: 50%">
<label for="gscsrj" style="width: 110px; font-size: small;">管束车水容积(m³)</label>
<input style="width: 90px" name="gscsrj" id="gscsrj" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
</table>
</form>
</div>
<div data-role="footer" data-position="fixed" data-tap-toggle="false">
</div>
</div>
<div data-role="page" id="pageTwo">
<div data-role="header" data-position="fixed" data-tap-toggle="false">
<a onclick="window.open('../frmMainMobile.aspx')" class="ui-btn ui-corner-all ui-shadow ui-icon-home ui-btn-icon-left ">主页</a>
<h1>CNG体积表格计算</h1>
<div data-role="navbar">
<ul>
<li><a href="#pageOne" data-role="tab">工艺参数</a></li>
<li><a href="#pageTwo" data-role="tab" class="ui-btn-active">组分数据</a></li>
<li><a href="#pageThree" onclick="FlowCal()" data-role="tab">计算结果</a></li>
</ul>
</div>
</div>
<div data-role="main" class="ui-content">
<form method="post" id="frmNGCom">
<table>
<tr>
<td style="width: 30%">
<a onclick="ZoreM()" class="ui-btn " data-mini="true">全部清零</a>
</td>
<td style="width: 30%">
<a onclick="copyZfM()" class="ui-btn " data-mini="true">复制组分</a>
</td>
<td style="width: 30%">
<a onclick="pasteZfM()" class="ui-btn " data-mini="true">粘贴组分</a>
</td>
</tr>
<tr>
<td>
<label for="CYCS">常用组分:</label>
</td>
<td colspan="2">
<select id="CYCS" required="required" data-mini="true">
<option value="-1">请选择常用组分:</option>
</select>
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C1">甲烷C1</label><input style="width: 80px" name="NG_C1" id="NG_C1" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_N2">氮气N2</label><input style="width: 80px" name="NG_N2" id="NG_N2" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_CO2">二氧化碳CO2</label><input style="width: 80px" name="NG_CO2" id="NG_CO2" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C2">乙烷C2</label><input style="width: 80px" name="NG_C2" id="NG_C2" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C3">丙烷C3</label><input style="width: 80px" name="NG_C3" id="NG_C3" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_H2O">水H2O</label><input style="width: 80px" name="NG_H2O" id="NG_H2O" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_H2S">硫化氢H2S</label><input style="width: 80px" name="NG_H2S" id="NG_H2S" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_H2">氢气H2</label><input style="width: 80px" name="NG_H2" id="NG_H2" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_CO">一氧化碳CO</label><input style="width: 80px" name="NG_CO" id="NG_CO" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_O2">氧气O2</label><input style="width: 80px" name="NG_O2" id="NG_O2" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_iC4">异丁烷iC4</label><input style="width: 80px" name="NG_iC4" id="NG_iC4" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_nC4">正丁烷nC4</label><input style="width: 80px" name="NG_nC4" id="NG_nC4" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_iC5">异戊烷iC5</label><input style="width: 80px" name="NG_iC5" id="NG_iC5" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_nC5">正戊烷nC5</label><input style="width: 80px" name="NG_nC5" id="NG_nC5" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C6">己烷C6</label><input style="width: 80px" name="NG_C6" id="NG_C6" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C7">庚烷C7</label><input style="width: 80px" name="NG_C7" id="NG_C7" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C8">辛烷C8</label><input style="width: 80px" name="NG_C8" id="NG_C8" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C9">壬烷C9</label><input style="width: 80px" name="NG_C9" id="NG_C9" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_C10">癸烷C10</label><input style="width: 80px" name="NG_C10" id="NG_C10" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_He">氦气He</label><input style="width: 80px" name="NG_He" id="NG_He" required="required" type="text" value="" data-mini="true" />
</td>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_Ar">氩气Ar</label><input style="width: 80px" name="NG_Ar" id="NG_Ar" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
<tr>
<td style="width: 30%">
<label style="width: 110px; font-size: small;" for="NG_SUM">合计:</label><input style="width: 80px" id="NG_SUM" required="required" type="text" value="" data-mini="true" />
</td>
</tr>
</table>
</form>
</div>
<div data-role="footer" data-position="fixed" data-tap-toggle="false">
</div>
</div>
<div data-role="page" id="pageThree">
<div data-role="header" data-position="fixed" data-tap-toggle="false">
<a onclick="window.open('../frmMainMobile.aspx')" class="ui-btn ui-corner-all ui-shadow ui-icon-home ui-btn-icon-left ">主页</a>
<h1>CNG体积表格计算</h1>
<div data-role="navbar">
<ul>
<li><a href="#pageOne" data-role="tab">工艺参数</a></li>
<li><a href="#pageTwo" data-role="tab">组分数据</a></li>
<li><a href="#pageThree" onclick="FlowCal()" data-role="tab" class="ui-btn-active">计算结果</a></li>
</ul>
</div>
</div>
<div data-role="main" class="ui-content">
<table style="width: 100%">
<tr>
<td style="width: 30%" colspan="3">
<a onclick="SavePar()" class="ui-btn ui-corner-all ui-shadow" data-mini="true">保存计量点参数</a>
<a onclick="ExportExcel()" class="ui-btn ui-corner-all ui-shadow" data-mini="true">导出Excel</a>
</td>
</tr>
</table>
<div id="result" class="scroll-container" style="width: 100%;overflow:auto">
</div>
</div>
<div data-role="footer" data-position="fixed" data-tap-toggle="false">
</div>
</div>
<script>
var initFlag = true;
var jsonJld = "";
var ETable = undefined;
var jsonresult = undefined;
$(document).on("pageinit", function () {
if (initFlag) {
//填充单位和站场 计量点下拉框
var url = '../../ASHX/getTreeCombox.ashx?action=getJldSelect';
$.ajax({
type: 'post',
dataType: "json",
url: url,
success: function (data) {
var dwcz = data[0].DWZC;
jsonJld = data[1].JLD;
var opth = "";
for (var i = 0; i < dwcz.length; i++) {
opth += "<option value=" + dwcz[i].ORG_ID + ">" + dwcz[i].ORG_Name + "</option>";
}
$("#DWCZ").append(opth);
// 填充单位下拉列表
$("#DWCZ").bind("change", function () {
//alert(JSON.stringify(jsonJld[0]));
var selectedDWCZ = $("#DWCZ :selected").val();
if (selectedDWCZ != -1) {
var jdlArrOptionHtml = "";
var jdlArr = jsonJld[0][selectedDWCZ];
for (var i = 0; i < jdlArr.length; i++) {
jdlArrOptionHtml += "<option value=" + jdlArr[i].ID + ">" + jdlArr[i].JLD_Name + "</option>";
}
// 清空之前的计量点列表
$("#JLD option[value!=-1]").remove();
$("#JLD option[value=-1]").attr("selected", true);
$("#JLD").append(jdlArrOptionHtml);
//$("#JLD option[value='" + jdlArr[0].ID + "']").attr("selected", "selected");
//$("#JLD").val(jdlArr[0].ID).selectmenu("refresh", true);
}
});
// 计量点列表事件
$("#JLD").bind("change", function () {
//alert(JSON.stringify(jsonJld[0]));
var jldID = $("#JLD :selected").val();
if (jldID != -1) {
//alert(jldID);
$.ajax({
type: "post",
url: '../../ASHX/getTreeCombox.ashx?action=getJldPar&' + "t=" + Date.parse(new Date()),
dataType: "json",
data: { jldid: jldID, gnmk: "GVT" },
success: function (data) {
var options = { jsonValue: data, isDebug: false };
$("#WorkPar").initForm(options);
$("#frmNGCom").initForm(options);
sumZfM();
}
})
}
});
// 计量点列表事件
$("#CYCS").bind("change", function () {
//alert(JSON.stringify(jsonJld[0]));
var CYCSID = $("#CYCS :selected").val();
if (CYCSID != -1) {
var data = NGComCon[CYCSID].NGCom;
var options = { jsonValue: data, isDebug: false };
$("#WorkPar").initForm(options);
$("#frmNGCom").initForm(options);
sumZfM();
}
});
}
});
// 填充常数下拉列表
var OptionHtml = "";
for (var i = 0; i < CBTJ.length; i++) {
OptionHtml += "<option value=" + CBTJ[i].ID + ">" + CBTJ[i].text + "</option>";
}
$("#CBTJ").append(OptionHtml);
$("#CBTJ").val(0).selectmenu('refresh', true);
OptionHtml = "";
for (var i = 0; i < CycsCom.length; i++) {
OptionHtml += "<option value=" + CycsCom[i].ID + ">" + CycsCom[i].text + "</option>";
}
$("#CYCS").append(OptionHtml);
//$("#CYCS").val(0).selectmenu('refresh', true);
$('#NG_C1').on('input', function (e) { sumZfM() });
$('#NG_N2').on('input', function (e) { sumZfM() });
$('#NG_CO2').on('input', function (e) { sumZfM() });
$('#NG_C2').on('input', function (e) { sumZfM() });
$('#NG_C3').on('input', function (e) { sumZfM() });
$('#NG_H2O').on('input', function (e) { sumZfM() });
$('#NG_H2S').on('input', function (e) { sumZfM() });
$('#NG_H2').on('input', function (e) { sumZfM() });
$('#NG_CO').on('input', function (e) { sumZfM() });
$('#NG_O2').on('input', function (e) { sumZfM() });
$('#NG_iC4').on('input', function (e) { sumZfM() });
$('#NG_nC4').on('input', function (e) { sumZfM() });
$('#NG_iC5').on('input', function (e) { sumZfM() });
$('#NG_nC5').on('input', function (e) { sumZfM() });
$('#NG_C6').on('input', function (e) { sumZfM() });
$('#NG_C7').on('input', function (e) { sumZfM() });
$('#NG_C8').on('input', function (e) { sumZfM() });
$('#NG_C9').on('input', function (e) { sumZfM() });
$('#NG_C10').on('input', function (e) { sumZfM() });
$('#NG_He').on('input', function (e) { sumZfM() });
$('#NG_Ar').on('input', function (e) { sumZfM() });
//
//$("#pageOne").bind("swipeleft", function (e) { $.mobile.changePage('#pageTow', 'fade', false, false); });
//$("#pageTwo").bind("swipeleft", function (e) { $.mobile.changePage('#pageThree', 'fade', false, false); });
//$("#pageThree").bind("swipeleft", function (e) { $.mobile.changePage('#pageOne', 'fade', false, false); });
//$("#pageOne").bind("swiperight", function (e) { $.mobile.changePage('#pageThree', 'fade', false, false); });
//$("#pageTwo").bind("swiperight", function (e) { $.mobile.changePage('#pageOne', 'fade', false, false); });
//$("#pageThree").bind("swiperight", function (e) { $.mobile.changePage('#pageTwo', 'fade', false, false); });
//alert('<%=Session ["userAccount"]%>');
var str = getEnable('<%=Session ["userAccount"]%>', "M0101");
//alert(101);
initFlag = false;
}
});
function FlowCal() {
var NG_par = "";
jsonResult = undefined;
if ($('#inP').val() == "") {
alert("请输入压力!");
return;
}
if ($('#DDDQY').val() == "") {
alert("请输入大气压力!");
return;
}
if ($('#inWd').val() == "") {
alert("请输入温度!");
return;
}
if (Math.abs(sumZfM() - 100) > 0.001) { $.messager.alert("提示", "组分和不为100%,请检查!"); return; }
NG_par = "0";//流量计类别
NG_par = NG_par + "," + "0";//节流装置类型
NG_par = NG_par + "," + "0";//流量计算标准
NG_par = NG_par + "," + "0";//压缩因子计算标准
NG_par = NG_par + "," + $('#CBTJ').val();//'计量参比条件
NG_par = NG_par + "," + "101325";//计量参比条件压力
NG_par = NG_par + "," + "293.15";//计量参比条件温度
NG_par = NG_par + "," + "101325";//燃烧参比条件压力
NG_par = NG_par + "," + "293.15";//燃烧参比条件温度
NG_par = NG_par + "," + $('#DDDQY').val();//当地大气压
NG_par = NG_par + "," + "2";//当地大气压单位
NG_par = NG_par + "," + strZfM();//天然气组分
NG_par = NG_par + "," + "0";//取压方式
NG_par = NG_par + "," + "0";//管道类型
NG_par = NG_par + "," + "150";//管道内径
NG_par = NG_par + "," + "3";//长度单位
NG_par = NG_par + "," + "20";//管道内径参考温度
NG_par = NG_par + "," + "0";//温度单位
NG_par = NG_par + "," + "0";//管道材料
NG_par = NG_par + "," + "50";//孔板孔径
NG_par = NG_par + "," + "3";//长度单位
NG_par = NG_par + "," + "20";//孔板内径参考温度
NG_par = NG_par + "," + "0";//温度单位
NG_par = NG_par + "," + "0";//孔板材料
NG_par = NG_par + "," + "0";//锐利度系数计算方法
NG_par = NG_par + "," + "0";//孔板入口圆弧半径
NG_par = NG_par + "," + "3";//长度单位
NG_par = NG_par + "," + $('#inP').val();//输入压力
NG_par = NG_par + "," + "2";//压力单位
NG_par = NG_par + "," + "0";//压力类型
NG_par = NG_par + "," + $('#inWd').val();//输入温度
NG_par = NG_par + "," + "0";//温度单位
NG_par = NG_par + "," + "0";//输入差压
NG_par = NG_par + "," + "1";//压力单位
NG_par = NG_par + "," + "1";//体积流量单位
NG_par = NG_par + "," + "2";//质量流量单位
NG_par = NG_par + "," + "1";//能量流量单位
NG_par = NG_par + "," + $('#yljg').val();//压力步长
NG_par = NG_par + "," + $('#wdjg').val();//温度步长
NG_par = NG_par + "," + $('#inPe').val();//终止压力
NG_par = NG_par + "," + $('#inWde').val();//终止温度
NG_par = NG_par + "," + $('#gscsrj').val();//管束车水容积
$.ajax({
type: "post",
//url: '../../Pages/A_FlowCal/orifice.aspx?action=Cal' + "&t=" + Date.parse(new Date()),
url: '../../ASHX/FlowCal.ashx?action=GSCVTCal' + "&t=" + Date.parse(new Date()),
dataType: "json",
data: { Par: NG_par },
traditional: true,
success: function (data) {
jsonresult = data.rows;
var div = document.getElementById("result");
div.innerHTML = "";
var table = document.createElement("table");
var thead = document.createElement("tr");
for (var p in jsonresult[0]) {//遍历json对象的每个key/value对,p为key
var td = document.createElement("th");
td.innerHTML = p;
thead.appendChild(td);
}
table.appendChild(thead);
for (var tableRowNo = 0; tableRowNo < jsonresult.length; tableRowNo++) {
var tr = document.createElement("tr");
for (var v in jsonresult[tableRowNo]) {//遍历json对象的每个key/value对,p为key
var cell = document.createElement("td");
cell.innerHTML = jsonresult[tableRowNo][v];
tr.appendChild(cell);
}
table.appendChild(tr);
}
ETable = table;
div.appendChild(table);
setremainTimes('<%=Session ["userAccount"]%>', "M0101");
}
})
}
function SavePar() {
var saveStr1 = JSON.stringify($('#WorkPar').getFormJson()); // json对象;
var saveStr2 = JSON.stringify($('#frmNGCom').getFormJson()); // json对象;
saveStr = (saveStr1 + saveStr2).replace("}{", ",");
// alert(JSON.stringify(saveStr));
// alert(JSON.stringify(saveStr2));
var jldID = $('#JLD').val();
var jldIDName = $('#JLD').find("option:selected").text();
if (confirm("确定将计量点参数保存到计量点:" + jldIDName + "")) {
$.ajax({
type: "post",
url: '../../ASHX/getTreeCombox.ashx?action=saveJldPar&' + "t=" + Date.parse(new Date()),
//dataType: "json",
data: { jldid: jldID, Par: saveStr, gnmk: "GVT" },
traditional: true,
success: function (data) {
alert(JSON.stringify(data));
//$('#formPar').form('load', data);
//$.messager.alert("提示", data);
//document.getElementById('message').innerHTML = JSON.stringify(data);
}
})
}
}
function ExportExcel() {
//tableToExcel("result", "压缩因子表格");
EasyUIDataGridToExcle();
}
$("a[data-role=tab]").each(function () {
var anchor = $(this);
anchor.bind("click", function () {
$.mobile.changePage(anchor.attr("href"), {
transition: "none",
changeHash: false
});
return false;
});
});
$("div[data-role=page]").bind("pagebeforeshow", function (e, data) {
$.mobile.silentScroll(0);
$.mobile.changePage.defaults.transition = 'slide';
});
/**
* 描述导出表格对应的excel文件
* 时间2018-03-29
* 作者:任恩远
* 调用示例:
* onclick = "tableToExcel(tableId,fileName)"
*/
/**
* 描述导出表格对应的excel文件
* 时间2018-03-29
* 作者:任恩远
* 调用示例:
* onclick = "tableToExcel(tableId,fileName)"
*/
var tableToExcel = (function () {
var uri = 'data:application/vnd.ms-excel;base64,'
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->' +
' <style type="text/css">' +
'.excelTable {' +
'border-collapse:collapse;' +
' border:thin solid #999; ' +
'}' +
' .excelTable th {' +
' border: thin solid #999;' +
' padding:20px;' +
' text-align: center;' +
' border-top: thin solid #999;' +
' ' +
' }' +
' .excelTable td{' +
' border:thin solid #999;' +
' padding:2px 5px;' +
' text-align: center;' +
' }</style>' + '</head><body><table border="1">{table}</table></body></html>'
, base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
return function (table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML };
var downloadLink = document.createElement("a");
downloadLink.href = uri + base64(format(template, ctx));
downloadLink.download = name + ".xls";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
})()
function exportTableToCSV(me, $table, filename) {
var $headers = $table.find('tr:has(th)'), $rows = $table.find('tr:has(td)')
// Temporary delimiter characters unlikely to be typed by keyboard
// This is to avoid accidentally splitting the actual contents
, tmpColDelim = String.fromCharCode(11) // vertical tab character
, tmpRowDelim = String.fromCharCode(0) // null character
// actual delimiter characters for CSV format
, colDelim = '","', rowDelim = '"\r\n"';
// Grab text from table into CSV formatted string
var csv = '"';
csv += formatRows($headers.map(grabRow));
csv += rowDelim;
csv += formatRows($rows.map(grabRow)) + '"';
// Data URI
var csvData = 'data:application/csv;charset=utf-8,\ufeff' + encodeURIComponent(csv);
$(me)
.attr({
'download': filename,
'href': csvData
//,'target' : '_blank' //if you want it to open in a new window
});
//------------------------------------------------------------
// Helper Functions
//------------------------------------------------------------
// Format the output so it has the appropriate delimiters
function formatRows(rows) {
return rows.get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim);
}
// Grab and format a row from the table
function grabRow(i, row) {
var $row = $(row);
//for some reason $cols = $row.find('td') || $row.find('th') won't work...
var $cols = $row.find('td');
if (!$cols.length) $cols = $row.find('th');
return $cols.map(grabCol)
.get().join(tmpColDelim);
}
// Grab and format a column from the table
function grabCol(j, col) {
var $col = $(col), $text = $col.text();
return $text.replace('"', '""'); // escape double quotes
}
}
/*
createTable(toid, jsondata, check, edit, del)用于动态创建table第0行为表头数据里必须包含表头和数据的id
@toid创建table到id为toid的节点下
@jsondata用于创建table的json格式的数据须在jsondata里包含表头标题
@check是否创建查看按钮
@edit是否创建编辑按钮
@del是否创建删除按钮
*/
function createTable(jsondata, check, edit, del) {
var div = document.createElement("div");
var table = document.createElement("table");
var tr, td;
for (i in jsondata) {
tr = document.createElement("tr"); //创建tr
//________________创建表头________________________________________
if (i == 0) {
for (j in jsondata[i]) { //根据数据在tr内创建td
td = document.createElement("th");
td.appendChild(document.createTextNode(jsondata[i][j]));
if (j == "id") { //创建隐藏的td来存放id
td.style.display = "none";
}
td.style.background = "#C1DAD7"; //设置表头颜色
tr.appendChild(td);
}
if (check == true) { //创建查看按钮
td = document.createElement("th");
td.appendChild(document.createTextNode("查看"));
td.style.background = "#C1DAD7"; //设置表头颜色
tr.appendChild(td);
}
if (edit == true) { //创建编辑按钮
td = document.createElement("th");
td.appendChild(document.createTextNode("编辑"));
td.style.background = "#C1DAD7"; //设置表头颜色
tr.appendChild(td);
}
if (del == true) { //创建删除按钮
td = document.createElement("th");
td.appendChild(document.createTextNode("删除"));
td.style.background = "#C1DAD7"; //设置表头颜色
tr.appendChild(td);
}
}
//________________创建数据行________________________________________
else {
for (j in jsondata[i]) { //根据数据在tr内创建td
td = document.createElement("td");
td.appendChild(document.createTextNode(jsondata[i][j]));
if (j == "id") { //创建隐藏的td来存放id
td.style.display = "none";
}
tr.appendChild(td);
}
if (check == true) { //创建查看按钮
td = document.createElement("td");
var btnCheck = document.createElement("button");
btnCheck.appendChild(document.createTextNode("查看"));
td.appendChild(btnCheck);
tr.appendChild(td);
}
if (edit == true) { //创建编辑按钮
td = document.createElement("td");
var btnEdit = document.createElement("button");
btnEdit.appendChild(document.createTextNode("编辑"));
td.appendChild(btnEdit);
tr.appendChild(td);
}
if (del == true) { //创建删除按钮
td = document.createElement("td");
var btnDel = document.createElement("button");
btnDel.appendChild(document.createTextNode("删除"));
td.appendChild(btnDel);
tr.appendChild(td);
}
}
table.appendChild(tr);
}
div.appendChild(table);
return div;
}
/*
作 用将EasyUI的DataGrid表格直接导出Excle
例 子: EasyUIDataGridToExcle('SalaryReport', $('#dg'), 'getRows');
说 明:文档名字,避免汉字,容易乱码 ,可能造成文档打不开的情况
*/
// strXlsName :文檔名字 exportGrid$('#dg') H:getData所有數據 getRows當前頁的數據
function EasyUIDataGridToExcle() {
var f = $('<form action="../../ashx/ExportXls.ashx?ActionType=EasyUIDataGridToExcle" method="post" id="fm1"></form>');
var i = $('<input type="hidden" id="txtContent" name="txtContent" />');
var l = $('<input type="hidden" id="txtName" name="txtName" />');
i.val(document.getElementById("result").innerHTML);
//alert(document.getElementById("result").innerHTML);
//i.val(createTable(jsonresult, true, true, true).innerHTML);
i.appendTo(f);
l.val("CNG体积表");
l.appendTo(f);
f.appendTo(document.body).submit();
var newf = document.getElementById("fm1");
document.body.removeChild(newf);
};
function ChangeToTable(printDatagrid, H) {
var tableString = '<table cellspacing="0" class="pb">';
var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象
var columns = printDatagrid.datagrid("options").columns; // 得到columns对象
var nameList = new Array();
// 载入title
if (typeof columns != 'undefined' && columns != '') {
$(columns).each(function (index) {
tableString += '\n<tr>';
if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
for (var i = 0; i < frozenColumns[index].length; ++i) {
if (!frozenColumns[index][i].hidden) {
tableString += '\n<th width="' + frozenColumns[index][i].width + '"';
if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
}
if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
}
if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
nameList.push(frozenColumns[index][i]);
}
tableString += '>' + frozenColumns[index][i].title + '</th>';
}
}
}
for (var i = 0; i < columns[index].length; ++i) {
if (!columns[index][i].hidden) {
tableString += '\n<th width="' + columns[index][i].width + '"';
if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
tableString += ' rowspan="' + columns[index][i].rowspan + '"';
}
if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
tableString += ' colspan="' + columns[index][i].colspan + '"';
}
if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
nameList.push(columns[index][i]);
}
tableString += '>' + columns[index][i].title + '</th>';
}
}
tableString += '\n</tr>';
});
}
//alert(tableString);
////获取表格数据内容
//alert("nr");
//alert(printDatagrid);
var data = printDatagrid.datagrid("getData");
var rows = data.originalRows;
for (var i = 0; i < rows.length; ++i) {
tableString += '\n<tr>';
for (var j = 0; j < nameList.length; ++j) {
var e = nameList[j].field.lastIndexOf('_0');
tableString += '\n<td';
if (nameList[j].align != 'undefined' && nameList[j].align != '') {
tableString += ' style="text-align:' + nameList[j].align + ';"';
}
tableString += '>';
if (e + 2 == nameList[j].field.length) {
tableString += rows[i][nameList[j].field.substring(0, e)];
}
else
tableString += rows[i][nameList[j].field];
tableString += '</td>';
}
tableString += '\n</tr>';
}
tableString += '\n</table>';
//alert(tableString);
return tableString;
}
</script>
</body>
</html>