📄 goodseditunit.pas
字号:
unit GoodsEditUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, DBTables;
type
TGoodsEditForm = class(TForm)
Query_data: TQuery;
PanelBkGnd: TPanel;
Panel_button: TPanel;
Bevel_button: TBevel;
OKBtn: TButton;
CancelBtn: TButton;
FlatPanel_edit: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
E_type: TEdit;
E_ID: TEdit;
E_price: TEdit;
E_sellprice: TEdit;
E_memo: TEdit;
E_unit: TEdit;
E_NAME: TComboBox;
procedure E_NAMEKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure E_priceKeyPress(Sender: TObject; var Key: Char);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CancelBtnClick(Sender: TObject);
private
{ Private declarations }
public
P_state: integer;
{ Public declarations }
end;
var
GoodsEditForm: TGoodsEditForm;
implementation
uses MainUnit, FunctionUnit, GoodsInfoUnit;
{$R *.dfm}
procedure TGoodsEditForm.E_NAMEKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = 13) or (key = 40) then { 判断是按执行键}
begin
key := 0;
perform(WM_NEXTDLGCTL, 0, 0); {移动到下一个控件}
end;
end;
procedure TGoodsEditForm.FormCreate(Sender: TObject);
begin
query_data.DatabaseName := 'CPXSGL';
P_state := 1; //0-增加 1-修改
end;
procedure TGoodsEditForm.OKBtnClick(Sender: TObject);
begin
if trim(E_name.Text) = '' then
begin
messagedlg(Errormsg0002 + '0002', mtError, [mbok], 0);
E_name.SetFocus;
exit;
end;
if trim(E_type.Text) = '' then
begin
messagedlg(Errormsg0002 + '0014', mtError, [mbok], 0);
E_name.SetFocus;
exit;
end;
if trim(E_ID.Text) = '' then
begin
messagedlg(Errormsg0002 + '0003', mtError, [mbok], 0);
E_id.SetFocus;
exit;
end;
if P_state = 0 then //增加数据
begin
if not Checkrights(USERRIGHTS, '增加') then
begin
messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
exit;
end;
with query_data do
begin
close;
sql.Clear;
sql.Text := 'select * from goods where id="' + uppercase(E_id.Text) + '"';
try
open;
except
messagedlg(Errormsg0001 + '0012', mtError, [mbok], 0);
close;
self.Close;
end;
if RecordCount > 0 then //编号已存在
begin
messagedlg(Errormsg0003 + '0004', mtError, [mbok], 0);
E_id.SetFocus;
close;
exit;
end
else //编号不存在则增加
begin
close;
sql.Clear;
sql.Text := 'insert into goods (name,type,id,unit,price,sellprice,memo)' +
'values ("' + E_name.Text + '","' + E_type.Text + '","' + uppercase(E_id.Text)
+ '","' + E_unit.Text + '","' + E_price.Text + '","' + E_sellprice.Text + '","'
+ E_memo.Text + '")';
try
execsql;
except
messagedlg(Errormsg0004 + '0013', mtError, [mbok], 0);
close;
self.Close;
end;
end;
messagedlg(Infmsg0001, mtInformation, [mbok], 0);
close;
end;
end
else if P_state = 1 then //修改数据
begin
if not Checkrights(USERRIGHTS, '编辑') then
begin
messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
exit;
end;
with query_data do
begin
close;
sql.Clear;
sql.Text := 'update goods set name="' + E_name.Text + '",type="' + E_type.Text
+ '",unit="' + E_unit.Text + '",price="' + E_price.Text + '",sellprice="'
+ E_sellprice.Text + '",memo="' + E_memo.Text + '" where id="' + E_id.text + '"';
try
execsql;
except
messagedlg(Errormsg0004 + '0013', mtError, [mbok], 0);
close;
self.Close;
end;
messagedlg(Infmsg0003, mtInformation, [mbok], 0);
close;
end;
end;
if P_state = 0 then //继续增加
begin
e_name.SetFocus;
e_type.Text := '';
e_unit.Text := '';
e_memo.Text := '';
e_price.Text := '';
e_sellprice.Text := '';
end
else
self.Close;
end;
procedure TGoodsEditForm.FormShow(Sender: TObject);
var
B_find: boolean;
I_temp: integer;
begin
if P_state = 1 then
begin
E_id.ReadOnly := true;
OKBtn.Enabled := Checkrights(USERRIGHTS, '编辑');
end
else
begin
E_id.ReadOnly := false;
OKBtn.Enabled := Checkrights(USERRIGHTS, '增加');
end;
with query_data do
begin
close;
sql.Clear;
sql.text := 'select * from goods order by name';
open;
while not eof do
begin
B_find := false;
for I_temp := 0 to e_name.Items.Count - 1 do
begin
if e_name.Items.Strings[I_temp] = fieldbyname('name').asstring then
B_find := true; //找到相同名称
end;
if not B_find then //没有找到时增加
e_name.Items.add(fieldbyname('name').asstring);
next;
end;
end;
end;
procedure TGoodsEditForm.E_priceKeyPress(Sender: TObject; var Key: Char);
begin
if word(key) = 46 then
begin
if strpos(pchar((sender as TEdit).Text), chr(46)) <> nil then key := chr(0);
end
else if (word(key) <> 8) and (word(key) < 48) or (word(key) > 57) then key := chr(0);
end;
procedure TGoodsEditForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
QUERY_data.Free;
end;
procedure TGoodsEditForm.CancelBtnClick(Sender: TObject);
begin
Self.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -