各位老大,我用word控件打印,使用替换的方法,可是当内容过多时出现字符串参量过长的错误,不能打印,我把代码贴出来,各位老大给看看阿,急用阿
function PrintDoc()
{
  webform.WebOffice.WebOpenPrint();function StatusMsg(mString){
  StatusBar.innerText=mString; 
}
function CopyTextToBookMark(inputname,BookMarkName)
{
var inputValue="";
var elObj = document.forms[0].elements(inputname);  
if (!elObj)
{
alert("HTML的FORM中没有此输入域:"+ inputname);
return;
}
switch(elObj.type)
{
case "select-one":
inputValue = elObj.options[elObj.selectedIndex].text;
break;
case "select-multiple":
var isFirst = true;
for(j=0;j<elObj.options.length;j++)
{
optionItem = elObj.options[j];
if (optionItem.selected)
{
if(isFirst)
{
inputValue = optionItem.Text;
isFirst = false;
}
else
{
inputValue += "  " + optionItem.Text;
}
}
}

break;
default: // text,Areatext,selecte-one,password,submit,etc.
if( ("undefined"==typeof(elObj.type)) && (elObj.length>0))
{
for(k=0;k<elObj.length;k++)
{
if( (("radio" == elObj[k].type)||("checkbox" == elObj[k].type)) && (elObj[k].checked) )
{
if("" == inputValue)
{
inputValue = elObj[k].value;
}
else
{
inputValue = inputValue+","+elObj[k].value;
}
}
}
}
else
{
inputValue = elObj.value;
}
break;
}    rangeWord = webform.WebOffice.WebObj.Content;
    rangeWord.Find.Execute(BookMarkName,false,false,false,false,false,true,1,false,inputValue,2);           

}
function GenReport()
{
CopyTextToBookMark("txtBeiJianChDW","{[被检查单位(人)]}");
CopyTextToBookMark("txtFaDingDBR","{[法定代表人(负责人)]}");
CopyTextToBookMark("txtFaDingDBRLXFS","{[法定代表人(负责人)联系方式]}");
CopyTextToBookMark("txtJIanChaXCh","{[检查现场]}");
CopyTextToBookMark("txtJianChaR1","{[检查人1]}");
CopyTextToBookMark("txtJianChaR2","{[检查人2]}");
CopyTextToBookMark("txtJiLuR","{[记录人]}");
CopyTextToBookMark("txtJianDuJChLB","{[监督检查类别]}");
CopyTextToBookMark("txtJianChaKShShJ","{[检查开始时间]}");
CopyTextToBookMark("txtKaiShiSJ","{[起始时间]}");
CopyTextToBookMark("txtJianChaJShShJ","{[检查结束时间]}");
CopyTextToBookMark("txtJieShuSJ","{[结束时间]}");
CopyTextToBookMark("txtJianChaNR","{[检查内容]}");

}
function PrintView()
{
  GenReport();
  
  document.getElementById("EditContent").style.display = "none";
  document.getElementById("worddoc").style.visibility = "visible";
}

解决方案 »

  1.   

    控件替换中限制的最大长度是255字,可截断成多个变量进行替换。不过,缺点是当不知道值的长度时,比较难办。比如1000字可设定4个变量,但当值是2000时需要设8个变量。比较土的办法是预测值的最大长度,并根据此设定相应数量的变量。我也正在寻找解决的办法不好办啊