起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 241|回复: 13

【结帖】需要这样的约束情况,帮忙看看,如何解决?**

[复制链接]
发表于 2008-3-31 09:17:40 | 显示全部楼层 |阅读模式
嗯 是这样:我们有合同的审批流程 合同包括合同主表和合同明细表,我们希望销售员提交合同审批后,如果审批结果为通过,我们希望控制合同明细只能添加和修改不能删除明细信息.请问如何做到?
回复

使用道具 举报

发表于 2008-3-31 09:26:51 | 显示全部楼层
设置数据策略可以控制
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 09:33:20 | 显示全部楼层
呵呵 我的控制是有条件的 就是审批通过字段必须为通过 才进行约束.否则不约束.请 看看1楼的具体需求 给出一个详细的解决办法好吧,哪怕是如果写代码完成也可以的. 拜托.
回复 支持 反对

使用道具 举报

发表于 2008-3-31 09:33:53 | 显示全部楼层
数据集策略,代码参考
TYWGN8(FuncBroker1.Func).DataSetPolicy1.Operations := [Business.Model.TDataOperation.ooInsert,
     Business.Model.TDataOperation.ooModify];
http://bbs.justep.com/forum.php? ... D%BC%AF%B2%DF%C2%D4
具体论坛里搜索吧,挺多的相关帖子
回复 支持 反对

使用道具 举报

发表于 2008-3-31 09:35:07 | 显示全部楼层
看4楼,根据条件代码自己去控制
实在不行,就接管DataNavigatorBeforeAction事件,参考代码请以‘BizActnConsts’搜索!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 10:29:03 | 显示全部楼层
我试了下 通过代码控制数据集策略 怎么没有效果啊>是否还要设置什么啊? 我是参考4楼说的做的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 10:37:05 | 显示全部楼层
我是这样解决问题的:
代码如下:
procedure TLRCT.DataSetBroker2AfterScroll(DataSet: TDataSet);
begin
     if DataSetBroker2.DataSet.FieldByName('IsApprovedOk').AsInteger=1 then
     begin
     TBJXSLR(FuncBroker.Func).DataSetPolicy2.Operations := [Business.Model.TDataOperation.ooInsert];
     TBJXSLR(FuncBroker.Func).DataSetPolicy1.Operations := [Business.Model.TDataOperation.ooInsert];
     end

end;
其中DataSetPolicy1定义在合同主表的数据集策略 DataSetPolicy2 为合同明细上的数据集策略.
DataBroker2为主数据集合同主表的数据代理. 滚动时判断审批字段的值然后决定控制要求.
回复 支持 反对

使用道具 举报

发表于 2008-3-31 10:38:41 | 显示全部楼层
那就是说解决了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 10:42:50 | 显示全部楼层
没有啊 老大.呵呵.. 这样做没有效果 审批同意的合同明细依然可以修改和删除的. 没解决啊 老兄.呵呵... 问题出现哪里啊?
回复 支持 反对

使用道具 举报

发表于 2008-3-31 10:43:57 | 显示全部楼层
注意,需要重新打开数据集,否则修改无效!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 14:48 , Processed in 0.040156 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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