📄 platecomparedelete.~pas
字号:
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 + -