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

📄 bjsbgl.pas

📁 企业安防管理系统
💻 PAS
字号:
unit Bjsbgl;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ImgList, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons,
  DB;

type
  TForm16 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    ImageList1: TImageList;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    BitBtn3: TBitBtn;
    DataSource1: TDataSource;
    Panel2: TPanel;
    Label3: TLabel;
    Panel3: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DBGrid2: TDBGrid;
    Panel4: TPanel;
    Label4: TLabel;
    SpeedButton2: TSpeedButton;
    ComboBox1: TComboBox;
    Edit3: TEdit;
    Label5: TLabel;
    Edit4: TEdit;
    BitBtn4: TBitBtn;
    DataSource2: TDataSource;
    Panel5: TPanel;
    Label6: TLabel;
    SpeedButton1: TSpeedButton;
    ComboBox2: TComboBox;
    BitBtn5: TBitBtn;
    DBGrid3: TDBGrid;
    DataSource3: TDataSource;
    Label7: TLabel;
    ComboBox3: TComboBox;
    Label8: TLabel;
    ComboBox4: TComboBox;
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    Procedure Editvalue;
    Procedure Clear;
    Procedure AddItem;
    procedure SpeedButton2Click(Sender: TObject);
    procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn4Click(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ComboBox2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn5Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure ComboBox4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    
  private
    { Private declarations }
  public
    Procedure FindNext;
    { Public declarations }
  end;

var
  Form16: TForm16;

implementation
  uses DataModal;
{$R *.dfm}

{ TForm16 }

procedure TForm16.FindNext;
begin
  if FindNextControl(ActiveControl,True,False,False)is TEdit then
    TEdit(FindNextControl(ActiveControl,True,False,False)).SetFocus
  else if FindNextControl(ActiveControl,True,False,False)is TBitBtn then
    TBitBtn(FindNextControl(ActiveControl,True,False,False)).SetFocus
  else if FindNextControl(ActiveControl,True,False,False)is TComboBox then
    TComboBox(FindNextControl(ActiveControl,True,False,False)).SetFocus;  
end;

procedure TForm16.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_ReTurn then
    FindNext;
end;

procedure TForm16.BitBtn2Click(Sender: TObject);
begin
  Edit1.Clear;
  Edit2.Clear;
  ComboBox3.ItemIndex := 0;
  with Data.ADOQuery2 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from 报警设备表 ');
    Open;
  end;
  if Data.ADOQuery2.RecordCount>0 then
    DataSource1.DataSet := Data.ADOQuery2
  else
    DataSource1.DataSet := Nil;
end;

procedure TForm16.BitBtn1Click(Sender: TObject);
begin
  if (Trim(Edit1.Text)<>'')and(Trim(ComboBox3.Text)<>'') then
  begin
    Try
      with Data.ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert 报警设备表 values (:a,:b,:c)');
        Parameters.ParamByName('a').Value := Trim(Edit1.Text);
        Parameters.ParamByName('b').Value := Trim(ComboBox3.Text);
        Parameters.ParamByName('c').Value := Trim(Edit2.Text);
        ExecSQL;
      end;
      MessageBox(Handle,'操作成功.','提示',MB_ICONINFORMATION);
      BitBtn2.OnClick(Sender);
    Except
      MessageBox(Handle,'系统出错.','提示',MB_ICONSTOP);
    end;
  end
  else
  begin
    MessageBox(Handle,'信息不完整.','提示',MB_ICONINFORMATION);
    Edit1.SetFocus;
  end;
end;

procedure TForm16.FormShow(Sender: TObject);
begin
  ComboBox3.Clear;
  ComboBox4.Clear;
  with Data.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select distinct 项目名称 from 报警项目表');
    Open;
  end;
  if Data.ADOQuery1.RecordCount>0 then
  begin
    while Not Data.ADOQuery1.Eof do
    begin
      ComboBox3.Items.Add(Data.ADOQuery1.Fields[0].Value);
      ComboBox4.Items.Add(Data.ADOQuery1.Fields[0].Value);
      Data.ADOQuery1.Next;
    end;
  end;
  BitBtn4.Enabled := False;
  BitBtn5.Enabled := False;
  Data.ADOQuery3.Close;
  Data.ADOQuery4.Close;
  Data.ADOQuery5.Close;
  Edit3.Clear;
  Edit4.Clear;
  ComboBox3.ItemIndex := 0;
  ComboBox4.ItemIndex := 0;
  BitBtn2.OnClick(Sender);//初始化报警设备添加页
  AddItem;
  BitBtn2.OnClick(Sender); 
end;

procedure TForm16.SpeedButton2Click(Sender: TObject);
begin
  if Trim(ComboBox1.Text)<>'' then
  begin
    with Data.ADOQuery3 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from 报警设备表 where 设备名称 = :a ');
      Parameters.ParamByName('a').Value := Trim(ComboBox1.Text);
      Open;
    end;
    if Data.ADOQuery3.RecordCount>0 then
    begin
      BitBtn4.Enabled := True;
      DataSource2.DataSet := Data.ADOQuery3;
      Edit3.SetFocus;
      EditValue;
    end
    else
    begin
      BitBtn4.Enabled := False;
      DataSource2.DataSet := Nil;
      Clear;
      MessageBox(Handle,'没有符合条件的记录.','提示',MB_ICONINFORMATION);
    end; 
  end
  else
    MessageBox(Handle,'请设置查询条件.','提示',MB_ICONINFORMATION); 
end;

procedure TForm16.Editvalue;
begin
  Edit3.Text := Data.ADOQuery3.FieldByName('设备名称').Value;
  Edit4.Text := Data.ADOQuery3.FieldByName('描述').Value;
  ComboBox4.Text := Data.ADOQuery3.FieldByName('报警项目').Value;
end;

procedure TForm16.Clear;
begin
  Edit3.Clear;
  Edit4.Clear;
  ComboBox4.ItemIndex := 0;
  DataSource2.DataSet := Nil;
end;

procedure TForm16.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    SpeedButton2.OnClick(Sender);
end;

procedure TForm16.Edit3KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key= vk_Return then
    ComboBox4.SetFocus;
end;

procedure TForm16.Edit4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key= vk_Return)and(BitBtn4.Enabled = True) then
    BitBtn4.SetFocus;
