📄 operator.pas
字号:
unit operator;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, baseform, StdCtrls, Grids, DBGrids, ExtCtrls, DB;
type
Tf_operator = class(Tf_baseform)
Label1: TLabel;
Panel1: TPanel;
Grid1: TDBGrid;
Panel2: TPanel;
Panel3: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Username: TEdit;
ShortName: TEdit;
Password: TEdit;
Level: TComboBox;
Add: TButton;
Update: TButton;
Delete: TButton;
Cancel: TButton;
Label6: TLabel;
Field: TComboBox;
Label7: TLabel;
Value: TEdit;
Query: TButton;
Source: TDataSource;
procedure UsernameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Grid1CellClick(Column: TColumn);
procedure AddClick(Sender: TObject);
procedure UpdateClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
procedure QueryClick(Sender: TObject);
private
{ Private declarations }
public
Function EditIsNull: Boolean;//判断编辑框是否为空
Function OperatorIsMore(operatorname: String): Boolean;//判断操作员是否重复
{ Public declarations }
end;
var
f_operator: Tf_operator;
implementation
uses data;
{$R *.dfm}
procedure Tf_operator.UsernameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key = vk_Return then
FindNext(True);
end;
procedure Tf_operator.CancelClick(Sender: TObject);
var
i: Integer;
begin
inherited;
For i :=0 to Panel1.ControlCount-1 do
if Panel1.Controls[i] is TEdit then
TEdit(Panel1.Controls[i]).Clear
else if Panel1.Controls[i]is TComboBox then
TComboBox(Panel1.Controls[i]).ItemIndex := 0;
With t_Data.Operator do
begin
Close;
SQL.Clear;
SQL.Add('Select * From tb_operator');
Open;
end;
if t_data.Operator.RecordCount>0 then
Source.DataSet := t_data.Operator
else
begin
Source.DataSet := Nil;
t_data.Operator.Close;
end;
end;
procedure Tf_operator.FormShow(Sender: TObject);
begin
inherited;
Cancel.Click;
end;
procedure Tf_operator.Grid1CellClick(Column: TColumn);
begin
inherited;
if t_data.Operator.Active then
begin
UserName.Text := Trim(t_data.Operator.FieldByName('name').AsString);
Password.Text := Trim(t_data.Operator.FieldByName('password').AsString);
ShortName.Text := Trim(t_data.Operator.FieldByName('Shortname').AsString);
Level.ItemIndex := Level.Items.IndexOf(Trim(Trim(t_data.Operator.FieldByName('oplevel').AsString))) ;
end;
end;
function Tf_operator.EditIsNull: Boolean;
var
i: Integer;
begin
Result := False;
For i := 0 to Panel1.ControlCount-1 do
if Panel1.Controls[i]is TEdit then
if Trim(TEdit(Panel1.Controls[i]).Text)= '' then
begin
Result := True;
Break;
end;
end;
procedure Tf_operator.AddClick(Sender: TObject);
begin
inherited;
if EditIsNull = False then
begin
if OperatorIsMore(Trim(Username.Text)) = False then
begin
Try
With t_data.Insert1 do
begin
Close;
SQL.Clear;
SQL.Add('Insert into tb_operator Values(:name,:shortname,:level,:password)');
Parameters.ParamByName('name').Value := Trim(Username.Text);
Parameters.ParamByName('shortname').Value := Trim(Shortname.Text);
Parameters.ParamByName('level').Value := Trim(Level.Text);
Parameters.ParamByName('password').Value := Password.Text;
ExecSQL;
end;
Application.MessageBox('操作成功.','提示',64);
Except
Application.MessageBox('操作失败.','提示',64);
End;
Cancel.Click;
end
else
begin
Application.MessageBox('该操作员已经存在','提示',64);
Username.SetFocus;
end;
end
else
Application.MessageBox('操作员信息不能为空.','提示',64);
end;
function Tf_operator.OperatorIsMore(operatorname: String): Boolean;
begin
Result := False;
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * From tb_operator where name = :name');
Parameters.ParamByName('name').Value := Trim(operatorname);
Open;
end;
if t_data.Query1.RecordCount>0 then
Result := True;
t_data.Query1.Close;
end;
procedure Tf_operator.UpdateClick(Sender: TObject);
begin
inherited;
if t_data.Operator.Active then
begin
if EditIsNull = False then
begin
if Application.MessageBox('确实要修改当前操作员信息吗?','提示',mb_yesno)= id_yes then
begin
if Trim(Username.Text)<>Trim(t_data.Operator.FieldByName('name').AsString) then
begin
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tb_operator where name = :name');
Parameters.ParamByName('name').Value := Trim(Username.Text);
Open;
end;
if t_data.Query1.RecordCount>0 then
begin
Application.MessageBox('该操作员已经存在.','提示',64);
Exit;
end;
end;
Try
With t_data.Update1 do
begin
Close;
SQL.Clear;
SQL.Add('Update tb_operator set name = :name,oplevel = :level,password = :password,shortname = :shortname where name = :oldname');
Parameters.ParamByName('name').Value := Trim(Username.Text);
Parameters.ParamByName('password').Value := Trim(Password.Text);
Parameters.ParamByName('level').Value := Trim(Level.Text);
Parameters.ParamByName('shortname').Value := Trim(shortname.Text);
Parameters.ParamByName('oldname').Value := Trim(t_data.Operator.FieldByName('name').AsString);
ExecSQL;
end;
Application.MessageBox('操作成功.','提示',64);
Except
Application.MessageBox('操作失败.','提示',64);
End;
Cancel.Click;
end;
end
else
Application.MessageBox('操作员信息不能为空.','提示',64);
end
else
Application.MessageBox('当前没有可修改的信息.','提示',64);
end;
procedure Tf_operator.DeleteClick(Sender: TObject);
begin
inherited;
if t_data.Operator.Active then
begin
if Application.MessageBox('确实要删除当前操作员信息吗?','提示',mb_yesno)= ID_Yes then
begin
Try
t_data.Operator.Delete;
Cancel.Click;
Application.MessageBox('删除成功.','提示',64);
Except
Application.MessageBox('操作失败.','提示',64);
End;
end;
end
else
Application.MessageBox('当前没有可删除的信息.','提示',64);
end;
procedure Tf_operator.QueryClick(Sender: TObject);
begin
inherited;
if (Field.Text<>'')and(Trim(Value.Text)<>'')then
begin
With t_data.Operator do
begin
Close;
SQL.Clear;
SQL.Add('select * From tb_operator where ');
if Field.ItemIndex =0 then
SQL.Add('name = :FieldValue')
else
SQL.Add('shortname = :FieldValue');
Parameters.ParamByName('FieldValue').Value := Trim(Value.Text);
Open;
end;
if t_data.Operator.RecordCount<1 then
begin
Application.MessageBox('没有找到符合条件的记录.','提示',64);
Cancel.Click;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -