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

📄 unitequipmentconfig.~pas

📁 delphi基于工业控制的串口通讯
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitEquipmentConfig;

interface

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

type
  Tfrm_EquipmentConfig = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Edit_Cont: TLabeledEdit;
    Edit_Terminal: TLabeledEdit;
    Edit_TerminalType1: TLabeledEdit;
    ToolBar1: TToolBar;
    Cmd_Add: TSpeedButton;
    Cmd_Delete: TSpeedButton;
    Cmd_Update: TSpeedButton;
    Cmd_Save: TSpeedButton;
    Cmd_Rush: TSpeedButton;
    GroupBox1: TGroupBox;
    RCont: TRadioButton;
    RTerminal: TRadioButton;
    Edit_ID: TEdit;
    Panel3: TPanel;
    ToolBar2: TToolBar;
    Cmd_EAdd: TSpeedButton;
    Cmd_EDelete: TSpeedButton;
    Cmd_EUpdate: TSpeedButton;
    Cmd_ESave: TSpeedButton;
    Cmd_ERush: TSpeedButton;
    DBGrid2: TDBGrid;
    Edit_Equipment_NO: TLabeledEdit;
    Edit_Equipment_Address: TLabeledEdit;
    Edit_Equipment_Name: TLabeledEdit;
    Edit_EID: TEdit;
    XPMenu1: TXPMenu;
    Edit_TerminalType: TComboBox;
    Cmd_EquipmentInit: TSpeedButton;
    Edit_ECont: TComboBox;
    Edit_ETerminal: TComboBox;
    Edit_EUport: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit_Warn_Music: TLabeledEdit;
    BtSelect: TSpeedButton;
    OpenDialog1: TOpenDialog;
    Edit_WarnImage: TComboBox;
    Label1: TLabel;
    procedure Cmd_AddClick(Sender: TObject);
    procedure Cmd_SaveClick(Sender: TObject);
    procedure RContClick(Sender: TObject);
    procedure RTerminalClick(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Cmd_RushClick(Sender: TObject);
    procedure Cmd_DeleteClick(Sender: TObject);
    procedure Cmd_UpdateClick(Sender: TObject);
    procedure Cmd_EAddClick(Sender: TObject);
    procedure Cmd_ERushClick(Sender: TObject);
    procedure DBGrid2CellClick(Column: TColumn);
    procedure Cmd_ESaveClick(Sender: TObject);
    procedure Cmd_EDeleteClick(Sender: TObject);
    procedure Cmd_EUpdateClick(Sender: TObject);
    procedure Cmd_EquipmentInitClick(Sender: TObject);
    procedure BtSelectClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure ContBrush;
    procedure TerminalBrush;
    procedure EquipmentBrush;
    procedure EditCode;
  public
    { Public declarations }
  end;

var
  frm_EquipmentConfig: Tfrm_EquipmentConfig;

implementation

uses UnitDataModule;

{$R *.dfm}
procedure Tfrm_EquipmentConfig.ContBrush;
begin
    with frm_DataModule.ADO_QuerySearch do
    begin
        Close;
        Sql.Clear;
        Sql.Add('Select * from [Cont]');
        try
            Open;
            if RecordCount>0 then
            begin
                frm_DataModule.DataSourceSearch.DataSet:=frm_DataModule.ADO_QuerySearch;
                frm_DataModule.DataSourceSearch.Enabled:=True;
                DBGrid1.DataSource:=frm_DataModule.DataSourceSearch;
                DBGrid1.Columns[0].Title.Caption:='自动编号';
                DBGrid1.Columns[1].Title.Caption:='集中器号';
                Edit_Cont.Text:=FieldByname('Cont').AsVariant;
                Edit_ID.Text:=FieldByname('ID').AsVariant;
                Cmd_Add.Enabled:=True;
                Cmd_Save.Enabled:=False;
                Cmd_Delete.Enabled:=True;
                Cmd_Update.Enabled:=True;
            end
            else
            begin
                frm_DataModule.DataSourceSearch.Enabled:=False;
                Cmd_Add.Enabled:=True;
                Cmd_Save.Enabled:=False;
                Cmd_Delete.Enabled:=False;
                Cmd_Update.Enabled:=False;
            end;
        except
            Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
            Exit;
        end;
    end;
end;
procedure Tfrm_EquipmentConfig.TerminalBrush;
begin
    with frm_DataModule.ADO_QuerySearch do
    begin
        Close;
        Sql.Clear;
        Sql.Add('Select ID,Cont,Terminal,Terminal_Type from [Terminal] order by Cont');
        try
            Open;
            if RecordCount>0 then
            begin
                frm_DataModule.DataSourceSearch.DataSet:=frm_DataModule.ADO_QuerySearch;
                frm_DataModule.DataSourceSearch.Enabled:=True;
                DBGrid1.DataSource:=frm_DataModule.DataSourceSearch;
                DBGrid1.Columns[0].Title.Caption:='自动编号';
                DBGrid1.Columns[1].Title.Caption:='集中器号';
                DBGrid1.Columns[2].Title.Caption:='用户终端号';
                DBGrid1.Columns[3].Title.Caption:='用户终端类型';
                Edit_Cont.Text          :=FieldByname('Cont').AsVariant;
                Edit_Terminal.Text      :=FieldByname('Terminal').AsVariant;
                Edit_TerminalType.Text  :=FieldByname('Terminal_Type').AsVariant;
                Edit_ID.Text            :=FieldByname('ID').AsVariant;
                Cmd_Add.Enabled:=True;
                Cmd_Save.Enabled:=False;
                Cmd_Delete.Enabled:=True;
                Cmd_Update.Enabled:=True;
                Edit_Cont.Enabled:=true;
                Edit_Terminal.Enabled:=True;
                Edit_TerminalType.Enabled:=True;
            end
            else
            begin
                frm_DataModule.DataSourceSearch.Enabled:=False;
                Cmd_Add.Enabled:=True;
                Cmd_Save.Enabled:=False;
                Cmd_Delete.Enabled:=False;
                Cmd_Update.Enabled:=False;
            end;
        except
            Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
            Exit;
        end;
    end;
end;

procedure Tfrm_EquipmentConfig.EquipmentBrush;
begin
    with frm_DataModule.ADO_QuerySearch do
    begin
        Close;
        Sql.Clear;
        Sql.Add('Select ID,Equipment_NO,Equipment_Name,Equipment_Address,Cont,Terminal,Uport,Warn_Music,WarnImage from [Equipment]');
        try
            Open;
            if RecordCount>0 then
            begin
                frm_DataModule.DataSourceSearch.DataSet:=frm_DataModule.ADO_QuerySearch;
                frm_DataModule.DataSourceSearch.Enabled:=True;
                DBGrid2.DataSource:=frm_DataModule.DataSourceSearch;
                DBGrid2.Columns[0].Title.Caption:='自动编号';
                DBGrid2.Columns[1].Title.Caption:='设备编号';
                DBGrid2.Columns[2].Title.Caption:='设备名称';
                DBGrid2.Columns[3].Title.Caption:='设备地址';
                DBGrid2.Columns[4].Title.Caption:='集中器号';
                DBGrid2.Columns[5].Title.Caption:='终端号码';
                DBGrid2.Columns[6].Title.Caption:='端口号号';
                DBGrid2.Columns[7].Title.Caption:='报警声音';
                DBGrid2.Columns[8].Title.Caption:='报警器号';
                Edit_EID.Text               :=FieldByname('ID').AsVariant;
                Edit_Equipment_NO.Text      :=FieldByname('Equipment_NO').AsVariant;
                Edit_Equipment_Name.Text    :=FieldByname('Equipment_Name').AsVariant;
                Edit_Equipment_Address.Text :=FieldByname('Equipment_Address').AsVariant;
                Edit_ECont.Text             :=FieldByname('Cont').AsVariant;
                Edit_ETerminal.Text         :=FieldByname('Terminal').AsVariant;
                Edit_EUport.Text            :=FieldByname('Uport').AsVariant;
                Edit_Warn_Music.Text        :=FieldByname('Warn_Music').AsVariant;
                Edit_WarnImage.Text         :=FieldByname('WarnImage').AsVariant;
                Cmd_EAdd.Enabled    :=True;
                Cmd_ESave.Enabled   :=False;
                Cmd_EDelete.Enabled :=True;
                Cmd_EUpdate.Enabled :=True;
                Cmd_ERush.Caption   :='刷新(&R)';
            end
            else
            begin
                frm_DataModule.DataSourceSearch.Enabled:=False;
                Edit_EID.Text               :='';
                Edit_Equipment_NO.Text      :='';
                Edit_Equipment_Name.Text    :='';
                Edit_Equipment_Address.Text :='';
                Edit_ECont.Text             :='';
                Edit_ETerminal.Text         :='';
                Edit_EUport.Text            :='';
                Edit_Warn_Music.Text        :='';
                Edit_WarnImage.Text         :='';
                Cmd_EAdd.Enabled:=True;
                Cmd_ESave.Enabled:=False;
                Cmd_EDelete.Enabled:=False;
                Cmd_EUpdate.Enabled:=False;
                Cmd_ERush.Caption:='刷新(&R)';
            end;
        except
            Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
            Exit;
        end;
    end;
end;
procedure Tfrm_EquipmentConfig.EditCode;
begin
    if Trim(Edit_ECont.Text)='' then
    begin
        Application.MessageBox('[集中器号]不能为空!',Pchar(Application.Title),MB_ICONWARNING);
        Edit_ECont.SetFocus;
        Exit;
    end;
    if Trim(Edit_ETerminal.Text)='' then
    begin
        Application.MessageBox('[用户终端号]不能为空!',Pchar(Application.Title),MB_ICONWARNING);
        Edit_ETerminal.SetFocus;
        Exit;
    end;
    if Trim(Edit_EUport.Text)='' then
    begin
        Application.MessageBox('[用户端口号]不能为空!',Pchar(Application.Title),MB_ICONWARNING);
        Edit_EUport.SetFocus;
        Exit;
    end;
    Edit_Equipment_NO.Text:=Trim(Edit_ECont.Text)+'-'+Trim(Edit_ETerminal.Text)+'-'+Trim(Edit_EUport.Text);
end;
procedure Tfrm_EquipmentConfig.Cmd_AddClick(Sender: TObject);
begin
    Cmd_Add.Enabled:=False;
    Cmd_Rush.Enabled:=True;
    Cmd_Delete.Enabled:=False;
    Cmd_Update.Enabled:=False;
    Cmd_Save.Enabled:=True;
    if RCont.Checked then
    begin
        Edit_Cont.Enabled:=True;
        Edit_Cont.Clear;
        Edit_Terminal.Enabled:=False;
        Edit_TerminalType.Enabled:=False;
    end
    else
    begin
        Edit_Cont.Enabled:=True;
        Edit_Terminal.Enabled:=True;
        Edit_TerminalType.Enabled:=True;
        Edit_Cont.Clear;
        Edit_Terminal.Clear;
        Edit_TerminalType.Clear;
    end;
end;

procedure Tfrm_EquipmentConfig.Cmd_SaveClick(Sender: TObject);
begin
    if RCont.Checked then
    begin
        with frm_DataModule.ADO_QuerySearch do
        begin
            Close;
            Sql.Clear;
            Sql.Add('Select * from [Cont] where Cont='''+Trim(Edit_Cont.Text)+'''');
            try
                Open;
                if RecordCount=0 then
                begin
                    with frm_DataModule.ADO_QueryInsert do
                    begin
                        Close;
                        Sql.Clear;
                        Sql.Add('Insert into [Cont] (Cont) values (:u1)');
                        Parameters[0].Value:=Trim(Edit_Cont.Text);
                        try
                            ExecSql;
                            ContBrush;
                        except
                            Application.MessageBox('保存记录失败,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
                            Exit;
                        end;
                    end;
                end
                else
                begin
                    ContBrush;
                    Application.MessageBox('操作错误,不能保存重复的记录!',Pchar(Application.Title),MB_ICONWARNING);
                    Exit;
                end;
            except
                Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
                Exit;
            end;
        end;
    end;
    if RTerminal.Checked then
    begin
        with frm_DataModule.ADO_QuerySearch do
        begin
            Close;
            Sql.Clear;
            Sql.Add('Select * from [Terminal] where Cont='''+Trim(Edit_Cont.Text)+''' and Terminal='''+Trim(Edit_Terminal.Text)+'''');
            try
                Open;
                if RecordCount=0 then
                begin
                    with frm_DataModule.ADO_QueryInsert do
                    begin
                        Close;
                        Sql.Clear;
                        Sql.Add('Insert into [Terminal](Cont,Terminal,Terminal_Type) values (:u1,:u2,:u3)');
                        Parameters[0].Value:=Trim(Edit_Cont.Text);
                        Parameters[1].Value:=Trim(Edit_Terminal.Text);
                        Parameters[2].Value:=Trim(Edit_TerminalType.Text);
                        try
                            ExecSql;
                            TerminalBrush;
                        except
                            Application.MessageBox('保存记录失败,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
                            Exit;
                        end;
                    end;
                end
                else
                begin
                    TerminalBrush;
                    Application.MessageBox('操作错误,不能保存重复的记录!',Pchar(Application.Title),MB_ICONWARNING);
                    Exit;
                end;
            except
                Application.MessageBox('系统错误,不能连接数据库服务器!',Pchar(Application.Title),MB_ICONWARNING);
                Exit;
            end;

⌨️ 快捷键说明

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