壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2498|回复: 8

四班:定制WEB版屏幕

[复制链接]
发表于 2008/9/30 11:11:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
四班WEB版的模板来源主要是XSL格式的XML文档,可以利用XSLGenerator生成器来定制;如果熟练,可以直接手工修改。然后将修改的模板放到XSLFiles\Site目录下。

四班定制的目的:
     1.控制用户可见权限,如单价成本的可见性,如涉及到单价非相关人员不能看到单价或成本;ADUT审核屏幕不同人员查看的不同的历史记录.....
     2.控制出入库数量是否超过限制,如PORV,MORV,PICK数量限制
     3.控制订单的状态,单价数量的修改,如已审批的PO单除非特定人员不允许修改数量与单价
     4.控制重要屏幕各用户的操作范围,如BSET特定人员只能操作特定的批处理
     5.控制流程.............,如根据流程是否允许操作等

通过定制,使FourthShift WEBUI更符合公司的实际需要。

_ScriptLibrary\user.js文件为用户自定义的Javascript脚本,根据个人经验,该文件最好不要使用到任何中文字符,否则很容易报错。
在user.js文件中可以利用XMLHttpRequest,存取查询后台数据,与前台交互操作,如控制标准单价为0,或没有在当前供应商VDIT设置的物料不允许下PO单;控制以某特定类型的订单只能以什么收货类型入库......

定制中最重要的两个屏幕变量:
       当前用户: sFSUserID
       当前屏幕: sFSPanelName

在熟练运用定制后,可以抛开FourthShift内部函数,个人感觉使用FourthShift的内部函数繁琐,代码不好修改控制,并且冗余,不如自已在user.js写的函数更切合实际。



如果有在FourthShift WEBUI定制中遇到什么疑难问题,可以向我咨询。

[ 本帖最后由 FrankXu 于 2008-10-9 15:13 编辑 ]
发表于 2008/9/30 11:31:42 | 显示全部楼层
我们公司没有购买WebUI模块,只买了屏幕定制模块。
屏幕定制模块功能很弱,它对屏幕进行的一些限制是作用于所有四班用户的。
例如:
如果想对销售订单的单价锁住不让销售人员改单价。用屏幕定制模块进行字段加锁的话,销售人员下订单时就无法选择从高级价格本或者ITPB的选择菜单上选取价格来源,所以用屏幕定制模块是无法实现对销售订单单价进行限制的。
而WebUI通过楼主所说的方法则可以灵活的进行限制,希望本帖对那些想要对某些字段进行限制的朋友有借鉴作用。欢迎大家指正讨论。
发表于 2008/10/15 22:57:21 | 显示全部楼层
隐藏价格用:fsHideElement函数就可以了
只读用 readonly函数就可以

WEBUI也可以增加物料图片显示功能,根据用户名控制业务操作,根据规则控制业务操作,例如:PORV 入库数量合计不能超过订单行的未结数量。
 楼主| 发表于 2008/12/16 19:19:15 | 显示全部楼层
这段时间对POMT做了一个较为完整WEB定制,共有以下限制:
        1.物料标准成本为0的不允许下PO单                            (防止PPV过大)
        2.物料在VEIT/VDIT中没有做"供应商物料转换"的不允许下PO单    (防止仓库不能进行正常的收货作业)
        3.没有经过QC审核认可(外部程序)的物料(按供应商)不允许下PO单 (防止乱采购)
          特殊情况下,在限定日期,累计采购数量不超过限定的最大数量时允许下PO单,否则不允许下PO单
        4.行状态的修改限定给专门人员,其它人不能修改行状态
        5.PO单一经审核(行状态>=4),不允许修改数量与单价             (防止审批后采购人员修改PO单)
        6.特殊PO(非库存采购)的订单,按PO头控制其可输入的科目账号    (防止非库存采购时,费用记错科目)

如果超出以上任一限制,在输入数据时自动弹出提示框给出相应提示,直到符合条件才允许提交当前PO.


个人总结:
        1.对于WEB版FourthShift,我们可以按公司要求对系统进行一系列的限制,四班在这方面还是很不错的.
        2.定制时,不能太依赖于FourthShift提供的函数
        3.四班的回车键控制,应在panel_onsubmit()事件中实现,平常网页上的拦截回车键的代码,如
                function document.onkeydown(){ if (event.keyCode==13)...}
          在FS中根本不起任何作用.
        4.在WEB中读取数据库中的数据可以用xmlhttp机制实现,然后根据条件来判定当前输入是否允许.
 楼主| 发表于 2008/12/16 19:31:04 | 显示全部楼层
本帖最后由 FrankXu 于 2008-12-16 19:32 编辑

公布在FourthShift WebUI的WEB版,将回车键转换为Tab键的代码:
function panel_onsubmit()
{
        var objname=event.srcElement.name;
        if (typeof (objname) == "undefined") return false;
        if (objname != "SubBtn")  //不是回车按钮时,将光标移到下一控件后返回(此处也可指定其它控件)
        {
                var n=document.FSWebUI.elements.length;
                for(var i=4;i<n-1;i++)
                {
                        if(document.FSWebUI.elements.name == objname)
                        {
                                document.FSWebUI.elements[i+1].focus();
                                break;
                        }
                }
                return false;
        }
        else        //否则,提交表单
                return true;
}

注意,对应的
<FORM id="POMT" name="FSWebUI" method="POST">
可以直接修改,也可以通过定制产生onsubmit事件,再修改该函数的代码.
发表于 2009/2/3 14:38:29 | 显示全部楼层
user.js这个文件在哪个路径下?
 楼主| 发表于 2009/2/11 12:52:57 | 显示全部楼层
C:\Inetpub\wwwroot\FSWebUI\_ScriptLibrary\User.js
发表于 2009/4/16 15:24:29 | 显示全部楼层
morv 超订单入库,如何限制,请详细举例一下可以吗?初学者,不太懂。多谢!!!
 楼主| 发表于 2009/4/16 16:54:20 | 显示全部楼层
本帖最后由 FrankXu 于 2009/4/16 17:01 编辑

定制MOR1.XSL文件,适用版本是V7.4E_MC
这个定制很简单,不涉及到台后数据查询校验

<FORM id="MOR1" name="FSWebUI" method="POST">

function panel_onsubmit()     {
        var rtn=1; with(document.FSWebUI) {
                     if (fsIf(fsGetFieldValue(RECVTYPE_17) == "R" && typeof(MOVE_QTY_30)!="undefined"   )) {
                             if (fsIf( Number(fsGetFieldValue(TOTALQTY_36)) < ( Number(fsGetFieldValue(TOTALRCV_44)) + Number(fsGetFieldValue(MOVE_QTY_30)) + Number(fsGetFieldValue(MOVE_QTY_38)) + Number(fsGetFieldValue(MOVE_QTY_46)) )  )) {

                                     if (fsSetFieldValue(QUANTITY_28,0)<0) return false;
                                if (fsSetFieldValue(MOVE_QTY_30,0)<0) return false;
                                if (fsSetFieldValue(MOVE_QTY_38,0)<0) return false;
                                if (fsSetFieldValue(MOVE_QTY_46,0)<0) return false;

                                     if (fsShowMessageBox("现入库数量+已入库数量不能大于订货数量")<0) return false;
                             }
                     }
                     return rtn;
        }
     }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 09:07 , Processed in 0.022586 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表