end;

procedure TForm16.BitBtn4Click(Sender: TObject);
begin
  If Trim(Edit3.Text)='' then
  begin
    MessageBox(Handle,'设备名称不能为空.','提示',MB_ICONINFORMATION);
    Exit;
  end;
  If Trim(ComboBox4.Text)='' then
  begin
    MessageBox(Handle,'报警项目不能为空.','提示',MB_ICONINFORMATION);
    Exit;
  end;
  if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)= ID_Yes then
  Try
    with Data.ADOQuery4 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Update 报警设备表 set 设备名称 = :a, 报警项目 = :d,描述 = :b where 设备名称 = :c');
      Parameters.ParamByName('a').Value := Trim(Edit3.Text);
      Parameters.ParamByName('b').Value := Trim(Edit4.Text);
      Parameters.ParamByName('d').Value := Trim(ComboBox4.Text);
      Parameters.ParamByName('c').Value := Trim(Data.ADOQuery3.FieldByName('设备名称').Value);
      ExecSQL;
    end;
    MessageBox(Handle,'修改成功.','提示',MB_ICONINFORMATION);
    Clear;
    AddItem;
  Except
    MessageBox(Handle,'系统出错.','提示',MB_ICONSTOP);
  end;
end;

procedure TForm16.AddItem;
begin
  ComboBox1.Clear;
  ComboBox2.Clear;
  with Data.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select Distinct 设备名称 from 报警设备表');
    Open;
  end;
  if Data.ADOQuery1.RecordCount>0 then
  begin
    while Not Data.ADOQuery1.Eof do
    begin
      ComboBox1.Items.Add(Data.ADOQuery1.Fields[0].Value);
      ComboBox2.Items.Add(Data.ADOQuery1.Fields[0].Value);
      Data.ADOQuery1.Next;
    end;
  end;  
end;

procedure TForm16.DBGrid2CellClick(Column: TColumn);
begin
  if Data.ADOQuery3.Active then
    if Data.ADOQuery3.RecordCount>0 then
      EditValue;
end;

procedure TForm16.SpeedButton1Click(Sender: TObject);
begin
  if Trim(ComboBox2.Text)<>'' then
  begin
    with Data.ADOQuery5 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from 报警设备表 where 设备名称 = :a ');
      Parameters.ParamByName('a').Value := Trim(ComboBox2.Text);
      Open;
    end;
    if Data.ADOQuery5.RecordCount>0 then
    begin
      BitBtn5.Enabled := True;
      DataSource3.DataSet := Data.ADOQuery5;
    end
    else
    begin
      BitBtn5.Enabled := False;
      DataSource3.DataSet := Nil;
      MessageBox(Handle,'没有符合条件的记录.','提示',MB_ICONINFORMATION);
    end; 
  end
  else
    MessageBox(Handle,'请设置查询条件.','提示',MB_ICONINFORMATION);
end;

procedure TForm16.ComboBox2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  SpeedButton1.OnClick(Sender);
end;

procedure TForm16.BitBtn5Click(Sender: TObject);
begin
  if Application.MessageBox('确实要删除当前记录吗?','提示',mb_YesNo)= ID_Yes then
    Try 
      Data.ADOQuery5.Delete;
      MessageBox(Handle,'操作成功.','提示',MB_ICONINFORMATION);
      AddItem;
      BitBtn5.Enabled := False;
    Except
      MessageBox(Handle,'系统出错.','提示',MB_ICONSTOP);
    end;
end;

procedure TForm16.PageControl1Change(Sender: TObject);
begin
  OnShow(Sender);
  AddItem;
  
end;

procedure TForm16.ComboBox4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    Edit4.SetFocus;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -