unit U_ZdyAttachCP30; 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; type FdDy=record inc: integer; //客户端套接字句柄 FDdys:string[32]; //客户端套接字 FdDysName:string[32]; //客户端套接字 end; TfrmZdyAttachCP30 = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; ZdyName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; ToolButton3: TToolButton; v2Column6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column5: TcxGridDBColumn; Label1: TLabel; ZdyCode: TEdit; ToolButton4: TToolButton; Label2: TLabel; DEFstr5: TComboBox; v2Column11: TcxGridDBColumn; v2Column12: TcxGridDBColumn; OpenDialog1: TOpenDialog; v2Column14: TcxGridDBColumn; v2Column15: TcxGridDBColumn; ToolButton6: TToolButton; Panel2: TPanel; RadioGroup1: TRadioGroup; Label4: TLabel; cxButton1: TcxButton; cxButton2: TcxButton; Pan_Image: TPanel; Pic_Image1: TcxDBImage; ADOQueryImage: TADOQuery; DSImage: TDataSource; IdFTP1: TIdFTP; v2Column4: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ZdyNameChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxButton2Click(Sender: TObject); procedure cxButton1Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure FormResize(Sender: TObject); procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure Pic_Image1DblClick(Sender: TObject); private fFlileFlag:string; { Private declarations } procedure InitGrid(); procedure InitImage(); procedure LookImage(FileName:string); public fkhType:string; dFdDy: array[0..20] of FdDy; //客户端连接数组 end; var frmZdyAttachCP30: TfrmZdyAttachCP30; implementation uses U_DataLink,U_Fun,U_ZDYHelp,U_ZdyAttInputCP, U_ZdyAttInputCP30; {$R *.dfm} procedure TfrmZdyAttachCP30.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 TfrmZdyAttachCP30.InitImage(); begin ADOQueryImage.Close; if CDS_HZ.IsEmpty then exit; with ADOQueryImage do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where WBID='+quotedstr(trim(CDS_HZ.fieldbyname('zdyCode').AsString))); sql.Add('and TFType='+quotedstr(trim('CT'))); open; end; end; procedure TfrmZdyAttachCP30.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; Filtered:=False; SQL.Clear; sql.Add(' select ATID,ZdyName,ZdyCode,DEFstr1,DEFstr2,defNote1,Mrate,defNote2,defNote3,DEFstr3,DEFstr5,DEFstr4,'); sql.Add(' DEFstr6,DEFstr7,DEFstr8,Note,DEFstr4,DEFstr5,defflt1,Filler,FillTime '); sql.Add(' from KH_Zdy_Attachment A where Type=''CPTP'' '); sql.Add(' and isnull(khType,'''')='+quotedstr(trim(fkhType))); sql.Add(' order by zdyName '); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZdyAttachCP30.FormDestroy(Sender: TObject); begin frmZdyAttachCP30:=nil; end; procedure TfrmZdyAttachCP30.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmZdyAttachCP30.TBCloseClick(Sender: TObject); begin WriteCxGrid('产品资料14',Tv2,'客户自定义'); Close; end; procedure TfrmZdyAttachCP30.TBDelClick(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); ExecSQL; end; end; CDS_HZ.Delete; end; procedure TfrmZdyAttachCP30.FormShow(Sender: TObject); begin fFlileFlag:=UserDataFlag+'CT'; ReadCxGrid('产品资料14',Tv2,'客户自定义'); InitGrid(); end; procedure TfrmZdyAttachCP30.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmZdyAttachCP30.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 TfrmZdyAttachCP30.ZdyNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmZdyAttachCP30.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid2); // SelExportData(Tv2,ADOQueryMain,'产品资料列表'); end; procedure TfrmZdyAttachCP30.ToolButton4Click(Sender: TObject); begin try frmZdyAttInputCP30:=TfrmZdyAttInputCP30.Create(Application); with frmZdyAttInputCP30 do begin FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString); fkhType:=self.fkhType; fFlileFlag:=self.fFlileFlag; if ShowModal=1 then begin // TBRafresh.Click; end; end; finally frmZdyAttInputCP30.Free; end; end; procedure TfrmZdyAttachCP30.ToolButton3Click(Sender: TObject); begin try frmZdyAttInputCP30:=TfrmZdyAttInputCP30.Create(Application); with frmZdyAttInputCP30 do begin FCYID:=''; fkhType:=self.fkhType; fFlileFlag:=self.fFlileFlag; if ShowModal=1 then begin TBRafresh.Click; end; end; finally frmZdyAttInputCP30.Free; end; end; procedure TfrmZdyAttachCP30.cxButton2Click(Sender: TObject); begin Panel2.Visible:=false; end; procedure TfrmZdyAttachCP30.cxButton1Click(Sender: TObject); var fPrintFile:string; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin IF CDS_HZ.IsEmpty then exit; try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(CDS_HZ.fieldbyname('ZDYCODE').AsString); fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); except application.MessageBox('条形码生成失败!','提示信息',MB_ICONERROR); exit; end; fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+trim(RadioGroup1.Items[RadioGroup1.ItemIndex])+'.rmf' ; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE']:=fImagePath; RM1.LoadFromFile(fPrintFile); // Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1); // RM1.ShowReport; RM1.PrintReport; end else Application.MessageBox(PChar('没有找到文件'+fPrintFile),'提示',0); end; procedure TfrmZdyAttachCP30.ToolButton6Click(Sender: TObject); begin Panel2.Left:=(self.Width-Panel2.Width) div 2; Panel2.Top:=(self.Height-Panel2.Height) div 2 -100; Panel2.Visible:=true; end; procedure TfrmZdyAttachCP30.FormResize(Sender: TObject); begin Pan_image.Left:=self.Width-Pan_image.Width-30; Pan_image.Top:=self.Height-Pan_image.Height-80; end; procedure TfrmZdyAttachCP30.Tv2FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitImage(); end; procedure TfrmZdyAttachCP30.Pic_Image1DblClick(Sender: TObject); begin IF TcxDBImage(Sender).Picture.Height=0 then exit; LookImage(ADOQueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring); end; end.