📄 czygl.pas
字号:
czymc.SetFocus;
chb.Visible := False;
end;
end;
procedure Tf_czygl.chbDblClick(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Return;
chb.OnKeyDown(sender,key,[ssShift]);
end;
procedure Tf_czygl.B3Click(Sender: TObject);
var
i: Integer;
begin
if (Trim(czymc.Text)<>'')and(Trim(czymm.Text)<>'')and(Trim(czyjb.Text)<>'')then
begin
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_employee where ygmc = :a');
paramByName('a').AsString := Trim(czymc.Text);
Open;
end;
if Data.Query2.RecordCount<0 then
begin
Application.MessageBox('员工不存在.','提示',64);
czymc.Clear;
Exit;
end
else
begin
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_czyxx where czymc = :a');
paramByName('a').AsString := Trim(czymc.Text);
Open;
end;
if Data.Query2.RecordCount>0 then
begin
Application.MessageBox('该操作员已经存在.','提示',64);
czymc.Clear;
Exit;
end;
end;
Try
Data.Database.StartTransaction;
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('insert t_czyxx values (:a,:b,:c)');
ParamByName('a').AsString := Trim(czymc.Text);
ParamByName('b').AsString := Trim(czymm.Text);
ParamByName('c').AsInteger := czyjb.ItemIndex;
ExecSQL;
end;
with data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('insert t_czyqx values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q)');
ParamByName('a').AsString := Trim(czymc.Text);
For i:=1 to 16 do
begin
if czyjb.ItemIndex = 1 then //系统管理员,具有所有权限
begin
Params[i].AsInteger := 0;
end
else
begin
if gn[i-1].Qx = True then
Params[i].AsInteger := 0
else
Params[i].AsInteger := 1;
end;
end;
ExecSQL;
end;
Data.Database.Commit;
B4.OnClick(Sender);
Application.MessageBox('操作成功.','提示',64);
b3.Enabled := False;
Except
Data.Database.Rollback;
Application.MessageBox('操作失败.','提示',64);
end;
end
else
Application.MessageBox('数据项不能为空.','提示',64);
end;
procedure Tf_czygl.czymmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key = vk_Return then
czyjb.SetFocus;
end;
procedure Tf_czygl.B9Click(Sender: TObject);
begin
Data.Query1.First;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B9.Enabled := False;
B10.Enabled := False;
B11.Enabled := True;
B12.Enabled := True;
EditValue;
end;
procedure Tf_czygl.B10Click(Sender: TObject);
begin
inherited;
Data.Query1.Prior;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B11.Enabled := True;
B12.Enabled := True;
if Data.Query1.Bof = True then
begin
B9.Enabled := False;
B10.Enabled := False;
end;
EditValue;
end;
procedure Tf_czygl.B11Click(Sender: TObject);
begin
inherited;
Data.Query1.Next;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B9.Enabled := True;
B10.Enabled := True;
if Data.Query1.Eof = True then
begin
B11.Enabled := False;
B12.Enabled := False;
end;
EditValue;
end;
procedure Tf_czygl.B12Click(Sender: TObject);
begin
inherited;
Data.Query1.Last;
B2.Enabled := True;
B3.Enabled := False;
B5.Enabled := True;
B9.Enabled := True;
B10.Enabled := True;
B11.Enabled := False;
B12.Enabled := False;
EditValue;
end;
procedure Tf_czygl.B1Click(Sender: TObject);
var
i: Integer;
begin
inherited;
czymc.Clear;
czymm.Clear;
b3.Enabled := True;
For i := 0 to 15 do
gn[i].Qx := False;
iniGrid;
czymc.SetFocus;
end;
procedure Tf_czygl.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Case Key of
VK_INSERT : if B1.Enabled = True then
B1.OnClick(Sender);
VK_F2: if B2.Enabled = True then
B2.OnClick(Sender);
VK_F3: if B3.Enabled = True then
B3.OnClick(Sender);
VK_End: if B4.Enabled = True then
B4.OnClick(Sender);
VK_Left: if (B9.Enabled = True)and(Shift =[ssAlt]) then
B9.OnClick(Sender);
VK_Up: if (B10.Enabled = True)and(Shift =[ssAlt]) then
B10.OnClick(Sender);
VK_Down: if (B11.Enabled = True)and(Shift =[ssAlt]) then
B11.OnClick(Sender);
VK_Right: if (B12.Enabled = True)and(Shift =[ssAlt]) then
B12.OnClick(Sender);
VK_DELETE: if B5.Enabled = True then
B5.OnClick(Sender);
VK_ESCAPE: if B8.Enabled = True then
B8.OnClick(Sender);
end;
end;
procedure Tf_czygl.B2Click(Sender: TObject);
var
i: Integer;
begin
if (Trim(czymc.Text)<>'')and(Trim(czymm.Text)<>'')and(Trim(czyjb.Text)<>'')then
if Application.MessageBox('确实要修改当前记录吗?','提示',mb_yesNo)=Id_Yes then
begin
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_employee where ygmc = :a');
ParamByName('a').AsString := Trim(czymc.Text);
Open;
end;
if Data.Query2.RecordCount<1 then
begin
czymc.Clear;
Application.MessageBox('该员工不存在.','提示',64);
end
else
begin
if Trim(czymc.Text)<>Trim(Data.Query1.FieldByName('czymc').AsString) then
begin
czymc.Text:=Data.Query1.FieldByName('czymc').AsString;
Application.MessageBox('操作员名称不能更改.','提示',64);
Exit;
end;
//如果操作员信息表中只有一个系统管理员,修改系统管理员为普通操作员将不允许修改操作员信息
if czyjb.ItemIndex = 0 then
if Data.Query1.FieldByName('czyjb').AsInteger = 1 then
begin
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_czyxx where czyjb = 1');
Open;
end;
if Data.Query2.RecordCount<=1 then
begin
Application.MessageBox('目前只有一个系统管理员,不能修改操作员级别.','提示',64);
Exit;
end;
end;
try
Data.Database.StartTransaction;
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('update t_czyxx set czymm = :a , czyjb = :b where czymc = :c');
ParamByName('a').AsString := Trim(czymm.Text);
ParamByName('b').AsInteger := czyjb.ItemIndex;
ParamByName('c').AsString := Trim(Data.Query1.FieldByName('czymc').AsString);
ExecSQL;
end;
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('update t_czyqx set bmdm = :a,fkdm = :b,cgth =:c,kcjgtz=:d,spdj =:e,kcsxsgl=:f,kczlwh =:g,bscl =:h,bycl=:i,xsth = :j,csjk =:k,csyfk=:l,khjk=:m,khyfk =:n,ycbhs=:o,lrfx = :p where czymc = :q');
ParamByName('q').AsString := Trim(Data.Query1.FieldByName('czymc').AsString);
if czyjb.ItemIndex = 1 then
begin
For i := 0 to 15 do
Params[i].AsInteger := 0;
end
else
begin
For i := 0 to 15 do
if gn[i].Qx = True then
Params[i].AsInteger := 0
else
Params[i].AsInteger := 1;
end;
ExecSQL;
end;
Data.Database.Commit;
b4.OnClick(Sender);
Application.MessageBox('修改成功.','提示',64);
Except
Data.Database.Rollback;
Application.MessageBox('修改失败.','提示',64);
end;
end;
end;
end;
procedure Tf_czygl.B5Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('确实要删除当前记录吗?','提示',mb_yesno)=id_yes then
begin
//如果当前只有一个系统管理员,不允许删除系统管理员
if Data.Query1.FieldByName('czyjb').AsInteger = 1 then
begin
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_czyxx where czyjb = 1');
Open;
end;
if Data.Query2.RecordCount<=1 then
begin
Application.MessageBox('目前只有一个系统管理员,不能删除系统管理员.','提示',64);
Exit;
end;
end;
Try
Data.Database.StartTransaction;
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('delete t_czyqx where czymc = :a');
ParamByName('a').AsString := Trim(Data.Query1.FieldByName('czymc').AsString);
ExecSQL;
end;
Data.Query1.Delete;
Data.Database.Commit;
Application.MessageBox('删除成功.','提示',64);
B4.OnClick(Sender);
Except
Data.Database.Rollback;
Application.MessageBox('操作失败.','提示',64);
end;
end;
end;
procedure Tf_czygl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Data.Query1.RequestLive := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -