⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operator.pas

📁 1、系统环境要求:WindowsXP/2000 2、DELPHI7.0企业版 3、如果数据库为SQL Server数据库
💻 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 + -