⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esri_task_printing.js

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*  COPYRIGHT 1995-2005 ESRI  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL  Unpublished material - all rights reserved under the  Copyright Laws of the United States.  For additional information, contact:  Environmental Systems Research Institute, Inc.  Attn: Contracts Dept  380 New York Street  Redlands, California, USA 92373  email: contracts@esri.com*/  /**   * The function is called back by the print task AJAX renderer.   * It will open a new window to render the printing map.   *   * @param {Object} xml - an DOM object   * @param {Object} eventSources   */  function processCreatePrintPage(xml, eventSources) {    var printMapObj = new PrintMap(xml);    closeWindow(printMapObj.getTaskId());    var win = window.open("", "PrintingMap", "toolbar,menubar,scrollbars,status,resizable,alwaysRaised,width=672,height=660");    win.focus();    var doc = win.document;    doc.title = printMapObj.getMapTitle();    doc.body.innerHTML="";    var docBody = doc.getElementsByTagName("body")[0];    doc.writeln(getStyleSheetString());    //Generate the printable page;    doc.writeln(getPrintPage(printMapObj));    doc.close();    return false;  }  /**   * Generates the print map page.   *   * @param {PrintMap Object} printMapObj   */  function getPrintPageLayoutOne(printMapObj) {    var htmlStr = "";    htmlStr += "<table width='100%'>";    htmlStr += "<tr><td align='center' colspan='2'><h1>"+printMapObj.getMapTitle()+"</h1></td></tr>";    htmlStr += "<tr style='vertical-align:top;'><td>"+renderPrintMapInHTML(printMapObj)+"</td><td>"+renderLegendTableInHTML(printMapObj)+"</td></tr>";    htmlStr += "<tr><td colspan='2'>"+renderResultTableInHTML(printMapObj)+"</td></tr>";    htmlStr += "</table>";    return htmlStr;  }  /**   * Generates the print map page.   *   * @param {PrintMap Object} printMapObj   */  function getPrintPage(printMapObj) {    var htmlStr = "";    htmlStr += "<table width='100%' align='left'>";    htmlStr += "<tr><td><h1>"+printMapObj.getMapTitle()+"</h1></td></tr>";    htmlStr += "<tr><td>"+renderPrintMapInHTML(printMapObj)+"</td></tr>";    htmlStr += "<tr><td>"+renderLegendTableInHTML(printMapObj)+"</td></tr>";    htmlStr += "<tr><td >"+renderResultTableInHTML(printMapObj)+"</td></tr>";    htmlStr += "</table>";    return htmlStr;  }  /**   * The function is called before the print map button on printing task UI is clicked.   * It does the client side data validation for map resolution and scale.   *   * @param {Object} taskId   * @param {Object} mapId   * @param {Object} taskActionId   * @param {Object} showingLoadingImage   * @param {Object} clientPostBack   */  function createPrintMap(taskId, mapId, taskActionId, showingLoadingImage, clientPostBack) {    EsriControls.maps[mapId].createCurrentToolItem(taskActionId,      'button_'+taskActionId,      'EsriMapServerAction',      showingLoadingImage,      clientPostBack,      null, null,      'esriToolDefault',      'esriToolHover',      'esriToolSelected',      'esriToolDisabled');    return false;  }  /**   * The function to close the print task window.   */  function closeWindow(taskId) {    var printTaskId = "win_EsriTaskCell_"+taskId;    if(taskWindowManager && taskWindowManager.windows[printTaskId]) {      var w = taskWindowManager.windows[printTaskId];      w.center();      w.hide();    }  }  /**   * The function is called when the query result checkbox is clicked.   * It will update the passed hidden input value. When the print   * button is clicked, the value is passed to the server.   *   * @param {Object} nodeId   */  function resultChecked(nodeId) {    var test = document.getElementsByTagName("input");    var st = "";    for (i=0; i<test.length; i++) {      var n = test.item(i);      if ( n.id.indexOf("print-result") >=0 && n.checked) {        if (st .length == 0) {          st +=  n.value;        } else {          st +=  ","+n.value ;        }      }    }    nodeId.value = st;  }  /**   * Generates the legend table.   *   * @param {Object} printMapObj   */  function renderLegendTableInHTML(printMapObj) {    var htmlStr = "";    var numberOfLegendColumn = printMapObj.getLegendColumns();    if (printMapObj.getIsPrintLegend().indexOf('true') >= 0) {      var nodeArray = printMapObj.getLegendNodes();      var legendNumInColumn = Math.ceil((nodeArray.length) / numberOfLegendColumn);      htmlStr = "<table cellspacing='0' cellpadding='0' style='border:thin solid rgb(230,230,230);'>";      htmlStr += "<tbody>";      var node;      var indexPos;      for (var i=0; i<legendNumInColumn; i++) {        htmlStr += "<tr>";        for (var j=0; j<numberOfLegendColumn; j++) {          indexPos =i+ j*legendNumInColumn;          if (indexPos < nodeArray.length) {            node = nodeArray[indexPos];            htmlStr += renderLegendPatchInHTML(node.getLevel(), node.getLabel(), node.getImageUrl());          }        }        htmlStr += "</tr>";      }      htmlStr += "</tbody>";      htmlStr += "</table>";    }    return htmlStr;  } /**  * Generates the query result table.  *  * @param {Object} printMapObj  */  function renderResultTableInHTML(printMapObj) {    var htmlStr = "";    var printResultsArray = printMapObj.getPrintResults();    if (printResultsArray.length > 0) {      for(i=0; i<printResultsArray.length; i++) {        var printResult = printResultsArray[i];        htmlStr += "<table  style='result'><tbody>";        htmlStr += "<tr><td>";        htmlStr += "<span style='font-family:sans-serif;font-size:8pt;font-weight:bold'>"+printResult.getName()+"</span>";        htmlStr += "</td></tr>";        var layerQueryResults = printResult.getLayerQueryResults();        for(k=0; k<layerQueryResults.length; k++) {          var layerQueryResult = layerQueryResults[k];          htmlStr += "<tr><td>";          htmlStr += "<span style='font-family:sans-serif;font-size:8pt;font-weight:normal'>"+layerQueryResult.getName()+"("+layerQueryResult.getCount()+")"+"</span>";          htmlStr += "</td></tr>";          var detailKeys = layerQueryResult.getKeys();          var detailVals = layerQueryResult.getValues();          htmlStr += "<tr><td align='left'>"; //start          htmlStr += "<table align='left' id='result'><tbody>";          //render the title          htmlStr += "<tr>";          var keys = detailKeys[0];          for (var j=0; j<keys.length; j++) {            htmlStr += "<th>"+ keys[j] +"</th>";          }          htmlStr += "</tr>";          //generates the data          for (m=0; m<detailVals.length; m++) {            var values = detailVals[m];            htmlStr += "<tr>" ;            for (var j=0;j<values.length;j++) {              htmlStr += "<td>"+ values[j] +"</td>";            }            htmlStr += "</tr>" ;          }          htmlStr += "</tbody></table>";          htmlStr += "</td></tr>";//end        }        htmlStr += "</tbody></table>";        htmlStr += "</br>";      }    }    return htmlStr;  } /**  * Generates each Query Result table.  *  * @param {Object} keys - an array object  * @param {Object} values - an array object  */  function getQueryResultTableInHTML(keys, values) {    var htmlStr = "<table align='left' id='result'><tbody>";    htmlStr += "<tr>";    for (var j=0; j<keys.length; j++) {      htmlStr = htmlStr +"<th>"+ keys[j] +"</th>";    }    htmlStr += "</tr>";    //generates the data    htmlStr += "<tr>" ;    for (var j=0;j<values.length;j++) {      htmlStr = htmlStr +"<td>"+ values[j] +"</td>";    }    htmlStr += "</tr>" ;    htmlStr += "</tbody></table><br><br>";    return htmlStr;  } /**  * Writes the Stlyes for the Page.  */  function getStyleSheetString() {    var cssStr = "<style type='text/css'>";    cssStr += getResultStyleStr();    cssStr += getLegendStyleStr();    cssStr += "</style>";    return cssStr;  } /**  * Returns the Result Stlyes.  */  function getResultStyleStr() {    var styleStr = "#result {border-width: 1px 1px 1px 1px;border-spacing: 0px;border-style: none none none none;border-color: #cccccc #cccccc #cccccc #cccccc;border-collapse: collapse;font-family: 'Arial','Helvetica',sans-serif;font-size: 10px;}";    styleStr    += "#result th {border-width: 1px 1px 1px 1px;padding: 1px 1px 1px 1px;border-style: inset inset inset inset;border-color: #cccccc #cccccc #cccccc #cccccc;}";    styleStr    += "#result td {border-width: 1px 1px 1px 1px;padding: 1px 1px 1px 1px;border-style: inset inset inset inset;border-color: #cccccc #cccccc #cccccc #cccccc;}";    return styleStr;  } /**  * Return the Legend Styles.  */  function getLegendStyleStr() {    var styleStr = "td.esriTocLabelDataFrame { color:#000; font-family:Arial,Sans-Serif; font-size:8pt; font-weight:bold; }";    styleStr    += "td.esriTocLabelLayer { color:#000; font-family:Arial,Sans-Serif; font-size:8pt; font-weight:bold; }";    styleStr    += "td.esriTocLabelField { color:#000; font-family:Arial,Sans-Serif;font-style: italic; font-size:8pt; font-weight:normal; }";    styleStr    += "td.esriTocLabel { color:#000; font-family:Arial,Sans-Serif; font-size:8pt; font-weight:normal; }";    return styleStr;  } /**  * Renders the Printable Map in a HTML table.  * @param {Object} printMapObj  */  function renderPrintMapInHTML(printMapObj) {    var htmlStr = "";    if (printMapObj.getIsPrintResultOnly().indexOf('false') >= 0) {      htmlStr = "<table >";      htmlStr += "<tr ><td>";      htmlStr += "<img style='border:thin solid rgb(204,204,204);' src='"+printMapObj.getMapUrl()+"' alt='Map' width='"+printMapObj.getMapWidth()+"' height='"+printMapObj.getMapHeight()+"' />";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -