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

📄 platecomparedelete.~pas

📁 采用Delphi7+Oracle. 该软件是由交警人员对各个路口闯红灯违法照片进行有效保存
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
          bottom:=trunc(img1.Picture.Height*py*0.95)+top;
      end;
      with rect3 do   //rect2第二张图片
      begin
          left:=rect2.Right+1;
          top:=250;
          right:=trunc(img1.Picture.Width*px*0.95)+left;
          bottom:=trunc(img1.Picture.Height*py*0.95)+top;
      end;


  //20070719星期四另外一种思路
    Printer.Orientation := polandscape;    //横向polandscape   //纵向--> poPortrait
    Printer.Title :='照片打印';

    try

        Printer.BeginDoc;

          printer.Canvas.Font.Name:='宋体';
          printer.Canvas.Font.Size := 13;
          printer.Canvas.Font.Color :=clRed;

          Printer.Canvas.StretchDraw(rect1,img1.Picture.Graphic );
          Printer.Canvas.StretchDraw(rect2,img2.Picture.Graphic );
          Printer.Canvas.StretchDraw(rect3,img3.Picture.Graphic );

       //要求显示抓拍时间与抓拍地点

          fileNames:='抓拍地点:'+zpdd+'        抓拍时间:'+datetimetostr(zpsj);
          Printer.Canvas.TextOut(rect1.Left,rect1.Bottom+8,fileNames);

          Printer.EndDoc;
          messagebox(self.Handle ,'打印成功!','打印提示',MB_OK+MB_ICONINFORMATION);
    except
        Printer.Abort ;
        raise;
    end;
  except
        messageBox(self.Handle, '请检查打印机是否正确安装!','提示',MB_OK+MB_ICONINFORMATION);
  end;

end;

