📄 uaphoto1.pas
字号:
unit UAPhoto1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB, Mask, DBCtrls, ExtCtrls,FileCtrl,inifiles,Jpeg,
ComCtrls, DBTables, Grids, DBGrids, Menus;
type
TPhotoSystem = class(TForm)
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
Panel2: TPanel;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Panel3: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Panel4: TPanel;
Button2: TButton;
Label8: TLabel;
Edit2: TEdit;
Label9: TLabel;
Edit3: TEdit;
Button3: TButton;
Button4: TButton;
Label7: TLabel;
Edit4: TEdit;
Button5: TButton;
Panel5: TPanel;
Image1: TImage;
Button6: TButton;
Button7: TButton;
Label10: TLabel;
Label11: TLabel;
Panel6: TPanel;
Image2: TImage;
ADOQuery2: TADOQuery;
MainMenu1: TMainMenu;
file1: TMenuItem;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
Edit5: TEdit;
DBEdit4: TDBEdit;
Label16: TLabel;
Label17: TLabel;
Edit6: TEdit;
ADOQuery3: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure file1Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormClick(Sender: TObject);
private
fn:string;
ini:TiniFile;
OldDirPath:String;
NewDirPath:String;
Pre:String;
NumberLen:integer;
StartNum:String;
initNumber:String;
addLength:integer;
currentNumber:String;
OldNumber1:String; //用于初始读入时起始文件名,
OldNumber2:String; //用于当前取最大序号的文件的比较,
NewNumberString2:String;
mask1:String;
user1:String;
pwd1:String;
database1:String;
{ Private declarations }
public
{ Public declarations }
end;
var
PhotoSystem: TPhotoSystem;
implementation
uses UASetCanon;
{$R *.DFM}
procedure TPhotoSystem.Button1Click(Sender: TObject);
var
content:String;
StuEmpNumber:String;
F3:TStringStream;
M1:TMemoryStream;
Fjpg: TJpegImage;
SpeCode1:String;
begin
If Edit1.Text='' then
begin
ShowMessage('您输入的学工号为空!');
exit;
end;
Image1.Picture.Assign(nil);
Image2.Picture.Assign(nil);
StuEmpNumber:=Trim(Edit1.text);
ADOQuery2.Close; //如果其他地方有对ADOQuery1的引用,只有先关闭它,才能进行修改,
ADOQuery2.SQL.Clear;
//ADOQuery2.SQL.Add('SELECT T.CUT_TYPE, T.STUEMP_NO, T.STUEMP_NAME, M.DEPT_NAME, T.PHOTO_NO, T.FILENAME, T.PHOTO FROM YKT_CUR.T_CIF_PHOTO T, YKT_CUR.T_CIF_DEPT M WHERE T.STUEMP_NO='+QuotedStr(StuEmpNumber)+' AND M.DEPT_CODE=T.DEPT_NAME');
ADOQuery2.SQL.Add('SELECT * FROM YKT_CUR.T_CIF_PHOTO WHERE STUEMP_NO='+QuotedStr(StuEmpNumber));
//测试用:
//showmessage('SELECT T.CUT_TYPE, T.STUEMP_NO, T.STUEMP_NAME, M.DEPT_NAME, T.PHOTO_NO, T.FILENAME, T.PHOTO FROM YKT_CUR.T_CIF_PHOTO T, YKT_CUR.T_CIF_DEPT M WHERE T.STUEMP_NO='+QuotedStr(StuEmpNumber));
ADOQuery2.Open;
if ADOQuery2.RecordCount=0 then
begin
Image2.Picture.Assign(nil);
ShowMessage('该学工号记录不存在!'); //需求漏洞,
Edit1.Text:='';
exit;
end;
ADOQuery1.Close; //如果其他地方有对ADOQuery1的引用,只有先关闭它,才能进行修改,
ADOQuery1.SQL.Clear;
//ADOQuery1.SQL.Add('select * from ykt_cur.t_cif_photo where STUEMP_NO='+QuotedStr(StuEmpNumber)); //数据类型不兼容,必须将 StuEmpNumber加上引号,
ADOQuery1.SQL.Add('SELECT T.CUT_TYPE, T.STUEMP_NO, T.STUEMP_NAME, M.DEPT_NAME,T.S_CODE, T.PHOTO_NO, T.FILENAME, T.PHOTO FROM YKT_CUR.T_CIF_PHOTO T, YKT_CUR.T_CIF_DEPT M WHERE T.STUEMP_NO='+QuotedStr(StuEmpNumber)+'AND M.DEPT_CODE=T.DEPT_NAME ');
//留用:, +'AND N.S_CODE=T.S_CODE'
//ADOQuery1.SQL.Add('select * from ykt_cur.t_cif_photo WHERE PHOTO_NO=2'); //整型可以查到,
//ADOQuery1.SQL.Add('select * from ykt_cur.t_cif_photo WHERE STUEMP_NO=''0339111'''); //必须加上转义字符,来识别' 单引号,
ADOQuery1.Open;
//测试用:
//ShowMessage(ADOQuery1.FieldByName('STUEMP_NAME').AsString);
Edit5.text:=ADOQuery1.FieldByName('DEPT_NAME').AsString;
//Label14.Caption:=ADOQuery1.FieldByName('DEPT_NAME').AsString;
Label14.Caption:=Edit5.Text;
Label17.Caption:=Edit6.Text;
SpeCode1:=ADOQuery1.FieldByName('S_CODE').AsString;
//处理 教职工的情况,
If SpeCode1<>'' then
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('SELECT S_NAME,S_CODE FROM YKT_CUR.T_CIF_SPECIALITY WHERE S_CODE='+QuotedStr(SpeCode1));
ADOQuery3.Open;
Label17.Caption:=ADOQuery3.FieldByName('S_NAME').AsString;
end;
Fjpg :=TJpegImage.Create ;
M1:=TMemoryStream.Create;
Try
M1.Clear;
If TBlobField(AdoQuery1.FieldByName('PHOTO')).AsString<>null then
TBlobField(AdoQuery1.FieldByName('PHOTO')).SaveToStream(M1);
// M1.LoadFromFile('D:\b11.jpg');
M1.Position:=0;
If M1.Size>100 then
begin
FJpg.LoadFromStream(M1);
Image2.Picture.Bitmap.Assign(FJpg);
end
else
begin
Panel6.Caption:='没有原始照片';
end;
Finally
M1.Free;
FJpg.Free;
end;
Button5.Enabled:=True;
Button2.Enabled:=True;
Label12.Caption:=DBEdit1.Text;
Label12.Width:=180;
Label13.Caption:=DBEdit2.Text;
Label15.Caption:=DBEdit4.Text;
end;
procedure TPhotoSystem.Button2Click(Sender: TObject);
var
currentNum1:String;
NewNumber2:String;
fileNamePath2:String;
begin
OldNumber2:='';
//currentNum1:=ini.ReadString('CANON','CURRENTNUM',''); //依据配置文件找到照片,
currentNum1:=Trim(Edit4.Text); //允许客户在界面上修改,而不必打开配置文件修改,
NewNumberString2:=currentNum1;
While FileExists(OldDirPath+'\'+Pre+NewNumberString2+'.jpg') do
begin
if FileExists(OldDirPath+'\'+Pre+OldNumber2+'.jpg') then
DeleteFile(OldDirPath+'\'+Pre+OldNumber2+'.jpg');
OldNumber2:=NewNumberString2;
NewNumber2:=IntToStr(StrToInt(OldNumber2)+1);
NewNumber2:='0000000000'+NewNumber2;
NewNumberString2:=Copy(NewNumber2,(Length(NewNumber2)-NumberLen+1),NumberLen);
end;
if FileExists(OldDirPath+'\'+Pre+OldNumber2+'.jpg') then
begin
Image1.Picture.LoadFromFile(OldDirPath+'\'+Pre+OldNumber2+'.jpg'); //先判断文件是否存在,
Edit2.Text:=Pre+OldNumber2+'.jpg';
Edit3.Text:=DBEdit2.Text+'.jpg';
Button3.Visible:=True;
Button4.Visible:=True;
Label8.Visible:=True;
Label9.Visible:=True;
Edit2.Visible:=True;
Edit3.Visible:=True;
end
else
ShowMessage('该照片不存在!请检查并"修改相机顺序号",必要时请手动修改配置文件..\file.ini 的值!');
end;
procedure TPhotoSystem.Button3Click(Sender: TObject);
var
F:TFileStream;
F2:TFileStream;
OldNumber:String;
NewNumber:String;
NewNumberString:String;
fileNamePath:String;
DirPath1:String;
DirPath2:String;
DirPath3:String;
begin
//保存到数据库,
Try
F := TFileStream.Create(OldDirPath+'\'+Pre+OldNumber2+'.jpg',fmOpenRead);
// ADOQuery1.SQL.Clear;
// ADOQuery1.SQL.Add('select * from ykt_cur.t_cif_photo where STUEMP_NO=''0339005''');
// ADOQuery1.open;
//点“查询”后 ,ADOQuery1 已经有数据,且打开了
ADOQuery1.Edit;
TBlobField(ADOQuery1.FieldByName('PHOTO')).loadfromStream(F);
ADOQuery1.FieldByName('FILENAME').value:=Edit5.Text+'\'+Label17.Caption+'\'+DBEdit4.Text+'\'+Edit3.Text;
DirPath1:=NewDirPath+'\'+Edit5.Text;
DirPath2:=DirPath1+'\'+Label17.Caption;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -