📄 editproduct.pas
字号:
unit Editproduct;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzTabs, ExtCtrls, RzPanel, RzButton, DBCtrls, RzDBNav, StdCtrls,
ComCtrls, RzDBEdit, RzCmboBx, RzDBCmbo, Mask, RzEdit, DB;
type
TEditProductForm = class(TForm)
RzGroupBox1: TRzGroupBox;
Label1: TLabel;
RzDBEdit1: TRzDBEdit;
Label2: TLabel;
RzDBEdit2: TRzDBEdit;
Label3: TLabel;
Label4: TLabel;
RzDBEdit3: TRzDBEdit;
Label5: TLabel;
RzDBEdit4: TRzDBEdit;
Label6: TLabel;
Label7: TLabel;
RzDBEdit5: TRzDBEdit;
RzDBNavigator1: TRzDBNavigator;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzDBComboBox1: TRzDBComboBox;
RzDBMemo1: TRzDBMemo;
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RzDBEdit1Exit(Sender: TObject);
//检测可能存在的重复编号及重复产品信息
procedure TestProduct(ID:integer);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
EditProductForm: TEditProductForm;
implementation
uses DM;
{$R *.dfm}
procedure TEditProductForm.RzBitBtn1Click(Sender: TObject);
begin
//保存
if DM1.ADODataSet5.Modified then
DM1.ADODataSet5.UpdateBatch;
Close;
end;
procedure TEditProductForm.RzBitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TEditProductForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//不保存退出
DM1.ADODataSet5.Cancel;
end;
procedure TEditProductForm.RzDBEdit1Exit(Sender: TObject);
begin
//检测可能存在的重复编号
TestProduct(TRzDBEdit(sender).Tag);
end;
procedure TEditProductForm.TestProduct(ID: integer);
var
Key : array [1..2] of String;
Text: array [1..2] of String;
begin
//检测可能存在的重复编号及重复产品信息
Key[1] := 'ID';
Key[2] := 'ProductName';
Text[1] := RzDBEdit1.Text;
Text[2] := RzDBEdit2.Text;
with DM1.ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('Select * from ProductInfo where '+Key[ID]+'=:PM');
Parameters.ParamByName('PM').Value:=Text[ID];
Open;
if ID=1 then
Key[ID]:='ID';
if ((DM1.ADODataSet5.State in[dsEdit])and(RecordCount=1)and(RzDBEdit1.Text<>DM1.ProductNo[ID]))or
((DM1.ADODataSet5.State in[dsInsert])and(RecordCount>0))then begin
Messagebox(handle,pchar('您输入的“'+Key[ID]+'”已存在,请重新输入!'),'错误',MB_OK+MB_ICONERROR);
case ID of
1 : begin
RzDBEdit1.SetFocus;
RzDBEdit1.Undo;
end;
2 : begin
RzDBEdit2.SetFocus;
RzDBEdit2.Undo;
end;
end;
end;
except
end;
end;
procedure TEditProductForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if DM1.ADODataSet5.State in[dsEdit,dsInsert] then begin
if Messagebox(handle,'您确定要放弃对产品信息的修改吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then
CanClose:=true
else CanClose:=false;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -