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

📄 platecompare.~pas

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

interface

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

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

var
  frmPlateCompare: TfrmPlateCompare;

implementation

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

procedure TfrmPlateCompare.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;
     //
     //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;

     //相关按钮的状态
     self.btnCompare.Enabled := false;            //比对
     self.btnPrint.Enabled := false;              //打印
     self.btnAvailably.Enabled := false;           //是否有效
     self.btnExportCurrentPhoto.Enabled := false; //导出当前的
     self.btnExportAllPhoto.Enabled := false;    //导出全部

end;

procedure TfrmPlateCompare.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)) 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 组合唯一标识,rownum ';
        sql := sql + ' from photocheck.P_PICINFO p,photocheck.P_CROSSING c where p.ISDELETE=''0'' AND p.EQUIPID=c.COMPUTERID AND 1=2';
        TFrmSjfy1.beginQuery(sql,9);
        img1.Picture := nil;
        img2.Picture := nil;
        img3.Picture := nil;
        btnPrint.Enabled := false;
        btnAvailably.Enabled := false;
        btnCompare.Enabled := false;  //比对操作
        btnExportAllPhoto.Enabled := false;  //导出所有照片
        btnExportCurrentPhoto.Enabled := false;  //导出当前照片
        TFrmSjfy1.DBGrid.Enabled:= false;  //数据分页的可用性为false
        exit;
    end;
    img1.Picture := nil;
    img2.Picture := nil;
    img3.Picture := nil;
    TFrmSjfy1.beginQuery(GetSQL(true),9);
    rsCount:= TFrmSjfy1.DBGrid.DataSource.DataSet.RecordCount ;
    if rsCount<=0 then
    begin
        btnPrint.Enabled := false;
        btnAvailably.Enabled := false;
        btnCompare.Enabled := false;  //比对操作
        btnExportAllPhoto.Enabled := false;  //导出所有照片
        btnExportCurrentPhoto.Enabled := false;  //导出当前照片
        TFrmSjfy1.DBGrid.Enabled:= false;  //数据分页的可用性为false
    end
    else
    begin
             //相关按钮的状态
     self.btnCompare.Enabled := true;            //比对
     self.btnPrint.Enabled := true;              //打印
     self.btnAvailably.Enabled := true;           //是否有效
     self.btnExportCurrentPhoto.Enabled := true; //导出当前的
     self.btnExportAllPhoto.Enabled := true;    //导出全部
     TFrmSjfy1.DBGrid.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 TfrmPlateCompare.FormActivate(Sender: TObject);
begin
    TFrmSjfy1.ADODataSet1.Connection := cn_public;
end;
function TfrmPlateCompare.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 组合唯一标识,rownum ';
    sql := sql + ' from photocheck.P_PICINFO p,photocheck.P_CROSSING c where p.ISDELETE=''0'' AND p.EQUIPID=c.COMPUTERID AND ';
  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 bz=true then
  begin
    sql := sql + ' 1 = 1 order by 图片序号'; // 组合唯一标识
  end;
  
  result := sql;
end;
procedure TfrmPlateCompare.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 ;     //抓拍地点

⌨️ 快捷键说明

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