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

📄 savelistmaintenance.pas

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

interface

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

type
  TfrmSaveListMaintenance = class(TForm)
    ToolBar1: TToolBar;
    btnAdd: TToolButton;
    btnEdit: TToolButton;
    ToolButton2: TToolButton;
    btnSave: TToolButton;
    ToolButton5: TToolButton;
    btnDel: TToolButton;
    btnCancel: TToolButton;
    ImageList1: TImageList;
    edtHbody: TEdit;
    cobHead: TComboBox;
    cobHpzl: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edtMemo: TEdit;
    btnSearch: TBitBtn;
    dgDB: TDBGrid;
    procedure FormShow(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure dgDBCellClick(Column: TColumn);
    procedure btnSearchClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure execute_sql(sql:String);
    procedure item_clear;
    function Check_HaveData:Boolean;
    function Check_ExistHphm(sql:String):boolean;
    { Public declarations }
  end;

var
  frmSaveListMaintenance: TfrmSaveListMaintenance;
  crossSql:String;  //用于sql操作的
  flag:boolean;

implementation

uses dbConn;

{$R *.dfm}

procedure TfrmSaveListMaintenance.FormShow(Sender: TObject);
var
  sql :String;
  sqlsql:String;
begin
      self.btnSave.Enabled := false;
      //load data
      dbConn.LoadCombobox(cobHpzl,'1');    //hpzl
      cobHpzl.ItemIndex := 0;
     sql:='';
     sql:='SELECT DMZ FROM photocheck.P_CODE where dmlb=''2''';
     dbconn.loadCombox(cobHead,sql,true);
     cobHead.ItemIndex := 0;
end;

procedure TfrmSaveListMaintenance.execute_sql(sql:String);
var
    ds:TDataSource;
    rs:TADODataSet;
    i,rowCount:Integer;  ///控制行的宽度
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;
        rowCount:=dgDB.DataSource.DataSet.FieldCount -1 ;
        for i:=0 to rowCount do
        begin
            dgDB.Columns.Items[i].Width := 90;
        end;
    except
    on E:Exception do
      begin
        ds.Free ;
        rs.Free ;
      end;
    end;
end;

procedure TfrmSaveListMaintenance.item_clear;
begin
    edtHbody.Text :='';
    edtMemo.Text :='';
    cobHead.ItemIndex:=0;
    cobHpzl.ItemIndex :=0;
end;

function TfrmSaveListMaintenance.Check_HaveData:Boolean;
begin
    if cobHead.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','保护信息',64);
        cobHead.SetFocus ;
        result:= false;
        exit;
    end;
    if edtHbody.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','保护信息',64);
        edtHbody.SetFocus ;
        result:= false;
        exit;
    end;
    if length(edtHbody.Text)>5 then
    begin
        messagebox(0,'该信息长度不可以超过5位','保护信息',64);
        edtHbody.SetFocus ;
        result:= false;
        exit;
    end;
    if cobHpzl.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','保护信息',64);
        cobHpzl.SetFocus ;
        result:= false;
        exit;
    end;

    result:= true;
end;
function TfrmSaveListMaintenance.Check_ExistHphm(sql:String):boolean;
var
    rs:TADODataSet;
begin
            //crossSql:='SELECT HPHM FROM photocheck.P_SAVELIST WHERE HPHM='''+trim(cobHead.Text +edtHbody.Text )+'''';
            rs:=TADODataSet.Create(nil);
            rs.Connection := cn_public;
            rs.CommandText := sql;
            rs.Open ;
            if rs.Recordset.RecordCount >0 then
            begin
              rs.Close ;
              rs.Free ;
              result:= true ;     //有数据
            end
            else
            begin
              rs.Close ;
              rs.Free ;
              result:= false;   //无数据
            end;
end;

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

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

procedure TfrmSaveListMaintenance.btnSaveClick(Sender: TObject);
var
   rs:TADODataSet;
begin
    if Check_HaveData=true then
    begin
        if flag=true then   //true;Add状态
        begin

            crossSql:='';
            crossSql:='SELECT HPHM FROM photocheck.P_SAVELIST WHERE HPHM='''+trim(cobHead.Text +edtHbody.Text )+'''';
            if self.Check_ExistHphm(crossSql)=true then
            begin
                messagebox(0,'已存在该条数据!','保护信息',16);
                edtHbody.SelectAll ;
                edtHbody.SetFocus ;
                exit;
            end
            else   //若没有该数据,则插入
            begin
                crossSql:='';
                crossSql:='INSERT INTO photocheck.P_SAVELIST (HPHM,HPZL,BZ,LRR,LRSJ) VALUES(';
                crossSql:= crossSql + ' '''+trim(cobHead.Text+edtHbody.Text )+''',';
                crossSql:= crossSql + ' '''+trim(getdm(cobHpzl.Text))+''',';
                crossSql:= crossSql + ' '''+trim(edtMemo.Text)+''',';
                crossSql:= crossSql + ' '''+CurrentUserID+''',';
                crossSql:= crossSql + ' to_date('''+FormatDateTime('YYYY-MM-DD HH:MM:SS',now)+''',''YYYY-MM-DD HH24:Mi:SS''))';
                dbConn.Execute_SQL(crossSql);
                crossSql:='';
                crossSql:='SELECT * FROM photocheck.P_SAVELIST WHERE HPHM LIKE ''' + Trim(cobHead.Text+edtHbody.Text) + '''';
                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_SAVELIST SET HPZL='''+trim(getDM(cobHpzl.Text))+''' , BZ='''+trim(edtMemo.Text)+''',LRR='''+CurrentUserID+''',LRSJ=to_date('''+FormatDateTime('YYYY-MM-DD HH:MM:SS',now)+''',''YYYY-MM-DD HH24:Mi:SS'') WHERE HPHM='''+trim(cobHead.Text+edtHbody.Text)+'''';
            dbConn.Execute_SQL(crossSql);
            crossSql:='';
            crossSql:='SELECT * FROM photocheck.P_SAVELIST WHERE HPHM LIKE '''+Trim(cobHead.Text+edtHbody.Text)+'''';
            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 TfrmSaveListMaintenance.btnDelClick(Sender: TObject);
begin
  if (edtHbody.Text<>'') and (cobHead.Text<>'') then
  begin
        //应该首先检查数据库中是否存在这个信息,才可以进行删除工作
    crossSql:='';
    crossSql:='SELECT HPHM FROM photocheck.P_SAVELIST WHERE HPHM='''+trim(cobHead.Text +edtHbody.Text )+'''';
    if self.Check_ExistHphm(crossSql)=false then
    begin
                messagebox(0,'该数据不存在,请输入有效的数据!','保护信息',16);
                edtHbody.SelectAll ;
                edtHbody.SetFocus ;
                exit;
    end
    else
    begin
        if messagedlg('你确定要删除这个 '+cobHead.Text+edtHbody.Text +'号码吗?',mtConfirmation,[mbYes,mbno],0)=mrYes then
        begin
            crossSql:='';
            crossSql:='DELETE FROM photocheck.P_SAVELIST WHERE HPHM='''+trim(cobHead.Text)+trim(edtHbody.Text)+'''';
            dbConn.Execute_SQL(crossSql);
            crossSql:='';
            crossSql:='SELECT * FROM photocheck.P_SAVELIST WHERE HPHM='''+trim(cobHead.Text)+trim(edtHbody.Text)+'''';
            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;
    end
    else  //无数据删除
    begin
        messagebox(0,'无数据删除!','保护信息',64);
    end;
end;

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

procedure TfrmSaveListMaintenance.dgDBCellClick(Column: TColumn);
var
    hphm:String;
    hpzl:String;
    i:Integer;
begin
    btnAdd.Enabled := true;
    btnEdit.Enabled := true;
    btnSave.Enabled := false;
    btnDel.Enabled := true;
    //edtId.Enabled := false;
    //edtName.Enabled := false;
  //  dgDB.DataSource.DataSet.FieldByName('HPZL').Value
    //edtMemo.Enabled := false;

    hphm := dgDB.DataSource.DataSet.FieldByName('HPHM').AsString ;
    cobHead.Text := copy(hphm,1,3);
    edtHbody.Text :=copy(hphm,4,length(hphm)-3);
    edtMemo.Text := dgDB.DataSource.DataSet.FieldByName('BZ').AsString ;
    hpzl := dgDB.DataSource.DataSet.FieldByName('HPZL').AsVariant ;
  //  dbconn.DisplayCombox(trim(hpzl),cobHpzl,'0');       //??就不显示why?
    For i:= 0 To cobHpzl.Items.Count - 1 do
    begin

            If hpzl=getdm(cobHpzl.Items.Strings[i]) Then
            begin
                cobHpzl.ItemIndex:=i;
                exit;
            End;
    end;
end;

procedure TfrmSaveListMaintenance.btnSearchClick(Sender: TObject);
begin
    crossSql:='';
    crossSql:='SELECT * FROM photocheck.P_SAVELIST WHERE HPHM LIKE '''+Trim(cobHead.Text)+Trim(edtHbody.Text)+'''';
    self.execute_sql(crossSql);
end;

end.

⌨️ 快捷键说明

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