📄 vehheader.~pas
字号:
unit VehHeader;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Grids, DBGrids, StdCtrls, ComCtrls, ToolWin,db,ADODB,StrUtils;
type
TfrmVehHead = class(TForm)
ToolBar1: TToolBar;
btnAdd: TToolButton;
btnEdit: TToolButton;
ToolButton2: TToolButton;
btnSave: TToolButton;
ToolButton5: TToolButton;
btnDel: TToolButton;
btnCancel: TToolButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
edtID: TEdit;
edtName: TEdit;
dgDB: TDBGrid;
ImageList1: TImageList;
edtMemo: TEdit;
Label3: TLabel;
procedure dgDBCellClick(Column: TColumn);
procedure btnAddClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
procedure execute_sql(sql:String);
procedure item_clear;
function Check_HaveData:Boolean;
{ Public declarations }
end;
var
frmVehHead: TfrmVehHead;
crossSql:String; //用于sql操作的
flag:boolean;
implementation
uses dbConn;
{$R *.dfm}
procedure TfrmVehHead.execute_sql(sql:String);
var
ds:TDataSource;
rs:TADODataSet;
begin
try
ds:=TDataSource.Create(nil);
rs:=TADODataSet.Create(nil);
rs.Connection := cn_public;
rs.CommandText :=sql;
rs.Open ;
rs.Active := true;
dgDB.DataSource :=ds;
ds.DataSet := rs;
except
on E:Exception do begin
ds.Free ;
rs.Free ;
end;
end;
end;
procedure TfrmVehHead.item_clear;
begin
edtID.Text :='';
edtName.Text :='';
edtMemo.Text :='';
end;
function TfrmVehHead.Check_HaveData:Boolean ;
var
tmp:String;
i:Integer;
begin
if edtID.Text='' then
begin
messagebox(0,'该信息不允许为空!','汽车类型',64);
edtID.SetFocus ;
result:= false;
exit;
end;
if Length(trim(edtName.Text ))<2 then
begin
messagebox(0,'该信息请设置为两位有效数字数字!','汽车类型',64);
edtName.SetFocus ;
result:= false;
exit;
end;
if edtName.Text='' then
begin
messagebox(0,'该信息不允许为空!','汽车类型',64);
edtName.SetFocus ;
result:= false;
exit;
end;
tmp:=trim(edtName.text);
if length(tmp)>3 then
begin
MessageBox(0,'输入长度过于长', '汽车类型', 64);
edtName.SetFocus;
result:=false;
exit;
end;
{
for i:=1 to length(tmp) do
begin
if ((midbstr(tmp,i,1)>='0')and(midbstr(tmp,i,1)<='9')) then
else
begin
MessageBox(0,'用户名必须是字母或数字', '汽车类型', 64);
edtName.SetFocus;
result:=false;
exit;
end;
end;
}
result:= true;
end;
procedure TfrmVehHead.btnAddClick(Sender: TObject);
begin
btnAdd.Enabled := false;
btnEdit.Enabled := false;
btnSave.Enabled := true;
btnDel.Enabled := false;
self.item_clear;
edtId.Text := IntToStr(1);
edtID.ReadOnly := false;
edtName.Enabled := true;
edtMemo.Enabled := true;
edtName.SetFocus ;
flag:= true; //若为true时,为添加数据
end;
procedure TfrmVehHead.btnEditClick(Sender: TObject);
begin
if (edtID.Text<>'') and (edtName.Text<>'') then
begin
btnAdd.Enabled := false;
btnEdit.Enabled := false;
btnSave.Enabled := true;
btnDel.Enabled := false;
edtID.Enabled := false; //计算机编号不允许编辑
edtName.Enabled := false;
edtMemo.Enabled := true;
flag:= false; //标记为修改状态
end
else
messagebox(0,'无数据编辑!','汽车类型',64);
end;
procedure TfrmVehHead.btnSaveClick(Sender: TObject);
var
rs:TADODataSet;
begin
if Check_HaveData=true then
begin
if flag=true then //true;Add状态
begin
crossSql:='';
crossSql:='SELECT DMZ,DMSM FROM photocheck.P_CODE WHERE DMLB=''2'' and DMZ='''+trim(edtName.Text )+'''';
rs:=TADODataSet.Create(nil);
rs.Connection := cn_public;
rs.CommandText := crossSql;
rs.Open ;
if rs.Recordset.RecordCount >0 then
begin
rs.Close ;
messagebox(0,'已存在该条数据!','汽车类型',16);
edtName.SelectAll ;
edtName.SetFocus ;
exit;
end
else //若没有该数据,则插入
begin
rs.Close ;
crossSql:='';
crossSql:='INSERT INTO photocheck.P_CODE (DMLB,DMZ,DMSM) VALUES(';
crossSql:= crossSql + ' ''2'',';
crossSql:= crossSql + ' '''+trim(edtName.Text)+''',';
crossSql:= crossSql + ' '''+trim(edtMemo.Text)+''')';
dbConn.Execute_SQL(crossSql);
crossSql:='';
crossSql:='SELECT DMLB,DMZ,DMSM FROM photocheck.P_CODE WHERE DMLB=''2''';
self.execute_sql(crossSql);
messagebox(0,'添加成功!','汽车类型',64);
edtId.Enabled := false;
edtName.Enabled := false;
edtMemo.Enabled := false;
self.item_clear ;
end;
end
else
if flag=false then //false :处于编辑状态
begin
crossSql:='';
crossSql:='UPDATE photocheck.P_CODE SET DMSM='''+trim(edtMemo.Text)+''' WHERE DMLB=''2'' AND DMZ='''+trim(edtName.Text )+'''';
dbConn.Execute_SQL(crossSql);
crossSql:='';
crossSql:='SELECT DMLB,DMZ,DMSM FROM photocheck.P_CODE WHERE DMLB=''2''';
self.execute_sql(crossSql);
messagebox(0,'修改成功!','汽车类型',64);
end;
self.item_clear ;
btnAdd.Enabled := true;
btnEdit.Enabled := true;
btnSave.Enabled := false;
btnDel.Enabled := true;
edtID.Enabled := false;
edtName.Enabled := false;
edtMemo.Enabled := false;
end;
end;
procedure TfrmVehHead.btnDelClick(Sender: TObject);
begin
if (edtID.Text<>'') and (edtName.Text<>'') then
begin
if messagedlg('你确定要删除这个 '+edtName.Text+' 类型吗?',mtConfirmation,[mbYes,mbno],0)=mrYes then
begin
crossSql:='';
crossSql:='DELETE FROM photocheck.P_CODE WHERE DMLB=''2'' AND DMZ='''+trim(edtName.Text)+'''';
dbConn.Execute_SQL(crossSql);
crossSql:='';
crossSql:='SELECT * FROM photocheck.P_CODE WHERE DMLB=''2''';
self.execute_sql(crossSql);
self.item_clear ;
messagebox(0,'成功删除!','汽车类型',64);
end
else
begin
exit;
end;
btnAdd.Enabled := true;
btnEdit.Enabled := true;
btnSave.Enabled := false;
btnDel.Enabled := true;
edtID.Enabled :=false;
edtName.Enabled := false;
edtMemo.Enabled := false;
end
else //无数据删除
begin
messagebox(0,'无数据删除!','汽车类型',64);
end;
end;
procedure TfrmVehHead.btnCancelClick(Sender: TObject);
begin
self.item_clear ;
btnAdd.Enabled := true;
btnEdit.Enabled := true;
btnSave.Enabled := false;
btnDel.Enabled := true;
edtID.Enabled := false;
edtMemo.Enabled := false;
edtName.Enabled := false;
end;
procedure TfrmVehHead.dgDBCellClick(Column: TColumn);
begin
btnAdd.Enabled := true;
btnEdit.Enabled := true;
btnSave.Enabled := false;
btnDel.Enabled := true;
edtId.Enabled := false;
edtName.Enabled := false;
edtMemo.Enabled := false;
edtID.Text := dgDB.DataSource.DataSet.FieldByName('DMLB').AsString ;
edtName.Text := dgDB.DataSource.DataSet.FieldByName('DMZ').AsString ;
edtMemo.Text := dgDB.DataSource.DataSet.FieldByName('DMSM').AsString ;
end;
procedure TfrmVehHead.FormShow(Sender: TObject);
begin
btnSave.Enabled := false;
edtID.Enabled := false;
edtName.Enabled := false;
edtMemo.Enabled := false;
crossSql:='SELECT * FROM photocheck.P_CODE WHERE DMLB=''2''';
self.execute_sql(crossSql);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -