unit U_ZdyAttInputCP_other; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, cxPC, cxControls, ComCtrls, ToolWin, StdCtrls, Menus, cxTextEdit, cxCurrencyEdit, BtnEdit, cxContainer, cxEdit, cxImage, DB, ADODB, cxDBEdit, cxLookAndFeelPainters, cxButtons, strUtils, cxGraphics, cxLookAndFeels, dxSkinsCore, dxSkinsDefaultPainters, cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxNavigator, dxDateRanges, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomView, cxGrid, cxButtonEdit, Datasnap.DBClient, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, ShellAPI; type TfrmZdyAttInputCP_other = class(TForm) ToolBar1: TToolBar; ToolButton3: TToolButton; TBClose: TToolButton; PopupMenu1: TPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; ADOQueryImage: TADOQuery; ADOQuerymain: TADOQuery; DataSource1: TDataSource; CDS_DB: TClientDataSet; DS_DB: TDataSource; Panel2: TPanel; Panel1: TPanel; Label2: TLabel; Label11: TLabel; Label20: TLabel; HXCode: TEdit; Note: TMemo; HXName: TEdit; DS_JGC: TDataSource; CDS_JGC: TClientDataSet; Label1: TLabel; HXID: TEdit; Panel3: TPanel; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; Panel4: TPanel; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; ToolBar3: TToolBar; ToolButton4: TToolButton; ToolButton5: TToolButton; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Picture4: TcxDBImage; ToolButton6: TToolButton; TV2Column1: TcxGridDBColumn; cxDBImage1: TcxDBImage; HXTPName: TBtnEditC; Label3: TLabel; Qry_ImgHX: TADOQuery; DS_ImgHX: TDataSource; Label4: TLabel; LaiYuan: TBtnEditC; IdFTP1: TIdFTP; TV2Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure v1Column9PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure cxGridDBColumn2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure HXTPNameBtnUpClick(Sender: TObject); procedure HXTPNameBtnDnClick(Sender: TObject); procedure TV2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure LaiYuanBtnDnClick(Sender: TObject); procedure LaiYuanBtnUpClick(Sender: TObject); procedure cxDBImage1DblClick(Sender: TObject); procedure Picture4DblClick(Sender: TObject); procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private function savedata(): Boolean; procedure InitGrid(); procedure InitImage(); procedure InitImageHX(); procedure LookImage(FileName: string); { Private declarations } public FFlag: integer; FCYID: string; fFlileFlag: string; canshu1: string; { Public declarations } end; var frmZdyAttInputCP_other: TfrmZdyAttInputCP_other; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, getpic, U_ZDYHelpSel, U_ZdyAttachGYS, U_CPManageFMSel; {$R *.dfm} procedure TfrmZdyAttInputCP_other.InitImage(); begin with ADOQueryImage do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where WBID=' + quotedstr(Trim(CDS_DB.fieldbyname('HXSID').AsString))); // ShowMessage(SQL.Text); open; end; end; procedure TfrmZdyAttInputCP_other.InitImageHX(); begin with Qry_ImgHX do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where isnull(WBID,'''')<>'''' and WBID=' + quotedstr(Trim(FCYID))); // ShowMessage(SQL.Text); open; end; end; procedure TfrmZdyAttInputCP_other.LaiYuanBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmZdyAttInputCP_other.LaiYuanBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; function TfrmZdyAttInputCP_other.savedata(): Boolean; var FMaxSNo: string; begin result := false; ADOQueryCmd.Connection.BeginTrans; try ///////// 保存主表 //////// with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BS_HX_Main where HXID=''' + Trim(FCYID) + ''''); Open; if ADOQueryCmd.IsEmpty then begin append; FieldByName('Filler').Value := Trim(DName); end else begin Edit; FieldByName('Editer').Value := Trim(DName); FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTmp); end; RTSetsavedata(ADOQueryCmd, 'BS_HX_Main', Panel1, 2); FieldByName('HXID').Value := Trim(FCYID); post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from BS_HX_Main where HXCode=''' + Trim(HXCode.Text) + ''''); Open; end; if ADOQueryCmd.RecordCount > 1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('花型编号重复!', '提示', 0); Exit; end; ///////// 保存主表 //////// ///////// 保存底布表 //////// with CDS_DB do begin First; while not Eof do begin FMaxSNo := Trim(CDS_DB.fieldbyname('HXSID').AsString); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BS_HX_Sub where HXID=''' + Trim(FCYID) + ''''); sql.Add(' and HXSID=''' + Trim(FMaxSNo) + ''''); Open; end; with ADOQueryCmd do begin if Trim(ADOQueryCmd.fieldbyname('HXSID').AsString) = '' then Append else Edit; FieldByName('HXID').Value := Trim(FCYID); FieldByName('HXSID').Value := Trim(FMaxSNo); RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_DB, 'BS_HX_Sub', 0); Post; with CDS_DB do begin Edit; fieldbyname('HXSID').Value := Trim(FMaxSNo); Post; end; end; Next; end; end; ///////// 保存底布表 //////// ADOQueryCmd.Connection.CommitTrans; result := true; except ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmZdyAttInputCP_other.InitGrid(); begin with ADOQueryMain do begin close; sql.Clear; sql.Add('select * from BS_HX_Main A'); sql.Add('where HXID=' + quotedstr(trim(FCYID))); open; end; if not ADOQueryMain.IsEmpty then begin SCSHData(ADOQueryMain, Panel1, 2); end; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from BS_HX_Sub A'); sql.Add('where HXID=' + quotedstr(trim(FCYID))); Open; end; SCreateCDS(ADOQueryTmp, CDS_DB); SInitCDSData(ADOQueryTmp, CDS_DB); if FFlag = 99 then begin FCYID := ''; fflag := 0; end; end; procedure TfrmZdyAttInputCP_other.FormDestroy(Sender: TObject); begin frmZdyAttInputCP_other := nil; end; procedure TfrmZdyAttInputCP_other.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmZdyAttInputCP_other.cxDBImage1DblClick(Sender: TObject); begin if TcxDBImage(Sender).Picture.Height = 0 then exit; LookImage(Qry_ImgHX.fieldbyname(TcxDBImage(Sender).Hint).asstring); end; procedure TfrmZdyAttInputCP_other.LookImage(FileName: string); var sFieldName: string; 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 try IdFTP1.Get(fFlileFlag + '\' + Trim(FileName), sFieldName, true, false); except Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; end else begin Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL); end; procedure TfrmZdyAttInputCP_other.Picture4DblClick(Sender: TObject); begin if TcxDBImage(Sender).Picture.Height = 0 then exit; LookImage(ADOQueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring); end; procedure TfrmZdyAttInputCP_other.cxGridDBColumn2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin CDS_JGC.Edit; CDS_JGC.FieldByName('FactoryName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString); CDS_JGC.FieldByName('FactoryNO').Value := Trim(CDS_HZ.fieldbyname('CoCode').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmZdyAttInputCP_other.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCPManageFMSel := TfrmCPManageFMSel.Create(Application); with frmCPManageFMSel do begin if ShowModal = 1 then begin with Self.CDS_DB do begin Append; // FieldByName('CYNo').Value := CDS_Main.fieldbyname('CYNo').value; FieldByName('DBName').Value := CDS_Main.fieldbyname('CYName').value; Post; end; end; end; finally frmCPManageFMSel.Free; end; end; procedure TfrmZdyAttInputCP_other.FormCreate(Sender: TObject); begin clearControl(Panel1, 2); end; procedure TfrmZdyAttInputCP_other.ToolButton1Click(Sender: TObject); begin if Trim(CDS_DB.fieldbyname('HXSID').AsString) = '' then begin Application.MessageBox('请先选择底布信息,再继续添加子表信息!', '提示', 0); Exit; end; with CDS_JGC do begin Append; FieldByName('HXID').Value := FCYID; FieldByName('HXSID').Value := Trim(CDS_DB.fieldbyname('HXSID').AsString); Post; end; end; procedure TfrmZdyAttInputCP_other.ToolButton2Click(Sender: TObject); begin if CDS_JGC.IsEmpty then exit; if Trim(CDS_JGC.fieldbyname('HXFID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete BS_HX_Factory where HXFID=''' + Trim(CDS_JGC.fieldbyname('HXFID').AsString) + ''''); ExecSQL; end; end; CDS_JGC.Delete; end; procedure TfrmZdyAttInputCP_other.ToolButton3Click(Sender: TObject); begin if trim(HXCode.Text) = '' then begin application.MessageBox('花型编号不能为空!', '提示信息', MB_ICONERROR); exit; end; if trim(HXName.Text) = '' then begin application.MessageBox('花型名称不能为空!', '提示信息', MB_ICONERROR); exit; end; try if savedata() then begin application.MessageBox('保存成功!', '提示信息', 0); // if FFlag = 1 then // begin self.ModalResult := 1; // end // else // begin // clearControl(Panel1, 2); // if GetLSNo(ADOQueryCmd, FCYID, 'CP', 'BS_HX_Main', 4, 1) = False then // begin // Application.MessageBox('取最大号失败!', '提示', 0); // Exit; // end; // HXCode.Text := trim(FCYID); // initGrid(); // InitImage(); // end; end; except application.MessageBox('保存失败!', '提示信息', MB_ICONERROR); end; end; procedure TfrmZdyAttInputCP_other.ToolButton4Click(Sender: TObject); var FMaxSNo: string; begin if GetLSNo(ADOQueryCmd, FMaxSNo, 'HS', 'BS_HX_Sub', 4, 1) = False then begin Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; try frmCPManageFMSel := TfrmCPManageFMSel.Create(Application); with frmCPManageFMSel do begin if ShowModal = 1 then begin with Self.CDS_DB do begin Append; // FieldByName('CYNo').Value := CDS_Main.fieldbyname('CYNo').value; FieldByName('DBName').Value := CDS_Main.fieldbyname('CYName').value; FieldByName('HXID').Value := FCYID; FieldByName('HXSID').Value := FMaxSNo; Post; end; end; end; finally frmCPManageFMSel.Free; end; end; procedure TfrmZdyAttInputCP_other.ToolButton5Click(Sender: TObject); begin if Trim(CDS_DB.fieldbyname('HXSID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete BS_HX_Sub where HXSID=''' + Trim(CDS_DB.fieldbyname('HXSID').AsString) + ''''); ExecSQL; end; end; CDS_DB.Delete; end; procedure TfrmZdyAttInputCP_other.ToolButton6Click(Sender: TObject); var FMaxFNo: string; begin ///////// 保存工厂表 //////// with CDS_DB do begin if Trim(CDS_DB.fieldbyname('HXSID').AsString) = '' then begin Application.MessageBox('保存失败,请先增行!', '提示', 0); Exit; end; end; with CDS_JGC do begin First; while not Eof do begin if Trim(CDS_JGC.fieldbyname('HXFID').AsString) = '' then begin if GetLSNo(ADOQueryCmd, FMaxFNo, 'HF', 'BS_HX_Factory', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin FMaxFNo := Trim(CDS_JGC.fieldbyname('HXFID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BS_HX_Factory where HXFID=''' + Trim(FMaxFNo) + ''''); Open; end; with ADOQueryCmd do begin if Trim(CDS_JGC.fieldbyname('HXFID').AsString) = '' then Append else Edit; FieldByName('HXID').Value := CDS_JGC.FieldByName('HXID').Value; FieldByName('HXSID').Value := CDS_JGC.FieldByName('HXSID').Value; FieldByName('FactoryNo').Value := CDS_JGC.FieldByName('FactoryNo').Value; FieldByName('HXFID').Value := Trim(FMaxFNo); RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_JGC, 'BS_HX_Factory', 0); Post; with CDS_JGC do begin Edit; fieldbyname('HXFID').Value := Trim(FMaxFNo); Post; end; end; Next; end; application.MessageBox('保存成功!', '提示信息', 0); end; end; procedure TfrmZdyAttInputCP_other.TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from BS_HX_Factory A'); sql.Add('where HXSID=' + quotedstr(Trim(CDS_DB.fieldbyname('HXSID').AsString))); Open; end; SCreateCDS(ADOQueryTmp, CDS_JGC); SInitCDSData(ADOQueryTmp, CDS_JGC); InitImage(); end; procedure TfrmZdyAttInputCP_other.TV2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var FStr: string; FOStr: string; j: integer; begin FOStr := StringReplace(trim(CDS_JGC.FieldByName('GCGY').AsString), ',', '|', [rfReplaceAll]); FStr := ''; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := 'CYJGGY'; flagname := '加工工艺'; FChkStr := FOStr; if ShowModal = 1 then begin with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin if FStr = '' then FStr := FieldByName('ZDYName').AsString else FStr := FStr + ',' + FieldByName('ZDYName').AsString; end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; with Self.CDS_jgc do begin Edit; FieldByName('GCGY').Value := FStr; Post; end; end; procedure TfrmZdyAttInputCP_other.v1Column9PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin FormGetPic := TFormGetPic.create(self); with FormGetPic do begin fFlileFlag := self.fFlileFlag; FMainId := trim(CDS_DB.FieldByName('hxsid').AsString); fkeyNO := trim(CDS_DB.FieldByName('DBTPName').AsString); pat1 := 'FileName'; pic1 := 'FilesOther'; FTFType := 'HX'; if showmodal = 1 then begin with Self.CDS_DB do begin Edit; FieldByName('DBTPName').Value := FormGetPic.fkeyNO; Post; end; end; free; end; Initimage(); end; procedure TfrmZdyAttInputCP_other.FormShow(Sender: TObject); begin InitGrid(); InitImageHX(); if trim(FCYID) = '' then begin with ADOQueryTmp do begin Close; sql.Clear; sql.Add(' exec P_HX_Get_No @Str=''HX'' '); Open; end; HXCode.Text := trim(ADOQueryTmp.FieldByName('NewHXCode').asstring); if GetLSNo(ADOQueryCmd, FCYID, 'HX', 'BS_HX_Main', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; HXID.Text := trim(FCYID); end; end; procedure TfrmZdyAttInputCP_other.HXTPNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmZdyAttInputCP_other.HXTPNameBtnUpClick(Sender: TObject); begin if trim(FCYID) = '' then exit; FormGetPic := TFormGetPic.create(self); with FormGetPic do begin fFlileFlag := self.fFlileFlag; FMainId := trim(FCYID); fkeyNO := TRIM(HXTPName.Text); pat1 := 'FileName'; pic1 := 'FilesOther'; FTFType := 'HX'; if showmodal = 1 then begin Self.HXTPName.Text := FormGetPic.fkeyNO; end; free; end; InitimageHX(); end; end.