unit U_ZdyAttachCP_ImageList; interface uses Windows, Messages, SysUtils,StrUtils, Variants, Classes, Graphics, Controls, Forms, ComObj, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, Menus, cxLookAndFeelPainters, cxButtons, cxContainer, cxImage, cxDBEdit, cxPC; type FdDy=record inc: integer; //客户端套接字句柄 FDdys:string[32]; //客户端套接字 FdDysName:string[32]; //客户端套接字 end; TfrmZdyAttachCP_ImageList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; C_CodeName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; Label1: TLabel; C_Color: TEdit; OpenDialog1: TOpenDialog; ADOQueryImage: TADOQuery; DSImage: TDataSource; IdFTP1: TIdFTP; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column5: TcxGridDBColumn; cxTabControl_page: TcxTabControl; v2Column6: TcxGridDBColumn; v2Column7: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2Column9: TcxGridDBColumn; v2Column10: TcxGridDBColumn; v2Column11: TcxGridDBColumn; v2Column12: TcxGridDBColumn; v2Column13: TcxGridDBColumn; v2Column14: TcxGridDBColumn; v2Column15: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure C_CodeNameChange(Sender: TObject); procedure Pic_Image1DblClick(Sender: TObject); procedure cxTabControl_pageChange(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); private fFlileFlag:string; { Private declarations } procedure InitGrid(); procedure InitPage(); procedure LookImage(FileName:string); public fkhType:string; dFdDy: array[0..20] of FdDy; //客户端连接数组 end; var frmZdyAttachCP_ImageList: TfrmZdyAttachCP_ImageList; implementation uses U_DataLink,U_Fun,U_ZDYHelp,U_ZdyAttInputCP, U_ZdyAttInputCP_other; {$R *.dfm} procedure TfrmZdyAttachCP_ImageList.InitPage(); var JLInt,YeInt,i:Integer; begin try with ADOQueryTemp do begin Close; Filtered:=False; SQL.Clear; sql.Add(' exec P_Get_CP_Image_Page '); sql.Add(' @C_CodeName='+quotedstr(trim(C_CodeName.text))); sql.Add(',@C_Color='+quotedstr(trim(C_Color.text))); Open; end; JLInt:=ADOQueryTemp.fieldbyname('JLInt').AsInteger; YeInt:=JLInt div 90; YeInt:=YeInt+1; cxTabControl_page.Tabs.Clear; for i:=1 to YeInt do begin cxTabControl_page.Tabs.Add('第'+IntToStr(i)+'页'); end; finally end; end; procedure TfrmZdyAttachCP_ImageList.LookImage(FileName:string); var sFieldName:string; // ff: TADOBlobStream; // FJStream : TMemoryStream; begin sFieldName:=leftbstr(ExtractFilePath(Application.ExeName),1)+':\图片查看'; if not DirectoryExists(pchar(sFieldName)) then CreateDirectory(pchar(sFieldName),nil); sFieldName:=sFieldName+'\'+trim(fileName); try IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI','SERVER','服务器地址','127.0.0.1'); IdFTP1.Username := 'three'; IdFTP1.Password := '641010'; IdFTP1.Connect(); except ; end; if IdFTP1.Connected then begin // Panel2.Caption:='正在下载数据,请稍等...'; // Panel2.Visible:=true; // application.ProcessMessages; try IdFTP1.Get(fFlileFlag+'\'+ Trim(fileName), sFieldName,true, false); except // Panel2.Visible:=false; Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; end else begin // Panel2.Visible:=false; Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; // Panel2.Visible:=false; if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); end; procedure TfrmZdyAttachCP_ImageList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' exec P_Get_CP_Image_List '); sql.Add(' @C_CodeName='+quotedstr(trim(C_CodeName.text))); sql.Add(',@C_Color='+quotedstr(trim(C_Color.text))); sql.Add(',@yeInt='''+inttostr(cxTabControl_page.TabIndex)+''' '); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZdyAttachCP_ImageList.FormDestroy(Sender: TObject); begin frmZdyAttachCP_ImageList:=nil; end; procedure TfrmZdyAttachCP_ImageList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmZdyAttachCP_ImageList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmZdyAttachCP_ImageList.FormShow(Sender: TObject); begin fFlileFlag:=UserDataFlag+'HX'; // InitGrid(); end; procedure TfrmZdyAttachCP_ImageList.TBRafreshClick(Sender: TObject); begin InitPage(); InitGrid(); end; procedure TfrmZdyAttachCP_ImageList.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); end; end; procedure TfrmZdyAttachCP_ImageList.C_CodeNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmZdyAttachCP_ImageList.Pic_Image1DblClick(Sender: TObject); begin IF TcxDBImage(Sender).Picture.Height=0 then exit; LookImage(ADOQueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring); end; procedure TfrmZdyAttachCP_ImageList.cxTabControl_pageChange( Sender: TObject); begin Initgrid(); end; procedure TfrmZdyAttachCP_ImageList.Tv2CellDblClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var ffieldName,ffileName:string; begin ffieldName:=uppercase(trim(tv2.Controller.FocusedColumn.DataBinding.FilterFieldName)); IF (ffieldName='FILESOTHER0') OR (ffieldName='FILESOTHER1') OR (ffieldName='FILESOTHER2') then begin ffileName:='FileName'+RightStr(ffieldName,1); LookImage(CDS_HZ.fieldbyname(ffileName).asstring); end; end; end.