上周将OA从2.75sp1升级到2.75sp2,问题随之而来,不知用友的人脑子又进了什么水,居然又修改打印功能(2.75升级到2.75sp1时已经害过一回了),而且发版说明根本没提及这项修改。这下好了,待发事项、已发事项里打印出来的表单字体都灰的(直接保留了input、select等控件于表单中,属性设为readonly、disabled造成的),真想妈X他们。又得自己动手了。
修改文件:printPreview.htm(前两次修改有说明)
修改内容:
在最靠近<body...的Javascript处添加一个函数,用来移除控件并保留内容,然后在BODY的onload事件中调用它。代码如下:
//替换input等控件内容,只显示纯文本 --彭国辉 2008-01-22--
function ReplaceElementContent()
{
var main$ = document.getElementById("mainBody");
if (!main$) return;
var obj = main$.getElementsByTagName("INPUT");
for (i=obj.length-1; i>=0; i--)
{
if (obj[i].style.display=="none" || obj[i].style.visibility == "hidden")
obj[i].removeNode(true);
else
{
if(obj[i].onpropertychange!=null) obj[i].onpropertychange = null;
if(obj[i].type=="checkbox")
{
if(obj[i].checked)
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>√</font>");
else
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>×</font>");
}
else if (obj[i].type=="text")
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>"+obj[i].value+"</font>");
obj[i].removeNode(true);
}
}
obj = main$.getElementsByTagName("SELECT");
for (i=obj.length-1; i>=0; i--)
{
if (obj[i].style.display!="none" && obj[i].style.visibility != "hidden")
{
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099 size=2>"+obj[i].options[obj[i].selectedIndex].text+"</font>");
}
obj[i].removeNode(true);
}
obj = main$.getElementsByTagName("TEXTAREA");
for (i=obj.length-1; i>=0; i--)
{
if (obj[i].style.display!="none" && obj[i].style.visibility != "hidden")
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>"+obj[i].value.replace(/ /g,"<br>")+"</font>");
obj[i].removeNode(true);
}
}
function ReplaceElementContent()
{
var main$ = document.getElementById("mainBody");
if (!main$) return;
var obj = main$.getElementsByTagName("INPUT");
for (i=obj.length-1; i>=0; i--)
{
if (obj[i].style.display=="none" || obj[i].style.visibility == "hidden")
obj[i].removeNode(true);
else
{
if(obj[i].onpropertychange!=null) obj[i].onpropertychange = null;
if(obj[i].type=="checkbox")
{
if(obj[i].checked)
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>√</font>");
else
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>×</font>");
}
else if (obj[i].type=="text")
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>"+obj[i].value+"</font>");
obj[i].removeNode(true);
}
}
obj = main$.getElementsByTagName("SELECT");
for (i=obj.length-1; i>=0; i--)
{
if (obj[i].style.display!="none" && obj[i].style.visibility != "hidden")
{
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099 size=2>"+obj[i].options[obj[i].selectedIndex].text+"</font>");
}
obj[i].removeNode(true);
}
obj = main$.getElementsByTagName("TEXTAREA");
for (i=obj.length-1; i>=0; i--)
{
if (obj[i].style.display!="none" && obj[i].style.visibility != "hidden")
obj[i].insertAdjacentHTML("beforeBegin","<font color=#000099>"+obj[i].value.replace(/ /g,"<br>")+"</font>");
obj[i].removeNode(true);
}
}
PS:顺便修改嵌套内容的那个TABLE和DIV的宽度为100%(原为624),使内容超过624宽度时仍可打印完整。



此文仅作记录留存,谢绝转载、引用或评论!