起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 800|回复: 11

[问题]TDataNavigator的新增复制问题**

[复制链接]
发表于 2007-1-9 10:42:01 | 显示全部楼层 |阅读模式
TDataNavigator的新增复制,如果用弹出窗体编辑数据,取消时,DataSet.Cancel,会再次触发数据集的OnNewRecord事件.
回复

使用道具 举报

发表于 2007-1-9 13:33:15 | 显示全部楼层
你的代码是怎么写的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-10 08:29:43 | 显示全部楼层
一个非常简单的写法:在数据集的OnNewRecord事件里弹出一个编辑窗体,在窗体关闭时取消数据集的更新.
回复 支持 反对

使用道具 举报

发表于 2007-1-10 10:47:07 | 显示全部楼层
没有能重现,是这样做的吗?如果不是,请明示
procedure TMainForm.DataSetBroker1NewRecord(DataSet: TDataSet);
var
  lForm:TCT1;
begin
    lForm :=TCT1.Create(Self.Context);  //得到窗体B的实例
    try
      lForm.Showmodal;
    finally
      lForm.Free;
    end;
end;
procedure TCT1.BizFormClose(Sender: TObject; var Action: TCloseAction);
begin
  DataSetBroker1.DataSet.Cancel;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-10 12:43:18 | 显示全部楼层
在信息层做:在数据集的NewRecord事件里下代码
procedure TYWXX1.DataSetBZSJJ1NewRecord(DataSet: TDataSet);
begin
  with TCT1.Create(self.Context) do
  begin
    try
      if ShowModal <> Business.Forms.Controls.mrOK then
        DataSetBZSJJ1.Cancel;
    finally
      Free;
    end;
  end;
end;

附测试包:

测试包.rar

20.15 KB, 下载次数: 286

回复 支持 反对

使用道具 举报

发表于 2007-1-10 13:50:52 | 显示全部楼层
楼主,不会吧,我把你的资源包导入进去了,取消时,DataSet.Cancel,不会触发数据集的OnNewRecord事件.

我在2277上测试过了
回复 支持 反对

使用道具 举报

发表于 2007-1-10 18:20:29 | 显示全部楼层
”新增复制“,注意是 “新增复制”
回复 支持 反对

使用道具 举报

发表于 2007-1-11 11:00:10 | 显示全部楼层
哦,我好像没有注意到这点,抱歉。上午机器有点问题,回头我再仔细看一下,然后根贴告知
回复 支持 反对

使用道具 举报

发表于 2007-1-11 15:50:23 | 显示全部楼层
搂住,确实有你说的现象,已经做为缺陷提交,现在新增和插入是正常的,新增复制和插入复制都不正常。
回复 支持 反对

使用道具 举报

发表于 2007-1-11 17:16:05 | 显示全部楼层
估计又要说新版本解决了,
劝楼主自觉升级吧
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-23 21:54 , Processed in 0.040336 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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