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

📄 vehheader.~pas

📁 采用Delphi7+Oracle. 该软件是由交警人员对各个路口闯红灯违法照片进行有效保存
💻 ~PAS
字号:
unit VehHeader;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, Grids, DBGrids, StdCtrls, ComCtrls, ToolWin,db,ADODB,StrUtils;

type
  TfrmVehHead = class(TForm)
    ToolBar1: TToolBar;
    btnAdd: TToolButton;
    btnEdit: TToolButton;
    ToolButton2: TToolButton;
    btnSave: TToolButton;
    ToolButton5: TToolButton;
    btnDel: TToolButton;
    btnCancel: TToolButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    edtID: TEdit;
    edtName: TEdit;
    dgDB: TDBGrid;
    ImageList1: TImageList;
    edtMemo: TEdit;
    Label3: TLabel;
    procedure dgDBCellClick(Column: TColumn);
    procedure btnAddClick(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    procedure execute_sql(sql:String);
    procedure item_clear;
    function Check_HaveData:Boolean;
    { Public declarations }
  end;

var
  frmVehHead: TfrmVehHead;
  crossSql:String;  //用于sql操作的
  flag:boolean;
implementation

uses dbConn;

{$R *.dfm}
procedure TfrmVehHead.execute_sql(sql:String);
var
    ds:TDataSource;
    rs:TADODataSet;
begin
    try
        ds:=TDataSource.Create(nil);
        rs:=TADODataSet.Create(nil);
        rs.Connection := cn_public;
        rs.CommandText :=sql;
        rs.Open ;
        rs.Active := true;
        dgDB.DataSource :=ds;
        ds.DataSet := rs;

    except
    on E:Exception do   begin
       ds.Free ;
       rs.Free ;
    end;
end;
end;


procedure TfrmVehHead.item_clear;
begin
    edtID.Text :='';
    edtName.Text :='';
    edtMemo.Text :='';
end;
function TfrmVehHead.Check_HaveData:Boolean ;
var
 tmp:String;
 i:Integer;
begin
    if edtID.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','汽车类型',64);
        edtID.SetFocus ;
        result:= false;
        exit;
    end;
    if Length(trim(edtName.Text ))<2 then
    begin
        messagebox(0,'该信息请设置为两位有效数字数字!','汽车类型',64);
        edtName.SetFocus ;
        result:= false;
        exit;
    end;

    if edtName.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','汽车类型',64);
        edtName.SetFocus ;
        result:= false;
        exit;
    end;

    tmp:=trim(edtName.text);
    if length(tmp)>3 then
    begin
        MessageBox(0,'输入长度过于长', '汽车类型', 64);
        edtName.SetFocus;
        result:=false;
        exit;
    end;
    {
    for i:=1 to length(tmp) do
    begin
       if ((midbstr(tmp,i,1)>='0')and(midbstr(tmp,i,1)<='9')) then
      else
      begin
          MessageBox(0,'用户名必须是字母或数字', '汽车类型', 64);
          edtName.SetFocus;
          result:=false;
          exit;
      end;
    end;
    }
    result:= true;
end;


procedure TfrmVehHead.btnAddClick(Sender: TObject);
begin
    btnAdd.Enabled := false;
    btnEdit.Enabled := false;
    btnSave.Enabled := true;
    btnDel.Enabled := false;
    self.item_clear;
    edtId.Text := IntToStr(1);
    edtID.ReadOnly := false;
    edtName.Enabled := true;
    edtMemo.Enabled := true;
    
    edtName.SetFocus ;
    flag:= true;  //若为true时,为添加数据
end;


procedure TfrmVehHead.btnEditClick(Sender: TObject);
begin
    if (edtID.Text<>'') and (edtName.Text<>'') then
    begin
        btnAdd.Enabled := false;
        btnEdit.Enabled := false;
        btnSave.Enabled := true;
        btnDel.Enabled := false;
        edtID.Enabled := false;  //计算机编号不允许编辑
        edtName.Enabled := false;
        edtMemo.Enabled := true;
        flag:= false;   //标记为修改状态
    end
    else
        messagebox(0,'无数据编辑!','汽车类型',64);
end;


procedure TfrmVehHead.btnSaveClick(Sender: TObject);
var
   rs:TADODataSet;
begin
    if Check_HaveData=true then
    begin
        if flag=true then   //true;Add状态
        begin
            crossSql:='';
            crossSql:='SELECT DMZ,DMSM FROM photocheck.P_CODE WHERE DMLB=''2'' and DMZ='''+trim(edtName.Text )+'''';
            rs:=TADODataSet.Create(nil);
            rs.Connection := cn_public;
            rs.CommandText := crossSql;
            rs.Open ;
            if rs.Recordset.RecordCount >0 then
            begin
                rs.Close ;
                messagebox(0,'已存在该条数据!','汽车类型',16);
                edtName.SelectAll ;
                edtName.SetFocus ;
                exit;
            end
            else   //若没有该数据,则插入
            begin
                rs.Close ;
                crossSql:='';
                crossSql:='INSERT INTO photocheck.P_CODE (DMLB,DMZ,DMSM) VALUES(';
                crossSql:= crossSql + ' ''2'',';
                crossSql:= crossSql + ' '''+trim(edtName.Text)+''',';
                crossSql:= crossSql + ' '''+trim(edtMemo.Text)+''')';
                dbConn.Execute_SQL(crossSql);
                crossSql:='';
                crossSql:='SELECT DMLB,DMZ,DMSM FROM photocheck.P_CODE WHERE DMLB=''2''';
                self.execute_sql(crossSql);
                messagebox(0,'添加成功!','汽车类型',64);
                edtId.Enabled := false;
                edtName.Enabled := false;
                edtMemo.Enabled := false;
                self.item_clear ;
            end;
        end
        else
        if flag=false then  //false :处于编辑状态
        begin
            crossSql:='';
            crossSql:='UPDATE photocheck.P_CODE SET  DMSM='''+trim(edtMemo.Text)+''' WHERE DMLB=''2'' AND DMZ='''+trim(edtName.Text )+'''';
            dbConn.Execute_SQL(crossSql);
            crossSql:='';
            crossSql:='SELECT DMLB,DMZ,DMSM FROM photocheck.P_CODE  WHERE DMLB=''2''';
            self.execute_sql(crossSql);
            messagebox(0,'修改成功!','汽车类型',64);
        end;
        self.item_clear ;
        btnAdd.Enabled := true;
        btnEdit.Enabled := true;
        btnSave.Enabled := false;
        btnDel.Enabled := true;
        edtID.Enabled := false;
        edtName.Enabled := false;
        edtMemo.Enabled := false;
    end;
end;

procedure TfrmVehHead.btnDelClick(Sender: TObject);
begin
    if (edtID.Text<>'') and (edtName.Text<>'') then
    begin
        if messagedlg('你确定要删除这个 '+edtName.Text+' 类型吗?',mtConfirmation,[mbYes,mbno],0)=mrYes then
        begin
            crossSql:='';
            crossSql:='DELETE FROM photocheck.P_CODE WHERE DMLB=''2'' AND DMZ='''+trim(edtName.Text)+'''';
            dbConn.Execute_SQL(crossSql);
            crossSql:='';
            crossSql:='SELECT * FROM photocheck.P_CODE WHERE DMLB=''2''';
            self.execute_sql(crossSql);
            self.item_clear ;
            messagebox(0,'成功删除!','汽车类型',64);
        end
        else
        begin
            exit;
        end;
        btnAdd.Enabled := true;
        btnEdit.Enabled := true;
        btnSave.Enabled := false;
        btnDel.Enabled := true;
        edtID.Enabled :=false;
        edtName.Enabled := false;
        edtMemo.Enabled := false;
    end
    else  //无数据删除
    begin
        messagebox(0,'无数据删除!','汽车类型',64);
    end;
end;

procedure TfrmVehHead.btnCancelClick(Sender: TObject);
begin
    self.item_clear ;
    btnAdd.Enabled := true;
    btnEdit.Enabled := true;
    btnSave.Enabled := false;
    btnDel.Enabled := true;
    edtID.Enabled := false;
    edtMemo.Enabled := false;
    edtName.Enabled := false;
end;




procedure TfrmVehHead.dgDBCellClick(Column: TColumn);
begin
       btnAdd.Enabled := true;
    btnEdit.Enabled := true;
    btnSave.Enabled := false;
    btnDel.Enabled := true;
    edtId.Enabled := false;
    edtName.Enabled := false;
    edtMemo.Enabled := false;

    edtID.Text := dgDB.DataSource.DataSet.FieldByName('DMLB').AsString ;
    edtName.Text := dgDB.DataSource.DataSet.FieldByName('DMZ').AsString ;
    edtMemo.Text := dgDB.DataSource.DataSet.FieldByName('DMSM').AsString ;
end;

procedure TfrmVehHead.FormShow(Sender: TObject);
begin
    btnSave.Enabled := false;
    edtID.Enabled := false;
    edtName.Enabled := false;
    edtMemo.Enabled := false;
    crossSql:='SELECT * FROM photocheck.P_CODE WHERE DMLB=''2''';
    self.execute_sql(crossSql);
end;

end.

⌨️ 快捷键说明

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