自己动手修改用友致远OA2.75的问题

时间:2025-03-17 07:46:35

用了致远OA2.75一个多月,感觉整体不可以,毕竟OA不像ERP有太复杂的需求。但在某些细节上却明显暴露设计上的不合理性,用友的客服态度还是可以的,就是解决问题的速度太慢,实在忍不住,只好自己动手解决问题了。

第一个就是表单流程从组中选接受人的问题,据说成员的排序是按组的先后的,但问题是它不显示组别,结果列出来的人乱套了,同样是姓王的,可能一个在前一个在最后,人多了根本没法选。
目标文件:common/SelectPerson/Template_branch.jst
修改内容:不想动服务器端脚本,所以采用客户端加Javascript实现的方法。在77行,找到<!--选人模板开始-->,在它前面加
<div style="border:1px solid #000; background-color:#ccffcc; display:none; font-size:9pt; text-align:center" >
<input type="button" value="排序列表内容" onClick="SortBtnClick()" style="border:1px solid #999999;height:18px;color:#990000; background-color:#dcf">本功能由彭国辉添加,发现问题请及时反应。</div>
再找到<!--选人模板结束-->,在后面加:
<script language="javascript">
function sortRule(a,b) {
  var x = a._text;
  var y = b._text;
  return (y);
}
function op(){
  var _value;
  var _text;
}
function sortOption(obj){
  var tmp = new Array();
  for(var i=0;i<;i++){
    var ops = new op();
    ops._value = [i].value;
    ops._text = [i].text;
    (ops);
  }
  (sortRule);
  for(var j=0;j<;j++){
    [j].value = tmp[j]._value;
    [j].text = tmp[j]._text;
  }
}
function SortBtnClick()
{
  sortOption(myform.list1);
}
function showsortdiv()
{
  if (viewType=="1" && myform && myform.list1)
  {
    ("sortfunction").="block";
  }
  else if (myform && myform.list1 && !viewType)
  {
    setTimeout("showsortdiv()", 1000);
  }
}
setTimeout("showsortdiv()", 1000);
</script>

用户使用的时候便会多一个按钮,点击它就完成了排序。

第二个是打印内容的缩放问题,纯粹是2.75sp1惹的祸,没打补丁前还好好的,一打补丁就打出问题来了。我们写Win32软件也得根据打印机的分辨率来转换缩放比例,他一个c/s脚本居然敢贸然确定比例,不知开发的水平太次脑袋灌水,还是测试的敷衍混日子,这种问题本是不该发生的。
目标文件:infoMgr/
修改内容:在715行找到<input size="4"……,把默认值设为100;回116行修改function setInit(obj)事件的最后一句,改为:();
formMgr目录、sysMgr目录下参考着修改。

第三个问题,IE默认的页边距上、下、左、右达到19.5,实在太宽了,内容太多时会造成超出部分无法打印。OA是以弹出窗口显示的,菜单、工具条全部被隐藏,或者用友的人把用户想得太理想化了,以为用户都懂得新开一个IE窗口然后拉菜单改页面设置——用户真有这水平还在用用友OA吗?
目标文件:与第二个问题一样,各个
修改内容:看源代码,用友似乎在努力想实现页面设置的功能,方法本没错,但页面是以模态窗口弹出,估计每次点击该功能时IE都会报个错,所以后来取消了。看来写这功能的人是个死脑筋,脑袋不转弯,其实改到一个非模态窗口里实现就可以了。代码不贴了,网上一大堆。