procedure TfrmPlateCompareDelete.TFrmSjfy1DBGridDrawColumnCell(
  Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  with   (Sender   as   TDBGrid)   do
  begin
  if   gdSelected   in   State   then
  begin
    Canvas.Brush.Color:=clpurple;  //新颜色  clInfobk  clDefault  clpurple
    DefaultDrawColumnCell(rect,datacol,Column,state);
  end
  else
      Canvas.Brush.Color:=clwindow;   //默认颜色
  end;
end;

procedure TfrmPlateCompareDelete.btnAvailablyClick(Sender: TObject);
var
  sql:String;
begin
     ///处理无图片情况
    if img1.Picture.Bitmap.Empty and img2.Picture.Bitmap.Empty and img3.Picture.Bitmap.Empty  then
    begin
       messageBox(self.Handle, '您当前无照片,无法实现该操作','提示',MB_OK+MB_ICONINFORMATION);
       exit;
    end;
    //该组照片为无效照片
    sql:='';                             //标记为无效照片                                                     //
    sql:='UPDATE photocheck.P_PICINFO SET ISAVAILABLY=''0'',ISCOMPARE=''1'',COMPAREDATE=to_date('''+FormatDateTime('YYYY-MM-DD HH:MM:SS',now)+''',''YYYY-MM-DD HH24:Mi:SS''),USERID='''+CurrentUserID+''' WHERE ONLYID='''+onlyID+'''';
    dbConn.Execute_SQL(sql);
    sbBar.SimpleText := '             已将该组照片设为无效照片状态!您的操作将被记录到数据库内! ';
end;

procedure TfrmPlateCompareDelete.btnCompareClick(Sender: TObject);
var
  compSql:String;  //比对sql
  updateSql:String; //更新sql
begin
     ///处理无图片情况
    if img1.Picture.Bitmap.Empty and img2.Picture.Bitmap.Empty and img3.Picture.Bitmap.Empty  then
    begin
       messageBox(self.Handle, '您当前无照片,无法实现比对!','提示',MB_OK+MB_ICONINFORMATION);
       exit;
    end;
    //号牌比对
    if (cobHead.Text='') or (edtHbody.Text='')  then
    begin
       messageBox(self.Handle, '请输入完整的车牌号码!','提示',MB_OK+MB_ICONINFORMATION);
       exit;
    end;
    if cobHpzl.Text='' then
    begin
        messageBox(self.Handle, '请选择车牌种类','提示',MB_OK+MB_ICONINFORMATION);
        exit;
    end;
    compSql:='';
    compSql:='SELECT HPHM,HPZL FROM photocheck.P_SAVELIST WHERE HPHM='''+trim(cobHead.Text)+trim(edtHbody.Text)+''' AND HPZL='''+trim(getDm(cobHpzl.Text))+'''';
    if dbConn.CompareSaveList(compSql)=true then
    begin
       sbBar.SimpleText := '             比对成功,此号牌号码受保护! ';
       //更新photocheck.P_PICINFO 中的ISSAVELIST状态   :注意(为三张的图片,都要更新--可通过唯一标识别来判断)
       updateSql:='';                             //标记为保护、已比对
       updateSql:='UPDATE photocheck.P_PICINFO SET ISSAVELIST=''1'',ISCOMPARE=''1'',COMPAREDATE=to_date('''+FormatDateTime('YYYY-MM-DD HH:MM:SS',now)+''',''YYYY-MM-DD HH24:Mi:SS''),USERID='''+CurrentUserID+''' WHERE ONLYID='''+onlyID+'''';
       dbConn.Execute_SQL(updateSql);
       
    end
    else begin
       updateSql:='';                             //标记为非保护、已比对                                                     //
       updateSql:='UPDATE photocheck.P_PICINFO SET ISSAVELIST=''0'',ISCOMPARE=''1'',COMPAREDATE=to_date('''+FormatDateTime('YYYY-MM-DD HH:MM:SS',now)+''',''YYYY-MM-DD HH24:Mi:SS''),USERID='''+CurrentUserID+''' WHERE ONLYID='''+onlyID+'''';
       dbConn.Execute_SQL(updateSql);
       sbBar.SimpleText := '             比对不成功,此号牌号码非保护! ';
    end;
end;

procedure TfrmPlateCompareDelete.btnSearchClick(Sender: TObject);
var
  rowCount,i:Integer;
  sql:String;
begin
 if not ((CheckBox1.Checked) or (CheckBox2.Checked) or (CheckBox3.Checked) or (CheckBox4.Checked) or (CheckBox5.Checked) or (CheckBox6.Checked) or (CheckBox7.Checked) or (CheckBox8.Checked) or (CheckBox9.Checked)) then
    begin
        MessageBox(0,'请选定查询条件进行查询', '号牌比对', 64);
        sql := 'select p.XH 图片序号,p.WHOLENAME 图片全称,p.ZPSJ 抓拍时间,c.CROSSNAME 抓拍地点,p.ISSAVELIST 保护名单,p.ISCOMPARE 是否已比对,p.ISAVAILABLY 是否有效,p.ZPSERIAL 抓拍序号,p.ONLYID 组合唯一标识,p.COMPAREDATE 比对时间,p.USERID 比对人ID, rownum ';
        sql := sql + ' from photocheck.P_PICINFO p,photocheck.P_CROSSING c where p.EQUIPID=c.COMPUTERID AND p.ISDELETE=''0'' AND 1=2 ';    ///ISDELETE =''0'' 表示未删除的
        TFrmSjfy1.beginQuery(sql,12);
        img1.Picture := nil;
        img2.Picture := nil;
        img3.Picture := nil;
        btnPrint.Enabled := false;
        btnDelOne.Enabled := false;
        btnDelTwo.Enabled := false;
        btnDelThree.Enabled := false;
        btnDelAll.Enabled := false;
        btnDelAllPhoto.Enabled := false;
        btnPrint.Enabled := false;
        btnAvailably.Enabled := false;
        self.btnCompare.Enabled := false;  //比对操作
        self.btnExportAllPhoto.Enabled := false;  //导出所有照片
        self.btnExportCurrentPhoto.Enabled := false;  //导出当前照片
        exit;
    end;
    img1.Picture := nil;
    img2.Picture := nil;
    img3.Picture := nil;
    TFrmSjfy1.beginQuery(GetSQL(true),12);
    rsCount:= TFrmSjfy1.DBGrid.DataSource.DataSet.RecordCount ;
    if rsCount<=0 then
    begin
        btnPrint.Enabled := false;
        btnDelOne.Enabled := false;
        btnDelTwo.Enabled := false;
        btnDelThree.Enabled := false;
        btnDelAll.Enabled := false;
        btnDelAllPhoto.Enabled := false;
         btnPrint.Enabled := false;
        btnAvailably.Enabled := false;
        self.btnCompare.Enabled := false;  //比对操作
        self.btnExportAllPhoto.Enabled := false;  //导出所有照片
        self.btnExportCurrentPhoto.Enabled := false;  //导出当前照片
    end
    else
    begin
              //相关按钮的状态
        self.btnCompare.Enabled := true;            //比对
        self.btnPrint.Enabled := true;              //打印
        self.btnAvailably.Enabled := true;           //是否有效
        self.btnExportCurrentPhoto.Enabled := true; //导出当前的
        self.btnExportAllPhoto.Enabled := true;    //导出全部
    end;
    //rsGroup:=TFrmSjfy1.DBGrid.DataSource.DataSet.RecordCount div 3 ;  //按照3个进行分组
   // rsMod:=TFrmSjfy1.DBGrid.DataSource.DataSet.RecordCount mod 3 ;   //余数
    

    rowCount:=TFrmSjfy1.DBGrid.DataSource.DataSet.FieldCount -1 ;  //只得到9条,是当前页面显示的数据行
    for  i:=0 to rowCount do
    begin
        TFrmSjfy1.DBGrid.Columns.Items [i].Width := 70;
    end;

 
       //上一组、下一组
      if (rsCount mod 3 >0) then
                rsGroup:= rsCount div 3 +1
      else
              rsGroup := rsCount div 3;
      rsGroupID:=0;

end;


procedure TfrmPlateCompareDelete.btnDelOneClick(Sender: TObject);
begin
    //删除第一张图片   :1>P_PICPHOTO Delete;   必须根据onluID来确定照片序号
    //                   2>P_PICINFO Update 列ISDELETE
    dbConn.DeletePhotoFromDB(onlyID,'01',self.img1,self.img2,self.img3);
    TFrmSjfy1.DBGrid.DataSource.DataSet.Refresh ;
end;

procedure TfrmPlateCompareDelete.btnDelTwoClick(Sender: TObject);
begin
   //删除第二张图片
   dbConn.DeletePhotoFromDB(onlyID,'02',self.img1,self.img2,self.img3);
   TFrmSjfy1.DBGrid.DataSource.DataSet.Refresh ;
end;

procedure TfrmPlateCompareDelete.btnDelThreeClick(Sender: TObject);
begin
  //删除第三张图片
  dbConn.DeletePhotoFromDB(onlyID,'03',self.img1,self.img2,self.img3);
  TFrmSjfy1.DBGrid.DataSource.DataSet.Refresh ;
end;

procedure TfrmPlateCompareDelete.btnDelAllClick(Sender: TObject);
begin
  //删除全部
  dbConn.DeletePhotoFromDB(onlyID,'111',self.img1,self.img2,self.img3);
  TFrmSjfy1.DBGrid.DataSource.DataSet.Refresh ;
end;

procedure TfrmPlateCompareDelete.btnDelAllPhotoClick(Sender: TObject);
var
  delSql:String;
begin
  delSql:='';
  delSql:=GetSQL(true);  //取得查询条件
  dbConn.DeleteAllPhoto(delSql);
  btnSearch.Click ;
  img1.Picture := nil;
  img2.Picture := nil;
  img3.Picture := nil;
   //删除按钮不可用
     btnDelOne.Enabled := false;
     btnDelTwo.Enabled := false;
     btnDelThree.Enabled := false;
     btnDelAll.Enabled := false;
     btnDelAllPhoto.Enabled := false;  //删除所选条件内的照片
end;

procedure TfrmPlateCompareDelete.btnExportCurrentPhotoClick(
  Sender: TObject);
var
  saveDir:String;
  savePath:String;
begin
   ///处理无图片情况
    if img1.Picture.Bitmap.Empty and img2.Picture.Bitmap.Empty and img3.Picture.Bitmap.Empty  then
    begin
       messageBox(self.Handle, '您当前无照片,无法实现该操作','提示',MB_OK+MB_ICONINFORMATION);
       exit;
    end;
   //export current
   if   CommUnit.SelectDirectory('选择一个文件路径',   '',   saveDir,   Handle)   then
          savePath   :=   saveDir;
   if savePath<>'' then
   begin
      if dbConn.ExportPhotoFromDB(onlyID,'',savePath)=true  then
      begin
        messageBox(0,PChar('已成功将照片保存到'+savePath+'目录下!') ,'提示',MB_OK+MB_ICONINFORMATION );
     end;
   end;
end;


procedure TfrmPlateCompareDelete.btnExportAllPhotoClick(Sender: TObject);
var
  saveDir:String;
  savePath:String;
  selSql:String;  //根据所查询的条件保存
begin
    //export all
    //export current
   if   CommUnit.SelectDirectory('选择一个文件路径',   '',   saveDir,   Handle)   then
          savePath   :=   saveDir;
   if savePath<>'' then
   begin
     selSql:=GetSQL(true);
     if dbConn.ExportPhotoFromDB('',selSql,savePath)=true then
     begin
         messageBox(0,PChar('已成功将照片保存到'+savePath+'目录下!') ,'提示',MB_OK+MB_ICONINFORMATION );
     end;
   end;

end;


end.

⌨️ 快捷键说明

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