unit U_CPManage; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 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,jpeg,U_SLT, RM_e_Xls, cxLookAndFeels, cxLookAndFeelPainters, cxTLdxBarBuiltInMenu, cxNavigator; type TfrmCPManage = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBDel: TToolButton; TBClose: TToolButton; DataSource1: TDataSource; ADOQueryTree20: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxSplitter1: TcxSplitter; Panel1: TPanel; Label2: TLabel; CYID: TEdit; ToolButton2: TToolButton; ToolButton3: TToolButton; Label1: TLabel; CYName: TEdit; Label4: TLabel; DefStr6: TEdit; Label5: TLabel; defnote5: TEdit; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column11: TcxGridDBColumn; DataSource2: TDataSource; ADOQueryMain: TADOQuery; CDS_Main: TClientDataSet; v1Column12: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton4: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; ODPat: TOpenDialog; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; ToolButton5: TToolButton; ToolButton6: TToolButton; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; Label3: TLabel; CYNO: TEdit; v1Column16: TcxGridDBColumn; ToolButton7: TToolButton; Panel2: TPanel; v1Column19: TcxGridDBColumn; DSCYNO: TDataSource; CDS_CYNO: TClientDataSet; Edit1: TEdit; Label6: TLabel; Label7: TLabel; CYKZ: TEdit; Label8: TLabel; Label9: TLabel; CYCF: TEdit; CYECF: TEdit; Label10: TLabel; CYMF: TEdit; v1Column42: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column13: TcxGridDBColumn; ADOQueryTree: TClientDataSet; Panel5: TPanel; cxDBTreeList1: TcxDBTreeList; cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; Label11: TLabel; Label12: TLabel; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column25: TcxGridDBColumn; defstr1: TEdit; Label13: TLabel; v1Column26: TcxGridDBColumn; v1Column27: TcxGridDBColumn; v1Column28: TcxGridDBColumn; v1Column29: TcxGridDBColumn; v1Column30: TcxGridDBColumn; v1Column31: TcxGridDBColumn; DefStr2: TEdit; Label14: TLabel; defstr7: TEdit; Label15: TLabel; defnote3: TEdit; Label16: TLabel; v1Column32: TcxGridDBColumn; v1Column33: TcxGridDBColumn; ComboBox1: TComboBox; Panel3: TPanel; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; adoqueryPicture: TADOQuery; ToolButton8: TToolButton; v1Column22: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column34: TcxGridDBColumn; v1Column35: TcxGridDBColumn; v1Column36: TcxGridDBColumn; v1Column37: TcxGridDBColumn; v1Column38: TcxGridDBColumn; v1Column39: TcxGridDBColumn; v1Column40: TcxGridDBColumn; v1Column41: TcxGridDBColumn; v1Column43: TcxGridDBColumn; v1Column44: TcxGridDBColumn; Label18: TLabel; CYSpec: TEdit; v1Column45: TcxGridDBColumn; v1Column46: TcxGridDBColumn; v1Column47: TcxGridDBColumn; v1Column48: TcxGridDBColumn; CheckBox1: TCheckBox; v1Column49: TcxGridDBColumn; v1Column50: TcxGridDBColumn; ToolButton9: TToolButton; RMDBDataSet1: TRMDBDataSet; ADOQueryPrint: TADOQuery; RMXLSExport1: TRMXLSExport; ToolButton10: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxDBTreeList1DblClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CYIDKeyPress(Sender: TObject; var Key: Char); procedure CYNoChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Tv1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ToolButton7Click(Sender: TObject); procedure v1Column19PropertiesChange(Sender: TObject); procedure CYMFChange(Sender: TObject); procedure CYNameChange(Sender: TObject); procedure CYNOKeyPress(Sender: TObject; var Key: Char); procedure ToolButton8Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure ToolButton10Click(Sender: TObject); private { Private declarations } CPID:string; PState:Integer; FCPID,FTopID:String; procedure InitTree(); procedure InitGrid(); procedure ReadINIFile(); procedure InitImage(); procedure TJGS(); public { Public declarations } end; var frmCPManage: TfrmCPManage; Mach: array of TfrmSlt; implementation uses U_DataLink,U_Fun,U_CPAdd,U_FileUp,U_YPCR, U_YPTypeHelp; {$R *.dfm} procedure TfrmCPManage.InitTree(); var i:Integer; begin with ADOQueryTree20 do begin Close; SQL.Clear; SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName'); Open; end; SCreateCDS20(ADOQueryTree20,ADOQueryTree); SInitCDSData20(ADOQueryTree20,ADOQueryTree); cxDBTreeList1.Items[0].Expand(false); //cxDBTreeList1.Items[1].Expand(False); end; procedure TfrmCPManage.InitGrid(); begin Panel2.Visible:=True; Panel2.Refresh; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); Parameters.ParamByName('Code').Value:=''; Parameters.ParamByName('PState').Value:=0; Parameters.ParamByName('CYType').Value:=Trim(ADOQueryTree.fieldbyname('CPID').AsString); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; Panel2.Visible:=False; end; procedure TfrmCPManage.TJGS(); var i,j:Integer; begin { i:=0; j:=0; CDS_Main.DisableControls; with CDS_Main do begin first; while not Eof do begin if FieldByName('CYPriceKg').Value=0 then begin i:=i+1; end else begin j:=j+1; end; Next; end; end; CDS_Main.EnableControls; } // Label11.Caption:='定价样品数量:'+Trim(IntToStr(j)); // Label12.Caption:='未定价样品数量:'+Trim(IntToStr(i)); end; procedure TfrmCPManage.FormDestroy(Sender: TObject); begin frmCPManage:=nil; end; procedure TfrmCPManage.FormClose(Sender: TObject; var Action: TCloseAction); var i,j:integer; begin j:=length(Mach); if j>0 then begin for i:=0 to j-1 do begin Mach[i].free; end; end; SetLength(Mach, 0); // writeCxGrid(self.Caption+tv1.Name,tv1); // Application := mainApplication; action:=cafree; end; procedure TfrmCPManage.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption,Tv1,'样品管理'); if DirectoryExists(ExtractFileDir('D:\Right1209')) then winexec('cmd /c rd /s /q D:\Right1209',sw_hide); Close; end; procedure TfrmCPManage.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_Main.fieldbyname('CYID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+''''); ExecSQL; end; end; CDS_Main.Delete; end; procedure TfrmCPManage.FormShow(Sender: TObject); begin Panel3.Align:=alclient; InitTree(); ReadCxGrid(self.Caption,Tv1,'样品管理'); if DParameters1='1' then begin TBAdd.Visible:=False; TBDel.Visible:=False; ToolButton3.Visible:=False; ToolButton5.Visible:=False; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select CYID='''' '); Open; end; SCreateCDS20(ADOQueryTemp,CDS_CYNO); SInitCDSData20(ADOQueryTemp,CDS_CYNO); with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType'); Parameters.ParamByName('Code').Value:=''; Parameters.ParamByName('PState').Value:=0; Parameters.ParamByName('CYType').Value:='XXXXXXX'; Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); CDS_CYNO.Delete; end; procedure TfrmCPManage.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); TJGS(); end; procedure TfrmCPManage.TBAddClick(Sender: TObject); var i:Integer; FieldName:String; begin try frmCPAdd:=TfrmCPAdd.Create(Application); with frmCPAdd do begin CopyInt:=0; FCYID:=''; FCPID:=Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); FCPNo:=Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); if ShowModal=1 then begin self.InitGrid(); { Self.CDS_Main.Append; for i:=0 to frmCPAdd.Tv1.ColumnCount-1 do begin FieldName:=frmCPAdd.Tv1.Columns[i].DataBinding.FilterFieldName; if Trim(FieldName)<>'' then begin Self.CDS_Main.FieldByName(FieldName).Value:=frmCPAdd.CDS_Sub.FieldByName(FieldName).Value; end; end; CDS_Main.FieldByName('CPName').Value:=Trim(ADOQueryTree.fieldbyname('CPName').AsString); CDS_Main.FieldByName('CYID').Value:=CDS_Sub.fieldbyname('CYID').Value; CDS_Main.FieldByName('CYType').Value:=CDS_Sub.fieldbyname('CYType').Value; Self.CDS_Main.Post; } end; self.CDS_Main.Locate('CYID',FCYID,[]); end; finally frmCPAdd.Free; end; end; procedure TfrmCPManage.TBRafreshClick(Sender: TObject); begin InitTree(); InitGrid(); TJGS(); end; procedure TfrmCPManage.ToolButton3Click(Sender: TObject); var i:Integer; FieldName:String; begin try frmCPAdd:=TfrmCPAdd.Create(Application); with frmCPAdd do begin CopyInt:=0; FCYID:=Trim(Self.CDS_Main.fieldbyname('CYID').AsString); FCPID:=Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); FCPNo:=Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); if ShowModal=1 then begin self.InitGrid(); { Self.CDS_Main.Edit; for i:=0 to frmCPAdd.Tv1.ColumnCount-1 do begin FieldName:=frmCPAdd.Tv1.Columns[i].DataBinding.FilterFieldName; if Trim(FieldName)<>'' then begin Self.CDS_Main.FieldByName(FieldName).Value:=frmCPAdd.CDS_Sub.FieldByName(FieldName).Value; end; end; CDS_Main.FieldByName('CPName').Value:=Trim(ADOQueryTree.fieldbyname('CPName').AsString); CDS_Main.FieldByName('CYID').Value:=CDS_Sub.fieldbyname('CYID').Value; CDS_Main.FieldByName('CYType').Value:=CDS_Sub.fieldbyname('CYType').Value; Self.CDS_Main.Post; } end; self.CDS_Main.Locate('CYID',trim(FCYID),[]); end; finally frmCPAdd.Free; end; end; procedure TfrmCPManage.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); TJGS(); end; end; procedure TfrmCPManage.CYIDKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Trim(CYID.Text)='' then Exit; with ADOQueryMain do begin Close; Filtered:=False; sql.Clear; sql.Add('exec P_Select_CP_YDang :Code,1,'''' '); Parameters.ParamByName('Code').Value:=Trim(CYID.Text); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); CYID.Text:=''; ADOQueryTree.Locate('CPID',CPID,[]); end; end; procedure TfrmCPManage.CYNoChange(Sender: TObject); begin //if Length(Trim(TEdit(Sender).Text))<4 then Exit; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); TJGS(); end; end; procedure TfrmCPManage.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel('样品档案1',cxGrid1); end; procedure TfrmCPManage.ToolButton4Click(Sender: TObject); var fPrintFile,FFCYID:string; DPS,i,j:Integer; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin CYID.SetFocus; if CDS_Main.IsEmpty then Exit; IF trim(ComboBox1.Text)='' then begin Application.MessageBox('样品标签不能为空!','提示',0); exit; end; if Trim(Edit1.Text)<>'' then begin if TryStrToInt(Edit1.Text,i)=False then begin Application.MessageBox('份数录入错误!','提示',0); exit; end; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+trim(ComboBox1.Text)+'.rmf'; CDS_Main.DisableControls; DPS:=0; FFCYID:=''; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean then begin sleep(200); try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(CDS_Main.fieldbyname('CYID').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; RMVariables['QRBARCODE']:=fImagePath; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.DefaultCopies:=strtointdef(trim(Edit1.Text),1); RM1.PrintReport; // RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+trim(fPrintFile)),'提示',0); Exit; end; if DPS=0 then begin FFCYID:=Trim(CDS_Main.fieldbyname('CYID').AsString); end; end; Next; end; end; CDS_Main.EnableControls; CDS_Main.Locate('CYID',FFCYID,[]); Edit1.Text:='1'; end; procedure TfrmCPManage.ToolButton5Click(Sender: TObject); begin try frmFileUp:=TfrmFileUp.Create(Application); with frmFileUp do begin Code.Text:=Trim(Self.CDS_Main.fieldbyname('CYNO').AsString); CYID:=Trim(Self.CDS_Main.fieldbyname('CYID').AsString); if ShowModal=1 then begin Self.InitGrid(); Self.CDS_Main.Locate('CYID',CYID,[]); end; end; finally frmFileUp.Free; end; end; procedure TfrmCPManage.ToolButton6Click(Sender: TObject); var fHandle:THandle; FInt:Integer; FFName,FPath:String; begin {FPath:='C:\HTTP1209\'; if DirectoryExists(ExtractFileDir(FPath)) then winexec('cmd /c rd /s /q C:\HTTP1209',sw_hide);} with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from XD_File where CYNO='''+Trim(CDS_Main.fieldbyname('CYNO').AsString)+''''); Open; if IsEmpty then begin Application.MessageBox('样品图片未上传!','提示',0); Exit; end; end; try ReadINIFile(); server:=ReadINIFileStr('SYSTEMSET.INI','SERVER','服务器地址','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('无法连接到文件服务器,请检查!', '提示', MB_ICONWARNING); Exit; end; FPath:='D:\Right1209\'; if not DirectoryExists(ExtractFileDir(FPath)) then CreateDir(ExtractFileDir(FPath)); FFName:=Trim(ADOQueryTemp.fieldbyname('FileName').AsString); FFName:=FPath+FFName; if FileExists(FFName) then begin FInt:=1; end; if FInt<>1 then IdFTP1.Get('YP\'+Trim(ADOQueryTemp.fieldbyname('FileName').AsString), FPath+Trim(ADOQueryTemp.fieldbyname('FileName').AsString) ); if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open',PChar(FPath+Trim(ADOQueryTemp.fieldbyname('FileName').AsString)),'', '', SW_SHOWNORMAL); end; procedure TfrmCPManage.ReadINIFile(); var programIni:Tinifile; //配置文件名 FileName:string; begin FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; programIni:=Tinifile.create(FileName); server:=programIni.ReadString('SERVER','服务器地址','127.0.0.1'); programIni.Free; end; procedure TfrmCPManage.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if CDS_Main.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').asstring)+''''); Open; end; CPID:=Trim(ADOQueryTemp.fieldbyname('CYType').AsString); ADOQueryTree.Locate('CPID',CPID,[]); InitImage(); end; procedure TfrmCPManage.InitImage(); var i,j:integer; jpg:TJpegImage; myStream: TADOBlobStream; begin j:=length(Mach); if j>0 then begin for i:=0 to j-1 do begin Mach[i].free; end; end; SetLength(Mach, 0); IF CDS_Main.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B where A.TFID =B.XFID and A.WBID='+quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString))); open; end; j:=adoqueryPicture.RecordCount; if j<1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg:=TJpegImage.Create(); for i:=0 to j-1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString)<>'' then begin myStream:=tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')),bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSlt.Create(Self); Mach[i].Name:=trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; Mach[I].Left:=0+i*165; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString,adoqueryPicture.fieldbyname('FileName').AsString,jpg); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmCPManage.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin {if Key= then begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定6666要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_Main.fieldbyname('CYID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+''''); ExecSQL; end; end; CDS_Main.Delete; end; } end; procedure TfrmCPManage.Tv1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key=46 then begin TBDel.Click; end; end; procedure TfrmCPManage.ToolButton7Click(Sender: TObject); var i:Integer; FieldName:String; begin try frmCPAdd:=TfrmCPAdd.Create(Application); with frmCPAdd do begin CopyInt:=1; // TBADD.Visible:=false; // TBdel.Visible:=false; FCYID:=Trim(Self.CDS_Main.fieldbyname('CYID').AsString); FCPID:=Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); FCPNo:=Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); if ShowModal=1 then begin self.InitGrid(); { Self.CDS_Main.Append; for i:=0 to frmCPAdd.Tv1.ColumnCount-1 do begin FieldName:=frmCPAdd.Tv1.Columns[i].DataBinding.FilterFieldName; if Trim(FieldName)<>'' then begin Self.CDS_Main.FieldByName(FieldName).Value:=frmCPAdd.CDS_Sub.FieldByName(FieldName).Value; end; end; CDS_Main.FieldByName('CPName').Value:=Trim(ADOQueryTree.fieldbyname('CPName').AsString); CDS_Main.FieldByName('CYID').Value:=CDS_Sub.fieldbyname('CYID').Value; CDS_Main.FieldByName('CYType').Value:=CDS_Sub.fieldbyname('CYType').Value; Self.CDS_Main.Post; } end; self.CDS_Main.Locate('CYID',FCYID,[]); end; finally frmCPAdd.Free; end; end; procedure TfrmCPManage.v1Column19PropertiesChange(Sender: TObject); var mvalue:Boolean; begin { mvalue:=TcxCheckBox(Sender).EditingValue; if mvalue=True then begin with CDS_CYNO do begin if Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[])=False then begin Append; FieldByName('CYID').Value:=Trim(CDS_Main.fieldbyname('CYID').AsString); Post; end; end; end else begin //with CDS_CYNO do //begin CDS_CYNO.Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[]); CDS_CYNO.Delete; //end; end; } end; procedure TfrmCPManage.CYMFChange(Sender: TObject); begin //if Length(Trim(TEdit(Sender).Text))<2 then Exit; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); TJGS(); end; end; procedure TfrmCPManage.CYNameChange(Sender: TObject); begin //if Length(Trim(TEdit(Sender).Text))<2 then Exit; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); TJGS(); end; end; procedure TfrmCPManage.CYNOKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Trim(CYNO.Text)='' then Exit; if Length(Trim(CYNO.Text))<4 then Exit; with ADOQueryMain do begin Close; Filtered:=False; sql.Clear; sql.Add('exec P_Select_CP_YDang :Code,2,'''' '); Parameters.ParamByName('Code').Value:='%'+Trim(CYNO.Text)+'%'; Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); CYID.Text:=''; ADOQueryTree.Locate('CPID',CPID,[]); TJGS(); end; end; procedure TfrmCPManage.ToolButton8Click(Sender: TObject); var fPrintFile,FFCYID:string; DPS,i,j:Integer; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin CYID.SetFocus; if CDS_Main.IsEmpty then Exit; IF trim(ComboBox1.Text)='' then begin Application.MessageBox('样品标签不能为空!','提示',0); exit; end; //if CDS_CYNO.IsEmpty then Exit; if Trim(Edit1.Text)<>'' then begin if TryStrToInt(Edit1.Text,i)=False then begin Application.MessageBox('份数录入错误!','提示',0); exit; end; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+trim(ComboBox1.Text)+'.rmf'; CDS_Main.DisableControls; DPS:=0; FFCYID:=''; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean then begin sleep(200); try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(CDS_Main.fieldbyname('CYID').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; RMVariables['QRBARCODE']:=fImagePath; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.DefaultCopies:=strtointdef(trim(Edit1.Text),1); // RM1.PrintReport; RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+trim(fPrintFile)),'提示',0); Exit; end; if DPS=0 then begin FFCYID:=Trim(CDS_Main.fieldbyname('CYID').AsString); end; end; //CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]); Next; end; end; CDS_Main.EnableControls; CDS_Main.Locate('CYID',FFCYID,[]); Edit1.Text:='1'; end; procedure TfrmCPManage.CheckBox1Click(Sender: TObject); begin SelOKNo(CDS_Main,checkbox1.Checked); end; procedure TfrmCPManage.ToolButton9Click(Sender: TObject); var fPrintFile:string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete TBSubID where DName='''+Trim(DCode)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('SELECT * FROM TBSubID where 1=2 '); open; end; CDS_Main.DisableControls; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin First; while not Eof do begin If Fieldbyname('Ssel').AsBoolean then begin ADOQueryCmd.append; ADOQueryCmd.fieldbyname('SubId').Value:=Trim(CDS_Main.fieldbyname('CYID').AsString); ADOQueryCmd.fieldbyname('Dname').Value:=Trim(DCode); ADOQueryCmd.post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; CDS_Main.EnableControls; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\样品信息表.rmf' ; with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*, '); sql.Add('FileOthers=(select Top 1 FilesOther from TP_File X1 where X1.WBID=A.CYID ) '); sql.Add('from CP_YDang A '); sql.Add('where exists(select subID from TBSubID X where X.subID=A.CYID and X.Dname='''+trim(DCode)+''')'); Open; end; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+trim(fPrintFile)),'提示',0); exit; end; end; procedure TfrmCPManage.ToolButton10Click(Sender: TObject); var flb:string; begin if CDS_Main.IsEmpty then Exit; if not CDS_Main.Locate('ssel',true,[]) then begin application.MessageBox('没有选择数据!','提示信息',0); exit; end; if Application.MessageBox('确定要修改样品类别吗?','提示',32+4)<>IDYES then Exit; flb:=''; frmYPTypeHelp:=TfrmYPTypeHelp.create(self); with frmYPTypeHelp do begin if showmodal=1 then begin flb:=trim(ADOQueryHelp.fieldbyname('CPID').AsString); end; free; end; if trim(flb)='' then exit; with CDS_Main do begin DisableControls; First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean=True then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CP_YDang SET CYType='''+trim(flb)+''' where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+''''); ExecSQL; end; end; Next; end; EnableControls; end; InitGrid(); end; end.