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

📄 platecomparedelete.~pas

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

interface

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

type
  TfrmPlateCompareDelete = class(TForm)
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    dtStart: TDateTimePicker;
    dtEnd: TDateTimePicker;
    CheckBox3: TCheckBox;
    cobEquipID: TComboBox;
    btnSearch: TButton;
    CheckBox4: TCheckBox;
    cobIsCompared: TComboBox;
    CheckBox5: TCheckBox;
    cobIsSaveList: TComboBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    dtCompStart: TDateTimePicker;
    dtCompEnd: TDateTimePicker;
    CheckBox8: TCheckBox;
    cobIsAvailably: TComboBox;
    GroupBox2: TGroupBox;
    TFrmSjfy1: TFrmSjfy;
    GroupBox3: TGroupBox;
    img3: TImage;
    img2: TImage;
    img1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    sbBar: TStatusBar;
    edtHbody: TEdit;
    cobHead: TComboBox;
    cobHpzl: TComboBox;
    btnCompare: TBitBtn;
    btnPrint: TBitBtn;
    btnAvailably: TBitBtn;
    CheckBox9: TCheckBox;
    cobOpeater: TComboBox;
    GroupBox4: TGroupBox;
    btnDelOne: TBitBtn;
    GroupBox5: TGroupBox;
    GroupBox6: TGroupBox;
    btnDelTwo: TBitBtn;
    GroupBox7: TGroupBox;
    btnDelThree: TBitBtn;
    btnDelAll: TBitBtn;
    btnDelAllPhoto: TBitBtn;
    GroupBox8: TGroupBox;
    btnExportCurrentPhoto: TBitBtn;
    btnExportAllPhoto: TBitBtn;
    procedure FormActivate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TFrmSjfy1DBGridCellClick(Column: TColumn);
    procedure btnPrintClick(Sender: TObject);
    procedure TFrmSjfy1DBGridDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    procedure btnAvailablyClick(Sender: TObject);
    procedure btnCompareClick(Sender: TObject);
    procedure btnSearchClick(Sender: TObject);
    procedure btnDelOneClick(Sender: TObject);
    procedure btnDelTwoClick(Sender: TObject);
    procedure btnDelThreeClick(Sender: TObject);
    procedure btnDelAllClick(Sender: TObject);
    procedure btnDelAllPhotoClick(Sender: TObject);
    procedure btnExportCurrentPhotoClick(Sender: TObject);
    procedure btnExportAllPhotoClick(Sender: TObject);
  private
    { Private declarations }
  public
      function GetSQL(bz:boolean):string;
    { Public declarations }
  end;

var
  frmPlateCompareDelete: TfrmPlateCompareDelete;

implementation

uses dbConn, CommUnit;
var
   onlyID:String;  //组合的唯一标识
   zpsj: TDateTime;   //抓拍时间
   compareDate:TDateTime;  //比对时间
   compareUserID:String;   //比对人
   zpdd:String;
   isSaveList,isCompare,isAvailably:String;  //是否受保护,是否已比对
   rsGroup:Integer;  // 3个一组
   rsGroupID:Integer;
   rsMod:Integer;   //剩余的张数
   rowNum:Integer; //记录行数
   rsCount:Integer;//该次查询的总条数
{$R *.dfm}

procedure TfrmPlateCompareDelete.FormActivate(Sender: TObject);
begin
   TFrmSjfy1.ADODataSet1.Connection := cn_public;
end;

procedure TfrmPlateCompareDelete.FormShow(Sender: TObject);
var
  sqlsql:String;
