unit U_KHGetCPManage; 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, RM_e_Xls,jpeg; type TfrmKHGetCPManage = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBDel: TToolButton; TBClose: TToolButton; DataSource1: TDataSource; ADOQueryPrint: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; Panel1: TPanel; Label2: TLabel; CYNo: TEdit; ToolButton2: TToolButton; ToolButton3: TToolButton; Label1: TLabel; CYName: TEdit; Label4: TLabel; CYEName: TEdit; Label5: TLabel; CYSpec: TEdit; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; DataSource2: TDataSource; ADOQueryMain: TADOQuery; CDS_Main: TClientDataSet; v1Column12: TcxGridDBColumn; v1Column13: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton4: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; ODPat: TOpenDialog; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; ToolButton5: TToolButton; ToolButton6: TToolButton; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; Label3: TLabel; KHName: TEdit; Label6: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column20: TcxGridDBColumn; Label7: TLabel; CKNO: TEdit; ToolButton7: TToolButton; RM2: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; ToolButton8: TToolButton; Image2: TImage; ToolButton9: TToolButton; ToolButton10: TToolButton; v1Column21: 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 cxDBTreeList1DblClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CYNoKeyPress(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 Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure CKNOKeyPress(Sender: TObject; var Key: Char); procedure ToolButton7Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton9Click(Sender: TObject); procedure ToolButton10Click(Sender: TObject); private { Private declarations } PState:Integer; FCPID,FTopID:String; procedure InitTree(); procedure InitGrid(); procedure ReadINIFile(); public { Public declarations } end; var frmKHGetCPManage: TfrmKHGetCPManage; implementation uses U_DataLink,U_Fun,U_CPAdd,U_FileUp,U_KHGetCPAdd; {$R *.dfm} procedure TfrmKHGetCPManage.InitTree(); var i:Integer; begin {with ADOQueryTree do begin Close; SQL.Clear; SQL.Add('select * from CP_Type order by CPlevel,CPName'); Open; end; cxDBTreeList1.Items[0].Expand(false); } //cxDBTreeList1.Items[1].Expand(False); end; procedure TfrmKHGetCPManage.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add('exec P_Select_Get_CP_YDang :CKID,:Begdate,:EndDate,:PState'); Parameters.ParamByName('CKID').Value:=''; Parameters.ParamByName('Begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); Parameters.ParamByName('EndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1)); Parameters.ParamByName('PState').Value:=0; Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmKHGetCPManage.FormDestroy(Sender: TObject); begin frmKHGetCPManage:=nil; end; procedure TfrmKHGetCPManage.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmKHGetCPManage.TBCloseClick(Sender: TObject); begin WriteCxGrid('�ͻ�����',Tv1,'��Ʒ����'); if DirectoryExists(ExtractFileDir('E:\Right1209')) then winexec('cmd /c rd /s /q D:\Right1209',sw_hide); Close; end; procedure TfrmKHGetCPManage.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('ȷ��Ҫɾ��������','��ʾ',32+4)<>IDYES then Exit; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CP_YDang_KHGet where CKID='''+Trim(CDS_Main.fieldbyname('CKID').AsString)+''''); ExecSQL; end; CDS_Main.Delete; end; procedure TfrmKHGetCPManage.FormShow(Sender: TObject); begin //InitTree(); ReadCxGrid('��Ʒ�б�',Tv1,'��Ʒ����'); EndDate.DateTime:=SGetServerDate(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-7; end; procedure TfrmKHGetCPManage.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmKHGetCPManage.TBAddClick(Sender: TObject); begin try frmKHGetCPAdd:=TfrmKHGetCPAdd.Create(Application); with frmKHGetCPAdd do begin FCYID:=''; //FCPID:=Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); //FCPNo:=Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmKHGetCPAdd.Free; end; end; procedure TfrmKHGetCPManage.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmKHGetCPManage.ToolButton3Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmKHGetCPAdd:=TfrmKHGetCPAdd.Create(Application); with frmKHGetCPAdd do begin FCYID:=Trim(Self.CDS_Main.fieldbyname('CKNO').AsString); //FCPID:=Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); //FCPNo:=Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmKHGetCPAdd.Free; end; end; procedure TfrmKHGetCPManage.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; end; procedure TfrmKHGetCPManage.CYNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CP_YDang where CYID='''+Trim(CYNo.Text)+''''); Open; CYNo.Text:=Trim(fieldbyname('CYNo').AsString); end; end; end; procedure TfrmKHGetCPManage.CYNoChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmKHGetCPManage.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel('�ͻ�����',cxGrid1); end; procedure TfrmKHGetCPManage.ToolButton4Click(Sender: TObject); var fPrintFile:string; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin if CDS_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\��Ʒ��ǩ.rmf' ; if FileExists(fPrintFile) then begin 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; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\��Ʒ��ǩ.rmf'),'��ʾ',0); end; end; procedure TfrmKHGetCPManage.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 TfrmKHGetCPManage.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 TfrmKHGetCPManage.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 TfrmKHGetCPManage.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // ToolButton6.Click; end; procedure TfrmKHGetCPManage.CKNOKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Trim(CKNO.Text)='' then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add('exec P_Select_Get_CP_YDang :CKID,:Begdate,:EndDate,:PState'); Parameters.ParamByName('CKID').Value:=Trim(CKNO.Text); Parameters.ParamByName('Begdate').Value:=''; Parameters.ParamByName('EndDate').Value:=''; Parameters.ParamByName('PState').Value:=3; Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); CKNO.Text:=''; finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmKHGetCPManage.ToolButton7Click(Sender: TObject); var fPrintFile:string; begin if CDS_Main.IsEmpty then Exit; with ADOQueryPrint do begin Close; sql.Clear; SQL.Add('exec P_Select_Get_CP_YDang :CKID,:Begdate,:EndDate,:PState'); Parameters.ParamByName('CKID').Value:=Trim(CDS_Main.fieldbyname('CKNO').AsString); Parameters.ParamByName('Begdate').Value:=''; Parameters.ParamByName('EndDate').Value:=''; Parameters.ParamByName('PState').Value:=3; Open; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\�����嵥.rmf' ; if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RMVariables['printer']:=Trim(DName); RM2.ShowReport; end else begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\�����嵥.rmf'),'��ʾ',0); end; end; procedure TfrmKHGetCPManage.ToolButton8Click(Sender: TObject); var fPrintFile:string; begin fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\�հ��ż�ֽ.rmf' ; if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RM2.ShowReport; end else begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\�հ��ż�ֽ.rmf'),'��ʾ',0); end; end; procedure TfrmKHGetCPManage.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var jpg:TJpegImage; myStream:TADOBlobStream; begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('CYID').AsString)='' then Exit; // if cxPageControl1.ActivePageIndex=6 then begin Image2.Picture.Assign(nil); try with ADOQueryTemp do begin close; sql.Clear; sql.Add(' select * from TP_File A where A.WBID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+''''); sql.Add(' and TFType=''��Ʒ'' '); open; if RecordCount>0 then begin if trim(ADOQueryTemp.fieldbyname('FilesOther').AsString)<>'' then begin myStream:=tadoblobstream.Create(tblobfield(ADOQueryTemp.fieldbyname('FilesOther')),bmread); if myStream=nil then exit; jpg:=TJPEGImage.Create; jpg.LoadFromStream(myStream); Image2.Picture.Assign(jpg); end; end; end; finally jpg.Free; myStream.Free; end; end; end; procedure TfrmKHGetCPManage.ToolButton9Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmKHGetCPAdd:=TfrmKHGetCPAdd.Create(Application); with frmKHGetCPAdd do begin FCYID:=Trim(Self.CDS_Main.fieldbyname('CKNO').AsString); CopyInt:=99; //FCPID:=Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString); //FCPNo:=Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmKHGetCPAdd.Free; end; end; procedure TfrmKHGetCPManage.ToolButton10Click(Sender: TObject); var fPrintFile:string; begin if CDS_Main.IsEmpty then Exit; with ADOQueryPrint do begin Close; sql.Clear; SQL.Add('exec P_Select_Get_CP_YDang :CKID,:Begdate,:EndDate,:PState'); Parameters.ParamByName('CKID').Value:=Trim(CDS_Main.fieldbyname('CKNO').AsString); Parameters.ParamByName('Begdate').Value:=''; Parameters.ParamByName('EndDate').Value:=''; Parameters.ParamByName('PState').Value:=3; Open; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\�����嵥(����).rmf' ; if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RMVariables['printer']:=Trim(DName); RM2.ShowReport; end else begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\�����嵥(����).rmf'),'��ʾ',0); end; end; end.