unit U_ClothInfoInput; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit, cxButtonEdit, StdCtrls, ExtCtrls, cxCurrencyEdit, BtnEdit, U_BaseList, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, cxCheckBox, cxDropDownEdit, cxContainer, cxMaskEdit, dxScrollbarAnnotations, cxMemo, dxSkinsCore, dxSkinsDefaultPainters, cxMRUEdit; type TfrmClothInfoInput = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; ADOQueryCmd: TADOQuery; ADOQueryTemp: TADOQuery; ScrollBox1: TScrollBox; Label3: TLabel; ToolButton6: TToolButton; BCIID: TcxTextEdit; Panel1: TPanel; ToolBar2: TToolBar; ToolButton3: TToolButton; ToolButton4: TToolButton; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; TV1Column1: TcxGridDBColumn; TV1Column2: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; DS_1: TDataSource; CDS_1: TClientDataSet; GPM_1: TcxGridPopupMenu; ToolButton2: TToolButton; TV1Column5: TcxGridDBColumn; TV1Column6: TcxGridDBColumn; TV1Column3: TcxGridDBColumn; TV1Column4: TcxGridDBColumn; Panel2: TPanel; Label1: TLabel; Label5: TLabel; Label15: TLabel; Label22: TLabel; Label4: TLabel; Label7: TLabel; Label6: TLabel; Label9: TLabel; Label11: TLabel; Label10: TLabel; Label16: TLabel; Label18: TLabel; Label19: TLabel; Label21: TLabel; Label23: TLabel; Label2: TLabel; Label8: TLabel; Label13: TLabel; Label14: TLabel; Label20: TLabel; Label17: TLabel; Label24: TLabel; Label25: TLabel; C_Code: TcxTextEdit; C_Name: TcxTextEdit; C_GramWeight: TcxButtonEdit; C_Composition: TcxButtonEdit; C_Spec: TcxButtonEdit; C_FromName: TcxButtonEdit; C_Width: TcxButtonEdit; C_Pattern: TcxButtonEdit; CINote: TcxMemo; GC_Name: TcxTextEdit; C_EComposition: TcxButtonEdit; CraftCode: TcxTextEdit; FtyNo: TcxTextEdit; FtyName: TcxTextEdit; C_EName: TcxTextEdit; DyeingMethod: TcxTextEdit; CostPrice: TcxCurrencyEdit; distributionCoefficient: TcxCurrencyEdit; quota: TcxCurrencyEdit; C_FromName2: TcxButtonEdit; StkPosition: TcxMRUEdit; qtyunit: TcxMRUEdit; Label12: TLabel; C_YarnSpec: TcxTextEdit; Panel3: TPanel; ToolBar3: TToolBar; ToolButton5: TToolButton; ToolButton7: TToolButton; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; CDS_2: TClientDataSet; DS_2: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; ADO_2: TADOQuery; ADO_1: TADOQuery; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CYColorKeyPress(Sender: TObject; var Key: Char); procedure CYJGGYBtnDnClick(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure C_GramWeightDblClick(Sender: TObject); procedure C_FromNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure TV1Column5PropertiesEditValueChanged(Sender: TObject); procedure C_WidthPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure C_FromName2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CostPricePropertiesEditValueChanged(Sender: TObject); procedure StkPositionPropertiesButtonClick(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private canshu1: string; Fint: Integer; procedure InitGrid(); procedure InitGrid1(); function SaveData(): Boolean; procedure setName(); procedure addColor(); { Private declarations } public FBCIID, FCTID: string; TypeInt: Integer; //0新增_1复制_2修改 fbuzhongedit, canshu3: string; { Public declarations } end; var frmClothInfoInput: TfrmClothInfoInput; implementation uses U_DataLink, U_RTFun, U_iniParam, U_ZDYHelp, U_AttachmentUpload, U_ClothInfoSel, U_CompanySel; {$R *.dfm} procedure TfrmClothInfoInput.addColor(); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select A.* from BS_Cloth_Info_Sub A where A.BCIID=' + QuotedStr(Trim(C_FromName.Properties.LookupItems.Text))); Open; end; with ADOQueryTemp do begin DisableControls; First; while not Eof do begin with CDS_1 do begin Append; fieldbyname('C_Color').Value := ADOQueryTemp.fieldbyname('C_Color').Value; fieldbyname('C_ColorNo').Value := ADOQueryTemp.fieldbyname('C_ColorNo').Value; fieldbyname('floatPrice').Value := 0; fieldbyname('referencePrice').value := StrToFloatDef(CostPrice.Text, 0); Post; end; Next; end; EnableControls; end; end; procedure TfrmClothInfoInput.setName(); begin if (Trim(C_FromName.Text) <> '') and (Trim(C_FromName2.Text) <> '') then C_Name.Text := Trim(C_FromName.Text) + '复' + Trim(C_FromName2.Text); end; procedure TfrmClothInfoInput.StkPositionPropertiesButtonClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TcxmruEdit(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 TcxmruEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothInfoInput.InitGrid1(); var SqlStr: string; begin SqlStr := 'select A.* from BS_Cloth_Info_Sub A '; SqlStr := SqlStr + ' where A.BCIID=''' + Trim(FBCIID) + ''''; SqlStr := SqlStr + ' ORDER BY CASE WHEN C_COLORNO NOT LIKE ''%[^0-9]%'' THEN dbo.getNum(C_Colorno) ELSE 9999999999 '; SqlStr := SqlStr + ' END ,C_ColorNo'; InitCDSData(ADO_1, CDS_1, Tv1, SqlStr, '', ''); SqlStr := 'select A.* from BS_Cloth_Info_GYSCP A '; SqlStr := SqlStr + ' where A.BCIID=''' + Trim(FBCIID) + ''''; InitCDSData(ADO_2, CDS_2, Tv2, SqlStr, '', ''); end; procedure TfrmClothInfoInput.InitGrid(); begin with ADOQueryTemp do begin Close; SQL.Clear; SQL.Add('select *,CJDATE=DATEDIFF(dd,FILLTIME,GETDATE()) from V_BS_Cloth_Info where BCIID=''' + Trim(FBCIID) + ''''); Open; end; SCSHData(ADOQueryTemp, panel2, 2); StkPosition.Text := ADOQueryTemp.FieldByName('StkPosition').AsString; qtyunit.Text := ADOQueryTemp.FieldByName('qtyunit').AsString; // SCSHData(ADOQueryTemp, ScrollBox1, 0); C_FromName.Properties.LookupItems.Text := Trim(ADOQueryTemp.fieldbyname('FromBCIID').AsString); //坯布编号 C_FromName.Text := Trim(ADOQueryTemp.fieldbyname('C_FromName').AsString); //坯布名称 C_FromName2.Properties.LookupItems.Text := Trim(ADOQueryTemp.fieldbyname('C_FromName2').AsString); //坯布编号 C_FromName2.Text := Trim(ADOQueryTemp.fieldbyname('C_FromName2').AsString); //坯布名称 if ADOQueryTemp.fieldbyname('CJDATE').AsInteger <= 7 then begin if TypeInt = 2 then begin if fbuzhongedit = '编辑' then begin C_Spec.Enabled := True; C_Composition.Enabled := True; GC_Name.Enabled := True; C_EComposition.Enabled := True; end else begin C_Spec.Enabled := False; C_Composition.Enabled := False; GC_Name.Enabled := False; C_EComposition.Enabled := False; end; end; end; end; procedure TfrmClothInfoInput.C_FromName2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmClothInfoSel := TfrmClothInfoSel.Create(Application); with frmClothInfoSel do begin // FCTType := '坯布'; if ShowModal = 1 then begin C_FromName2.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('BCIID').AsString); C_FromName2.Text := Trim(CDS_1.fieldbyname('C_Name').AsString); setName(); end; end; finally frmClothInfoSel.Free; end; end; procedure TfrmClothInfoInput.C_FromNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmClothInfoSel := TfrmClothInfoSel.Create(Application); with frmClothInfoSel do begin // FCTType := '坯布'; if ShowModal = 1 then begin C_FromName.Properties.LookupItems.Text := Trim(CDS_1.fieldbyname('BCIID').AsString); C_FromName.Text := Trim(CDS_1.fieldbyname('C_Name').AsString); setName(); addColor(); end; end; finally frmClothInfoSel.Free; end; end; procedure TfrmClothInfoInput.C_GramWeightDblClick(Sender: TObject); begin TcxButtonEdit(Sender).Text := ''; TcxButtonEdit(Sender).Properties.LookupItems.Text := ''; end; procedure TfrmClothInfoInput.C_WidthPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var fsj: string; FWZ: Integer; begin fsj := Trim(TcxButtonEdit(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 TcxButtonEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothInfoInput.FormShow(Sender: TObject); begin readCxGrid(self.Caption + 'TV1', Tv1, '样品管理'); if FCTID = 'CT2412300005' then begin C_Name.Enabled := False; C_FromName.Enabled := True; C_FromName2.Enabled := True; end else begin C_Name.Enabled := True; C_FromName.Enabled := False; C_FromName2.Enabled := False; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where type=''StkPosition'''); Open; if isEmpty then begin exit; end; StkPosition.Properties.LookupItems.Clear; while not Eof do begin StkPosition.Properties.LookupItems.Add(Trim(fieldByName('zdyName').AsString)); Next; end; StkPosition.ItemIndex := -1; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where type=''qtyunit'''); Open; if isEmpty then begin exit; end; qtyunit.Properties.LookupItems.Clear; while not Eof do begin qtyunit.Properties.LookupItems.Add(Trim(fieldByName('zdyName').AsString)); Next; end; qtyunit.ItemIndex := -1; end; InitGrid1(); InitGrid(); if TypeInt = 1 then begin FBCIID := ''; BCIID.text := ''; C_Code.text := ''; end; if canshu3 = '低权限' then begin HiddenTVColumn(TV1, 'floatPrice'); HiddenTVColumn(TV1, 'referencePrice'); CostPrice.Properties.ReadOnly := True; CostPrice.Properties.EchoMode := eemPassword; end; end; procedure TfrmClothInfoInput.TBCloseClick(Sender: TObject); begin Close; end; function TfrmClothInfoInput.SaveData(): Boolean; var MaxBCIID, MaxBCPID, maxId2, MAXID3: string; begin try ADOQueryCmd.Connection.BeginTrans; //////////////// 保存主表 ////////////////////// if Trim(FBCIID) = '' then begin if GetLSNo(ADOQueryCmd, MaxBCIID, 'Y', 'BS_Cloth_Info', 4, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; BCIID.Text := trim(MaxBCIID); end else begin MaxBCIID := Trim(FBCIID); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Cloth_Info set DelId=' + quotedstr(DCode) + ',Deler=' + quotedstr(DName) + ',Deltime=GETDATE() where BCIID=''' + Trim(MaxBCIID) + ''''); sql.Add('insert into Bs_Cloth_Info_Log select * from BS_Cloth_Info where BCIID=''' + Trim(MaxBCIID) + ''''); sql.Add('update BS_Cloth_Info set DelId=null,Deler=null,Deltime=null where BCIID=''' + Trim(MaxBCIID) + ''''); ExecSQL; end; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BS_Cloth_Info where BCIID=''' + Trim(FBCIID) + ''''); Open; end; with ADOQueryCmd do begin if Trim(FBCIID) = '' then begin Append; FieldByName('CTID').Value := Trim(FCTID); FieldByName('FILLID').Value := Trim(DCode); FieldByName('FILLER').Value := Trim(DName); FieldByName('FILLTIME').Value := SGetServerDateTime(ADOQueryTemp); end else begin Edit; FieldByName('EDITER').Value := Trim(DName); FieldByName('EDITTIME').Value := SGetServerDateTime(ADOQueryTemp); end; FieldByName('BCIID').Value := Trim(MaxBCIID); FieldByName('StkPosition').Value := Trim(StkPosition.text); FieldByName('QTYUNIT').Value := Trim(QTYUNIT.text); if trim(C_Code.Text) = '' then C_Code.Text := Trim(MaxBCIID); RTSetsavedata(ADOQueryCmd, 'BS_Cloth_Info', panel2, 2); Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete BS_Cloth_Info_Link where ToID=''' + Trim(MaxBCIID) + ''''); ExecSQL; end; if Trim(C_FromName.Properties.LookupItems.Text) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BS_Cloth_Info_Link where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('ToID').Value := Trim(MaxBCIID); FieldByName('SerialNo').Value := 1; FieldByName('FromID').Value := Trim(C_FromName.Properties.LookupItems.Text); // 坯布编号 Post; end; end; if Trim(C_FromName2.Properties.LookupItems.Text) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from BS_Cloth_Info_Link where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('ToID').Value := Trim(MaxBCIID); FieldByName('SerialNo').Value := 2; FieldByName('FromID').Value := Trim(C_FromName2.Properties.LookupItems.Text); // 坯布编号 Post; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select count(*) as AA from BS_Cloth_Info where C_Code=''' + Trim(C_Code.Text) + ''''); Open; if FieldByName('AA').AsInteger > 1 then begin ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('编号重复!', '提示', 0); Exit; end; end; ////////////////////////// 保存子表 ////////////////////////// with CDS_1 do begin First; while not Eof do begin if Trim(CDS_1.fieldbyname('BCISID').AsString) = '' then begin if GetLSNo(ADOQueryTemp, maxId2, 'YS', 'BS_Cloth_Info_Sub', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin maxId2 := Trim(CDS_1.fieldbyname('BCISID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select * from BS_Cloth_Info_Sub where '); sql.Add(' BCISID=''' + Trim(maxId2) + ''''); Open; end; with ADOQueryCmd do begin if Trim(CDS_1.fieldbyname('BCISID').AsString) = '' then begin Append; FieldByName('FillID').Value := Trim(DCode); FieldByName('Filler').Value := Trim(DName); FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp); end else begin Edit; FieldByName('EditID').Value := Trim(DCode); FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp); end; FieldByName('BCIID').Value := Trim(MaxBCIID); FieldByName('BCISID').Value := Trim(maxId2); RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'BS_Cloth_Info_Sub', 0); Post; end; Next; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select count(BCISID) as AA from BS_Cloth_Info_Sub where BCIID=''' + Trim(MaxBCIID) + ''''); sql.Add(' group by C_Color,C_ColorNo having count(BCISID)>1'); // ShowMessage(sql.Text); Open; end; if StrToFloatDef(ADOQueryTemp.fieldbyname('AA').asstring, 1) > 1 then begin ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('颜色色号重复!', '提示', 0); Exit; end; ////////////////////////// 保存子表 ////////////////////////// /// /// /// ////////////////////////// 保存子表 ////////////////////////// with CDS_2 do begin First; while not Eof do begin if Trim(CDS_2.fieldbyname('BCIGID').AsString) = '' then begin if GetLSNo(ADOQueryTemp, MAXID3, 'GS', 'BS_Cloth_Info_GYSCP', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin MAXID3 := Trim(CDS_2.fieldbyname('BCIGID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select * from BS_Cloth_Info_GYSCP where '); sql.Add(' BCIGID=''' + Trim(MAXID3) + ''''); Open; end; with ADOQueryCmd do begin if Trim(CDS_2.fieldbyname('BCIGID').AsString) = '' then begin Append; FieldByName('FillID').Value := Trim(DCode); FieldByName('Filler').Value := Trim(DName); FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp); end else begin Edit; end; FieldByName('BCIID').Value := Trim(MaxBCIID); FieldByName('BCIGID').Value := Trim(MAXID3); RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_2, 'BS_Cloth_Info_GYSCP', 0); Post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; // with ADOQueryCmd do // begin // Close; // SQL.Clear; // sql.Add(' exec P_BS_CloInfo_UpAllTab @BCIID=' + QuotedStr(trim(MaxBCIID))); // Sql.Add(',@UpId=' + quotedstr(Trim(DCode))); // Sql.Add(',@Uper=' + quotedstr(Trim(DName))); // ExecSQL; // end; FBCIID := MaxBCIID; InitGrid1(); Result := True; except Result := False; ADOQueryCmd.Connection.RollbackTrans; InitGrid1(); application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmClothInfoInput.CYJGGYBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; end; procedure TfrmClothInfoInput.ToolButton1Click(Sender: TObject); var MC_Code: string; begin ToolBar1.SetFocus; if trim(C_Code.Text) = '' then begin if GetLSNo(ADOQueryCmd, MC_Code, 'C', 'BS_Cloth_Info', 4, 0) = False then begin Application.MessageBox('取最成品编号失败!', '提示', 0); Exit; end; C_Code.Text := MC_Code; end; if CDS_1.IsEmpty then begin Application.MessageBox('请输入产品颜色明细!', '提示', 0); Exit; end; if FCTID = 'CT2412300005' then begin if Trim(C_FromName.Text) = '' then begin Application.MessageBox('请输入中文品名!', '提示', 0); Exit; end; if Trim(C_FromName2.Text) = '' then begin Application.MessageBox('请输入中文品名!', '提示', 0); Exit; end; setName(); end else begin if Trim(C_Name.Text) = '' then begin Application.MessageBox('请输入中文品名!', '提示', 0); Exit; end; end; // if CDS_1.Locate('C_Color', null, []) = True then // begin // Application.MessageBox('请输入颜色!', '提示', 0); // Exit; // end; if CDS_1.Locate('C_ColorNo', null, []) = True then begin Application.MessageBox('请输入色号!', '提示', 0); Exit; end; setName(); if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmClothInfoInput.ToolButton2Click(Sender: TObject); begin WriteCxGrid(self.Caption + 'TV1', Tv1, '样品管理'); end; procedure TfrmClothInfoInput.ToolButton3Click(Sender: TObject); var maxno: string; begin // if GetLSNo(ADOQueryCmd, maxno, 'YS', 'BS_Cloth_Info_Sub', 4, 1) = False then // begin // Application.MessageBox('取号失败!', '提示', 0); // Exit; // end; CopyAddRow(Tv1, CDS_1); with CDS_1 do begin Edit; fieldbyname('BCISID').Value := NULL; fieldbyname('floatPrice').Value := 0; fieldbyname('referencePrice').value := StrToFloatDef(CostPrice.Text, 0); Post; end; // TV1Column5PropertiesEditValueChanged(Sender); end; procedure TfrmClothInfoInput.ToolButton4Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if Trim(CDS_1.fieldbyname('BCISID').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from BS_Cloth_Info_Sub where BCISID=''' + Trim(CDS_1.fieldbyname('BCISID').AsString) + ''''); ExecSQL; end; end; CDS_1.Delete; end; procedure TfrmClothInfoInput.ToolButton5Click(Sender: TObject); var maxno: string; begin // if GetLSNo(ADOQueryCmd, maxno, 'YS', 'BS_Cloth_Info_Sub', 4, 1) = False then // begin // Application.MessageBox('取号失败!', '提示', 0); // Exit; // end; with CDS_2 do begin APPEND; fieldbyname('BCIGID').Value := NULL; Post; end; end; procedure TfrmClothInfoInput.CostPricePropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; MCostPrice, MfloatPrice: Double; begin with CDS_1 do begin First; while not eof do begin with CDS_1 do begin MCostPrice := StrToFloatDef(CostPrice.Text, 0); MfloatPrice := Fieldbyname('floatPrice').AsFloat; end; with CDS_1 do begin Edit; FieldByName('referencePrice').Value := MfloatPrice + MCostPrice; Post; end; tv1.Controller.EditingController.ShowEdit(); next; end; end; end; procedure TfrmClothInfoInput.cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '供应商'; if ShowModal = 1 then begin with CDS_2 do begin edit; FieldByName('FACTORYNAME').AsString := Trim(CDS_1.fieldbyname('CoName').AsString); end; end; end; finally frmCompanySel.Free; end; end; procedure TfrmClothInfoInput.CYColorKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure TfrmClothInfoInput.ToolButton6Click(Sender: TObject); begin if trim(C_Code.Text) = '' then Exit; try frmAttachmentUpload := TfrmAttachmentUpload.Create(Application); with frmAttachmentUpload do begin FEditAuthority := True; fkeyNO := trim(C_Code.Text); fType := '产品品档案'; if ShowModal = 1 then begin end; end; finally frmAttachmentUpload.Free; end; end; procedure TfrmClothInfoInput.ToolButton7Click(Sender: TObject); begin if CDS_2.IsEmpty then Exit; if Trim(CDS_2.fieldbyname('BCIGID').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from BS_Cloth_Info_GYSCP where BCIGID=''' + Trim(CDS_1.fieldbyname('BCIGID').AsString) + ''''); ExecSQL; end; end; CDS_2.Delete; end; procedure TfrmClothInfoInput.TV1Column5PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; MCostPrice, MfloatPrice: Double; //个数,单价,金额 begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); MCostPrice := StrToFloatDef(CostPrice.Text, 0); with CDS_1 do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; MfloatPrice := Fieldbyname('floatPrice').AsFloat; end; with CDS_1 do begin Edit; FieldByName('referencePrice').Value := MfloatPrice + MCostPrice; Post; end; tv1.Controller.EditingController.ShowEdit(); end; end.