begin
     sqlsql:='';
     sqlsql:='SELECT COMPUTERID,CROSSNAME FROM photocheck.P_CROSSING';   //将路口信息表进行显示
     dbConn.loadComboxEquip(cobEquipID,sqlsql,3);
     cobEquipID.ItemIndex := 1;
     
     cobIsCompared.Items.Add('0:未比对');
     cobIsCompared.Items.Add('1:已比对');
     cobIsCompared.ItemIndex:=0;

     cobIsSaveList.Items.Add('0:非保护');
     cobIsSaveList.Items.Add('1:受保护');
     cobIsSaveList.ItemIndex:=0;

     cobIsAvailably.Items.Add('0:无效');  //是否有效
     cobIsAvailably.Items.Add('1:有效');
     cobIsAvailably.ItemIndex:=0;

     sqlsql:='';
     sqlsql:='SELECT USERID,USERNAME FROM photocheck.P_USER';
     dbconn.loadCombox(cobOpeater,sqlsql,false);
     cobOpeater.ItemIndex := 1;
     //
     //load data
     dbConn.LoadCombobox(cobHpzl,'1');    //hpzl
     sqlsql:='';
     sqlsql:='SELECT DMZ FROM photocheck.P_CODE where dmlb=''2''';
     dbconn.loadCombox(cobHead,sqlsql,true);
     cobHead.ItemIndex := 1;
     //删除按钮不可用
     btnDelOne.Enabled := false;
     btnDelTwo.Enabled := false;
     btnDelThree.Enabled := false;
     btnDelAll.Enabled := false;
     btnDelAllPhoto.Enabled := false;  //删除所选条件内的照片
          //相关按钮的状态
     self.btnCompare.Enabled := false;            //比对
     self.btnPrint.Enabled := false;              //打印
     self.btnAvailably.Enabled := false;           //是否有效
     self.btnExportCurrentPhoto.Enabled := false; //导出当前的
     self.btnExportAllPhoto.Enabled := false;    //导出全部

end;
function TfrmPlateCompareDelete.GetSQL(bz:boolean):string;
var
  sql : String;
begin
  if bz=true then
  begin                                                                                                                                                                                               //p.ISCOMPARE=''0'' and
    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 ';    ///ISDELETE =''0'' 表示未删除的
  end;

  if CheckBox1.Checked then
  begin
       sql := sql + ' ZPSJ >= to_date(''' + FormatDateTime('yyyy-mm-dd 00:00:00',dtStart.DateTime ) + ''',''yyyy-mm-dd HH24:mi:ss'')  and ';
  end;
  if CheckBox2.Checked then
  begin
         sql := sql + ' ZPSJ <= to_date(''' + FormatDateTime('yyyy-mm-dd 23:59:59',dtEnd.datetime ) + ''',''yyyy-mm-dd HH24:mi:ss'')  and ';
  end;
  if CheckBox3.Checked then  //机器编号
  begin
      sql := sql + ' EQUIPID= ''' + getdm(cobEquipID.Text) + ''' and ';
  end;
  if CheckBox4.Checked then  //是否已经比对过了
  begin
      sql := sql + ' ISCOMPARE= ''' + getdm(cobIsCompared.Text) + ''' and ';
  end;
  if CheckBox5.Checked then  //是否受保护
  begin
      sql := sql + ' ISSAVELIST= ''' + getdm(cobIsSaveList.Text) + ''' and ';
  end;
  if CheckBox8.Checked then    //该照片是否有效
  begin
         sql := sql + ' ISAVAILABLY= ''' + getdm(cobIsAvailably.Text) + ''' and ';
  end;
  if CheckBox6.Checked then    //比对时间开始
  begin
       sql := sql + ' COMPAREDATE >= to_date(''' + FormatDateTime('yyyy-mm-dd 00:00:00',dtCompStart.DateTime ) + ''',''yyyy-mm-dd HH24:mi:ss'')  and ';
  end;
  if CheckBox7.Checked then    //比对时间段 内
  begin
         sql := sql + ' COMPAREDATE <= to_date(''' + FormatDateTime('yyyy-mm-dd 23:59:59',dtCompEnd.datetime ) + ''',''yyyy-mm-dd HH24:mi:ss'')  and ';
  end;
  if CheckBox9.Checked then    //该照片是否有效
  begin
         sql := sql + ' USERID= ''' + getdm(cobOpeater.Text) + ''' and ';
  end;
  if bz=true then
  begin
    sql := sql + ' 1 = 1 order by 图片序号';
  end;
  
  result := sql;
end;

procedure TfrmPlateCompareDelete.TFrmSjfy1DBGridCellClick(Column: TColumn);
var
    photoXH:String;  //组合的唯一标识

begin
      //显示相互关联的3张图片
      //其中可能会出现1,2,3的不全情况
      //TFrmSjfy1.DBGrid.Fields[0].asstri
      photoXH:=TFrmSjfy1.DBGrid.Fields[0].AsString ;  //图片序号
      zpsj:=TFrmSjfy1.DBGrid.Fields[2].AsDateTime ;   //抓拍时间
      zpdd:=TFrmSjfy1.DBGrid.Fields[3].AsString ;     //抓拍地点
      isSaveList:= TFrmSjfy1.DBGrid.Fields[4].AsString ;  //是否受保护
      isCompare:= TFrmSjfy1.DBGrid.Fields[5].AsString ;  //是否已比对
      isAvailably:= TFrmSjfy1.DBGrid.Fields[6].AsString ;  //是否有效
      onlyID:=TFrmSjfy1.DBGrid.Fields[8].AsString ; //通过onlyID,最多可查询出3张图片
      compareDate:=TFrmSjfy1.DBGrid.Fields[9].AsDateTime ;  //比对时间
      compareUserID:=TFrmSjfy1.DBGrid.Fields[10].AsString ;  //比对人
      rowNum:= TFrmSjfy1.DBGrid.Fields[11].AsInteger  ;  //查询结果的序号
      dbConn.DisplayPicPhoto(onlyID,photoXH,img1,img2,img3,'1');

      if isCompare='1' then
      begin
         if isSaveList='1' then
         begin
             if isAvailably='1' then
             begin
                  sbBar.SimpleText := '             当前照片抓拍时间:'+datetimetostr(zpsj) + '             比对结果:受保护!' + '     比对时间:'+datetimetostr(CompareDate)+'    比对人ID:'+CompareUserID  +   '    该照片有效!';
             end
             else
             begin
                 sbBar.SimpleText := '             当前照片抓拍时间:'+datetimetostr(zpsj) + '             比对结果:受保护!' + '     比对时间:'+datetimetostr(CompareDate)+'    比对人ID:'+CompareUserID +   '  该照片已为被作废,视为无效!';
             end;
         end
         else
         begin
             if isAvailably='1' then
             begin
                  sbBar.SimpleText := '             当前照片抓拍时间:'+datetimetostr(zpsj) + '             比对结果:非保护!' + '     比对时间:'+datetimetostr(CompareDate)+'    比对人ID:'+CompareUserID  +   '    该照片有效!';
             end
             else
             begin
                 sbBar.SimpleText := '             当前照片抓拍时间:'+datetimetostr(zpsj) + '             比对结果:非保护!' + '     比对时间:'+datetimetostr(CompareDate)+'    比对人ID:'+CompareUserID +   '  该照片已为被作废,视为无效!';
             end;
                //  sbBar.SimpleText := '             当前照片抓拍时间:'+datetimetostr(zpsj)+ '            比对结果: 非保护!' + '     比对时间:'+datetimetostr(CompareDate)+'    比对人ID:'+CompareUserID;
         end;
      end
      else
      begin
                  sbBar.SimpleText := '             当前照片抓拍时间:'+datetimetostr(zpsj)+ '            未比对!';
      end;


end;

procedure TfrmPlateCompareDelete.btnPrintClick(Sender: TObject);
var
    px,py:integer;   //屏幕分辨率
    rect1,rect2,rect3:TRect;  //使用三个来分别对其 控制
    picnamewpath:string;
    fileNames: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;
  try
      //获得打印机的分辨率
      px:=getdevicecaps(printer.Handle,logpixelsx) div PixelsPerInch;
      py:=getdevicecaps(printer.Handle,logpixelsy) div PixelsPerInch;

    //横向方向的   ,长度不能够满足
    with rect1 do   //rect1第一张图片
      begin
          left:=150;
          top:=250;
          right:=trunc(img1.Picture.Width*px*0.95)+left;
          bottom:=trunc(img1.Picture.Height*py*0.95)+top;
      end;

      with rect2 do   //rect2第二张图片
      begin
          left:=rect1.Right+1;
          top:=250 ;
          right:=trunc(img1.Picture.Width*px*0.95)+left;

⌨️ 快捷键说明

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