起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 新来小职员

写了几个事件后,运行时弹出个错误[问题]**

[复制链接]
发表于 2007-9-13 17:21:01 | 显示全部楼层
如果你的条件都对的话 优惠金额改变时应该不会触发事件啊 跟一下代码 监视一下这几个字段值的变化
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-13 17:28:48 | 显示全部楼层
合计金额是在DataSetBroker2中,优惠金额和优惠后金额是在DataSetBroker1中,
回复 支持 反对

使用道具 举报

发表于 2007-9-13 17:30:33 | 显示全部楼层
procedure TXSDSP.DataSetBroker2DataChange(Sender: TObject; Field: TDataField);
begin
     if (Field <> nil) and (Field.FieldName = 'HJJE') then
     begin
     DataSetBroker1.DataSet.Edit;
     //DataSetBroker2.DataSet.Edit;
     DataSetBroker1.DataSet.FieldByName('XSDDYHHJE').AsInteger:=DataSetBroker2.DataSet.FieldByName('HJJE').AsInteger-DataSetBroker1.DataSet.FieldByName('XSDDYHJE').AsInteger;
     //DataSetBroker1.DataSet.Open;
     end;
end;

procedure TXSDSP.DataSetBroker1UpdateData(Sender: TObject);
begin
     //DataSetBroker2.DataSet.Edit;
     //DataSetBroker1.DataSet.Edit;
     //DataSetBroker1.DataSet.FieldByName('XSDDYHHJE').AsInteger:=DataSetBroker2.DataSet.FieldByName('HJJE').AsInteger-DataSetBroker1.DataSet.FieldByName('XSDDYHJE').AsInteger;
end;

procedure TXSDSP.DataSetBroker1DataChange(Sender: TObject; Field: TDataField);
begin
     if (Field <> nil) and (Field.FieldName = 'XSDDYHJE') then
     begin
     DataSetBroker1.DataSet.Edit;
     //DataSetBroker2.DataSet.Edit;
     DataSetBroker1.DataSet.FieldByName('XSDDYHHJE').AsInteger:=DataSetBroker2.DataSet.FieldByName('HJJE').AsInteger-DataSetBroker1.DataSet.FieldByName('XSDDYHJE').AsInteger;
     //DataSetBroker1.DataSet.Open;
     end;
end;

是这样的?那请问执行哪句报出来1楼的错误?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-13 18:18:38 | 显示全部楼层
这你说的方法写的,和一楼的错误无关了,这样写是会象10楼那样,代码没报错,但是点了优惠金额优惠后金额的值就不显示了,因为不显示所以也不知道值赋给优惠后金额没有.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-13 18:21:11 | 显示全部楼层
是这样会出1楼错误

1.jpg

82.59 KB, 下载次数: 112

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-13 18:33:57 | 显示全部楼层
procedure TXSDSP.DataSetBroker2DataChange(Sender: TObject; Field: TDataField);
begin
     DataSetBroker1.DataSet.Edit;
     DataSetBroker1.DataSet.FieldByName('XSDDYHHJE').AsInteger:=DataSetBroker2.DataSet.FieldByName('HJJE').AsInteger-DataSetBroker1.DataSet.FieldByName('XSDDYHJE').AsInteger;
end;
这样写,改变DataSetBroker2的数据时赋值是成功了,但是改变优惠金额时优惠后金额会不显示,如果点一保存或是在DataSetBroker2中新增一条记录时,优惠后金额就会显示出来。
我就是想改进这方法,让它点优惠金额时,优惠后金额不会消失。
回复 支持 反对

使用道具 举报

发表于 2007-9-14 08:21:49 | 显示全部楼层
25楼,怎么又这样贴代码了呢?代码有问题,九需要看到所有代码

这样,先看24楼的代码,把你的例子上传上来吧,我恢复环境看看,不可能这样。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-14 16:43:05 | 显示全部楼层
晕,搞了半天终于清楚了,不是代码出问题,是设置了字段的自动填充,取消就不会出错了。
回复 支持 反对

使用道具 举报

发表于 2007-9-14 16:45:19 | 显示全部楼层
自动填充?你怎么设置的,说来听听
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-14 16:49:00 | 显示全部楼层
合计字段不能马上将合计的值显示出来要新增记录或保存才显示,我想让它立即显示,怎么做?
如果合计不立即更新值,那"优惠后金额"就不能立即取到"合计"的值与"优惠金额"进行计算
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-27 23:20 , Processed in 0.043181 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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