📄 edit_goods.pas
字号:
unit EDIT_GOODS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FRMBASSDIALOGS, StdCtrls, TFlatEditUnit, TFlatPanelUnit,
ComCtrls, MenuBar, ToolWin, DsFancyButton, ExtCtrls, TFlatComboBoxUnit,
DB, DBTables,myself,frmmain;
type
TFrm_edit_goods = class(TFrm_bassDialogs)
FlatPanel_edit: TFlatPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label4: TLabel;
Label6: TLabel;
E_type: TFlatEdit;
E_ID: TFlatEdit;
E_price: TFlatEdit;
E_sellprice: TFlatEdit;
E_memo: TFlatEdit;
Label7: TLabel;
E_unit: TFlatEdit;
E_NAME: TFlatComboBox;
Query_data: TQuery;
procedure E_NAMEKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure E_IDExit(Sender: TObject);
procedure E_typeExit(Sender: TObject);
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);
private
{ Private declarations }
public
P_state:integer;
{ Public declarations }
end;
var
Frm_edit_goods: TFrm_edit_goods;
implementation
{$R *.dfm}
procedure TFrm_edit_goods.E_NAMEKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if (key=13) or (key=40) then { 判断是按执行键}
Begin
key:=0;
perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
end;
end;
procedure TFrm_edit_goods.E_IDExit(Sender: TObject);
begin
inherited;
if trim(E_id.Text) ='' then
E_id.Text :=Nowindex;
end;
procedure TFrm_edit_goods.E_typeExit(Sender: TObject);
begin
inherited;
if P_state=0 then
E_id.Text :=getstringpy(trim(E_name.Text))+getstringpy(trim(E_type.Text));
end;
procedure TFrm_edit_goods.FormCreate(Sender: TObject);
begin
inherited;
query_data.DatabaseName :=HWSHOPDATA;
P_state:=1; //0-增加 1-修改
end;
procedure TFrm_edit_goods.OKBtnClick(Sender: TObject);
begin
inherited;
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 goodsmessage 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 goodsmessage (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 goodsmessage 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 TFrm_edit_goods.FormShow(Sender: TObject);
var
B_find:boolean;
I_temp:integer;
begin
inherited;
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 goodsmessage 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 TFrm_edit_goods.E_priceKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if word(key)=46 then
begin
if strpos(pchar((sender as TFlatEdit).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 TFrm_edit_goods.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
QUERY_data.Free ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -