unit U_MCP; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxButtonEdit, BtnEdit, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL, cxTLData, cxContainer, cxCurrencyEdit, cxCheckBox, cxSplitter, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxTLdxBarBuiltInMenu; type TfrmMCP = class(TForm) ToolBar1: TToolBar; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; DataSource1: TDataSource; ClientDataSet1: TClientDataSet; TBClose: TToolButton; ADOConnection1: TADOConnection; ThreeImgList: TImageList; DataSource2: TDataSource; ML_GYS: TClientDataSet; DataSource3: TDataSource; ML_GX: TClientDataSet; ADOQuery6: TADOQuery; ADOQuery2: TADOQuery; ADOQuery3: TADOQuery; Panel4: TPanel; Panel5: TPanel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Button1: TButton; DataSource4: TDataSource; ADOQueryTree: TADOQuery; Order_Tree: TClientDataSet; Panel6: TPanel; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; V1BPCode: TcxGridDBColumn; V1BPName: TcxGridDBColumn; V1BPMF1: TcxGridDBColumn; V1BPKZ: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; ToolBar2: TToolBar; TBAdd: TToolButton; TBDel: TToolButton; ToolButton1: TToolButton; Panel7: TPanel; cxDBTreeList1: TcxDBTreeList; cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; ToolBar3: TToolBar; ToolPBLE: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; cxGridPopupMenu2: TcxGridPopupMenu; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; BPMF: TEdit; BPKZ: TEdit; MXCode: TEdit; Panel1: TPanel; Label1: TLabel; Label2: TLabel; BPCodeM: TEdit; V1BPNote: TcxGridDBColumn; Label14: TLabel; BPNote: TEdit; V1BPPrice: TcxGridDBColumn; Label15: TLabel; BPPrice: TEdit; Label16: TLabel; Label3: TLabel; MXName: TEdit; V1BPCF: TcxGridDBColumn; Label4: TLabel; BPCF: TEdit; ToolButton2: TToolButton; TV1Column1: TcxGridDBColumn; Label5: TLabel; PMHH: TEdit; TBCopy: TToolButton; Label10: TLabel; GYSName: TBtnEditC; TV1Column2: TcxGridDBColumn; ToolButton3: TToolButton; ToolButton4: TToolButton; TV1Column3: TcxGridDBColumn; BPNameM: TComboBox; ADOQuery1: TADOQuery; ADOQuery4: TADOQuery; ADOQuery5: TADOQuery; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBAddClick(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure BPNamehange(Sender: TObject); procedure v1note1PropertiesEditValueChanged(Sender: TObject); procedure V1BPCodePropertiesEditValueChanged(Sender: TObject); procedure V1BPNamePropertiesEditValueChanged(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure BPCodeMChange(Sender: TObject); procedure Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Button1Click(Sender: TObject); procedure TPBLBClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Button1KeyPress(Sender: TObject; var Key: Char); procedure cxDBTreeList1Click(Sender: TObject); procedure MXCodeKeyPress(Sender: TObject; var Key: Char); procedure MXNameKeyPress(Sender: TObject; var Key: Char); procedure FormDestroy(Sender: TObject); procedure TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure BPPriceKeyPress(Sender: TObject; var Key: Char); procedure BPNoteKeyPress(Sender: TObject; var Key: Char); procedure BPMFKeyPress(Sender: TObject; var Key: Char); procedure BPKZKeyPress(Sender: TObject; var Key: Char); procedure ToolButton2Click(Sender: TObject); procedure TBCopyClick(Sender: TObject); procedure GYSNameBtnDnClick(Sender: TObject); procedure GYSNameBtnUpClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); private FBPID, FCPID, FCPNo, FCPName, FGCName: string; procedure InitGrid(); procedure SaveData(); procedure initTree(); { Private declarations } public flag, flagname, snote, MainType, FGYName, Fint, canshu1: string; fnote, fnote1, forderno, fZdyFlag, ViewFlag, fHelpType: Boolean; PPSTE, isCopy, sfprice: integer; { Public declarations } end; var frmMCP: TfrmMCP; implementation uses U_DataLink, U_Fun10, U_BPZdy_SH, U_BPZdy_HXK, U_CPTypePB, U_CPTypeM, U_CPTypeM_Sel, U_GYSList, U_MLX, U_BPZDY_LRM; {$R *.dfm} procedure TfrmMCP.initTree(); begin with ADOQueryTree do begin Close; SQL.Clear; SQL.Add('select *'); sql.Add(', Case when isnull(CPNo,'''')<>'''' then RTrim(CPNo)+''/''+CPName else CPName end as CP '); SQL.Add('from M_Tree order by CPlevel,XHInt,CPOrder,CPName'); Open; end; SCreateCDS20(ADOQueryTree, Order_Tree); SInitCDSData20(ADOQueryTree, Order_Tree); cxDBTreeList1.Items[0].Expand(true); end; procedure TfrmMCP.SaveData(); var maxno: string; begin if FGYName <> '' then exit; try ADOQueryCmd.Connection.BeginTrans; ClientDataSet1.DisableControls; with ClientDataSet1 do begin First; while not eof do begin if Trim(ClientDataSet1.FieldByName('BPID').AsString) = '' then begin if GetLSNo(ADOQueryTemp, maxno, 'BP', 'M_ZDY', 3, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('取最大编号失败!', '提示', 0); Exit; end; end else begin maxno := Trim(ClientDataSet1.fieldbyname('BPID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from M_ZDY where BPID=''' + Trim(maxno) + ''''); Open; end; if ADOQueryCmd.IsEmpty then begin ADOQueryCmd.Append; end else begin ADOQueryCmd.Edit; end; ADOQueryCmd.FieldByName('BPID').Value := Trim(maxno); SSetSaveDataCDSNew(ADOQueryCmd, Tv1, ClientDataSet1, 'M_ZDY', 3); ADOQueryCmd.FieldByName('BPType').Value := flagName; ADOQueryCmd.FieldByName('BPFlag').Value := flag; ADOQueryCmd.FieldByName('valid').Value := 'Y'; ADOQueryCmd.Post; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from M_ZDY where BPCode=''' + Trim(ClientDataSet1.fieldbyname('BPCode').AsString) + ''''); sql.Add(' and BPFlag=''' + trim(flag) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin if ADOQueryTemp.RecordCount > 1 then begin with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('delete M_ZDY where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('编号重复!', '提示', 0); Exit; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from M_ZDY where BPName=''' + Trim(ClientDataSet1.fieldbyname('BPName').AsString) + ''''); sql.add(' and isnull(BPMF,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPMF').AsString) + ''''); sql.add(' and isnull(BPKZ,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPKZ').AsString) + ''''); sql.add(' and isnull(BPJS,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPJS').AsString) + ''''); sql.add(' and isnull(BPWS,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPWS').AsString) + ''''); sql.add(' and isnull(BPMiDu,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPMiDu').AsString) + ''''); sql.add(' and isnull(BPUnit,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPUnit').AsString) + ''''); sql.Add(' and BPFlag=''' + trim(flag) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin if ADOQueryTemp.RecordCount > 1 then begin with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('delete M_ZDY where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.RollbackTrans; ClientDataSet1.EnableControls; Application.MessageBox('名称门幅克重经纱纬纱重复!', '提示', 0); Exit; end; end; ClientDataSet1.Edit; ClientDataSet1.FieldByName('BPID').Value := Trim(maxno); //ClientDataSet1.Post; Next; end; ClientDataSet1.EnableControls; end; TV1.OptionsData.Editing := false; TV1.OptionsSelection.CellSelect := false; ADOQueryCmd.Connection.CommitTrans; except ; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmMCP.FormCreate(Sender: TObject); begin try //cxGrid1.Align:=alClient; with ADOConnection1 do begin Connected := false; ConnectionString := DConString; //ConnectionString:=''; Connected := true; end; except frmMCP.Free; end; canshu1 := Trim(DParameters1); end; procedure TfrmMCP.FormClose(Sender: TObject; var Action: TCloseAction); begin ToolBar1.SetFocus; Action := caFree; end; procedure TfrmMCP.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add(' exec P_Select_M2 :Code,:PState,:CYType,:Stats '); Parameters.ParamByName('Code').Value := ''; Parameters.ParamByName('PState').Value := 0; Parameters.ParamByName('CYType').Value := Trim(Order_Tree.fieldbyname('CPID').AsString); Parameters.ParamByName('Stats').Value := ''; Open; end; SCreateCDS20(ADOQueryMain, ClientDataSet1); SInitCDSData20(ADOQueryMain, ClientDataSet1); finally ADOQueryMain.EnableControls; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select distinct(BPName) AS name from M_ZDY where CPID not like ''%CP%'' '); Open; end; BPNameM.Items.Clear; //清空 BPNameM.Items.Add(Trim('')); while not ADOQueryCmd.eof do begin BPNameM.Items.Add(ADOQueryCmd.fieldbyname('name').AsString); ADOQueryCmd.next; end; end; procedure TfrmMCP.TBAddClick(Sender: TObject); var i: Integer; begin if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then begin Panel5.Visible := False; Application.MessageBox('没有选择类型,不能新增!', '提示', 0); Exit; end else begin Panel5.Visible := True; SClearData(Panel5, 2); BPMF.Text := '151'; BPPrice.Text := '0'; // MXName.Text := '棉'; //trim(FCPName); MXName.Text := trim(FCPName); FBPID := ''; MXCode.SetFocus; Button1.Caption := '新增保存'; end; end; procedure TfrmMCP.TBSaveClick(Sender: TObject); var maxno: string; begin if ClientDataSet1.IsEmpty then Exit; Toolbar1.SetFocus; if ClientDataSet1.Locate('BPCode', null, []) then begin Application.MessageBox('编号不能为空!', '提示', 0); Exit; end; if ClientDataSet1.Locate('BPCode', '', []) then begin Application.MessageBox('编号不能为空!', '提示', 0); Exit; end; if ClientDataSet1.Locate('BPName', null, []) then begin Application.MessageBox('名称不能为空!', '提示', 0); Exit; end; if ClientDataSet1.Locate('BPName', '', []) then begin Application.MessageBox('名称不能为空!', '提示', 0); Exit; end; SaveData(); Application.MessageBox('保存成功!', '提示', 0); end; procedure TfrmMCP.TBDelClick(Sender: TObject); begin MXCode.SetFocus; if ClientDataSet1.IsEmpty then Exit; if Trim(ClientDataSet1.FieldByName('BPID').AsString) <> '' then begin if application.MessageBox('确定要删除吗?', '提示信息', 1) = 2 then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete M_ZDY where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + ''''); ExecSQL; end; end; ClientDataSet1.Delete; SClearData(Panel5, 2); BPMF.Text := '160'; FBPID := ''; end; procedure TfrmMCP.TBCloseClick(Sender: TObject); begin panel1.SetFocus; WriteCxGrid('自定义' + Trim(flag) + '1YX11', TV1, '自定义数据'); Close; end; procedure TfrmMCP.FormShow(Sender: TObject); begin initTree(); InitGrid(); ReadCxGrid('自定义' + Trim(flag) + '1YX11', TV1, '自定义数据'); frmMCP.Caption := Trim(flagname); if ViewFlag = True then begin TBAdd.Visible := False; TBCopy.Visible := False; TBDel.Visible := False; ToolButton2.Visible := False; ToolButton1.Visible := true; end; if canshu1 = '查询' then begin ToolBar3.Visible := False; ToolBar2.Visible := false; Button1.Visible := false; Panel4.Align := alClient; V1BPNote.Visible := False; V1BPPrice.Visible := false; Label15.Visible := false; BPPrice.Visible := false; Label14.Visible := false; BPNote.Visible := false; end else begin ToolBar3.Visible := true; ToolBar2.Visible := true; Button1.Visible := true; Panel4.Align := alLeft; V1BPNote.Visible := true; V1BPPrice.Visible := true; Label15.Visible := true; BPPrice.Visible := true; Label14.Visible := true; BPNote.Visible := true; end; if Self.Caption = '棉品名(低权限)*' then begin V1BPPrice.Visible := False; end; if Self.sfprice = 0 then begin V1BPPrice.Visible := False; end; end; procedure TfrmMCP.TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var i: integer; begin if ToolButton1.Visible = true then begin Fint := '1'; ModalResult := 1; end else begin ToolBar1.SetFocus; if ClientDataSet1.IsEmpty then exit; BPMF.Text := Trim(ClientDataSet1.fieldbyname('BPMF').AsString); BPKZ.Text := Trim(ClientDataSet1.fieldbyname('BPKZ').AsString); BPCF.Text := Trim(ClientDataSet1.fieldbyname('BPCF').AsString); MXCode.Text := Trim(ClientDataSet1.FieldByName('MXCode').AsString); MXName.Text := Trim(ClientDataSet1.FieldByName('MXName').AsString); BPPrice.Text := Trim(ClientDataSet1.FieldByName('BPPrice').AsString); BPNote.Text := Trim(ClientDataSet1.FieldByName('BPNote').AsString); PMHH.Text := Trim(ClientDataSet1.FieldByName('PMHH').AsString); GYSName.Text := Trim(ClientDataSet1.FieldByName('GYSName').AsString); FBPID := Trim(ClientDataSet1.fieldbyname('BPID').AsString); FCPID := Trim(ClientDataSet1.fieldbyname('CPID').AsString); FCPNo := Trim(ClientDataSet1.fieldbyname('CPNo').AsString); FCPName := Trim(ClientDataSet1.fieldbyname('CPName').AsString); Panel5.Visible := True; Button1.Caption := '修改保存'; TBDel.Visible := True; ToolButton2.Visible := True; end; if Self.Caption = '棉品名(低权限)*' then begin Label15.Visible := False; BPPrice.Visible := False; end; end; procedure TfrmMCP.BPNamehange(Sender: TObject); var fsj: string; begin if Trim(BPNameM.Text) <> '' then begin fsj := ' BPName like ''' + '%' + Trim(BPNameM.Text) + '%' + ''''; end; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, fsj); SCreateCDS20(ADOQueryMain, ClientDataSet1); SInitCDSData20(ADOQueryMain, ClientDataSet1); end; end; procedure TfrmMCP.v1note1PropertiesEditValueChanged(Sender: TObject); var mvalue: string; begin mvalue := TcxTextEdit(Sender).EditingText; with ClientDataSet1 do begin Edit; FieldByName('BPMiDu').Value := mvalue; Post; end; end; procedure TfrmMCP.V1BPCodePropertiesEditValueChanged(Sender: TObject); var mvalue: string; begin mvalue := TcxTextEdit(Sender).EditingText; with ClientDataSet1 do begin Edit; FieldByName('BPCode').Value := mvalue; end; end; procedure TfrmMCP.V1BPNamePropertiesEditValueChanged(Sender: TObject); var mvalue: string; begin mvalue := TcxTextEdit(Sender).EditingText; with ClientDataSet1 do begin Edit; FieldByName('BPName').Value := mvalue; end; end; procedure TfrmMCP.ToolButton4Click(Sender: TObject); begin if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then begin Panel5.Visible := False; Application.MessageBox('没有选择类型,不能导入!', '提示', 0); Exit; end else begin try frmMCP := TfrmMCP.Create(Application); with frmMCP do begin TV1Column3.Visible := True; ToolButton1.Visible := True; frmMCP.isCopy := 1; if Self.Caption = '棉品名(低权限)*' then begin sfPrice := 0; end; if Self.Caption = '棉品名(高权限)*' then begin sfPrice := 1; end; if ShowModal = 1 then begin with frmMCP.ClientDataSet1 do begin First; while not Eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQuery3 do begin Close; SQL.Clear; SQL.Add('exec P_MCopy '); sql.Add('@BPID=' + quotedstr(Trim(frmMCP.ClientDataSet1.fieldbyname('BPID').AsString))); sql.Add(',@CPID=' + quotedstr(Trim(Self.FCPID))); sql.Add(',@CPNo=' + quotedstr(Trim(Self.FCPNo))); sql.Add(',@CPName=' + quotedstr(Trim(Self.FCPName))); // ShowMessage(sql.text); ToolButton3 ExecSQL; end; end; Next; end; end; self.InitGrid(); end; end; finally frmMCP.Free; end; end; // ToolBar1.SetFocus; // if ClientDataSet1.IsEmpty then // exit; // if ClientDataSet1.FieldByName('BPID').AsString = '' then // begin // application.MessageBox('请保存主信息', '提示'); // exit; // end; // with ML_GYS do // begin // Append; // post; // end; end; procedure TfrmMCP.BPCodeMChange(Sender: TObject); var fsj: string; begin if Trim(BPCodeM.Text) <> '' then begin fsj := ' BPCode like ''' + '%' + Trim(BPCodeM.Text) + '%' + ''''; end; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, fsj); SCreateCDS20(ADOQueryMain, ClientDataSet1); SInitCDSData20(ADOQueryMain, ClientDataSet1); end; end; procedure TfrmMCP.Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var i: Integer; begin if ML_GX.IsEmpty then exit; ML_GX.Delete; i := 1; ML_GX.DisableControls; with ML_GX do begin first; while not eof do begin Edit; FieldByName('BPMiDu').Value := i; i := i + 1; next; end; end; ML_GX.EnableControls; end; procedure TfrmMCP.Button1Click(Sender: TObject); var maxno, FCPMiDu, LastMXName: string; FInt: Integer; FReal: Double; begin if Button1.Caption = '修改保存' then begin if Application.MessageBox('确定要修改保存吗', '提示', 1) = 2 then exit; end; if Button1.Caption = '新增保存' then begin if Label16.Caption = '' then begin application.MessageBox('没有选择类型', '提示'); exit; end; end; if Trim(BPPrice.Text) <> '' then begin if TryStrToFloat(BPPrice.Text, FReal) = False then begin Application.MessageBox('单价非法数字!', '提示', 0); Exit; end; end; if Trim(Button1.Caption) <> '修改保存' then begin if Order_Tree.FieldByName('CPLevel').AsInteger = 1 then begin application.MessageBox('不能在主类里新增', '提示'); exit; end; end; if Trim(BPKZ.Text) = '' then begin Application.MessageBox('克重不能为空!', '提示', 0); Exit; end; if Trim(BPMF.Text) <> '' then begin if TryStrToInt(BPMF.Text, FInt) = False then begin Application.MessageBox('门幅非法数字!', '提示', 0); Exit; end; end; if Trim(BPKZ.Text) <> '' then begin if TryStrToInt(BPKZ.Text, FInt) = False then begin Application.MessageBox('克重非法数字!', '提示', 0); Exit; end; end; //查询是否修改了品名 with ADOQuery2 do begin Close; sql.Clear; sql.add('select * from M_ZDY where BPID =''' + trim(FBPID) + ''''); Open; end; LastMXName := Trim(ADOQuery2.fieldbyname('MXName').AsString); try ADOQueryCmd.Connection.BeginTrans; if FBPID = '' then begin if GetLSNo(ADOQueryTemp, FBPID, 'BP', 'M_ZDY', 3, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大编号失败!', '提示', 0); Exit; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from M_ZDY where BPID=''' + Trim(FBPID) + ''''); Open; end; if ADOQueryCmd.IsEmpty then begin ADOQueryCmd.Append; end else begin ADOQueryCmd.Edit; end; if MXCode.Text = '' then MXCode.Text := BPKZ.Text; ADOQueryCmd.FieldByName('BPID').Value := Trim(FBPID); RTSetsavedata(ADOQueryCmd, 'M_ZDY', panel5, 2); ADOQueryCmd.FieldByName('BPType').Value := flagName; ADOQueryCmd.FieldByName('BPFlag').Value := flag; ADOQueryCmd.FieldByName('valid').Value := 'Y'; ADOQueryCmd.FieldByName('CPID').Value := trim(FCPID); ADOQueryCmd.FieldByName('CPNo').Value := trim(FCPNo); ADOQueryCmd.FieldByName('CPName').Value := Trim(FGCName); if Trim(BPPrice.Text) <> '' then ADOQueryCmd.FieldByName('BPPrice').Value := BPPrice.Text else ADOQueryCmd.FieldByName('BPPrice').Value := Null; ADOQueryCmd.FieldByName('BPNote').Value := Trim(BPNote.Text); ADOQueryCmd.FieldByName('PMHH').Value := Trim(PMHH.Text); ADOQueryCmd.FieldByName('GYSName').Value := Trim(GYSName.Text); ADOQueryCmd.FieldByName('BPCode').Value := 'M' + trim(MXCode.Text) + trim(FCPNo); ADOQueryCmd.FieldByName('BPName').Value := trim(MXName.Text); ADOQueryCmd.Post; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from M_ZDY where BPName=''' + trim(BPKZ.Text) + 'G' + trim(MXName.Text) + ''''); sql.add(' and isnull(BPMF,'''')=''' + Trim(BPMF.Text) + ''''); sql.add(' and isnull(BPKZ,'''')=''' + Trim(BPKZ.Text) + ''''); sql.add(' and isnull(BPCF,'''')=''' + Trim(BPCF.Text) + ''''); SQL.Add(' and BPCode=''' + 'M' + trim(MXCode.Text) + trim(FCPNo) + ''''); sql.Add(' and BPFlag=''' + trim(flag) + ''''); Open; end; if ADOQueryTemp.RecordCount > 1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('信息重复!', '提示', 0); Exit; end; with ClientDataSet1 do begin if Button1.Caption <> '修改保存' then Append else edit; FieldByName('BPID').Value := Trim(FBPID); FieldByName('BPCode').Value := 'M' + trim(MXCode.Text) + trim(FCPNo); FieldByName('BPName').Value := trim(MXName.Text); FieldByName('BPMF').Value := Trim(BPMF.Text); FieldByName('BPKZ').Value := Trim(BPKZ.Text); FieldByName('BPCF').Value := Trim(BPCF.Text); FieldByName('MXCode').Value := Trim(MXCode.Text); FieldByName('MXName').Value := trim(MXName.Text); if Trim(BPPrice.Text) <> '' then FieldByName('BPPrice').Value := BPPrice.Text else FieldByName('BPPrice').Value := Null; FieldByName('BPNote').Value := Trim(BPNote.Text); FieldByName('PMHH').Value := Trim(PMHH.Text); FieldByName('GYSName').Value := Trim(GYSName.Text); if Trim(LastMXName) <> trim(MXName.text) then begin //查询是否有公司产品的中间层使用了这个棉 with ADOQuery3 do begin Close; sql.Clear; sql.add('select * from ZH_CP_Info where ZhongJianCID =''' + trim(FBPID) + ''''); Open; end; if ADOQuery3.RecordCount > 0 then begin with ADOQuery4 do begin Close; sql.Clear; sql.add(' update ZH_CP_Info set ZhongJianCName =''' + trim(MXName.text) + ''''); sql.add(' where ZhongJianCID =''' + trim(FBPID) + ''''); ExecSql; end; end; //查询是否有公司产品的底布使用了这个棉 with ADOQuery5 do begin Close; sql.Clear; sql.add('select * from ZH_CP_Info where DiBuID =''' + trim(FBPID) + ''''); Open; end; if ADOQuery5.RecordCount > 0 then begin with ADOQuery6 do begin Close; sql.Clear; sql.add(' update ZH_CP_Info set DiBuName =''' + trim(MXName.text) + ''''); sql.add(' where DiBuID =''' + trim(FBPID) + ''''); ExecSql; end; end; end; post; end; SClearData(Panel5, 2); BPMF.Text := '151'; FBPID := ''; Button1.Caption := '新增保存'; Panel5.Visible := false; TBDel.Visible := False; ToolButton2.Visible := False; ADOQueryCmd.Connection.CommitTrans; except ; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; Application.MessageBox('保存成功', '提示'); end; procedure TfrmMCP.TPBLBClick(Sender: TObject); begin frmMLX := TfrmMLX.Create(self); with frmMLX do begin if ShowModal = 1 then begin end; free; end; initTree(); end; procedure TfrmMCP.ToolButton1Click(Sender: TObject); begin ToolBar1.SetFocus; FInt := '1'; ModalResult := 1; end; procedure TfrmMCP.Button1KeyPress(Sender: TObject; var Key: Char); var maxno: string; begin if Key = #13 then begin if MXCode.Text = '' then begin application.MessageBox('明细编号不能为空', '提示'); exit; end; try ADOQueryCmd.Connection.BeginTrans; if FBPID = '' then begin if GetLSNo(ADOQueryTemp, FBPID, 'BP', 'M_ZDY', 3, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大编号失败!', '提示', 0); Exit; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from M_ZDY where BPID=''' + Trim(FBPID) + ''''); Open; end; if ADOQueryCmd.IsEmpty then begin ADOQueryCmd.Append; end else begin ADOQueryCmd.Edit; end; ADOQueryCmd.FieldByName('BPID').Value := Trim(FBPID); SSetsaveSqlNew(ADOQueryCmd, 'M_ZDY', panel5, 2); ADOQueryCmd.FieldByName('BPType').Value := flagName; ADOQueryCmd.FieldByName('BPFlag').Value := flag; ADOQueryCmd.FieldByName('valid').Value := 'Y'; ADOQueryCmd.FieldByName('CPID').Value := trim(FCPID); ADOQueryCmd.FieldByName('CPNo').Value := trim(FCPNo); ADOQueryCmd.FieldByName('CPName').Value := trim(FCPName); ADOQueryCmd.FieldByName('BPCode').Value := trim(FCPNo) + trim(MXCode.Text); ADOQueryCmd.FieldByName('BPName').Value := trim(MXName.Text); ADOQueryCmd.FieldByName('PMHH').Value := trim(PMHH.Text); ADOQueryCmd.FieldByName('GYSName').Value := trim(GYSName.Text); ADOQueryCmd.Post; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from M_ZDY where BPCode=''' + Trim(trim(FCPNo) + trim(MXCode.Text)) + ''''); sql.Add(' and BPFlag=''' + trim(flag) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin if ADOQueryTemp.RecordCount > 1 then begin with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('delete M_ZDY where BPID=''' + Trim(FBPID) + ''''); ExecSQL; end; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('编号重复!', '提示', 0); Exit; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.add('select * from M_ZDY where BPName=''' + Trim(trim(FCPName) + trim(MXName.Text)) + ''''); sql.add(' and isnull(BPMF,'''')=''' + Trim(BPMF.Text) + ''''); sql.add(' and isnull(BPKZ,'''')=''' + Trim(BPKZ.Text) + ''''); sql.Add(' and BPFlag=''' + trim(flag) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin if ADOQueryTemp.RecordCount > 1 then begin with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('delete M_ZDY where BPID=''' + Trim(FBPID) + ''''); ExecSQL; end; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('名称门幅克重经纱纬纱重复!', '提示', 0); Exit; end; end; with ClientDataSet1 do begin if Button1.Caption <> '确定修改' then Append else edit; FieldByName('BPID').Value := Trim(FBPID); FieldByName('BPCode').Value := Trim(MXCode.Text); FieldByName('BPName').Value := Trim(MXName.Text); FieldByName('BPMF').Value := Trim(BPMF.Text); FieldByName('BPKZ').Value := Trim(BPKZ.Text); FieldByName('MXCode').Value := Trim(MXCode.Text); FieldByName('MXName').Value := Trim(MXName.Text); FieldByName('PMHH').Value := Trim(PMHH.Text); FieldByName('GYSName').Value := Trim(GYSName.Text); post; end; MXCode.Text := ''; MXName.Text := ''; BPMF.Text := ''; BPKZ.Text := ''; PMHH.Text := ''; GYSName.Text := ''; FBPID := ''; MXCode.SetFocus; ADOQueryCmd.Connection.CommitTrans; except ; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; Application.MessageBox('保存成功', '提示'); end; end; procedure TfrmMCP.cxDBTreeList1Click(Sender: TObject); begin InitGrid(); TBDel.Visible := False; ToolButton2.Visible := False; ToolButton3.Visible := False; ToolButton4.Visible := False; Panel5.Visible := False; if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then begin TBAdd.Visible := False; TBCopy.Visible := False; end else begin FBPID := ''; FCPID := Trim(Order_Tree.fieldbyname('CPID').AsString); FCPNo := Trim(Order_Tree.fieldbyname('CPNo').AsString); FCPName := Trim(Order_Tree.fieldbyname('DefStr1').AsString); FGCName := Trim(Order_Tree.fieldbyname('CPName').AsString); TBAdd.Visible := True; TBCopy.Visible := True; if isCopy = 1 then begin ToolButton3.Visible := false; ToolButton4.Visible := false; end else begin ToolButton3.Visible := True; ToolButton4.Visible := True; end; end; Label16.Caption := Trim(Order_Tree.fieldbyname('CPNo').AsString); end; procedure TfrmMCP.MXCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin MXName.SetFocus; end; end; procedure TfrmMCP.MXNameKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin BPMF.SetFocus; end; end; procedure TfrmMCP.FormDestroy(Sender: TObject); begin frmMCP := nil; end; procedure TfrmMCP.TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin Panel5.Visible := False; TBAdd.Visible := False; TBDel.Visible := False; ToolButton2.Visible := False; if Order_Tree.FieldByName('CPLevel').AsInteger < 3 then begin TBCopy.Visible := False; end end; procedure TfrmMCP.BPPriceKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin BPNote.SetFocus; end; end; procedure TfrmMCP.BPNoteKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Button1.SetFocus; end; end; procedure TfrmMCP.BPMFKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin BPKZ.SetFocus; end; end; procedure TfrmMCP.BPKZKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin BPPrice.SetFocus; end; end; procedure TfrmMCP.ToolButton2Click(Sender: TObject); var MCPID, MCPNo, MCPName: string; begin frmCPTypeM_Sel := TfrmCPTypeM_Sel.Create(self); with frmCPTypeM_Sel do begin if ShowModal = 1 then begin MCPID := Trim(frmCPTypeM_Sel.ADOQueryTree.fieldbyname('CPID').AsString); MCPNo := Trim(frmCPTypeM_Sel.ADOQueryTree.fieldbyname('CPNo').AsString); MCPName := Trim(frmCPTypeM_Sel.ADOQueryTree.fieldbyname('CPName').AsString); end; frmCPTypeM_Sel.free; end; BPNote.SetFocus; if ClientDataSet1.IsEmpty then Exit; if Trim(MCPID) <> '' then begin if Trim(ClientDataSet1.FieldByName('BPID').AsString) <> '' then begin if application.MessageBox('确定要修改分类吗?', '提示信息', 1) = 2 then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update M_ZDY set CPID =''' + Trim(MCPID) + ''''); sql.Add(',CPNO =''' + Trim(MCPNo) + ''''); sql.Add(',CPName =''' + Trim(MCPName) + ''''); sql.Add(' where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + ''''); // ShowMessage(sql.text); ExecSQL; end; end; ClientDataSet1.Delete; initTree(); end; end; procedure TfrmMCP.TBCopyClick(Sender: TObject); begin Panel5.Visible := True; SClearData(Panel5, 2); BPMF.Text := Trim(ClientDataSet1.fieldbyname('BPMF').AsString); BPPrice.Text := Trim(ClientDataSet1.fieldbyname('BPPrice').AsString); BPCF.Text := Trim(ClientDataSet1.fieldbyname('BPCF').AsString); BPNote.Text := Trim(ClientDataSet1.fieldbyname('BPNote').AsString); PMHH.Text := Trim(ClientDataSet1.fieldbyname('PMHH').AsString); GYSName.Text := Trim(ClientDataSet1.fieldbyname('GYSName').AsString); // MXName.Text := '棉'; MXName.Text := trim(FCPName); FBPID := ''; MXCode.SetFocus; Button1.Caption := '新增保存'; end; procedure TfrmMCP.GYSNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmMCP.GYSNameBtnUpClick(Sender: TObject); begin try frmGYSList := TfrmGYSList.Create(Application); with frmGYSList do begin KHType.text := '棉厂'; if ShowModal = 1 then begin GYSName.text := Trim(Order_Main.fieldbyname('KHNameJC').AsString); end; end; finally frmGYSList.Free; end; end; procedure TfrmMCP.ToolButton3Click(Sender: TObject); begin if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then begin Panel5.Visible := False; Application.MessageBox('没有选择类型,不能导入!', '提示', 0); Exit; end else begin try frmBPZDY_LRM := TfrmBPZDY_LRM.Create(Application); with frmBPZDY_LRM do begin TV1Column3.Visible := True; if Self.Caption = '棉品名(低权限)*' then begin isPrice := 0; end; if Self.Caption = '棉品名(高权限)*' then begin isPrice := 1; end; if ShowModal = 1 then begin with frmBPZDY_LRM.ClientDataSet1 do begin First; while not Eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQuery3 do begin Close; SQL.Clear; SQL.Add('exec P_MCopy '); sql.Add('@BPID=' + quotedstr(Trim(frmBPZDY_LRM.ClientDataSet1.fieldbyname('BPID').AsString))); sql.Add(',@CPID=' + quotedstr(Trim(Self.FCPID))); sql.Add(',@CPNo=' + quotedstr(Trim(Self.FCPNo))); sql.Add(',@CPName=' + quotedstr(Trim(Self.FCPName))); // ShowMessage(sql.text); ToolButton3 ExecSQL; end; end; Next; end; end; self.InitGrid(); end; end; finally frmBPZDY_LRM.Free; end; end; end; end.