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; CDS_2: TClientDataSet; DS_2: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; ADO_2: TADOQuery; ADO_1: TADOQuery; Panel4: TPanel; ToolBar3: TToolBar; ToolButton5: TToolButton; ToolButton7: TToolButton; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Panel5: TPanel; ToolBar4: TToolBar; ToolButton8: TToolButton; ToolButton9: TToolButton; cxGrid3: TcxGrid; TV3: TcxGridDBTableView; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; ADO_3: TADOQuery; DS_3: TDataSource; CDS_3: TClientDataSet; Panel6: TPanel; Panel7: TPanel; cxGrid4: TcxGrid; TV4: TcxGridDBTableView; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridLevel4: TcxGridLevel; DS_4: TDataSource; CDS_4: TClientDataSet; Button1: TButton; Button2: TButton; ADO_4: TADOQuery; ToolButton10: TToolButton; Button3: TButton; 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); procedure ToolButton8Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure Button1Click(Sender: TObject); procedure ToolButton10Click(Sender: TObject); procedure Button2Click(Sender: TObject); private canshu1: string; Fint: Integer; procedure InitGrid(); procedure InitGrid1(); // procedure InitGrid2(); 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, '', ''); SqlStr := 'select A.* from Bs_Cloth_Info_Coefficient A '; SqlStr := SqlStr + ' where A.BCIID=''' + Trim(FBCIID) + ''''; InitCDSData(ADO_3, CDS_3, Tv3, 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; // InitGrid2(); 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, MAXID4: 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; ////////////////////////// 保存单位系数子表 ////////////////////////// with CDS_3 do begin First; while not Eof do begin if Trim(CDS_3.fieldbyname('CICID').AsString) = '' then begin if GetLSNo(ADOQueryTemp, MAXID4, 'CIC', 'Bs_Cloth_Info_Coefficient', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin MAXID4 := Trim(CDS_3.fieldbyname('CICID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select * from Bs_Cloth_Info_Coefficient where '); sql.Add(' CICID=''' + Trim(MAXID4) + ''''); Open; end; with ADOQueryCmd do begin if Trim(CDS_3.fieldbyname('CICID').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('CICID').Value := Trim(MAXID4); RTSetSaveDataCDS(ADOQueryCmd, Tv3, CDS_3, 'Bs_Cloth_Info_Coefficient', 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.ToolButton10Click(Sender: TObject); var maxno: string; SqlStr: string; begin if FBCIID = '' then begin Application.MessageBox('请先保存产品信息!', '提示', 0); Exit; end; // if GetLSNo(ADOQueryCmd, maxno, 'YS', 'BS_Cloth_Info_Sub', 4, 1) = False then // begin // Application.MessageBox('取号失败!', '提示', 0); // Exit; // end; 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_4, CDS_4, Tv4, SqlStr, '', ''); Panel6.Visible := True; // CopyAddRow(Tv4, CDS_4); // with CDS_4 do // begin // append; // fieldbyname('BCIID').Value := FBCIID; // fieldbyname('BCISID').Value := maxno; // fieldbyname('floatPrice').Value := 0; // fieldbyname('referencePrice').value := StrToFloatDef(CostPrice.Text, 0); // Post; // end; // TV1Column5PropertiesEditValueChanged(Sender); 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; SqlStr: string; begin if FBCIID = '' then begin Application.MessageBox('请先保存产品信息!', '提示', 0); Exit; end; // if GetLSNo(ADOQueryCmd, maxno, 'YS', 'BS_Cloth_Info_Sub', 4, 1) = False then // begin // Application.MessageBox('取号失败!', '提示', 0); // Exit; // end; SqlStr := 'select A.* from BS_Cloth_Info_Sub A '; SqlStr := SqlStr + ' where 1<>1 '; InitCDSData(ADO_4, CDS_4, Tv4, SqlStr, '', ''); Panel6.Visible := True; // CopyAddRow(Tv4, CDS_4); with CDS_4 do begin append; fieldbyname('BCIID').Value := FBCIID; fieldbyname('BCISID').Value := maxno; 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.Button1Click(Sender: TObject); begin CDS_4.EmptyDataSet; Panel6.Visible:=False; end; procedure TfrmClothInfoInput.Button2Click(Sender: TObject); var maxId4 :string; begin try ADOQueryCmd.Connection.BeginTrans; //////////////////////// 保存子表 ////////////////////////// with CDS_4 do begin First; while not Eof do begin if Trim(CDS_4.fieldbyname('BCISID').AsString) = '' then begin if GetLSNo(ADOQueryTemp, maxId4, 'YS', 'BS_Cloth_Info_Sub', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin maxId4 := Trim(CDS_4.fieldbyname('BCISID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select * from BS_Cloth_Info_Sub where '); sql.Add(' BCISID=''' + Trim(maxId4) + ''''); Open; end; with ADOQueryCmd do begin if Trim(CDS_4.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(FBCIID); FieldByName('BCISID').Value := Trim(maxId4); RTSetSaveDataCDS(ADOQueryCmd, Tv4, CDS_4, '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(FBCIID) + ''''); 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; //////////////////////// 保存子表 ////////////////////////// ADOQueryCmd.Connection.CommitTrans; InitGrid1(); ToolButton3.Click; // Panel6.Visible:=false; // Result := True; except // Result := False; ADOQueryCmd.Connection.RollbackTrans; InitGrid1(); application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); 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.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'CICUnit'; flagname := '单位'; MainType := '单位系数'; if ShowModal = 1 then begin with Self.CDS_3 do begin Edit; FieldByName('CICUnit').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.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.ToolButton8Click(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_3 do begin APPEND; fieldbyname('CICID').Value := NULL; Post; end; end; procedure TfrmClothInfoInput.ToolButton9Click(Sender: TObject); begin if CDS_3.IsEmpty then Exit; if Trim(CDS_3.fieldbyname('CICID').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_Coefficient where CICID=''' + Trim(CDS_1.fieldbyname('CICID').AsString) + ''''); ExecSQL; end; end; CDS_3.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.