D7snShanfengT/山峰贸易管理/U_FileUp.pas

332 lines
9.1 KiB
ObjectPascal
Raw Permalink Normal View History

2026-02-26 09:41:35 +08:00
unit U_FileUp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ComCtrls, ToolWin, ExtCtrls,
cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxClasses, cxControls, cxGridCustomView, cxGrid, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdFTP, StdCtrls, ADODB,jpeg,
BtnEdit,IniFiles, cxGridCustomPopupMenu, cxGridPopupMenu, DBClient,ShellAPI;
type
TfrmFileUp = class(TForm)
cxGrid7: TcxGrid;
TV7: TcxGridDBTableView;
FileName: TcxGridDBColumn;
FileDate: TcxGridDBColumn;
cxGridLevel6: TcxGridLevel;
Panel16: TPanel;
Panel1: TPanel;
Label1: TLabel;
Code: TEdit;
ODPat: TOpenDialog;
IdFTP1: TIdFTP;
SaveDialog1: TSaveDialog;
ADOQueryFile: TADOQuery;
DataSource1: TDataSource;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
ToolBar6: TToolBar;
FileUp: TToolButton;
FileDel: TToolButton;
V7Column1: TcxGridDBColumn;
ToolButton1: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_SC: TClientDataSet;
FileDown: TToolButton;
Panel2: TPanel;
ToolButton2: TToolButton;
Panel3: TPanel;
Label2: TLabel;
Label5: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
procedure FileUpClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FileDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FileDownClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
private
lstPat: TStringList;
AJpeg: TJPEGImage;
procedure ReadINIFile10();
procedure InitGrid();
{ Private declarations }
public
CYID:String;
{ Public declarations }
end;
var
frmFileUp: TfrmFileUp;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmFileUp.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 TfrmFileUp.FileUpClick(Sender: TObject);
var
i,j: Integer;
PatFile,HZStr: String;
FTPPath,FConNo,MaxNo:string;
begin
{if Trim(Code.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;}
lstPat.Clear;
if ODPat.Execute then
begin
lstPat.AddStrings(ODPat.Files);
end;
if lstPat.Count > 0 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;
end else
begin
Exit;
end;
Panel16.Visible:=True;
Panel16.Refresh;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select isnull(Count(*),0) MM from XD_File where ');
SQL.Add(' filetype=''SC''');
Open;
j:=fieldbyname('MM').AsInteger;
end;
try
ADOQueryCmd.Connection.BeginTrans;
for i := 0 to lstPat.Count - 1 do
begin
PatFile := ExtractFileName(lstPat[i]);
HZStr:=Copy(PatFile,(Pos('.',PatFile)+1),(Length(PatFile)-Pos('.',PatFile)) ) ;
{ PatFile:=Copy(PatFile,(Pos('.',PatFile)+1),(Length(PatFile)-Pos('.',PatFile)) ) ;
FConNo:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>';
while Pos('/',FConNo)>0 do
begin
Delete(FConNo,Pos('/',FConNo),1);
end;
PatFile:=Trim(FConNo)+'-'+Inttostr(j+i+1)+'.'+PatFile; }
if IdFTP1.Connected then
begin
try
{if not DirectoryExists('D:\ͼƬ\'+Trim(gDef1)) then
ForceDirectories('D:\ͼƬ\'+Trim(gDef1)); }
// IdFTP1.Put(lstPat[i], Trim('\SC')+'\'+Trim(PatFile));
if GetLSNo(ADOQueryCmd,MaxNo,'SC','XD_File',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
IdFTP1.Put(lstPat[i], Trim('\SC')+'\'+Trim(MaxNo)+'.'+Trim(HZStr));
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('select * from XD_File where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('XFID').Value:=Trim(MaxNo);
FieldByName('CYID').Value:=Trim(MaxNo);
FieldByName('CYNO').Value:=Trim(MaxNo);
FieldByName('filename').Value:=Trim(PatFile);
FieldByName('FileDate').Value:=SGetServerDate(ADOQueryTemp);
fieldbyname('FileType').value:=Trim('SC');
FieldByName('Filler').Value:=Trim(DName);
FieldByName('HZStr').Value:='.'+Trim(HZStr);
Post;
end;
except
//ADOQueryCmd.Connection.RollbackTrans;
//Application.MessageBox('ͼƬ<CDBC>ϴ<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
if IdFTP1.Connected then IdFTP1.Quit;
Panel16.Visible:=False;
InitGrid();
Application.MessageBox('<27>ϴ<EFBFBD><CFB4>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27>ϴ<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmFileUp.FormCreate(Sender: TObject);
begin
lstPat := TStringList.Create;
EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
BegDate.DateTime:=EndDate.DateTime-7;
end;
procedure TfrmFileUp.FileDelClick(Sender: TObject);
begin
if CDS_SC.IsEmpty then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add(' Delete XD_File where XFID='''+Trim(CDS_SC.fieldbyname('XFID').AsString)+'''');
ExecSQL;
end;
CDS_SC.Delete;
end;
procedure TfrmFileUp.FormShow(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD>ű<EFBFBD>',TV7,'<27>ļ<EFBFBD><C4BC>ϴ<EFBFBD>');
InitGrid();
if Trim(DParameters1)='<27><><EFBFBD><EFBFBD>' then
begin
FileUp.Visible:=False;
FileDel.Visible:=False;
end;
end;
procedure TfrmFileUp.InitGrid();
begin
with ADOQueryFile do
begin
Close;
SQL.Clear;
SQL.Add('select * from XD_File where ');
sql.Add(' Filltime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+'''');
sql.Add(' and Filltime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+'''');
SQL.Add(' and FileType=''SC''');
sql.add(' and CYID=CYNO');
SQL.Add(' and CYID not like ''HX%'' ');
Open;
end;
SCreateCDS20(ADOQueryFile,CDS_SC);
SInitCDSData20(ADOQueryFile,CDS_SC);
end;
procedure TfrmFileUp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmFileUp.FormDestroy(Sender: TObject);
begin
frmFileUp:=nil;
end;
procedure TfrmFileUp.ToolButton1Click(Sender: TObject);
var
FPath:String;
begin
Close;
WriteCxGrid('<27><><EFBFBD>ű<EFBFBD>',TV7,'<27>ļ<EFBFBD><C4BC>ϴ<EFBFBD>');
FPath:='D:\Right1209\';
if DirectoryExists(ExtractFileDir(FPath)) then
winexec('cmd /c rd /s /q D:\Right1209\',sw_hide);
end;
procedure TfrmFileUp.FileDownClick(Sender: TObject);
var
fHandle:THandle;
FInt:Integer;
FFName,FPath:String;
begin
if CDS_SC.IsEmpty then Exit;
Panel2.Visible:=True;
Panel2.Refresh;
{ }
try
ReadINIFile10();
server:=ReadINIFileStr('SYSTEMSET.INI','SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
if Length(server)<6 then
begin
server:='127.0.0.1';
end;
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;
FPath:='D:\Right1209\';
if not DirectoryExists(ExtractFileDir(FPath)) then
CreateDir(ExtractFileDir(FPath));
if Trim(CDS_SC.fieldbyname('XFID').AsString)<'SC1310280002' then
begin
FFName:=Trim(CDS_SC.fieldbyname('FileName').AsString);
FFName:=FPath+FFName;
if FileExists(FFName)=false then
begin
IdFTP1.Get('SC\'+Trim(CDS_SC.fieldbyname('FileName').AsString),
FPath+Trim(CDS_SC.fieldbyname('FileName').AsString)
);
end;
Panel2.Visible:=False;
if IdFTP1.Connected then IdFTP1.Quit;
ShellExecute(Handle, 'open',PChar(FPath+Trim(CDS_SC.fieldbyname('FileName').AsString)),'', '', SW_SHOWNORMAL);
end else
begin
FFName:=Trim(CDS_SC.fieldbyname('XFID').AsString)+Trim(CDS_SC.fieldbyname('HZStr').AsString);
if FileExists(FPath+FFName)=false then
begin
IdFTP1.Get('SC\'+FFName,FPath+FFName);
end;
Panel2.Visible:=False;
if IdFTP1.Connected then IdFTP1.Quit;
if FileExists(FPath+FFName) then
begin
ShellExecute(Handle, 'open',PChar(FPath+FFName),'', '', SW_SHOWNORMAL);
end;
end;
end;
procedure TfrmFileUp.ToolButton2Click(Sender: TObject);
begin
InitGrid();
end;
end.