initFCL
This commit is contained in:
@@ -0,0 +1,679 @@
|
||||
|
||||
|
||||
//实现报表打开的操作
|
||||
function setInit(strTab)
|
||||
{
|
||||
var obChinaExcel = document.getElementById('ChinaExcel');
|
||||
obChinaExcel.SetPath('/hjgl'); //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 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("<cmd>") + ("<cmd>").length, strStatScript.indexOf("</cmd>")); //数据条数
|
||||
dname[i] = strStatScript.substring(strStatScript.indexOf("<dname>") + ("<dname>").length, strStatScript.indexOf("</dname>")); //字段个数
|
||||
dSQL1[i] = strStatScript.substring(strStatScript.indexOf("<sql>") + ("<sql>").length, strStatScript.indexOf("</sql>"));
|
||||
if (dtype[i] == 2)//主从报表有第二条SQL
|
||||
{
|
||||
dSQL2[i] = strStatScript.substring(strStatScript.indexOf("<sql2>") + ("<sql2>").length, strStatScript.indexOf("</sql2>"));
|
||||
}
|
||||
strStatScript = strStatScript.substr(strStatScript.indexOf("</data>") + ("</data>").length);
|
||||
if (strStatScript.indexOf("<cmd>") < 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("<cmd>") + ("<cmd>").length, strStatScript.indexOf("</cmd>")); //数据条数
|
||||
dname[i] = strStatScript.substring(strStatScript.indexOf("<dname>") + ("<dname>").length, strStatScript.indexOf("</dname>")); //字段个数
|
||||
dSQL1[i] = strStatScript.substring(strStatScript.indexOf("<sql>") + ("<sql>").length, strStatScript.indexOf("</sql>"));
|
||||
if (dtype[i] == 2)//主从报表有第二条SQL
|
||||
{
|
||||
dSQL2[i] = strStatScript.substring(strStatScript.indexOf("<sql2>") + ("<sql2>").length, strStatScript.indexOf("</sql2>"));
|
||||
}
|
||||
strStatScript = strStatScript.substr(strStatScript.indexOf("</data>") + ("</data>").length);
|
||||
if (strStatScript.indexOf("<cmd>") < 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 = "<data><cmd>6</cmd><stattype>1</stattype><type>2</type><fieldname>" + strFieldName + "</fieldname><insertflag>0</insertflag><showcontent>1</showcontent></data>";
|
||||
obChinaExcel.SetCellStatDefine(obChinaExcel.Row, obChinaExcel.Col, strFieldDefine);
|
||||
// strFieldDefine = "<data><cmd>6</cmd><stattype>1</stattype><type>2</type><fieldname>" + strFieldName1 + "</fieldname><insertflag>0</insertflag><showcontent>1</showcontent></data>";
|
||||
// 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;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// JScript 文件
|
||||
/*
|
||||
//实现报表的设计
|
||||
//Date:2007/4/1
|
||||
*/
|
||||
var str = '';
|
||||
str+="<object classid=\"CLSID:15261F9B-22CC-4692-9089-0C40ACBDFDD8\""
|
||||
str+="CODEBASE='http://www.soft198.com/downloads/chinaexcelweb.cab#version=3,8,9,2' name=\"ChinaExcel\" id=\"ChinaExcel\""
|
||||
str+="style=\"left: 0px; top: 0px; width: 100%; height: 98%\">";
|
||||
str+="<param name=\"_Version\" value=\"65536\">";
|
||||
str+="<param name=\"_ExtentX\" value=\"20505\">";
|
||||
str+="<param name=\"_ExtentY\" value=\"14155\">";
|
||||
str+="<param name=\"_StockProps\" value=\"0\">";
|
||||
str+="</OBJECT>";
|
||||
@@ -0,0 +1,334 @@
|
||||
Public Sub mnuFileNew_click()
|
||||
If ChinaExcel.IsModified() Then '文档已经被更改
|
||||
rtn = MsgBox( "文档已被更改,是否保存?", vbExclamation Or vbYesNoCancel)
|
||||
If rtn = vbYes Then
|
||||
mnuFileSave_click
|
||||
ElseIf rtn = vbCancel Then
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
ChinaExcel.SetMaxRows(0)
|
||||
ChinaExcel.SetMaxRows(18)
|
||||
ChinaExcel.SetMaxCols(8)
|
||||
ChinaExcel.FormProtect = false
|
||||
'menu_init
|
||||
End Sub
|
||||
|
||||
'超级链接
|
||||
Public Sub mnuEditHyperlink_click()
|
||||
strUrl = InputBox( "请输入超级链接地址:", "超级链接", "HTTP://" )
|
||||
ChinaExcel.SetCellURLType ChinaExcel.Row,ChinaExcel.Col,strUrl
|
||||
End Sub
|
||||
|
||||
'设置粗体
|
||||
Public Sub cmdBold_click()
|
||||
ChinaExcel.Bold = not ChinaExcel.Bold
|
||||
End Sub
|
||||
|
||||
'设置斜体
|
||||
Public Sub cmdItalic_click()
|
||||
ChinaExcel.Italic = not ChinaExcel.Italic
|
||||
End Sub
|
||||
|
||||
'设置下划线
|
||||
Public Sub cmdUnderline_click()
|
||||
ChinaExcel.Underline = not ChinaExcel.Underline
|
||||
End Sub
|
||||
|
||||
'设置背景色
|
||||
Public Sub cmdBackColor_click()
|
||||
ChinaExcel.OnSetCellBkColor
|
||||
End Sub
|
||||
|
||||
'设置前景色
|
||||
Public Sub cmdForeColor_click()
|
||||
ChinaExcel.OnSetTextColor
|
||||
End Sub
|
||||
|
||||
'自动折行
|
||||
Public Sub cmdWordWrap_click()
|
||||
ChinaExcel.AutoWrap = not ChinaExcel.AutoWrap
|
||||
nMenuID = MenuOcx.GetMenuID("AutoWrap")
|
||||
MenuOcx.SetMenuChecked nMenuID,ChinaExcel.AutoWrap
|
||||
End Sub
|
||||
|
||||
'居左对齐
|
||||
Public Sub cmdAlignLeft_click()
|
||||
ChinaExcel.HorzTextAlign = 1
|
||||
End Sub
|
||||
|
||||
'居中对齐
|
||||
Public Sub cmdAlignCenter_click()
|
||||
ChinaExcel.HorzTextAlign = 2
|
||||
End Sub
|
||||
|
||||
'居右对齐
|
||||
Public Sub cmdAlignRight_click()
|
||||
ChinaExcel.HorzTextAlign = 3
|
||||
End Sub
|
||||
|
||||
'居上对齐
|
||||
Public Sub cmdAlignTop_click()
|
||||
ChinaExcel.VertTextAlign = 1
|
||||
End Sub
|
||||
|
||||
'垂直居中对齐
|
||||
Public Sub cmdAlignMiddle_click()
|
||||
ChinaExcel.VertTextAlign = 2
|
||||
End Sub
|
||||
|
||||
'居下对齐
|
||||
Public Sub cmdAlignBottom_click()
|
||||
ChinaExcel.VertTextAlign = 3
|
||||
End Sub
|
||||
|
||||
'画边框线
|
||||
Public Sub cmdDrawBorder_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
.DrawCellBorder StartRow, StartCol, EndRow, EndCol, BorderTypeSelect.value, 0,0
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'抹框线
|
||||
Public Sub cmdEraseBorder_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
.ClearCellBorder StartRow, StartCol, EndRow, EndCol,0
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'货币符号
|
||||
Public Sub cmdCurrency_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
.SetCellDigitShowStyle StartRow, StartCol, EndRow, EndCol,2,2
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'百分号
|
||||
Public Sub cmdPercent_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
.SetCellDigitShowStyle StartRow, StartCol, EndRow, EndCol,4,2
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'千分位
|
||||
Public Sub cmdThousand_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
.SetCellDigitShowStyle StartRow, StartCol, EndRow, EndCol,5,2
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'关于超级报表插件
|
||||
Public Sub cmdAbout_click()
|
||||
ChinaExcel.AboutBox
|
||||
End Sub
|
||||
|
||||
'插入列
|
||||
Public Sub cmdInsertCol_click()
|
||||
ChinaExcel.OnInsertBeforeCol
|
||||
End Sub
|
||||
|
||||
'插入行
|
||||
Public Sub cmdInsertRow_click()
|
||||
ChinaExcel.OnInsertBeforeRow
|
||||
End Sub
|
||||
|
||||
'插入单元
|
||||
Public Sub cmdInsertCell_click()
|
||||
ChinaExcel.OnInsertCell
|
||||
End Sub
|
||||
|
||||
'删除单元
|
||||
Public Sub cmdDeleteCell_click()
|
||||
ChinaExcel.OnDeleteCell
|
||||
End Sub
|
||||
|
||||
'删除列
|
||||
Public Sub cmdDeleteCol_click()
|
||||
ChinaExcel.OnDeleteCol
|
||||
End Sub
|
||||
|
||||
'删除行
|
||||
Public Sub cmdDeleteRow_click()
|
||||
ChinaExcel.OnDeleteRow
|
||||
End Sub
|
||||
|
||||
|
||||
'水平求和
|
||||
Public Sub cmdFormulaSumH_click()
|
||||
With ChinaExcel
|
||||
StartCol = 0: StartRow = 0: EndCol = 0: EndRow = 0
|
||||
.GetSelectRegionWeb StartRow,StartCol,EndRow,EndCol
|
||||
.AutoSum StartRow,StartCol,EndRow,EndCol,2
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'垂直求和
|
||||
Public Function InStrL(inString, srchString)
|
||||
'此函数用于查询srchString子字串在父字串inString中的最后一个位置
|
||||
If srchString = "" Then
|
||||
InStrL = 0
|
||||
Exit Function
|
||||
End If
|
||||
If Len(srchString) Then
|
||||
Do
|
||||
iLastPos = iCurPos
|
||||
iCurPos = InStr(iCurPos + 1, inString, srchString, vbTextCompare)
|
||||
Loop Until iCurPos = 0
|
||||
End If
|
||||
InStrL = iLastPos
|
||||
End Function
|
||||
|
||||
Public Function StrGetSinglePara(ByVal strCellPara, ByVal strCharacter)
|
||||
'传入单元参数strCellPara和特征字串strCharacter,函数可返回特征字串中的字符串值
|
||||
|
||||
strChar1 = "<" & Trim(strCharacter) & ">"
|
||||
strChar2 = "</" & Trim(strCharacter) & ">"
|
||||
iStart = InStrL(strCellPara, strChar1)
|
||||
iEnd = InStrL(strCellPara, strChar2)
|
||||
If iStart > 0 And iEnd > iStart Then
|
||||
iCharacterLen = Len(Trim(strCharacter)) + 2
|
||||
iStart = iStart + iCharacterLen
|
||||
StrGetSinglePara = Trim(Mid(strCellPara, iStart, iEnd - iStart))
|
||||
Else
|
||||
StrGetSinglePara = ""
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function GetCellDefineValue(ByVal nRow,ByVal nCol)
|
||||
strCellPara = ChinaExcel.GetCellStatDefine(nRow, nCol)
|
||||
If Trim(strCellPara) <> "" Then
|
||||
strFldName = StrGetSinglePara(strCellPara, "fieldname")
|
||||
else
|
||||
strFldName=""
|
||||
end if
|
||||
GetCellDefineValue=strFldName
|
||||
End Function
|
||||
|
||||
Public Function GetCellColName(nRow, nCol)
|
||||
strName = ChinaExcel.GetCellName(nRow,nCol)
|
||||
strNameA=""
|
||||
|
||||
for iCount=1 to Len(strName)
|
||||
If Not IsNumeric(Mid(strName,iCount, 1)) Then
|
||||
strNameA = strNameA & Mid(strName,iCount, 1)
|
||||
else
|
||||
exit for
|
||||
End If
|
||||
next
|
||||
GetCellColName = strNameA
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub cmdFormulaSumV_click()
|
||||
With ChinaExcel
|
||||
' StartCol = 0: StartRow = 0: EndCol = 0: EndRow = 0
|
||||
' .GetSelectRegionWeb StartRow,StartCol,EndRow,EndCol
|
||||
' .AutoSum StartRow,StartCol,EndRow,EndCol,1
|
||||
nRow=.Row
|
||||
nCol=.Col
|
||||
'使用字段进行求和
|
||||
' strValue=GetCellDefineValue(nRow,nCol)
|
||||
' if strValue="" then
|
||||
' msgbox "没有找到定义的字段名"
|
||||
' exit sub
|
||||
' end if
|
||||
' .SetCellShowVal nRow+1,nCol,"=sum(@"+strValue+")"
|
||||
'使用公式求和
|
||||
strValue=GetCellDefineValue(nRow,nCol)
|
||||
if strValue="" then
|
||||
msgbox "没有找到定义的字段名"
|
||||
exit sub
|
||||
end if
|
||||
strValueA=GetCellColName(nRow,nCol)
|
||||
if strValueA="" then
|
||||
msgbox "获取列名错误"
|
||||
exit sub
|
||||
end if
|
||||
qs=msgbox("列名求和选[YES],字段名求和选[NO]",vbYesNo + vbQuestion,"询问")
|
||||
if qs=vbyes then
|
||||
.SetCellShowVal nRow+1,nCol,"=sum(" & strValueA & nRow & ":" & strValueA & "0)"
|
||||
else
|
||||
.SetCellShowVal nRow+1,nCol,"=sum(@" & strValue & ")"
|
||||
end if
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'双向求和
|
||||
Public Sub cmdFormulaSumHV_click()
|
||||
With ChinaExcel
|
||||
StartCol = 0: StartRow = 0: EndCol = 0: EndRow = 0
|
||||
.GetSelectRegionWeb StartRow,StartCol,EndRow,EndCol
|
||||
.AutoSum StartRow,StartCol,EndRow,EndCol,3
|
||||
End With
|
||||
End Sub
|
||||
|
||||
|
||||
'图表向导
|
||||
Public Sub mnuDataWzdChart_click()
|
||||
ChinaExcel.OnChartWizard
|
||||
End Sub
|
||||
|
||||
'设置图片为原始大小
|
||||
Public Sub mnuSetCellImageOriginalSize_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
for row = StartRow to EndRow
|
||||
for col = StartCol to EndCol
|
||||
.SetCellImageSize row,col,1
|
||||
next
|
||||
next
|
||||
.Refresh
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'设置图片为单元大小
|
||||
Public Sub mnuSetCellImageCellSize_click()
|
||||
With ChinaExcel
|
||||
.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
for row = StartRow to EndRow
|
||||
for col = StartCol to EndCol
|
||||
.SetCellImageSize row,col,0
|
||||
next
|
||||
next
|
||||
.Refresh
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'删除图片
|
||||
Public Sub mnuDeleteCellImage_click()
|
||||
ChinaExcel.GetSelectRegionWeb StartRow, StartCol, EndRow, EndCol
|
||||
ChinaExcel.DeleteCellImage StartRow, StartCol, EndRow, EndCol
|
||||
End Sub
|
||||
|
||||
'设置每页打印的行数
|
||||
Public Sub mnuSetOnePrintPageDetailZoneRows_click()
|
||||
nPageRows = ChinaExcel.GetOnePrintPageDetailZoneRows()
|
||||
nRow = InputBox( "说明:打印时每页显示的行数,不包括表头和表尾页脚、页前脚的行数(如果为0行,则表示没有设置每页打印的行数,系统按缺省进行分页)。 请输入每页打印的行数:", "设置每页打印的行数", nPageRows )
|
||||
If nRow <> "" Then ChinaExcel.SetOnePrintPageDetailZoneRows nRow
|
||||
End Sub
|
||||
|
||||
|
||||
'*****************************************************************
|
||||
'********** 下拉列表框中的事件
|
||||
'*****************************************************************
|
||||
'设置字体
|
||||
Public Sub changeFontName( ByVal value )
|
||||
With ChinaExcel
|
||||
lFontName = value
|
||||
.CellFontName = lFontName
|
||||
End With
|
||||
End Sub
|
||||
|
||||
'设置字号
|
||||
Public Sub changeFontSize( ByVal value )
|
||||
With ChinaExcel
|
||||
lFontSize = value
|
||||
.CellFontSize = lFontSize
|
||||
End With
|
||||
|
||||
End Sub
|
||||
Reference in New Issue
Block a user