D7myYunxiang/样品新云翔(YPGLBOM.dll)/U_BPZdy_ColTJ.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

560 lines
16 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_BPZdy_ColTJ;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu,IniFiles,
cxButtonEdit, BtnEdit, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL,U_SLT_TJHX,U_CPType_TJTP,
cxTLData, cxContainer, cxCurrencyEdit, cxCheckBox, cxSplitter,jpeg,U_SLT_PBSK,U_SLT,Math, Menus, cxCalendar,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP;
type
TfrmBPZDY_ColTJ = class(TForm)
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ThreeImgList: TImageList;
DataSource2: TDataSource;
Panel4: TPanel;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyleRepository2: TcxStyleRepository;
cxStyle2: TcxStyle;
ADOQuery1: TADOQuery;
SaveDialog1: TSaveDialog;
ODPat: TOpenDialog;
IdFTP1: TIdFTP;
Panel6: TPanel;
TJGYName: TBtnEditA;
Panel10: TPanel;
Label14: TLabel;
Label15: TLabel;
Image2: TImage;
Image11: TImage;
TJNote: TMemo;
HXType: TBtnEditA;
TJColNo: TEdit;
TJCol: TBtnEditA;
TJNo: TEdit;
TJPTID: TEdit;
TJCPID: TEdit;
TJTPID: TEdit;
Button2: TButton;
Button3: TButton;
PopupMenu4: TPopupMenu;
N4: TMenuItem;
ADOCmd: TADOQuery;
Panel16: TPanel;
adoqueryPicture: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TGBClick(Sender: TObject);
procedure cxDBTreeList1DblClick(Sender: TObject);
procedure HXTypeBtnClick(Sender: TObject);
procedure TJGYNameBtnClick(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
lstPat2: TStringList;
FBPID,FCPID1,FCPID,FCPNo,FCPName:string;
JS:integer;
lstPat: TStringList;
AJpeg: TJPEGImage;
FangXiang1,FangXiang2:String;
procedure InitGrid();
procedure SaveData();
procedure showimage();
procedure CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer);
procedure ReadINIFile10();
{ Private declarations }
public
flag,flagname,snote,MainType,FGYName,Fint,canshu1,CYID,FTJML,FMLXXNO,FIMID,FileName1:string;
fnote,fnote1,forderno,fZdyFlag,ViewFlag,fHelpType:Boolean;
PPSTE,my,mz:integer;
procedure SaveImage1(maxnoWB:string);
{ Public declarations }
end;
var
frmBPZDY_ColTJ: TfrmBPZDY_ColTJ;
Mach: array of TfrmSLT_PBSK;
Mach1: array of TfrmSLT_TJHX;
implementation
uses
U_DataLink,U_Fun10,U_BPZdy_SH, U_BPZdy_HXK,U_CPTypePB,U_FileUp_TP,U_BPZdy_LRTJ1
,U_FileUp,U_FileUp_PB,U_FileUp_TPSH,U_SLT_BF1,U_SCPerson,U_BPZdy_LRTJ;
{$R *.dfm}
procedure TfrmBPZDY_ColTJ.SaveImage1(maxnoWB:string);
var
ImagePath,ImagName,MaxNo,MaxNoFile:String;
AJpeg:TJPEGImage;
myStream:TADOBlobStream;
begin
try
ImagePath:=Trim(maxnoWB);
ImagName:=Trim(maxnoWB);
AJpeg:=TJpegImage.Create();
{with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('UPdate Image_File Set Valid=''N'' ');
sql.Add(' where IMID=(select IMID from Image_Info');
Sql.Add('where WBID='''+Trim(maxnoWB)+''' and Valid=''Y'' )');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('UPdate Image_Info Set Editer='''+Trim(DName)+''',EditerCode='''+Trim(DCode)+''',EditTime=getdate()');
sql.Add(',Valid=''N'' where WBID='''+Trim(maxnoWB)+''' and Valid=''Y'' ');
ExecSQL;
end;}
with ADOCmd do
begin
Close;
SQL.Clear;
SQL.Add('select * from Image_Info ');
sql.Add('where WBID='''+trim(maxnoWB)+''' and Valid=''Y''');
Open;
end;
if ADOCmd.IsEmpty then
begin
if GetLSNo(ADOQueryTemp,MaxNo,'IM','Image_Info',4,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('ȡͼƬ<CDBC><C6AC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
end
else
begin
MaxNo:=Trim(ADOCmd.fieldbyname('IMID').AsString);
end;
with ADOCmd do
begin
if IsEmpty then
begin
Append;
FieldByName('IMID').Value:=Trim(MaxNo);
FieldByName('WBID').Value:=Trim(maxnoWB);
FieldByName('TJML').Value:=Trim(FTJML);
FieldByName('ImageName').Value:=Trim(ImagName);
FieldByName('ImagePath').Value:=Trim(MaxNo)+Trim(ImagName);
FieldByName('ImageDate').Value:=SGetServerDate(ADOQueryTemp);
Fieldbyname('ImageType').value:=Trim('TJ');
Fieldbyname('Valid').value:=Trim('Y');
end
else
edit;
FieldByName('CPID').Value:=Trim(TJCPID.Text);
FieldByName('TJHX').Value:=Trim(TJNo.Text);
FieldByName('TJCol').Value:=Trim(TJCol.Text);
FieldByName('TJColNo').Value:=Trim(TJColNo.Text);
FieldByName('TJHXType').Value:=Trim(HXType.Text);
FieldByName('TJMLNo').Value:=Trim(FMLXXNO);
FieldByName('TJGYName').Value:=Trim(TJGYName.Text);
FieldByName('TJPTID').Value:=Trim(TJPTID.Text);
FieldByName('TJCPID').Value:=Trim(TJCPID.Text);
FieldByName('TJTPID').Value:=Trim(TJTPID.Text);
FieldByName('TJNote').Value:=Trim(TJNote.Text);
Post;
end;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * from Image_File ');
sql.Add('where IMID='''+trim(MaxNo)+''' and Valid=''Y''');
open;
end;
if ADOCmd.IsEmpty then
begin
if GetLSNo(ADOQuery1,MaxNoFile,'IF','Image_File',4,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('ȡͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
end
else
begin
MaxNoFile:=Trim(ADOCmd.fieldbyname('IFID').AsString);
end;
with ADOCmd do
begin
if IsEmpty then
begin
Append;
FieldByName('IMID').Value:=Trim(MaxNo);
FieldByName('IFID').Value:=Trim(MaxNoFile);
Fieldbyname('Valid').value:=Trim('Y');
FieldByName('ImageWidth').Value:=Image11.Width;
FieldByName('ImageHeight').Value:=Image11.Height;
FieldByName('FangXiang').Value:=FangXiang1;
FieldByName('IFType').Value:='С';
end
else
edit;
FieldByName('CPID').Value:=Trim(TJCPID.Text);
myStream := TADOBlobStream.Create(TBlobField(ADOCmd.FieldByName('ImageFile')), bmWrite);
AJpeg.Assign(Image11.Picture.Graphic);
AJpeg.SaveToStream(myStream);
myStream.Free;
Post;
end;
if lstPat2.Count=1 then
begin
try
ReadINIFile10();
server:=ReadINIFileStr('SYSTEMSET.INI','SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
IdFTP1.Host :=server;//PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
IdFTP1.Quit;
Application.MessageBox('<27>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飡', '<27><>ʾ', MB_ICONWARNING);
Exit;
end;
if IdFTP1.Connected then
begin
IdFTP1.Put(lstPat2[0], 'TJ'+'\'+Trim(MaxNo)+Trim(ImagName));
end;
if IdFTP1.Connected then IdFTP1.Quit;
end;
except
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmBPZDY_ColTJ.showimage();
var
jpg:TJpegImage;
myStream: TADOBlobStream;
begin
with adoqueryPicture do
begin
Close;
sql.Clear;
sql.Add('select * from Image_Info A');
sql.Add(' inner join Image_File B on A.IMID=B.IMID');
sql.Add(' and A.WBID='''+Trim(TJTPID.Text)+'''');
sql.Add(' and A.Valid=''Y'' ');
//ShowMessage(sql.Text);
Open;
end;
if adoqueryPicture.IsEmpty=False then
begin
FileName1:=Trim(adoqueryPicture.fieldbyname('ImagePath').AsString);
jpg:=TJpegImage.Create();
myStream:=tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('ImageFile')),bmread);
jpg.LoadFromStream(myStream);
Image11.Picture.Assign(jpg);
Image11.Width:=adoqueryPicture.fieldbyname('ImageWidth').Value;
Image11.Height:=adoqueryPicture.fieldbyname('ImageHeight').Value;
if Trim(adoqueryPicture.fieldbyname('FangXiang').AsString)='<27><>ֱ' then
begin
Image11.Top:=1;
Image11.Left:=Round((Panel6.Width-Image11.Width)/2);
end else
begin
Image11.Left:=1;
Image11.Top:=Round((Panel6.Height-Image11.Height)/2);
end;
Image11.Visible:=True;
end;
end;
procedure TfrmBPZDY_ColTJ.SaveData();
begin
end;
procedure TfrmBPZDY_ColTJ.FormCreate(Sender: TObject);
begin
canshu1:=Trim(DParameters1);
lstPat2 := TStringList.Create;
end;
procedure TfrmBPZDY_ColTJ.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmBPZDY_ColTJ.InitGrid();
begin
with adoqueryPicture do
begin
Close;
SQL.Clear;
SQL.Add('select * from Image_Info ');
sql.Add('where IMID='''+trim(FIMID)+''' and Valid=''Y''');
Open;
end;
with adoqueryPicture do
begin
if adoqueryPicture.IsEmpty=False then
begin
FTJML:=Trim(FieldByName('TJML').asstring);
TJCPID.Text:=Trim(FieldByName('CPID').asstring);
TJNo.Text:=Trim(FieldByName('TJHX').asstring);
TJCol.Text:=Trim(FieldByName('TJCol').asstring);
TJColNo.Text:=Trim(FieldByName('TJColNo').asstring);
HXType.Text:=Trim(FieldByName('TJHXType').asstring);
FMLXXNO:=Trim(FieldByName('TJMLNo').asstring);
TJGYName.Text:=Trim(FieldByName('TJGYName').asstring);
TJPTID.Text:=Trim(FieldByName('TJPTID').asstring);
TJCPID.Text:=Trim(FieldByName('TJCPID').asstring);
TJTPID.Text:=Trim(FieldByName('TJTPID').asstring);
TJNote.Text:=Trim(FieldByName('TJNote').asstring);
showimage();
end;
end;
end;
procedure TfrmBPZDY_ColTJ.FormShow(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmBPZDY_ColTJ.CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer);
var
Bitmap: TBitmap;
Ratio: Double;
ARect: TRect;
AHeight, AHeightOffset: Integer;
AWidth, AWidthOffset: Integer;
begin
Bitmap := TBitmap.Create;
try
AWidth :=Width;
AWidthOffset := 0;
AHeight := Height;
AHeightOffset := 0;
Bitmap.Width := Width;
Bitmap.Height := Height;
Bitmap.Canvas.Brush.Color := clBtnFace;
Bitmap.Canvas.FillRect(Rect(0, 0, Width, Height));
ARect := Rect(AWidthOffset, AHeightOffset, AWidth + AWidthOffset, AHeight + AHeightOffset);
Bitmap.Canvas.StretchDraw(ARect, AJPeg);
Image1.Picture.Assign(BitMap);
finally
Bitmap.Free;
end;
{Bitmap := TBitmap.Create;
try
Ratio := AJPeg.Width /AJPeg.Height;
if Ratio > 1.333 then
begin
AHeight := Round(Width / Ratio);
AHeightOffset := (Height - AHeight) div 2;
AWidth := Width;
AWidthOffset := 0;
end
else
begin
AWidth := Round(Height * Ratio);
AWidthOffset := (Width - AWidth) div 2;
AHeight := Height;
AHeightOffset := 0;
end;
Bitmap.Width := 450;
Bitmap.Height := 619;
Bitmap.Canvas.Brush.Color := clBtnFace;
Bitmap.Canvas.FillRect(Rect(0, 0, Width, Height));
ARect := Rect(AWidthOffset, AHeightOffset, AWidth + AWidthOffset, AHeight + AHeightOffset);
Bitmap.Canvas.StretchDraw(ARect, AJPeg);
Image1.Picture.Assign(BitMap);
finally
Bitmap.Free;
end;}
end;
procedure TfrmBPZDY_ColTJ.ReadINIFile10();
var
programIni:Tinifile; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
FileName:string;
begin
FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI';
programIni:=Tinifile.create(FileName);
server:=programIni.ReadString('SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
programIni.Free;
end;
procedure TfrmBPZDY_ColTJ.TGBClick(Sender: TObject);
begin
Close;
end;
procedure TfrmBPZDY_ColTJ.cxDBTreeList1DblClick(Sender: TObject);
begin
ModalResult:=1;
end;
procedure TfrmBPZDY_ColTJ.HXTypeBtnClick(Sender: TObject);
begin
frmSCPerson:=TfrmSCPerson.Create(Application);
with frmSCPerson do
begin
FlagStr:='HXZDYType';
if ShowModal=1 then
begin
HXType.Text:=Trim(FSDPerson);
TJCPID.Text:='CP1910290001';
end;
free;
end;
end;
procedure TfrmBPZDY_ColTJ.TJGYNameBtnClick(Sender: TObject);
var FGYName:string;
begin
frmBPZDY_LRTJ1:=TfrmBPZDY_LRTJ1.Create(Application);
with frmBPZDY_LRTJ1 do
begin
flag:='TJName';
flagName:='<27>̽<EFBFBD>';
cxGrid3.Visible:=true;
ViewFlag:=True;
Panel4.Visible:=true;
if ShowModal=1 then
begin
with ML_GX do
begin
first;
while not eof do
begin
if FGYName='' then
begin
FGYName:=Trim(ML_GX.fieldbyname('GYName').AsString);
end
else
begin
FGYName:=FGYName+'+'+Trim(ML_GX.fieldbyname('GYName').AsString)
end;
next;
end;
end;
TJGYName.Text:=FGYName;
end;
free;
end;
end;
procedure TfrmBPZDY_ColTJ.N4Click(Sender: TObject);
var
AJpeg:TJPEGImage;
Bitmap,Bitmap11: TBitmap;
ARect,ARect11: TRect;
TPHeight, AHeightOffset: Integer;
TPWidth, AWidthOffset: Integer;
WZShuiPing,WZChuiZhi:Integer;
WZFlag:String;
FHFStr:String;
begin
lstPat2.Clear;
if ODPat.Execute then
begin
lstPat2.AddStrings(ODPat.Files);
end else
begin
Exit;
end;
if lstPat2.Count>1 then
begin
lstPat2.Clear;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>ͼƬ!','<27><>ʾ',0);
Exit;
end else
if lstPat2.Count<1 then
begin
Exit;
end;
AJpeg:=TJpegImage.Create();
AJpeg.LoadFromFile(ExtractFileName(ODPat.FileName));
Image2.Hint:=ExtractFileName(ODPat.FileName);
TJTPID.Text:=FormatDateTime('yyMMddhhmmss',now);
FileName1:=Trim(ExtractFileName(ODPat.FileName));
TPWidth:=AJpeg.Width;
TPHeight:=AJpeg.Height;
Bitmap := TBitmap.Create;
Bitmap11 := TBitmap.Create;
Bitmap.Width :=Panel10.Width-2;
Bitmap.Height :=Round(Panel10.Width/TPWidth*TPHeight);
if Bitmap.Height>Panel10.Height then
begin
WZFlag:='<27><>ֱ';
Bitmap.Height:=Panel10.Height-2;
Bitmap.Width :=Round(Panel10.Height/TPHeight*TPWidth);
end;
Bitmap11.Width:=Bitmap.Width*2;
Bitmap11.Height:=Bitmap.Height*2;
Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height));
ARect := Rect(0, 0, Bitmap.Width, Bitmap.Height);
Bitmap.Canvas.StretchDraw(ARect, AJPeg);
Image2.Height:=Bitmap.Height;
Image2.Width:=Bitmap.Width;
Image2.Picture.Assign(BitMap);
if Trim(WZFlag)='<27><>ֱ' then
begin
Image2.Top:=1;
Image2.Left:=Round((Panel10.Width-Image2.Width)/2);
end else
begin
Image2.Left:=1;
Image2.Top:=Round((Panel10.Height-Image2.Height)/2);
end;
FangXiang1:=WZFlag;
Image2.Visible:=True;
Bitmap11.Canvas.FillRect(Rect(0, 0, Bitmap11.Width, Bitmap11.Height));
ARect11 := Rect(0, 0, Bitmap11.Width, Bitmap11.Height);
Bitmap11.Canvas.StretchDraw(ARect11, AJPeg);
Image11.Height:=Bitmap11.Height;
Image11.Width:=Bitmap11.Width;
Image11.Picture.Assign(BitMap11);
TJPTID.Text:='';
Panel10.Color:=clBtnFace;
end;
procedure TfrmBPZDY_ColTJ.Button2Click(Sender: TObject);
begin
if TJTPID.Text<>'' then
begin
if lstPat2.Count=1 then
begin
SaveImage1(Trim(TJTPID.Text));
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add('update Image_Info set TJHXType='''+trim(HXType.Text)+'''');
sql.add(',TJGYName='''+trim(TJGYName.Text)+'''');
sql.Add(' where TJML='''+Trim(FTJML)+'''');
ExecSQL;
end;
end;
end;
ModalResult:=1;
end;
procedure TfrmBPZDY_ColTJ.Button3Click(Sender: TObject);
begin
close;
end;
end.