起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 179|回复: 7

【结贴】applyupdates问题**

[复制链接]
发表于 2009-3-17 15:08:11 | 显示全部楼层 |阅读模式
我在一个数据集的“afterapplyupdates”事件下更新另外一个数据集,用的是applyupdates,报错:“正在保存”
回复

使用道具 举报

 楼主| 发表于 2009-3-17 15:17:05 | 显示全部楼层
请帮忙分析下啥原因
回复 支持 反对

使用道具 举报

发表于 2009-3-17 15:24:31 | 显示全部楼层
这两个数据集有关系吗?例如定义了主从关系。

如果有主从关系,请问出于啥原因要在一个数据集的afterapplyupdates事件中更新另外一个数据集,代码怎么写的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-17 16:06:14 | 显示全部楼层
有主从关系,代码是这样的:procedure TGWGLXX_INFO.DataSetCLB_DataSetAfterApplyUpdates(Sender: TObject; var OwnerData: object);
var
  lReadOnly: Boolean;
  lUnitBizKind: string;
begin
  lUnitBizKind := SYSTEMUTILS.TContextUtils.GetFlowControl(Self.Context).CurrentTask.BizKind;
  with DataSetGWGLXX_DataSet do
  begin
    if SysUtils.SameText(lUnitBizKind, '公文修改申请') then
    begin
      edit;
      FieldByName('FWritePosID').AsString := ProcessPosID;
      Post;
      //ApplyupDates;
    end
    else if SysUtils.SameText(lUnitBizKind, '部门审核') then  //20090216赵常坤
    begin
       lReadOnly := FieldByName('FMeetingCheckPer').ReadOnly;
    if lReadOnly then
      FieldByName('FMeetingCheckPer').ReadOnly := False;
    try
      Edit;
      if StrUtils.AnsiContainsText(FieldByName('FMeetingCheckPer').AsString,ProcessPerName) then
      begin
        FieldByName('FMeetingCheckPer').AsString := FieldByName('FMeetingCheckPer').AsString;
      end
      else
        FieldByName('FMeetingCheckPer').AsString := FieldByName('FMeetingCheckPer').AsString+'  '+ProcessPerName;

    finally
      if lReadOnly then
        FieldByName('FMeetingCheckPer').ReadOnly := lReadOnly;
    end;
      Post;
        ApplyupDates;
   end;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2009-3-17 16:11:58 | 显示全部楼层
主从关系的提交,如果是代码直接执行ApplyupDates 或者 ApplyupDates(true) 或者用数据导航的保存按钮,那么是主从数据集一起提交的。
像你这样的需求,要不就是自己用个按钮来执行保存动作,即处理这两个数据集的字段的值,并执行这两个数据集ApplyupDates(False),记住带false参数。要不在数据导航的BeforeAction 上判断是否点击的保存按钮,然后实现自己的逻辑。这个可以用“BeforeAction” 在bbs上搜索有许多的说明
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-17 16:38:54 | 显示全部楼层
带上False是什么意思?
回复 支持 反对

使用道具 举报

发表于 2009-3-17 17:07:37 | 显示全部楼层
ApplyUpdates(True)方法,是主从关联提交
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-17 17:26:49 | 显示全部楼层
明白,谢谢,结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 04:43 , Processed in 0.037568 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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