当前位置:主页>仓库管理软件> 列表

Delphi中如何加判断语句判断刚刚输入的记录是重复的信息

进销存管理软件版1楼: 问一下:情况:在调价单中输入一条记录(商品编号、商品名称、新进价、供应商信息等等),在调进价单模块输入相同的商品时请增加提示功能。目前在调进价单中输入了相同的商品系统没有提示,到单据保存时出现单据不能保存。
我现在的想法是:在Query1.NewRecord事件中添加代码,先在数据库中判断一下,看有没有这条记录,如果有相同的商品编码就MessageDlg()提示一下。这个要怎么写代码?
一种是在‘保存’按钮事件中写;一种是在 Query1.NewRecord中加判断?
我现在想用Query1GoodsID.NewValue= Query1GoodsID.OldValue作判断,怎么作?
急!!!!!!!!!!

2楼: 在''保存''按钮事件中写个check函数,返回boolean;就可以了。
procedure BtnSaveClick(Sender : TObject);
var
cur_ware_id : string
begin
cur_ware_id := ''xxx'';
if IsWareExist(cur_ware_id) then
begin
messagebox(...);
exit;
end;
执行插入;
end;

function IsWareExist(a_ware_id : string) : Boolean;
var
sqlstr : string;
begin
result := false;
sqlstr := '' select ware_id from ware where ware_id = '''''' + a_ware_id + '''''' ''
query.close;
query.sql.clear;
query.sql.add(sqlstr);
query.open;
if query.recordcount > 0 then
result := ture;
query.close;
end; 如销售管理软件

3楼: 在数据库设主键

4楼: 能不能不在‘保存’按钮写?

5楼: 楼上的方法:
procedure BtnSaveClick(Sender : TObject);
begin
try
执行插入;
except
messagebox(...);
exit;
end;
end;

6楼: 在‘保存’按钮写是比较好的方法,在保存之前都有可能变动数据的;

进销存管理软件版7楼: 现在‘保存’按钮已经写好了,用户要求在输入的时候加多一个提示的。

8楼: 你的输入框是什么?Edit?
那可以写到change事件里,或者其他控件的keypress

9楼: 在保存的时候判断是比较好的,因为不只一个客户端在录入商品信息,你如果在输入的过程中就判断,那么在输入的时候可能是不重复的,之后其它客户端可能又占用了这个号,所以在保存的时候就重复了,让用户很难理解的。

我的做法是:加唯一约束,然后在提交之前截获这个约束错误,换成比较人性化的提示。

10楼: FRDBGrid

11楼: 你是直接用在grid里录入的吗?那将判断写到beforepost里比较合适了,如果重复就abort掉。

12楼: 二楼的方法不是挺好的吗?


对你 保存 按钮也不需要改动内容,只是在之前进行一个检查而已,而且也有你要的 提示 如记账

13楼: 多人接受答案了。