今天在做一个单据,遇到程序锁的问题,经过与开发GG的讨论,针对三种不同操作类型分别进行了控制,总结如下:
新建时:在单据时,根据屏幕公司代码、财年、凭证编号、行项目号,检查行项目表是否已有记录,如果没有,则允许创建成功;如果已有记录,则根据该记录对应的单据编号、财年(两个主键)从抬头表获取该单据状态是否为作废状态,如果为作废状态,则允许创建成功,如果不是作废状态,则提示错误消息:“单据已存在,请勿重复创建!”。
维护时:此时单据已经存在,第一个维护者可根据单据编号、财年锁定当前单据,后操作者可查看单据,但在单据主界面不显示任何可修改或提交的操作按钮。
作废时:将当前操作用户与创建者比对,如一致,可作废,此时弹出确认窗口,确认后提示作废成功;如果不一致,则不允许作废,并提示错误消息:“只允许单据创建人执行作废操作!”。