unit U_MJEdit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, DBClient, ADODB, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxButtonEdit; type TfrmMJEditPB = class(TForm) ToolBar1: TToolBar; ToolButton2: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; MJID: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; tv2CDType: TcxGridDBColumn; tv2CDWZ: TcxGridDBColumn; Tv2CDQty: TcxGridDBColumn; Tv2CDReason: TcxGridDBColumn; v2Column1: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ADOTmp: TADOQuery; ADOQueryMain: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_MJ: TClientDataSet; ToolButton1: TToolButton; ToolButton3: TToolButton; Label2: TLabel; MJMaoZ: TEdit; Label4: TLabel; M: TLabel; Label6: TLabel; MJLen: TEdit; RadioGroup1: TRadioGroup; Label5: TLabel; Label8: TLabel; MJFK: TEdit; Label9: TLabel; Label10: TLabel; Label3: TLabel; Label11: TLabel; MJSJKZ: TEdit; ToolButton4: TToolButton; Label13: TLabel; MJQty2: TEdit; Label7: TLabel; MJQty5: TEdit; Label12: TLabel; MJQty4: TEdit; RadioGroup2: TRadioGroup; RadioGroup3: TRadioGroup; Label14: TLabel; AddMoney: TEdit; Label15: TLabel; DelMoney: TEdit; Label16: TLabel; FeiPinQtyKg: TEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure MJIDKeyPress(Sender: TObject; var Key: Char); procedure tv2CDTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure tv2CDWZPropertiesEditValueChanged(Sender: TObject); procedure v2Column2PropertiesEditValueChanged(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure MDblClick(Sender: TObject); private { Private declarations } function SaveData():Boolean; public { Public declarations } end; var frmMJEditPB: TfrmMJEditPB; implementation uses U_RTFun,U_ZDYHelp,U_DataLink; {$R *.dfm} procedure TfrmMJEditPB.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmMJEditPB.FormDestroy(Sender: TObject); begin frmMJEditPB:=nil; end; procedure TfrmMJEditPB.MJIDKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select A.* '); sql.Add(' from WFB_MJJY_PB A'); sql.Add(' where A.MJID='''+Trim(MJID.Text)+''''); Open; end; if ADOTmp.IsEmpty then begin MJID.Text:=''; Label2.Caption:=''; Label2.Visible:=False; Application.MessageBox('条码错误!','提示',0); Exit; end; MJMaoZ.Text:=Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); MJLen.Text:=Trim(ADOTmp.fieldbyname('MJLen').AsString); //MJQty1.Text:=Trim(ADOTmp.fieldbyname('MJQty1').AsString); MJQty2.Text:=Trim(ADOTmp.fieldbyname('MJQty2').AsString); MJQty4.Text:=Trim(ADOTmp.fieldbyname('MJQty4').AsString); MJQty5.Text:=Trim(ADOTmp.fieldbyname('MJQty5').AsString); MJFK.Text:=Trim(ADOTmp.fieldbyname('MJFK').AsString); MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('MJSJKZ').AsString); M.Caption:=Trim(Trim(ADOTmp.fieldbyname('MJTypeOther').AsString)); // Ma.Caption:=Trim(Trim(ADOTmp.fieldbyname('MJStr1').AsString)); if Trim(m.Caption)='' then begin m.Caption:='M'; end; if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString))='正品' then begin RadioGroup1.ItemIndex:=0 end else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString))='次品' then begin RadioGroup1.ItemIndex:=1; end else if Trim(Trim(ADOTmp.fieldbyname('MJType').AsString))='留样' then begin RadioGroup1.ItemIndex:=2; end; if Trim(Trim(ADOTmp.fieldbyname('MJstr1').AsString))='半匹' then begin RadioGroup2.ItemIndex:=0; end; if Trim(Trim(ADOTmp.fieldbyname('MJstr1').AsString))='整匹' then begin RadioGroup2.ItemIndex:=1; end; if Trim(Trim(ADOTmp.fieldbyname('MJstr3').AsString))='漂白' then begin RadioGroup3.ItemIndex:=0; end; if Trim(Trim(ADOTmp.fieldbyname('MJstr3').AsString))='浅色' then begin RadioGroup3.ItemIndex:=1; end; if Trim(Trim(ADOTmp.fieldbyname('MJstr3').AsString))='敏感色' then begin RadioGroup3.ItemIndex:=2; end; if Trim(Trim(ADOTmp.fieldbyname('MJstr3').AsString))='深色' then begin RadioGroup3.ItemIndex:=3; end; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY_CD_PB A where A.MJID='''+Trim(MJID.Text)+''''); Open; end; Label2.Caption:=Trim(MJID.Text); Label2.Visible:=True; MJID.Text:=''; SCreateCDS20(ADOTmp,Order_MJ); SInitCDSData20(ADOTmp,Order_MJ); end; end; procedure TfrmMJEditPB.tv2CDTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='WFBCD'; flagname:='疵点'; if ShowModal=1 then begin Self.Order_MJ.Edit; Self.Order_MJ.FieldByName('CDName').value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMJEditPB.tv2CDWZPropertiesEditValueChanged(Sender: TObject); var mvalue,CDBeg,CDEnd:string; FFReal:Double; begin mvalue:=TcxTextEdit(Sender).EditingText; with Order_MJ do begin Edit; FieldByName('CDBeg').Value:=mvalue; Post; end; CDBeg:=Trim(Order_MJ.fieldbyname('CDBeg').AsString); CDEnd:=Trim(Order_MJ.fieldbyname('CDEnd').AsString); if (Trim(CDBeg)<>'') and (Trim(CDEnd)<>'') then begin if TryStrToFloat(CDBeg,FFReal) and TryStrToFloat(CDBeg,FFReal) then begin if StrToFloat(CDEnd)'') and (Trim(CDEnd)<>'') then begin if TryStrToFloat(CDBeg,FFReal) and TryStrToFloat(CDBeg,FFReal) then begin if StrToFloat(CDEnd)'' then begin if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFB_MJJY_CD_PB where MCID='''+Trim(Order_MJ.fieldbyname('MCID').AsString)+''''); ExecSQL; end; end; Order_MJ.Delete; end; function TfrmMJEditPB.SaveData():Boolean; var maxno:String; FFreal:Double; begin try ADOCmd.Connection.BeginTrans; ///保存疵点表 with Order_MJ do begin First; while not Eof do begin if Trim(Order_MJ.fieldbyname('MCID').AsString)='' then begin if GetLSNo(ADOTmp,maxno,'MC','WFB_MJJY_CD_PB',5,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_MJ.fieldbyname('MCID').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFB_MJJY_CD_PB '); sql.Add(' where MCID='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_MJ.fieldbyname('MCID').AsString)='' then Append else Edit; FieldByName('MJId').Value:=Trim(Label2.Caption); FieldByName('MCID').Value:=Trim(maxno); SSetSaveDataCDSNew(ADOCmd,Tv2,Order_MJ,'WFB_MJJY_CD',0); Post; end; Order_MJ.Edit; Order_MJ.FieldByName('MCID').Value:=Trim(maxno); Order_MJ.FieldByName('MJID').Value:=Trim(Label2.Caption); Next; end; end; if Trim(MJMaoZ.Text)<>'' then begin if TryStrToFloat(MJMaoZ.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('重量非法数字!','提示',0); Exit; end; end; if Trim(MJLen.Text)<>'' then begin if TryStrToFloat(MJLen.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('长度非法数字!','提示',0); Exit; end; end; if Trim(MJSJKZ.Text)<>'' then begin if TryStrToFloat(MJSJKZ.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('克重非法数字!','提示',0); Exit; end; end; if Trim(MJQty2.Text)<>'' then begin if TryStrToFloat(MJQty2.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('赠送数量非法数字!','提示',0); Exit; end; end; if Trim(FeiPinQtyKg.Text)<>'' then begin if TryStrToFloat(FeiPinQtyKg.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('次品废品数量非法数字!','提示',0); Exit; end; end; if Trim(MJQty4.Text)<>'' then begin if TryStrToFloat(MJQty4.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('转数减非法数字!','提示',0); Exit; end; end; if Trim(MJQty5.Text)<>'' then begin if TryStrToFloat(MJQty5.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('转数加非法数字!','提示',0); Exit; end; end; if Trim(AddMoney.Text)<>'' then begin if TryStrToFloat(AddMoney.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('奖励非法数字!','提示',0); Exit; end; end; if Trim(DelMoney.Text)<>'' then begin if TryStrToFloat(DelMoney.Text,FFreal)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('处罚非法数字!','提示',0); Exit; end; end; with ADOCmd do begin Close; sql.Clear; sql.Add('UPdate WFB_MJJY_PB Set MJTypeOther='''+Trim(M.Caption)+''''); // sql.Add(',MJStr1='''+Trim(Ma.Caption)+''''); if Trim(MJLen.Text)<>'' then begin sql.Add(',MJLen='+Trim(MJLen.Text)); end else begin sql.Add(',MJLen=0'); end; {if Trim(MJQty1.Text)<>'' then begin sql.Add(',MJQty1='+Trim(MJQty1.Text)); end else begin sql.Add(',MJQty1=0'); end; } if Trim(MJQty2.Text)<>'' then begin sql.Add(',MJQty2='+Trim(MJQty2.Text)); end else begin sql.Add(',MJQty2=0'); end; if Trim(MJQty4.Text)<>'' then begin sql.Add(',MJQty4='+Trim(MJQty4.Text)); end else begin sql.Add(',MJQty4=0'); end; if Trim(FeiPinQtyKg.Text)<>'' then begin sql.Add(',FeiPinQtyKg='+Trim(FeiPinQtyKg.Text)); end else begin sql.Add(',FeiPinQtyKg=0'); end; if Trim(MJQty5.Text)<>'' then begin sql.Add(',MJQty5='+Trim(MJQty5.Text)); end else begin sql.Add(',MJQty5=0'); end; if Trim(AddMoney.Text)<>'' then begin sql.Add(',AddMoney='+Trim(AddMoney.Text)); end else begin sql.Add(',AddMoney=0'); end; if Trim(DelMoney.Text)<>'' then begin sql.Add(',DelMoney='+Trim(DelMoney.Text)); end else begin sql.Add(',DelMoney=0'); end; if Trim(MJFK.Text)<>'' then begin sql.Add(',MJFK='+Trim(MJFK.Text)); end else begin sql.Add(',MJFK=0'); end; if Trim(MJMaoZ.Text)<>'' then begin sql.Add(',MJMaoZ='+Trim(MJMaoZ.Text)); end else begin sql.Add(',MJMaoZ=0'); end; if Trim(MJSJKZ.Text)<>'' then begin sql.Add(',MJSJKZ='+Trim(MJSJKZ.Text)); end else begin sql.Add(',MJSJKZ=0'); end; if RadioGroup1.ItemIndex=0 then begin sql.Add(',MJType=''正品'' '); end else if RadioGroup1.ItemIndex=1 then begin sql.Add(',MJType=''次品'' '); end{ else if RadioGroup1.ItemIndex=2 then begin sql.Add(',MJType=''留样'' '); end}; if RadioGroup2.ItemIndex=0 then begin sql.Add(',mjstr1=''半匹'' '); end; if RadioGroup2.ItemIndex=1 then begin sql.Add(',mjstr1=''整匹'' '); end; if RadioGroup2.ItemIndex=2 then begin sql.Add(',mjstr1='''' '); end; if RadioGroup3.ItemIndex=0 then begin sql.Add(',mjstr3=''漂白'' '); end; if RadioGroup3.ItemIndex=1 then begin sql.Add(',mjstr3=''浅色'' '); end; if RadioGroup3.ItemIndex=2 then begin sql.Add(',mjstr3=''敏感色'' '); end; if RadioGroup3.ItemIndex=3 then begin sql.Add(',mjstr3=''深色'' '); end; sql.Add(' where MJID='''+Trim(Label2.Caption)+''''); sql.Add('UPdate CK_PBCP_KC Set KCQtyUnit='''+Trim(M.Caption)+''''); if Trim(MJLen.Text)<>'' then begin sql.Add(',KCQty='+Trim(MJLen.Text)); end else begin sql.Add(',KCQty=0'); end; if Trim(MJMaoZ.Text)<>'' then begin sql.Add(',KCKGQty='+Trim(MJMaoZ.Text)); end else begin sql.Add(',KCKGQty=0'); end; sql.Add(' where MJID='''+Trim(Label2.Caption)+''' and KCQty>0'); sql.Add('UPdate CK_PBCP_CR Set QtyUnit='''+Trim(M.Caption)+''''); if Trim(MJLen.Text)<>'' then begin sql.Add(',Qty='+Trim(MJLen.Text)); end else begin sql.Add(',Qty=0'); end; if Trim(MJMaoZ.Text)<>'' then begin sql.Add(',KGQty='+Trim(MJMaoZ.Text)); end else begin sql.Add(',KGQty=0'); end; if RadioGroup1.ItemIndex=0 then begin sql.Add(',CPType=''正品'' '); end else if RadioGroup1.ItemIndex=1 then begin sql.Add(',CPType=''次品'' '); end{ else if RadioGroup1.ItemIndex=2 then begin sql.Add(',CPType=''留样'' '); end}; sql.Add(' where MJID='''+Trim(Label2.Caption)+''''); ExecSQL; end; ADOCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmMJEditPB.ToolButton2Click(Sender: TObject); begin if Trim(Label2.Caption)='' then Exit; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); Exit; end; end; procedure TfrmMJEditPB.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('布匹管理',Tv2,'染厂检验管理'); end; procedure TfrmMJEditPB.FormShow(Sender: TObject); begin ReadCxGrid('布匹管理',Tv2,'染厂检验管理'); end; procedure TfrmMJEditPB.ToolButton4Click(Sender: TObject); begin with ADOTmp do begin Close; sql.Clear; sql.Add('select * from CK_PBCP_CR where MJID='''+Trim(Label2.Caption)+''''); Open; end; if ADOTmp.IsEmpty=False then begin Application.MessageBox('已产生入库数据不能删除!','提示',0); Exit; end else begin if Application.MessageBox('确定要作废数据吗?作废后数据不能恢复。','提示',32+4)=IDYES then begin with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFB_MJJY_PB where MJID='''+Trim(Label2.Caption)+''''); sql.Add('delete WFB_MJJY_CD_PB where MJID='''+Trim(Label2.Caption)+''''); ExecSQL; end; Label2.Caption:=''; end; end; end; procedure TfrmMJEditPB.MDblClick(Sender: TObject); begin if Trim(M.Caption)='M' then begin M.Caption:='Y'; end else begin M.Caption:='M'; end; end; end.