This commit is contained in:
2024-05-08 10:17:02 +08:00
commit f2135bac5e
3844 changed files with 517549 additions and 0 deletions
@@ -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