unit U_MachineManage; 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, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, cxCheckComboBox, cxDropDownEdit, Menus, RM_e_Xls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, RM_BarCode, dxSkinWXI, dxScrollbarAnnotations; type TfrmMachineManage = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; GPM_1: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; Panel1: TPanel; MCNO: TEdit; v2Column8: TcxGridDBColumn; Label1: TLabel; v2Column12: TcxGridDBColumn; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; v2Column1: TcxGridDBColumn; ToolButton6: TToolButton; cxTabControl1: TcxTabControl; tbStart: TToolButton; tbPause: TToolButton; tbBindProd: TToolButton; tbBindProd2: TToolButton; tbBindCon1: TToolButton; tbBindCon2: TToolButton; Tv2C_Name: TcxGridDBColumn; v2Column10: TcxGridDBColumn; Tv2C_Name2: TcxGridDBColumn; v2Column13: TcxGridDBColumn; v2Column14: TcxGridDBColumn; TbSaveFormat: TToolButton; 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 ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure CustomerChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure v2Column8PropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Tv2Column1PropertiesChange(Sender: TObject); procedure tbStartClick(Sender: TObject); procedure tbPauseClick(Sender: TObject); procedure tbBindProdClick(Sender: TObject); procedure tbBindProd2Click(Sender: TObject); procedure tbBindCon1Click(Sender: TObject); procedure tbBindCon2Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure TbSaveFormatClick(Sender: TObject); private { Private declarations } procedure BindProduct(AFieldName, ALogAction: string); procedure UnbindProduct(AFieldName, ALogAction: string); procedure BindContract(AFieldName, AConFieldName, ALogAction: string); procedure UnbindContract(AFieldName, AConFieldName, ALogAction: string); procedure InitGrid(); procedure EditValueT(); procedure EditValueF(); public fFlag: integer; { Public declarations } RKFlag, FCYID, fmanage: string; end; var frmMachineManage: TfrmMachineManage; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint, U_TatClothInfoSel, U_SalesContractSel; {$R *.dfm} procedure TfrmMachineManage.InitGrid(); begin MCNO.SetFocus; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; // sql.Add(' select A.* from BS_Machine A '); sql.Add(' select A.*, ISNULL(B.C_Name,'''') as C_Name, ISNULL(C.C_Name,'''') as C_Name2 '); //null转空字符串 sql.Add(' from BS_Machine A '); sql.Add(' left join Bs_Cloth_Info B on B.C_Code = A.C_CodeName '); sql.Add(' left join Bs_Cloth_Info C on C.C_Code = A.C_CodeName2 '); if cxTabControl1.TabIndex = 1 then sql.Add(' where ISNULL(A.Status,0) = 5 '); sql.Add(' order by MCNO '); Open; end; SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; end; EditValueF(); end; procedure TfrmMachineManage.FormDestroy(Sender: TObject); begin inherited; frmMachineManage := nil; end; procedure TfrmMachineManage.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmMachineManage.TBCloseClick(Sender: TObject); begin WriteCxGrid(Trim(Self.Caption), Tv2, '机台管理'); Close; end; procedure TfrmMachineManage.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Trim(Self.Caption), Tv2, '机台管理'); // Enddate.DateTime:=SGetServerDate(ADOQueryTemp); // begdate.DateTime:=Enddate.DateTime-30; cxTabControl1.TabIndex := 0; tbStart.Visible := True; tbPause.Visible := False; InitGrid(); end; procedure TfrmMachineManage.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmMachineManage.TbSaveFormatClick(Sender: TObject); begin inherited; writeCxGrid(Trim(Self.Caption), Tv2, '机台管理'); end; procedure TfrmMachineManage.ToolButton2Click(Sender: TObject); var sql: string; begin if ADOQueryMain.Active then begin sql := SGetFilters(Panel1, 1, 2); SDofilter(ADOQueryMain, sql); SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); end; end; procedure TfrmMachineManage.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; // SelExportData(Tv2, ADOQueryMain, trim(Self.Caption)); TcxGridToExcel(self.Caption, cxgrid2); end; procedure TfrmMachineManage.cxTabControl1Change(Sender: TObject); begin tbStart.Visible := (cxTabControl1.TabIndex = 0); tbPause.Visible := (cxTabControl1.TabIndex = 1); InitGrid; end; procedure TfrmMachineManage.tbStartClick(Sender: TObject); var MMCIDS: string; begin inherited; if CDS_HZ.IsEmpty then Exit; if not CDS_HZ.Locate('SSel', True, []) then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MMCIDS := ''; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin if MMCIDS <> '' then MMCIDS := MMCIDS + ',' + QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)) else MMCIDS := QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)); end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; if MMCIDS = '' then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update BS_Machine set Status = 5 where MCID in (' + MMCIDS + ')'); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); SQL.Add(' ' + QuotedStr(Trim(DName))); SQL.Add(',getdate() '); SQL.Add(',' + QuotedStr(Trim(self.Caption))); SQL.Add(',' + QuotedStr(Trim('启用'))); SQL.Add(',' + QuotedStr(Trim(MMCIDS))); SQL.Add(',' + QuotedStr(Trim('成功'))); SQL.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin CDS_HZ.Edit; CDS_HZ.fieldbyname('Status').AsInteger := 5; CDS_HZ.Post; end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; Application.MessageBox('操作成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmMachineManage.tbPauseClick(Sender: TObject); var MMCIDS: string; begin inherited; if CDS_HZ.IsEmpty then Exit; if not CDS_HZ.Locate('SSel', True, []) then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MMCIDS := ''; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin if MMCIDS <> '' then MMCIDS := MMCIDS + ',' + QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)) else MMCIDS := QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)); end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; if MMCIDS = '' then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update BS_Machine set Status = 0 where MCID in (' + MMCIDS + ')'); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); SQL.Add(' ' + QuotedStr(Trim(DName))); SQL.Add(',getdate() '); SQL.Add(',' + QuotedStr(Trim(self.Caption))); SQL.Add(',' + QuotedStr(Trim('停用'))); SQL.Add(',' + QuotedStr(Trim(MMCIDS))); SQL.Add(',' + QuotedStr(Trim('成功'))); SQL.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin CDS_HZ.Edit; CDS_HZ.fieldbyname('Status').AsInteger := 0; CDS_HZ.Post; end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; Application.MessageBox('操作成功!', '提示信息'); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmMachineManage.tbBindProdClick(Sender: TObject); begin BindProduct('C_CodeName', '绑定产品1'); end; procedure TfrmMachineManage.tbBindProd2Click(Sender: TObject); begin BindProduct('C_CodeName2', '绑定产品2'); end; procedure TfrmMachineManage.tbBindCon1Click(Sender: TObject); begin BindContract('C_CodeName', 'm_ConNo', '绑定合同1'); end; procedure TfrmMachineManage.tbBindCon2Click(Sender: TObject); begin BindContract('C_CodeName2', 'm_ConNo2', '绑定合同2'); end; procedure TfrmMachineManage.BindProduct(AFieldName, ALogAction: string); var MMCIDS, MCodeName: string; begin if CDS_HZ.IsEmpty then Exit; if not CDS_HZ.Locate('SSel', True, []) then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MMCIDS := ''; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin if MMCIDS <> '' then MMCIDS := MMCIDS + ',' + QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)) else MMCIDS := QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)); end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; if MMCIDS = '' then Exit; MCodeName := ''; try frmTatClothInfoSel := TfrmTatClothInfoSel.Create(Application); if frmTatClothInfoSel.ShowModal = 1 then begin if not frmTatClothInfoSel.CDS_1.IsEmpty then MCodeName := Trim(frmTatClothInfoSel.CDS_1.fieldbyname('C_Code').AsString); end; finally frmTatClothInfoSel.Free; end; if MCodeName = '' then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update BS_Machine set ' + AFieldName + '=' + QuotedStr(MCodeName)); SQL.Add(' , Editer=''' + Trim(DName) + ''''); SQL.Add(' , Edittime=getdate()'); SQL.Add(' where MCID in (' + MMCIDS + ')'); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); SQL.Add(' ' + QuotedStr(Trim(DName))); SQL.Add(',getdate() '); SQL.Add(',' + QuotedStr(Trim(self.Caption))); SQL.Add(',' + QuotedStr(Trim(ALogAction))); SQL.Add(',' + QuotedStr(Trim(MMCIDS + ' -> ' + MCodeName))); SQL.Add(',' + QuotedStr(Trim('成功'))); SQL.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin CDS_HZ.Edit; CDS_HZ.fieldbyname(AFieldName).AsString := MCodeName; CDS_HZ.Post; end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; InitGrid(); Application.MessageBox('绑定成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmMachineManage.UnbindProduct(AFieldName, ALogAction: string); var MMCID, MCodeName: string; begin if CDS_HZ.IsEmpty then Exit; //解绑针对焦点行(光标所在机台),不用勾选 MMCID := Trim(CDS_HZ.fieldbyname('MCID').AsString); if MMCID = '' then Exit; MCodeName := Trim(CDS_HZ.fieldbyname(AFieldName).AsString); if MCodeName = '' then begin Application.MessageBox('当前焦点行没有绑定该产品,无需解绑!', '提示', 0); Exit; end; if Application.MessageBox(PChar('确定要解绑机台 ' + Trim(CDS_HZ.fieldbyname('MCNO').AsString) + ' 绑定的产品 ' + MCodeName + ' 吗?'), '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update BS_Machine set ' + AFieldName + '=' + QuotedStr('')); SQL.Add(' , Editer=''' + Trim(DName) + ''''); SQL.Add(' , Edittime=getdate()'); SQL.Add(' where MCID=' + QuotedStr(MMCID)); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); SQL.Add(' ' + QuotedStr(Trim(DName))); SQL.Add(',getdate() '); SQL.Add(',' + QuotedStr(Trim(self.Caption))); SQL.Add(',' + QuotedStr(Trim(ALogAction))); SQL.Add(',' + QuotedStr(Trim(MMCID + ' -> ' + MCodeName))); SQL.Add(',' + QuotedStr(Trim('成功'))); SQL.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.Edit; CDS_HZ.fieldbyname(AFieldName).AsString := ''; CDS_HZ.Post; InitGrid(); Application.MessageBox('解绑成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmMachineManage.BindContract(AFieldName, AConFieldName, ALogAction: string); var MMCIDS, MCodeName, MConNo: string; begin if CDS_HZ.IsEmpty then Exit; if not CDS_HZ.Locate('SSel', True, []) then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MMCIDS := ''; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin if MMCIDS <> '' then MMCIDS := MMCIDS + ',' + QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)) else MMCIDS := QuotedStr(Trim(CDS_HZ.fieldbyname('MCID').AsString)); end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; if MMCIDS = '' then Exit; //选择合同行,同时带出合同号和对应产品编号 MCodeName := ''; MConNo := ''; try frmSalesContractSel := TfrmSalesContractSel.Create(Application); if frmSalesContractSel.ShowModal = 1 then begin if not frmSalesContractSel.CDS_1.IsEmpty then begin MConNo := Trim(frmSalesContractSel.CDS_1.fieldbyname('ConNo').AsString); MCodeName := Trim(frmSalesContractSel.CDS_1.fieldbyname('C_Code').AsString); end; end; finally frmSalesContractSel.Free; end; if (MConNo = '') or (MCodeName = '') then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update BS_Machine set ' + AFieldName + '=' + QuotedStr(MCodeName)); SQL.Add(' , ' + AConFieldName + '=' + QuotedStr(MConNo)); SQL.Add(' , Editer=''' + Trim(DName) + ''''); SQL.Add(' , Edittime=getdate()'); SQL.Add(' where MCID in (' + MMCIDS + ')'); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); SQL.Add(' ' + QuotedStr(Trim(DName))); SQL.Add(',getdate() '); SQL.Add(',' + QuotedStr(Trim(self.Caption))); SQL.Add(',' + QuotedStr(Trim(ALogAction))); SQL.Add(',' + QuotedStr(Trim(MMCIDS + ' -> ' + MConNo + '/' + MCodeName))); SQL.Add(',' + QuotedStr(Trim('成功'))); SQL.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.DisableControls; try CDS_HZ.First; while not CDS_HZ.Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin CDS_HZ.Edit; CDS_HZ.fieldbyname(AFieldName).AsString := MCodeName; CDS_HZ.fieldbyname(AConFieldName).AsString := MConNo; CDS_HZ.Post; end; CDS_HZ.Next; end; finally CDS_HZ.EnableControls; end; InitGrid(); Application.MessageBox('绑定成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmMachineManage.UnbindContract(AFieldName, AConFieldName, ALogAction: string); var MMCID, MConNo: string; begin if CDS_HZ.IsEmpty then Exit; //解绑针对焦点行(光标所在机台),不用勾选 MMCID := Trim(CDS_HZ.fieldbyname('MCID').AsString); if MMCID = '' then Exit; MConNo := Trim(CDS_HZ.fieldbyname(AConFieldName).AsString); if MConNo = '' then begin Application.MessageBox('当前焦点行没有绑定该合同,无需解绑!', '提示', 0); Exit; end; if Application.MessageBox(PChar('确定要解绑机台 ' + Trim(CDS_HZ.fieldbyname('MCNO').AsString) + ' 绑定的合同 ' + MConNo + ' 吗?(同时解绑对应产品)'), '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update BS_Machine set ' + AFieldName + '=' + QuotedStr('')); //解绑合同同时清空对应产品 SQL.Add(' , ' + AConFieldName + '=' + QuotedStr('')); SQL.Add(' , Editer=''' + Trim(DName) + ''''); SQL.Add(' , Edittime=getdate()'); SQL.Add(' where MCID=' + QuotedStr(MMCID)); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); SQL.Add(' ' + QuotedStr(Trim(DName))); SQL.Add(',getdate() '); SQL.Add(',' + QuotedStr(Trim(self.Caption))); SQL.Add(',' + QuotedStr(Trim(ALogAction))); SQL.Add(',' + QuotedStr(Trim(MMCID + ' -> ' + MConNo))); SQL.Add(',' + QuotedStr(Trim('成功'))); SQL.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.Edit; CDS_HZ.fieldbyname(AFieldName).AsString := ''; CDS_HZ.fieldbyname(AConFieldName).AsString := ''; CDS_HZ.Post; InitGrid(); Application.MessageBox('解绑成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmMachineManage.N1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; SelOKNo(CDS_HZ, True); end; procedure TfrmMachineManage.N2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; SelOKNo(CDS_HZ, False); end; procedure TfrmMachineManage.N3Click(Sender: TObject); begin UnbindProduct('C_CodeName', '解绑产品1'); end; procedure TfrmMachineManage.N4Click(Sender: TObject); begin UnbindProduct('C_CodeName2', '解绑产品2'); end; procedure TfrmMachineManage.N5Click(Sender: TObject); begin UnbindContract('C_CodeName', 'm_ConNo', '解绑合同1'); end; procedure TfrmMachineManage.N6Click(Sender: TObject); begin UnbindContract('C_CodeName2', 'm_ConNo2', '解绑合同2'); end; procedure TfrmMachineManage.CustomerChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmMachineManage.FormCreate(Sender: TObject); begin inherited; fmanage := Trim(DParameters1); end; procedure TfrmMachineManage.v2Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate BS_Machine '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); sql.Add(' , Editer=''' + Trim(DName) + ''''); sql.Add(' , Edittime=getdate()'); sql.Add(' where MCID=' + quotedstr(CDS_HZ.fieldbyname('MCID').AsString)); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv2.Controller.EditingController.ShowEdit(); except tv2.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmMachineManage.ToolButton3Click(Sender: TObject); var RTValues: TArray; begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('SSel', True, []) = False then begin Application.MessageBox('请先选择数据!', '提示', 0); Exit; end; RTValues := SelCDSKey(CDS_HZ, ['MCID']); try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'Machine'; FFiltration1 := RTValues[0]; if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; procedure TfrmMachineManage.ToolButton4Click(Sender: TObject); var maxId: string; begin MCNO.SetFocus; if GetLSNo(ADOQueryCmd, maxId, 'M', 'BS_Machine', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into BS_Machine(Filler) values(' + quotedstr(Trim(dname)) + ')'); ExecSQL; end; InitGrid(); EditValueT(); end; procedure TfrmMachineManage.ToolButton5Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('SSel', True, []) = False then begin Application.MessageBox('请先选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with CDS_HZ do begin while not Eof do begin if CDS_HZ.Locate('SSel', True, []) = True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete BS_Machine where MCID=' + QuotedStr(CDS_HZ.FieldByName('MCID').AsString)); ExecSQL; end; end; CDS_HZ.Edit; CDS_HZ.FieldByName('SSel').Value := False; CDS_HZ.Post; Next; end; end; InitGrid(); end; procedure TfrmMachineManage.ToolButton6Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; EditValueT(); end; procedure TfrmMachineManage.EditValueT(); var i: Integer; FldName: string; begin for i := 0 to tv2.ColumnCount - 1 do begin FldName := uppercase(tv2.Columns[i].DataBinding.FieldName); if FldName = 'SSEL' then Continue; //只有机台号、机台类型允许编辑,产品编号/名称列通过绑定按钮维护 tv2.Columns[i].Options.Editing := (FldName = 'MCNO') or (FldName = 'MCTYPE'); end; end; procedure TfrmMachineManage.EditValueF(); var i: Integer; begin for i := 0 to tv2.ColumnCount - 1 do begin if uppercase(tv2.Columns[i].DataBinding.FieldName) <> 'SSEL' then tv2.Columns[i].Options.Editing := false; end; end; procedure TfrmMachineManage.Tv2Column1PropertiesChange(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate BS_Machine '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); sql.Add(' , Editer=''' + Trim(DName) + ''''); sql.Add(' , Edittime=getdate()'); sql.Add(' where MCID=' + quotedstr(CDS_HZ.fieldbyname('MCID').AsString)); // ShowMessage(sql.text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv2.Controller.EditingController.ShowEdit(); except tv2.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; end.