//实现报表打开的操作 function setInit(strTab) { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.SetPath('/'); //http://website/test/ceuser/ceuser.dat 能否访问到 var ret = obChinaExcel.Login("金财软件", "6c048396fdf663df323ad7d1dd6eff17", "安徽金财高新技术工程有限公司"); //alert(ret); obChinaExcel.ReadHttpFile(strTab); } //实现报表数据录入提交操作 function SaveData() { var strData; var obChinaExcel=document.getElementById('ChinaExcel'); strData = obChinaExcel.ExportSaveDBData(); document.form1.txtSaveData.value = strData; if (document.form1.txtSaveData.value=="") { alert("ExportSaveDBData输出为空"); } else { alert(document.form1.txtSaveData.value); document.form1.submit(); } } //实现计算 function Calculate() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.DesignMode = false; obChinaExcel.ReCalculate(); // obChinaExcel.FormProtect = true; } //页面加载显示报表 function OnLoad(strTab) { SetInit(strTab); Calculate(); } //实现报表自定义向导 function Wizard() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.UserFunctionGuide(); } //返回最近一次计算之前的状态 function retDesgin() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.RestoreAfterCalculate(); } //关于打印设置 function PrintSetup() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.OnPrintSetup(); } //打印页面设置 function PrintpaperSet() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnPrintPaperSet(); } function FileSave() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnFileSave(); } //单元斜线设置 function SlashSet() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnSlashSet(); } //打印文档 function FilePrint() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.OnFilePrint(); } //打印预览 function Preview() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.OnFilePrintPreview(); } //输出 function onFileSave() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.onFileSave(); } // 剪切 function onCut() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnCut(); } //复制 function onPaste() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnPaste(); } // 粘贴 function onCopy() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnCopy(); } //货币符号 function onCurrency() { } //设置单元样式 function OnSetCellShowStyle() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnSetCellShowStyle(); } //设置每页打印的行数 function OnSetOnePrintPageDetailZoneRows() { var obChinaExcel = document.getElementById('ChinaExcel'); nPageRows = obChinaExcel.GetOnePrintPageDetailZoneRows() nRow = InputBox( "说明:打印时每页显示的行数,不包括表头和表尾页脚、页前脚的行数(如果为0行,则表示没有设置每页打印的行数,系统按缺省进行分页)。 请输入每页打印的行数:", "设置每页打印的行数", nPageRows ) if( nRow != "") { obChinaExcel.SetOnePrintPageDetailZoneRows = nRow; } } //帮助 function Help() { var obChinaExcel=document.getElementById('ChinaExcel'); obChinaExcel.AboutBox(); } //设置单元背景色 function onSetCellBkColor() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnSetCellBkColor(); } //保存报表 function onReportSave(reportId, reportName, ProjectId) { obChinaExcel=document.getElementById('ChinaExcel'); var tabFile = obChinaExcel.SaveDataAsZipText(); var sendData = "reportId=" + reportId; sendData += "&tabContent=" + encodeURIComponent(tabFile); //二进制需encodeURIComponent编码 sendData += "&reportName=" + reportName; sendData += "&projectId=" + ProjectId; req = Ajax(); req.onreadystatechange = myDeal; req.open("POST", "SaveTabFile.aspx", "false"); req.setRequestHeader("content-length", sendData.length); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(sendData); //要POST的数据 obChinaExcel.SetModifiedFlag(false); //设置表格修改标识 } function Ajax() { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e1) { try { req = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e2) { try { req = new ActiveXObject("MSXML3.XMLHTTP"); } catch (e3) { alert("创建Ajax失败:" + e3); } } } } else { alert("未能识别的浏览器"); } return req; } function myDeal() { if (req.readyState == 4) { var ret = req.responseText; if (ret != "") { alert(ret); } } } function onFileOpen() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.OnFileOpen(); } // 设置单元格的值 function SetCellValue() { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.SetCellValue(1, 1, '您好'); obChinaExcel.Refresh(); } // 给报表里设置的变量传值(变量命名规则:V_Name为变量名,如第一个变量为:V_Name1,第二个为V_Name2,以此类推) function SetCellValUseVarName(varValue) { var value = varValue.split("|"); var obChinaExcel = document.getElementById('ChinaExcel'); for (i = 0; i < value.length; i++) { if (value[i] == 'NULL') { obChinaExcel.SetCellValUseVarName('V_Name' + (parseInt(i) + 1), ''); } else { obChinaExcel.SetCellValUseVarName('V_Name' + (parseInt(i) + 1), value[i]); } } obChinaExcel.ReCalculate(); obChinaExcel.Refresh(); } // 替换数据源里的参数(相当于给参数传值) function ReplaceParameter(replaceParameter) { var obChinaExcel = document.getElementById('ChinaExcel'); var parameterValue = replaceParameter.split("|"); if (parameterValue.length > 1) { for (i = 0; i < parameterValue.length; i++) { if (parameterValue[i] == 'NULL') { obChinaExcel.ReplaceStatScript("${参数" + (i + 1) + "}", "NULL", 1); } else { obChinaExcel.ReplaceStatScript("${参数" + (i + 1) + "}", "'" + parameterValue[i] + "'", 1); } } } else { obChinaExcel.ReplaceStatScript("${参数1}", "'" + replaceParameter + "'", 1); } } //function ReplaceParameter(replaceParameter) { // var obChinaExcel = document.getElementById('ChinaExcel'); // obChinaExcel.ReplaceStatScript("${参数1}", replaceParameter, 1); //} //计算报表 function CalculateTab(str) //计算报表 { //ReplaceParameter(strParam1); //var cmdCalculate=document.getElementById('cmdCalculate'); //GetData(); var obChinaExcel= document.getElementById('ChinaExcel'); //var obChinaExcel= ChinaExcel; //var obChinaExcel= window.parent.lefttree.document.getElementById('ChinaExcel'); if (obChinaExcel.DesignMode) { obChinaExcel.SetCanRefresh(false); obChinaExcel.RestoreAfterCalculate(); //会重新加载计算之前的报表模板,确保可以重新计算 var strStatScript = obChinaExcel.GetStatScript(1); var dname = new Array(); //数据源名称 var dtype = new Array(); //数据源类型 var dSQL1 = new Array(); var dSQL2 = new Array(); var strData = new Array(); //数据内容 var dcount = 0; //数据源个数 var i, j; if (strStatScript.length == 0) { if (window.confirm('该报表没有统计脚本,继续计算请选[Yes],否则选[No]')) { obChinaExcel.SetOnlyShowTipMessage(true); obChinaExcel.ReCalculate(); obChinaExcel.SetOnlyShowTipMessage(false); } } else { var strQueryParameter = strQueryParameterUrl(); for (i = 1; i < strStatScript.length; i++)//把统计脚本中的数据源类型、名称等存入数组 { dtype[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); //数据条数 dname[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); //字段个数 dSQL1[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); if (dtype[i] == 2)//主从报表有第二条SQL { dSQL2[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); } strStatScript = strStatScript.substr(strStatScript.indexOf("") + ("").length); if (strStatScript.indexOf("") < 0) { dcount = i; break; } } var url; for (i = 1; i <= dcount; i++)//根据数据源名重新设置取数方式 { strData[i] = ""; //by ps 2011-8-16 没有变参 if (dSQL1[i].indexOf("${") == -1 && dSQL1[i].indexOf("${") == -1) { url = "CalculateChinaEx.aspx?func=GetSqlResult&dtype=" + dtype[i] + "&sql=" + encodeURIComponent(dSQL1[i]) + "&sql2=" + encodeURIComponent(dSQL2[i]) + "&reportId=" + str; } else { url = "CalculateChinaEx.aspx?func=GetSqlResult&dtype=" + dtype[i] + "&sql=" + encodeURIComponent(dSQL1[i]) + "&sql2=" + encodeURIComponent(dSQL2[i]) + "&reportId=" + str + strQueryParameter; } obChinaExcel.SetStatDataSource1(url, 2, dname[i]); } obChinaExcel.SetOnlyShowTipMessage(true); obChinaExcel.ReCalculate(); obChinaExcel.SetOnlyShowTipMessage(false); } obChinaExcel.SetCanRefresh(true); obChinaExcel.Refresh(); } } function CalculateTabPaging(str, str2) //计算报表 { var obChinaExcel = document.getElementById('ChinaExcel'); obChinaExcel.SetCanRefresh(false); var pagesize = null; if (str2 == "库存查询每页显示固定行") { pagesize = document.getElementById("Text3").value; } else { pagesize = 20; } var pageIndex = document.getElementById("cpage").value; obChinaExcel.RestoreAfterCalculate(); //会重新加载计算之前的报表模板,确保可以重新计算 var strStatScript = obChinaExcel.GetStatScript(1); //alert(strStatScript); var dname = new Array(); //数据源名称 var dtype = new Array(); //数据源类型 var dSQL1 = new Array(); var dSQL2 = new Array(); var strData = new Array(); //数据内容 var dcount = 0; //数据源个数 var i, j; if (strStatScript.length == 0) { if (window.confirm('该报表没有统计脚本,继续计算请选[Yes],否则选[No]')) { obChinaExcel.SetOnlyShowTipMessage(true); obChinaExcel.ReCalculate(); obChinaExcel.SetOnlyShowTipMessage(false); } } else { var strQueryParameter = strQueryParameterUrl(); for (i = 1; i < strStatScript.length; i++)//把统计脚本中的数据源类型、名称等存入数组 { dtype[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); //数据条数 dname[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); //字段个数 dSQL1[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); if (dtype[i] == 2)//主从报表有第二条SQL { dSQL2[i] = strStatScript.substring(strStatScript.indexOf("") + ("").length, strStatScript.indexOf("")); } strStatScript = strStatScript.substr(strStatScript.indexOf("") + ("").length); if (strStatScript.indexOf("") < 0) { dcount = i; break; } } var url; for (i = 1; i <= dcount; i++)//根据数据源名重新设置取数方式 { strData[i] = ""; //没有变参 if (dSQL1[i].indexOf("${") == -1 && dSQL1[i].indexOf("${") == -1) { url = "CalculateChinaExPaging.aspx?func=GetSqlResult&dtype=" + dtype[i] + "&sql=" + encodeURIComponent(dSQL1[i]) + "&sql2=" + encodeURIComponent(dSQL2[i]) + "&pageSize=" + pagesize + "&pageIndex=" + pageIndex + "&nodeid=" + str; } else { url = "CalculateChinaExPaging.aspx?func=GetSqlResult&dtype=" + dtype[i] + "&sql=" + encodeURIComponent(dSQL1[i]) + "&sql2=" + encodeURIComponent(dSQL2[i]) + "&pageSize=" + pagesize + "&pageIndex=" + pageIndex + "&nodeid=" + str + strQueryParameter; } obChinaExcel.SetStatDataSource1(url, 2, dname[i]); } obChinaExcel.SetOnlyShowTipMessage(true); obChinaExcel.ReCalculate(); obChinaExcel.SetOnlyShowTipMessage(false); } obChinaExcel.SetCanRefresh(true); obChinaExcel.Refresh(); } function strQueryParameterUrl() { var i, j, nCount, bSameName; var strTempA = ""; var strTempB = ""; var dParam = new Array(); //变参数组 nCount = 0; var obChinaExcel = document.getElementById('ChinaExcel'); for (i = 1; i <= obChinaExcel.GetMaxRow(); i++) { for (j = 1; j <= obChinaExcel.GetMaxCol(); j++) { strTempA = obChinaExcel.GetCellQueryParameter(i, j); if (strTempA != "") { bSameName = false; for (k = 1; k <= nCount; k++) { if (dParam[k] == strTempA) { bSameName = true; break; } } if (bSameName == false) { nCount++; dParam[nCount] = strTempA; } } } } for (k = 1; k <= nCount; k++) { strTempB = strTempB + "&" + encodeURIComponent(dParam[k]) + "=" + "${" + dParam[k] + "}"; } return strTempB; } // 自定义字段(指数据源字段) function DefineField(strFieldName,strFieldName1) { var obChinaExcel = document.getElementById('ChinaExcel'); var strFieldDefine; strFieldDefine = "612" + strFieldName + "01"; obChinaExcel.SetCellStatDefine(obChinaExcel.Row, obChinaExcel.Col, strFieldDefine); // strFieldDefine = "612" + strFieldName1 + "01"; // obChinaExcel.SetCellStatDefine(obChinaExcel.Row, obChinaExcel.Col+1, strFieldDefine); obChinaExcel.Refresh(); } function onCbClickEvent(obj, fNoEvent) { if (null != event) { event.cancelBubble = true; } // Regular push button onCbClick(obj.id, true); return (false); } function onCbClick(szCommand, fState) { //开始命令 switch (szCommand.toUpperCase()) { case "CMDFILENEW": //新建 mnuFileNew_click(); break; case "CMDFILEOPEN": //打开文件 mnuFileOpen_click(); break; case "CMDEXCELFILEOPEN": //打开EXCEL文件 mnuExcelFileOpen_click(); break; case "CMDWEBFILEOPEN": //打开远程文件 mnuFileWebOpen_click(); break; case "CMDWEBXMLFILEOPEN": //打开远程XML文件 mnuXMLFileWebOpen_click(); break; case "CMDSAVEDATAASSTRING": //输出为字符串 mnuSaveDataAsString_click(); break; case "CMDFILESAVE": //保存文档 SaveTabFile1(); //保存到服务器 tcf break; case "CMDFILESAVEAS": //另存为 mnuFileSaveAs_click(); break; case "CMDFILEPRINTPAPERSET": //打印页设置文档 mnuPrintPaperSet_click(); break; case "CMDFILEPRINTSETUP": //打印设置文档 mnuFilePrintSetup_click(); break; case "CMDFILEPRINT": //打印文档 mnuFilePrint_click(); break; case "CMDFILEPRINTPREVIEW": //打印预览文档 mnuFilePrintPreview_click(); break; case "CMDEDITCUT": //剪切 ChinaExcel.OnCut(); //mnuEditCut_click(); break; case "CMDEDITCOPY": //复制 ChinaExcel.OnCopy(); //mnuEditCopy_click(); break; case "CMDEDITPASTE": //粘贴 ChinaExcel.OnPaste(); //mnuEditPaste_click(); break; case "CMDEDITFIND": //查找替换 mnuEditFind_click(); break; case "CMDEDITUNDO": //撤消 //mnuEditUndo_click(); break; case "CMDEDITREDO": //重做 //mnuEditRedo_click(); break; case "CMDSHAPE3D": //设置单元3维显示 mnuShape3D_click(); break; case "CMDROWLABEL": //设置行表头 mnuRowLabel_click(); break; case "CMDCOLLABEL": //设置列表头 mnuColLabel_click(); break; case "CMDSTATWIZARD": // ChinaExcel.OnStatWebWizard(); break; case "CMDSORTDESCENDING": //降序排序 cmdSortDescending_click(); break; case "CMDFUNCTIONLIST": //函数列表 mnuFunctionList_click(); break; case "CMDUSERFUNCTIONGUIDE": //自定义函数向导 mnuUserFunctionGuide_click(); break; case "CMDFORMULASUMH": //水平求和 cmdFormulaSumH_click(); break; case "CMDFORMULASUMV": //垂直求和 cmdFormulaSumV_click(); break; case "CMDFORMULASUMHV": //双向求和 cmdFormulaSumHV_click(); break; case "CMDCHARTWZD": //图表向导 mnuDataWzdChart_click(); break; case "CMDINSERTPIC": //插入图片 mnuFormatInsertPic_click(); break; case "CMDINSERTCELLPIC": //插入单元图片 mnuFormatInsertCellPic_click(); break; case "CMDHYPERLINK": //超级链接 mnuEditHyperlink_click(); break; case "CMDFINANCEHEADERTYPE": //财务表头 mnuFinanceHeader_click(); break; case "CMDFINANCETYPE": //财务表览 mnuFinance_click(); break; case "CMDSHOWGRIDLINE": //显示/隐藏背景表格线 with (ChinaExcel) { ShowGrid = !ShowGrid; } break; case "CMDSHOWHEADER": //显示/隐藏系统表头 with (ChinaExcel) { ShowHeader = !ShowHeader; } break; //*********************************************************** //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ case "CMDBOLD": //设置粗体 cmdBold_click(); break; case "CMDITALIC": //设置斜体 cmdItalic_click(); break; case "CMDUNDERLINE": //设置下划线 cmdUnderline_click(); break; case "CMDBACKCOLOR": //设置背景色 cmdBackColor_click(); break; case "CMDFORECOLOR": //设置前景色 cmdForeColor_click(); break; case "CMDWORDWRAP": //设置自动折行 cmdWordWrap_click(); break; case "CMDALIGNLEFT": //左对齐 cmdAlignLeft_click(); break; case "CMDALIGNCENTER": //居中对齐 cmdAlignCenter_click(); break; case "CMDALIGNRIGHT": //居右对齐 cmdAlignRight_click(); break; case "CMDALIGNTOP": //居上对齐 cmdAlignTop_click(); break; case "CMDALIGNMIDDLE": //垂直居中对齐 cmdAlignMiddle_click(); break; case "CMDALIGNBOTTOM": //居下对齐 cmdAlignBottom_click(); break; case "CMDDRAWBORDER": //画框线 cmdDrawBorder_click(); break; case "CMDERASEBORDER": //抹框线 cmdEraseBorder_click(); break; case "CMDCURRENCY": //货币符号 cmdCurrency_click(); break; case "CMDPERCENT": //百分号 cmdPercent_click(); break; case "CMDTHOUSAND": //千分位 cmdThousand_click(); break; case "CMDABOUT": //关于超级报表插件 cmdAbout_click(); break; //*********************************************************** //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ case "CMDINSERTCOL": //插入列 cmdInsertCol_click(); break; case "CMDINSERTROW": //插入行 cmdInsertRow_click(); break; case "CMDINSERTCELL": //插入单元 cmdInsertCell_click(); break; case "CMDDELETECELL": //删除单元 cmdDeleteCell_click(); break; case "CMDDELETECOL": //删除列 cmdDeleteCol_click(); break; case "CMDDELETEROW": //删除行 cmdDeleteRow_click(); break; case "CMDMAXROWCOL": //设置表格行列数 mnuMaxRowCol_click(); break; case "CMDMERGECELL": //合并单元格 mnuFormatMergeCell_click(); break; case "CMDUNMERGECELL": //取消合并单元格 mnuFormatUnMergeCell_click(); break; case "CMDMERGEROW": //行组合 cmdMergeRow_click(); break; case "CMDMERGECOL": //列组合 cmdMergeCol_click(); break; case "CMDRECALCALL": //重算全表 mnuFormulaReCalc_click(); break; case "CMDFORMPROTECT": //整表保护 mnuFormProtect_click(); break; case "CMDREADONLY": //单元格只读 mnuReadOnly_click(); break; case "SETONEPRINTPAGEDETAILZONEROWS": //设置每页打印的行数 mnuSetOnePrintPageDetailZoneRows_click(); break; } }