unit U_CpCkSaoMNewSel; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; type TfrmCpCkSaoMNewSel = class(TForm) cxGridPopupMenu1: TcxGridPopupMenu; CDS_Main: TClientDataSet; DataSource1: TDataSource; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; Panel1: TPanel; BaoID: TEdit; Label1: TLabel; Button2: TButton; Button3: TButton; CDS_Sub: TClientDataSet; DataSource2: TDataSource; ADOQuerySub: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; DS_MainSel: TDataSource; CDS_MainSel: TClientDataSet; Button1: TButton; cxGridPopupMenu4: TcxGridPopupMenu; cxGrid1: TcxGrid; Tv2: TcxGridDBTableView; v1OrderNo: TcxGridDBColumn; v2Column2: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column14: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1PRTMF: TcxGridDBColumn; v1PRTKZ: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column7: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; v3Column5: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; v3Column3: TcxGridDBColumn; v3Column4: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v3Column1: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; v3Column2: TcxGridDBColumn; v3Column6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; PopupMenu2: TPopupMenu; MenuItem1: TMenuItem; MenuItem2: TMenuItem; Button5: TButton; CRTime: TDateTimePicker; Label4: TLabel; Label5: TLabel; CKOrdNo: TEdit; ADOQueryPrice: TADOQuery; CDSPrice: TClientDataSet; Label6: TLabel; RKOrdID: TEdit; Label7: TLabel; v1Column8: TcxGridDBColumn; v3Column7: TcxGridDBColumn; MovePanel1: TMovePanel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; Edit2: TEdit; Button4: TButton; MovePanel2: TMovePanel; v1Column9: TcxGridDBColumn; v3Column8: TcxGridDBColumn; Label8: TLabel; CRNote: TEdit; bao: TEdit; Label9: TLabel; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; Label10: TLabel; THMJID: TEdit; v3MJID: TcxGridDBColumn; Label12: TLabel; v1MJQty4: TcxGridDBColumn; v3MJQty4: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label11: TLabel; CRType: TComboBox; Label13: TLabel; v1PRTHX: TcxGridDBColumn; v3PRTHX: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure BaoIDKeyPress(Sender: TObject; var Key: Char); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Button4Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure MenuItem2Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure RKOrdIDKeyPress(Sender: TObject; var Key: Char); procedure baoKeyPress(Sender: TObject; var Key: Char); procedure THMJIDKeyPress(Sender: TObject; var Key: Char); procedure MenuItem1Click(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure InitSubGrid(); function YSData(Order_Main10:TClientDataSet):Boolean; procedure InitPrice(); function YFData(Order_Main10:TClientDataSet):Boolean; function HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; public { Public declarations } end; var frmCpCkSaoMNewSel: TfrmCpCkSaoMNewSel; implementation uses U_DataLink,U_Fun,U_OrderSel,MMSystem ; {$R *.dfm} function TfrmCpCkSaoMNewSel.HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; var CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit,FConNo:String; begin Result:=False; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select Top 1 A.*,B.ConNo from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid Where Subid='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); Open; end; PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main11.fieldbyname('MainId').AsString)+''''); Open; end; FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); FieldByName('ZdyStr1').Value:='应收收'; Post; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main11.fieldbyname('KHName').AsString)+''''); sql.Add(' and YFTypeId='''+Trim(Order_Main11.fieldbyname('ConID').AsString)+''''); sql.add(' and YFName='''+trim(FeeType)+''''); sql.add(' and FeeType=''其他费用'''); sql.add(' and CRFlag=''应收收'''); Open; end; if ADOQueryTemp.IsEmpty then begin if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then begin Application.MessageBox('取成品应付最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value:=Trim(YFID); FieldByName('YFTypeId').Value:=Trim(Order_Main11.fieldbyname('ConID').AsString); FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('Filler').Value:=Trim(DName); FieldByName('status').Value:='0'; FieldByName('CRType').Value:='应收款登记'; FieldByName('CRFlag').Value:='应收收'; FieldByName('QtyFlag').Value:=1; FieldByName('FactoryName').Value:=Trim(Order_Main11.fieldbyname('KHName').AsString); FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); FieldByName('YFType').Value:='自动生成'; fieldbyname('OrderNO').Value:=Trim(Order_Main11.fieldbyname('OrderNo').AsString); fieldbyname('ConNo').Value:=trim(FConNO); fieldbyname('PBNote').Value:=trim(CRNote.Text); //FieldByName('Price').Value:=Order_Main11.fieldbyname('PRTPrice').Value; FieldByName('HuiLv').Value:=1; FieldByName('BZType').Value:=trim(PriceUnit); FieldByName('QtyUnit').Value:=trim(OrderUnit); FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); FieldByName('YFName').Value:=trim(FeeType); fieldbyname('FeeType').Value:='其他费用'; FieldByName('MainId').Value:=Trim(Order_Main11.fieldbyname('Mainid').AsString); FieldByName('Conid').Value:=Trim(Order_Main11.fieldbyname('Conid').AsString); fieldbyname('Money').value:=FeeMoney; fieldbyname('BBMoney').value:=FeeMoney; Post; end; end else begin YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); end; Result:=True; end; function TfrmCpCkSaoMNewSel.YFData(Order_Main10:TClientDataSet):Boolean; var CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit:String; begin Result:=False; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select Top 1 * from JYOrder_Sub Where Subid='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); Open; end; PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select ComTaiTou from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); Open; end; FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); FieldByName('ZdyStr1').Value:='应付付'; Post; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('YRfactoryName').AsString)+''''); sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); sql.add(' and CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date))+''''); sql.add(' and CRFlag=''应付付'''); Open; end; if ADOQueryTemp.IsEmpty then begin if GetLSNo(ADOQueryCmd,YFID,'CP','YF_Money_CR',3,1)=False then begin Application.MessageBox('取成品应付最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value:=Trim(YFID); FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('Subid').AsString); FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('Filler').Value:=Trim(DName); FieldByName('status').Value:='0'; FieldByName('CRType').Value:='应付款登记'; FieldByName('CRFlag').Value:='应付付'; FieldByName('QtyFlag').Value:=1; FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('YRfactoryName').AsString); FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); FieldByName('YFType').Value:='自动生成'; fieldbyname('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNo').AsString); fieldbyname('PBNote').Value:=trim(CRNote.Text); //FieldByName('Price').Value:=Order_Main10.fieldbyname('PRTPrice').Value; //FieldByName('HuiLv').Value:=1; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 1 HuiLv from YF_Money_CR '); sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); sql.Add(' and CRType=''付款登记'' '); SQL.Add(' and YFDefFlag1=0'); Open; end; if ADOQueryTemp.IsEmpty=False then begin ADOQueryCmd.FieldByName('HuiLv').Value:=ADOQueryTemp.fieldbyname('HuiLv').Value; end; FieldByName('BZType').Value:='¥'; FieldByName('QtyUnit').Value:='KG'; FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); FieldByName('YFName').Value:='成品回修费'; FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); Post; end; end else begin YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''回修出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); SQL.Add(' )'); sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''回修出库'' and CPType=''正品'''); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); sql.add(') '); sql.Add(',JZQty=(select isnull(Sum(MJQty4),0) from CK_BanCP_CR A '); sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID where'); SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''回修出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); SQL.Add(' )'); sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); SQL.Add(' A.Subid=YF_Money_CR.YFTypeId and A.CRType=''回修出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); SQL.Add(' )'); sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Subid').AsString)+''''); sql.add(' and CRType=''应付款登记'''); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); Open; end; if ADOQueryTemp.FieldByName('PS').Value=0 then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); ExecSQL; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where CRId='+CRID); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_KC where CRId='+CRID); ExecSQL; end; end; Result:=True; end; procedure TfrmCpCkSaoMNewSel.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmCpCkSaoMNewSel.FormDestroy(Sender: TObject); begin frmCpCkSaoMNewSel:=nil; end; procedure TfrmCpCkSaoMNewSel.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; SQL.Add('select A.*,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); sql.Add(',KHName=(select isnull(customerNoName,OrderNo) from JYOrder_Main where MainId=A.MainId)'); SQL.Add(',PRTColor=(select PRTColor from JYOrder_Sub where SubId=A.SubId)'); SQL.Add(',PRTHX=cast('''' as varchar(50))'); sql.Add(',AOrdDefstr1=(select AOrdDefstr1 from JYOrder_Sub_AnPai where ApId=A.ApId)'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJType=(select MJType from WFB_MJJY where MJID=A.MJID)'); sql.Add('from CK_BanCP_CR A'); sql.add('where 1<>1'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; SQL.Add('select A.*,cast('''' as varchar(80)) ConNO,OrderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId) '); sql.Add(',KHName=(select isnull(customerNoName,OrderNo) from JYOrder_Main where MainId=A.MainId)'); SQL.Add(',PRTColor=(select PRTColor from JYOrder_Sub where SubId=A.SubId)'); sql.Add(',AOrdDefstr1=(select AOrdDefstr1 from JYOrder_Sub_AnPai where ApId=A.ApId)'); SQL.Add(',PRTHX=cast('''' as varchar(50))'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJType=(select MJType from WFB_MJJY where MJID=A.MJID),cast('''' as varchar(50)) YRfactoryName '); sql.Add('from CK_BanCP_CR A'); sql.add('where 1=2'); Open; end; SCreateCDS20(ADOQueryMain,CDS_MainSel); SInitCDSData20(ADOQueryMain,CDS_MainSel); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCpCkSaoMNewSel.FormShow(Sender: TObject); begin ReadCxGrid('订单选择',Tv2,'成品仓库'); ReadCxGrid('成品出库',Tv1,'成品仓库'); ReadCxGrid('成品出库Sels',Tv3,'成品仓库'); InitSubGrid(); InitGrid(); CRTime.DateTime:=SGetServerDate(ADOQueryTemp); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Mainid,PRTPrice,KHName='''' from JYOrder_Sub where 1<>1'); Open; end; SCreateCDS20(ADOQueryTemp,CDSPrice); SInitCDSData20(ADOQueryTemp,CDSPrice); end; procedure TfrmCpCkSaoMNewSel.InitPrice(); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Mainid,PRTPrice,Subid,KHName=Cast('''' as varchar(50)),Cast('''' as varchar(50)) QtyUnit,'); sql.add('Cast('''' as varchar(50)) OrderNo,Cast('''' as varchar(50)) YRfactoryName,Cast('''' as varchar(50)) ConID from JYOrderCon_Sub where 1=2'); Open; end; SCreateCDS20(ADOQueryTemp,CDSPrice); SInitCDSData20(ADOQueryTemp,CDSPrice); if CDSPrice.IsEmpty=False then begin CDSPrice.Delete; end; end; procedure TfrmCpCkSaoMNewSel.BaoIDKeyPress(Sender: TObject; var Key: Char); var maxno:String; begin if Key=#13 then begin Label12.Caption:=''; if CDS_Sub.IsEmpty then begin BaoID.Text:=''; Application.MessageBox('未选单不能扫描出库!','提示',0); Exit; end; if Trim(CKOrdNo.Text)='' then begin Application.MessageBox('出库单号不能为空!','提示',0); Exit; end; if CDS_MainSel.Locate('MJId',Trim(BaoID.Text),[]) then begin MovePanel1.Visible:=True; Edit2.Text:=Trim(BaoID.Text); Label12.Caption:='提醒:此卷重复扫描!'; BaoID.Text:=''; Exit; end; if CDS_Main.Locate('MJId',Trim(BaoID.Text),[])=false then begin application.MessageBox('选择的订单没有该卷布','提示'); exit; end; CDS_Main.Locate('MJId',Trim(BaoID.Text),[]); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set '); sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag=''出库'''); sql.Add(',CRNote='''+trim(CRNote.Text)+''''); sql.Add(',MJXH='''+trim(CDS_Main.fieldbyname('MJXH').AsString)+''''); SQL.Add(',BaoNo='''+trim(CDS_Main.fieldbyname('BaoNo').AsString)+''''); SQL.Add(',BaoID='''+trim(CDS_Main.fieldbyname('BaoID').AsString)+''''); sql.Add(',CKOrdNo='''+trim(CKOrdNo.Text)+''''); sql.Add(',CRFlagQty=-1'); sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); sql.Add(' and CRFlag=''待出库'''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已出库'' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; end; ADOQueryCmd.Connection.CommitTrans; with CDS_MainSel do begin Append; FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('BCID').Value:=Trim(maxno); fieldbyname('MJQty4').Value:=self.CDS_Main.fieldbyname('MJQty4').Value; FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; FieldByName('KHName').Value:=CDS_Main.fieldbyname('KHName').Value; FieldByName('RKOrdId').Value:=CDS_Main.fieldbyname('RKOrdId').Value; FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; FieldByName('BaoID').Value:=CDS_Main.fieldbyname('BaoID').Value; FieldByName('YRfactoryName').Value:=Trim(CDS_Main.fieldbyname('YRfactoryName').AsString); FieldByName('ConID').Value:=Trim(CDS_Main.fieldbyname('ConID').AsString); fieldbyname('ConNO').Value:=CDS_Main.fieldbyname('ConNO').AsString; //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); Post; end; PlaySound('ZTFH.wav', 0, SND_FILENAME or SND_ASYNC); CDS_Main.Delete; MovePanel1.Visible:=True; if CDS_MainSel.IsEmpty=False then Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text:='0'; Edit2.Text:=Trim(BaoID.Text); BaoID.Text:=''; Exit; except BaoID.Text:=''; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库异常!','提示',0); end; end; end; procedure TfrmCpCkSaoMNewSel.Button2Click(Sender: TObject); begin tv1.Controller.EditingController.ShowEdit(); tv3.Controller.EditingController.ShowEdit(); Close; WriteCxGrid('订单选择',Tv2,'成品仓库'); WriteCxGrid('成品出库',Tv1,'成品仓库'); WriteCxGrid('成品出库Sels',Tv3,'成品仓库'); end; procedure TfrmCpCkSaoMNewSel.Button3Click(Sender: TObject); var maxno,fsj:String; begin try frmOrderSel:=TfrmOrderSel.Create(Application); with frmOrderSel do begin if ShowModal=1 then begin CDS_OrderSel.DisableControls; with CDS_OrderSel do begin First; while not Eof do begin if FieldByName('SSel').Value=True then begin if Self.CDS_Sub.Locate('ConSubId',Trim(CDS_OrderSel.fieldbyname('ConSubId').AsString),[])=False then begin with Self.CDS_Sub do begin Append; FieldByName('MainId').Value:=Trim(CDS_OrderSel.fieldbyname('MainId').AsString); FieldByName('SubId').Value:=Trim(CDS_OrderSel.fieldbyname('SubId').AsString); FieldByName('CustomerNo').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNo').AsString); FieldByName('OrderNo').Value:=Trim(CDS_OrderSel.fieldbyname('OrderNoM').AsString); FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); FieldByName('PRTOrderQty').Value:=CDS_OrderSel.fieldbyname('PRTOrderQty').AsFloat; FieldByName('OrderUnit').Value:=Trim(CDS_OrderSel.fieldbyname('OrderUnit').AsString); FieldByName('PRTColor').Value:=Trim(CDS_OrderSel.fieldbyname('PRTColor').AsString); FieldByName('MPRTMF').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTMF').AsString); FieldByName('MPRTKZ').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTKZ').AsString); fieldbyname('ConSubid').Value:=trim(CDS_OrderSel.fieldbyname('ConSubid').AsString); Post; end; end; end; Next; end; end; CDS_OrderSel.EnableControls; end; end; finally frmOrderSel.Free; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete TBSubID where DName='''+Trim(DCode)+''''); ExecSQL; end; CDS_Sub.DisableControls; with CDS_Sub do begin First; while not Eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into TBSubID select :SubId,:Dname'); Parameters.ParamByName('SubId').Value:=Trim(CDS_Sub.fieldbyname('ConSubId').AsString); Parameters.ParamByName('Dname').Value:=Trim(DCode); ExecSQL; end; Next; end; end; CDS_Sub.EnableControls; MovePanel2.Visible:=true; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(' from CK_BanCP_CR A '); sql.Add(' where not exists(select B.MJID from CK_BanCP_CR B where B.MJID=A.MJID and B.CRFlag=''出库'')'); sql.Add(' and exists(select C.Subid from TBSubID C where C.Subid=A.ConID and C.DName='''+trim(DCode)+''')'); SQL.Add(' and A.CRFlag=''入库'' '); Open; end; SCreateCDS20(ADOQueryTemp,CDS_Main); SInitCDSData20(ADOQueryTemp,CDS_Main); MovePanel2.Visible:=false; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.MainId,A.PRTPrice,A.Subid,C.CustomerNoName from JYOrder_Sub A inner join TBSubID B on A.SubId=B.SubId'); sql.Add(' inner join JYOrder_Main C on A.MainId=C.MainId '); sql.Add(' where B.DName='''+Trim(DCode)+''''); sql.Add(' group by A.MainId,A.Subid,A.PRTPrice,C.CustomerNoName'); Open; end; SCreateCDS20(ADOQueryTemp,CDSPrice); SInitCDSData20(ADOQueryTemp,CDSPrice); if GetLSNo(ADOQueryCmd,maxno,'CK','CK_BanCP_CR',3,1)=False then begin Application.MessageBox('取出库单号失败!','提示',0); Exit; end; CKOrdNo.Text:=Trim(maxno); end; procedure TfrmCpCkSaoMNewSel.InitSubGrid(); begin try ADOQuerySub.DisableControls; with ADOQuerySub do begin Close; sql.Clear; sql.Add('select A.*,B.*,Cast('''' as varchar(60)) ConSubid'); sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); sql.Add(' where 1<>1 '); Open; end; SCreateCDS20(ADOQuerySub,CDS_Sub); SInitCDSData20(ADOQuerySub,CDS_Sub); finally ADOQuerySub.EnableControls; end; end; procedure TfrmCpCkSaoMNewSel.Button1Click(Sender: TObject); var FMainid:String; begin if CDS_MainSel.IsEmpty then Exit; if CDS_MainSel.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; if Application.MessageBox('确定要执行此操作吗?','提示',32+4)<>IDYES then Exit; MovePanel2.Visible:=True; MovePanel2.Refresh; InitPrice(); try ADOQueryCmd.Connection.BeginTrans; CDS_MainSel.DisableControls; CDS_Main.DisableControls; with CDS_MainSel do begin First; while Locate('Ssel',True,[]) do begin with CDS_Main do begin Append; FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; FieldByName('MJQty4').Value:=Self.CDS_MainSel.fieldbyname('MJQty4').Value; FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; FieldByName('CRId').Value:=Self.CDS_MainSel.fieldbyname('CRId').Value; FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; FieldByName('KHName').Value:=CDS_MainSel.fieldbyname('KHName').Value; FieldByName('RKOrdID').Value:=CDS_MainSel.fieldbyname('RKOrdID').Value; FieldByName('PRTHX').Value:=Self.CDS_MainSel.fieldbyname('PRTHX').Value; FieldByName('BaoNo').Value:=CDS_MainSel.fieldbyname('BaoNo').Value; FieldByName('BaoID').Value:=CDS_MainSel.fieldbyname('BaoID').Value; FieldByName('ConID').Value:=CDS_MainSel.fieldbyname('ConID').Value; fieldbyname('ConNO').Value:=CDS_MainSel.fieldbyname('ConNO').AsString; FieldByName('YRfactoryName').Value:=Trim(CDS_Main.fieldbyname('YRfactoryName').AsString); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set CRTime=NULL'); sql.Add(',CRType='''',CRFlag=''待出库'''); sql.Add(',CRNote='''''); sql.Add(',CKOrdNo='''''); sql.Add(',CRFlagQty=0'); SQL.Add(',BaoNo='''',BaoID='''' '); sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); sql.Add(' and CRFlag=''出库'''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已入库'' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag=''入库'') '); sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag=''入库'') '); sql.Add(' where exists (select MJID from CK_BanCP_CR where MJID=CK_BanCP_KC.MJID and MJID='''+trim(CDS_Main.fieldbyname('MJID').AsString)+''') '); ExecSQL; end; CDS_MainSel.Delete; end; end; CDS_Main.EnableControls; CDS_MainSel.EnableControls; ADOQueryCmd.Connection.CommitTrans; MovePanel1.Visible:=True; if CDS_MainSel.IsEmpty=False then Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text:='0'; MovePanel2.Visible:=False; Exit; except MovePanel2.Visible:=False; CDS_MainSel.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销异常!','提示',0); end; end; procedure TfrmCpCkSaoMNewSel.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if CDS_MainSel.IsEmpty=False then Exit; if CDS_Sub.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if Trim(CDS_Main.fieldbyname('SubId').AsString)=Trim(CDS_Sub.fieldbyname('SubId').AsString) then begin CDS_Main.Delete; end else Next; end; end; CDS_Main.EnableControls; CDS_Sub.Delete; end; procedure TfrmCpCkSaoMNewSel.Button4Click(Sender: TObject); begin MovePanel1.Visible:=False; end; procedure TfrmCpCkSaoMNewSel.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmCpCkSaoMNewSel.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmCpCkSaoMNewSel.MenuItem2Click(Sender: TObject); begin SelOKNo(CDS_MainSel,False); end; procedure TfrmCpCkSaoMNewSel.Button5Click(Sender: TObject); var maxno:String; CRID:Integer; MaxCkNo,MaxCkSubNo:String; begin if CDS_Sub.IsEmpty then Exit; if CDS_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; if Trim(CKOrdNo.Text)='' then begin Application.MessageBox('出库单号不能为空!','提示',0); Exit; end; if Application.MessageBox('确定要执行出库操作吗?','提示',32+4)<>IDYES then exit; MovePanel2.Visible:=True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; CDS_Sub.DisableControls; with CDS_Sub do begin First; while not eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set '); sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag=''出库'''); sql.Add(',CRNote='''+trim(CRNote.Text)+''''); sql.Add(',CKOrdNo='''+trim(CKOrdNo.Text)+''''); sql.Add(',CRFlagQty=-1'); sql.Add(' where ConID='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); sql.Add(' and CRFlag=''待出库'''); sql.Add(' and exists(select A.MJID from WFB_MJJY A where A.MJID=CK_BanCP_CR.MJID and Isnull(A.MJStr2,'''')=''已入库'')'); ExecSQL; end; Next; end; end; CDS_Sub.EnableControls; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); sql.Add(' where 1=2 '); Open; end; SCreateCDS20(Self.ADOQueryTemp,CDS_Main); SInitCDSData20(Self.ADOQueryTemp,CDS_Main); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 '); sql.Add('where exists (select MJID from CK_BanCp_CR where MJID=CK_BanCp_KC.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''')'); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已出库'' '); sql.Add('where exists (select MJID from CK_BanCp_CR where MJID=WFB_MJJY.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''')'); ExecSQL; end; with self.ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set '); SQL.Add('BaoNo=(select A.BaoNo from WFB_MJJY A where A.MJID=CK_BanCP_CR.MJID)'); SQL.Add(',BaoID=(select A.BaoID from WFB_MJJY A where A.MJID=CK_BanCP_CR.MJID)'); sql.Add(' where CKOrdNo='''+Trim(CKOrdNo.Text)+''''); ExecSQL; end; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); sql.Add(' where A.CKOrdNo='''+trim(CKOrdNo.text)+''' '); Open; end; SCreateCDS20(ADOQueryTemp,CDS_MainSel); SInitCDSData20(ADOQueryTemp,CDS_MainSel); ADOQueryCmd.Connection.CommitTrans; MovePanel2.Visible:=False; Exit; except; BaoID.Text:=''; CDS_Main.EnableControls; MovePanel2.Visible:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库异常!','提示',0); end; end; function TfrmCpCkSaoMNewSel.YSData(Order_Main10:TClientDataSet):Boolean; var CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,FConNo,FOrderNo:String; FPRTPrice:double; begin Result:=False; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select Top 1 A.*,B.ConNo from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid Where Subid='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); Open; end; PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); FPRTPrice:=ADOQueryTemp.fieldbyname('PRTPrice').AsCurrency; FConNO:=Trim(ADOQueryTemp.fieldbyname('ConNo').AsString); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select ComTaiTou,OrderNo from JYOrder_Main where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); Open; end; FComTaiTou:=Trim(ADOQueryTemp.fieldbyname('ComTaiTou').AsString); FOrderNo:=trim(ADOQueryTemp.fieldbyname('OrderNo').AsString); with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); FieldByName('ZdyStr1').Value:='应收收'; Post; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); sql.add(' and CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date))+''''); sql.add(' and CRFlag=''应收收'''); Open; end; if ADOQueryTemp.IsEmpty then begin if GetLSNo(ADOQueryCmd,YFID,'CPS','YF_Money_CR',3,1)=False then begin Application.MessageBox('取成品应收最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value:=Trim(YFID); FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('ConID').AsString); FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('Filler').Value:=Trim(DName); FieldByName('status').Value:='0'; FieldByName('CRType').Value:='应收款登记'; FieldByName('CRFlag').Value:='应收收'; FieldByName('QtyFlag').Value:=1; FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); FieldByName('YFType').Value:='自动生成'; fieldbyname('OrderNO').Value:=Trim(FOrderNo); fieldbyname('ConNo').Value:=trim(FConNO); fieldbyname('PBNote').Value:=trim(CRNote.Text); FieldByName('Price').Value:=FPRTPrice; FieldByName('HuiLv').Value:=1; {with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 1 HuiLv from YF_Money_CR '); sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); sql.Add(' and CRType=''收款登记'' '); SQL.Add(' and YFDefFlag1=0'); Open; end; if ADOQueryTemp.IsEmpty=False then begin ADOQueryCmd.FieldByName('HuiLv').Value:=ADOQueryTemp.fieldbyname('HuiLv').Value; end;} if trim(PriceUnit)<>'' then FieldByName('BZType').Value:=trim(PriceUnit) else FieldByName('BZType').Value:='¥'; if trim(OrderUnit)<>'' then FieldByName('QtyUnit').Value:=Trim(OrderUnit) else FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); FieldByName('YFName').Value:='成品销售金额'; FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); FieldByName('Conid').Value:=Trim(Order_Main10.fieldbyname('Conid').AsString); Post; end; end else begin YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; if Trim(OrderUnit)<>'Kg' then begin sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A '); end else begin sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A '); end; sql.Add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime '); SQL.Add(' )'); sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A where'); SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'''); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); sql.add(') '); sql.Add(',JZQty=(select isnull(Sum(MJQty4),0) from CK_BanCP_CR A '); sql.add(' inner join WFB_MJJY D on D.MJID=A.MJID where'); SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); SQL.Add(' )'); sql.Add(',MaoQty=(select isnull(Sum(A.KgQty),0) from CK_BanCP_CR A where'); SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); SQL.Add(' )'); sql.Add(',MQty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where'); SQL.Add(' A.ConID=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'' '); sql.add(' and A.CRTime=YF_Money_CR.CRTime'); SQL.Add(' )'); sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); sql.add(' and CRType=''应收款登记'''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.add('update YF_Money_CR Set Money=Qty*Price,BBMoney=Price*Qty*HuiLv '); sql.add('where YFTypeId='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); sql.add(' and CRType=''应收款登记'''); execsql; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID='+CRID); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); Open; end; if ADOQueryTemp.FieldByName('PS').Value=0 then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); ExecSQL; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where CRId='+CRID); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_KC where CRId='+CRID); ExecSQL; end; end; with ADOQueryPrice do begin close; sql.Clear; sql.Add('select * from JYOrderCon_Sub '); sql.Add('where Subid='''+Trim(Order_Main10.fieldbyname('Conid').AsString)+''''); open; end; if ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat<>0 then HTData('针织上机费',ADOQueryPrice.FieldByName('ZhenZhiSJFee').AsFloat,Order_Main10); if ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat<>0 then HTData('印花上机费',ADOQueryPrice.FieldByName('YinHuaSJFee').AsFloat,Order_Main10); if ADOQueryPrice.FieldByName('BaoGangFee').AsFloat<>0 then HTData('包缸费',ADOQueryPrice.FieldByName('BaoGangFee').AsFloat,Order_Main10); if ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat<>0 then HTData('制网制版费',ADOQueryPrice.FieldByName('ZhiWangZhiBanFee').AsFloat,Order_Main10); Result:=True; end; procedure TfrmCpCkSaoMNewSel.RKOrdIDKeyPress(Sender: TObject; var Key: Char); var maxno:String; begin if Key=#13 then begin Label12.Caption:=''; if CDS_Sub.IsEmpty then begin BaoID.Text:=''; Application.MessageBox('未选单不能扫描出库!','提示',0); Exit; end; if Trim(CKOrdNo.Text)='' then begin Application.MessageBox('出库单号不能为空!','提示',0); Exit; end; if CDS_Main.Locate('RKOrdId',Trim(RKOrdId.Text),[])=False then begin MovePanel1.Visible:=True; Edit2.Text:=Trim(RKOrdId.Text); Label12.Caption:='提醒:此入库单不包含在待出库的卷数据中!'; RKOrdId.Text:=''; // Application.MessageBox('此入库单不包含在待出库的卷数据中!','提示',0); Exit; end; //CDS_Main.Locate('MJId',Trim(BaoID.Text),[]); MovePanel2.Visible:=True; MovePanel2.Refresh; InitPrice(); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin First; while CDS_Main.Locate('RKOrdId',Trim(RKOrdId.Text),[])=True do begin if GetLSNo(ADOQueryCmd,maxno,'CC','CK_BanCp_CR',4,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取出库最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_BanCp_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('BCID').Value:=Trim(maxno); FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; FieldByName('MainID').Value:=CDS_Main.fieldbyname('MainID').Value; FieldByName('SubID').Value:=CDS_Main.fieldbyname('SubID').Value; FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; FieldByName('BaoID').Value:=CDS_Main.fieldbyname('BaoID').Value; FieldByName('RKPlace').Value:=CDS_Main.fieldbyname('RKPlace').AsString; FieldByName('Filler').Value:=Trim(DName); FieldByName('CRFlag').Value:='出库'; FieldByName('CRType').Value:='正常出库'; FieldByName('CRNote').Value:=Trim(CRNote.Text); FieldByName('CKOrdNo').Value:=Trim(CKOrdNo.Text); //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已出库'' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; {if YSData(CDS_Main)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('更新应收款失败!','提示',0); Exit; end; } if CDSPrice.Locate('MainId',Trim(CDS_Main.fieldbyname('MainId').AsString),[])=False then begin CDSPrice.Append; CDSPrice.FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); CDSPrice.FieldByName('KHName').Value:=Trim(CDS_Main.fieldbyname('KHName').AsString); //CDS_Sub.Locate('MainId',Trim(CDS_Main.fieldbyname('MainId').AsString),[]); {if Trim(CDS_Sub.fieldbyname('OrderUnit').AsString)<>'Kg' then begin CDSPrice.FieldByName('JLUnit').Value:='M'; end else begin CDSPrice.FieldByName('JLUnit').Value:='Kg'; end; } CDSPrice.Post; end; with CDS_MainSel do begin Append; FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('BCID').Value:=Trim(maxno); FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; FieldByName('KHName').Value:=CDS_Main.fieldbyname('KHName').Value; FieldByName('RKOrdId').Value:=CDS_Main.fieldbyname('RKOrdId').Value; FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; //FieldByName('JZXNo').Value:=Trim(JZXNo.Text); Post; end; CDS_Main.Delete; end; end; with CDSPrice do begin First; while not Eof do begin if YSData(CDSPrice)=False then begin MovePanel2.Visible:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('更新应收款失败!','提示',0); Exit; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; MovePanel1.Visible:=True; if CDS_MainSel.IsEmpty=False then Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text:='0'; Edit2.Text:=Trim(RKOrdID.Text); RKOrdID.Text:=''; MovePanel2.Visible:=False; Exit; except RKOrdID.Text:=''; MovePanel2.Visible:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库异常!','提示',0); end; end; end; procedure TfrmCpCkSaoMNewSel.baoKeyPress(Sender: TObject; var Key: Char); var maxno:String; begin if Key=#13 then begin Label12.Caption:=''; if CDS_Sub.IsEmpty then begin Bao.Text:=''; Application.MessageBox('未选单不能扫描出库!','提示',0); Exit; end; if Trim(bao.Text)='' then begin Application.MessageBox('包号不能为空!','提示',0); Exit; end; if Trim(CKOrdNo.Text)='' then begin Application.MessageBox('出库单号不能为空!','提示',0); Exit; end; if CDS_Main.Locate('baoID',Trim(bao.Text),[])=False then begin MovePanel1.Visible:=True; Edit2.Text:=Trim(bao.Text); Label12.Caption:='提醒:此包不包含在待出库的卷数据中!'; bao.Text:=''; Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin first; while CDS_Main.Locate('baoID',Trim(bao.Text),[]) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set '); sql.add(' CRTime='''+trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime))+''''); sql.Add(',CRType='''+trim(CRType.Text)+''',CRFlag=''出库'''); sql.Add(',CRNote='''+trim(CRNote.Text)+''''); sql.Add(',MJXH='''+trim(CDS_Main.fieldbyname('MJXH').AsString)+''''); sql.Add(',BaoNo='''+trim(CDS_Main.fieldbyname('BaoNo').AsString)+''''); sql.Add(',BaoID='''+trim(CDS_Main.fieldbyname('BaoID').AsString)+''''); sql.Add(',CKOrdNo='''+trim(CKOrdNo.Text)+''''); sql.Add(',CRFlagQty=-1'); sql.Add('where Baoid='''+Trim(CDS_Main.fieldbyname('Baoid').AsString)+''''); sql.Add(' and CRFlag=''待出库'''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已出库'' where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; with CDS_MainSel do begin Append; FieldByName('MainId').Value:=CDS_Main.fieldbyname('MainId').Value; FieldByName('SubId').Value:=Self.CDS_Main.fieldbyname('SubId').Value; FieldByName('OrderNo').Value:=Self.CDS_Main.fieldbyname('OrderNo').Value; FieldByName('KGQty').Value:=Self.CDS_Main.fieldbyname('KGQty').Value; FieldByName('MJQty4').Value:=Self.CDS_Main.fieldbyname('MJQty4').Value; FieldByName('Qty').Value:=Self.CDS_Main.fieldbyname('Qty').Value; FieldByName('QtyUnit').Value:=Self.CDS_Main.fieldbyname('QtyUnit').Value; FieldByName('MJId').Value:=Self.CDS_Main.fieldbyname('MJId').Value; FieldByName('CRId').Value:=Self.CDS_Main.fieldbyname('CRId').Value; FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('BCID').Value:=Trim(maxno); FieldByName('PRTColor').Value:=Self.CDS_Main.fieldbyname('PRTColor').Value; FieldByName('MJXH').Value:=Self.CDS_Main.fieldbyname('MJXH').Value; FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; FieldByName('KHName').Value:=CDS_Main.fieldbyname('KHName').Value; FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; FieldByName('RKOrdId').Value:=CDS_Main.fieldbyname('RKOrdId').Value; FieldByName('BaoNo').Value:=CDS_Main.fieldbyname('BaoNo').Value; FieldByName('BaoID').Value:=CDS_Main.fieldbyname('BaoID').Value; FieldByName('YRfactoryName').Value:=Trim(CDS_Main.fieldbyname('YRfactoryName').AsString); FieldByName('Conid').Value:=CDS_Main.fieldbyname('Conid').AsString; fieldbyname('ConNO').Value:=CDS_Main.fieldbyname('ConNO').AsString; Post; end; PlaySound('ZTFH.wav', 0, SND_FILENAME or SND_ASYNC); CDS_Main.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; MovePanel1.Visible:=True; if CDS_MainSel.IsEmpty=False then Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text:='0'; Edit2.Text:=Trim(bao.Text); bao.Text:=''; exit; except bao.Text:=''; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库异常!','提示',0); end; end; end; procedure TfrmCpCkSaoMNewSel.THMJIDKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if CDS_MainSel.IsEmpty then begin BaoID.Text:=''; Application.MessageBox('未出库不能扫描退货!','提示',0); Exit; end; if Trim(THMJID.Text)='' then begin Application.MessageBox('条码不能为空!','提示',0); Exit; end; if not CDS_MainSel.Locate('MJId',Trim(THMJID.Text),[]) then begin BaoID.Text:=''; Application.MessageBox('此卷号不存在!','提示',0); Exit; end; CDS_MainSel.Locate('MJId',Trim(THMJID.Text),[]); try with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete CK_BanCP_CR where BCID='''+Trim(CDS_MainSel.fieldbyname('BCID').AsString)+''''); sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag=''入库'') '); sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag=''入库'') '); SQL.Add(' where CRID='+CDS_MainSel.fieldbyname('CRID').AsString); sql.Add('Update WFB_MJJY Set MJStr2=''已入库'' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); ExecSQL; end; // CDS_Main.DisableControls; with CDS_Main do begin Append; FieldByName('MainId').Value:=CDS_MainSel.fieldbyname('MainId').Value; FieldByName('SubId').Value:=Self.CDS_MainSel.fieldbyname('SubId').Value; FieldByName('OrderNo').Value:=Self.CDS_MainSel.fieldbyname('OrderNo').Value; FieldByName('KgQty').Value:=Self.CDS_MainSel.fieldbyname('KgQty').Value; FieldByName('Qty').Value:=Self.CDS_MainSel.fieldbyname('Qty').Value; FieldByName('QtyUnit').Value:=Self.CDS_MainSel.fieldbyname('QtyUnit').Value; FieldByName('MJId').Value:=Self.CDS_MainSel.fieldbyname('MJId').Value; FieldByName('CRId').Value:=Self.CDS_MainSel.fieldbyname('CRId').Value; FieldByName('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; FieldByName('KHName').Value:=CDS_MainSel.fieldbyname('KHName').Value; FieldByName('RKOrdID').Value:=CDS_MainSel.fieldbyname('RKOrdID').Value; FieldByName('BaoNo').Value:=CDS_MainSel.fieldbyname('BaoNo').Value; FieldByName('BaoID').Value:=CDS_MainSel.fieldbyname('BaoID').Value; Post; end; CDS_MainSel.Delete; Edit2.Text:=Trim(THMJID.Text); THMJID.Text:=''; THMJID.SetFocus; Exit; except THMJID.Text:=''; THMJID.SetFocus; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销出库异常!','提示',0); end; end; end; procedure TfrmCpCkSaoMNewSel.MenuItem1Click(Sender: TObject); var FMainid:String; begin if CDS_MainSel.IsEmpty then Exit; if Application.MessageBox('确定要执行此操作吗?','提示',32+4)<>IDYES then Exit; MovePanel2.Visible:=True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已入库'' where '); sql.Add('exists (select MJID from CK_BanCP_CR where MJID=WFB_MJJY.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''') '); sql.Add('UPdate CK_BanCP_CR set CRFlag=''待出库'',CRFlagQty=0 where CKOrdNo='''+Trim(CKOrdNo.Text)+''' '); sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag=''入库'') '); sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag=''入库'') '); sql.Add(' where exists (select MJID from CK_BanCP_CR where MJID=CK_BanCP_KC.MJID and CKOrdNo='''+trim(CKOrdNo.Text)+''') '); ExecSQL; end; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); sql.Add(' where exists( select * from TBSubID AA where AA.SubId=A.conID and AA.DName='''+Trim(DCode)+''')'); SQL.Add(' and A.CRFlag=''入库'' '); sql.Add(' and not exists(select BA.MJID from CK_BanCP_CR BA where BA.MJID=A.MJID and BA.CRFlag=''出库'')'); Open; end; SCreateCDS20(ADOQueryTemp,CDS_Main); SInitCDSData20(ADOQueryTemp,CDS_Main); with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId), A.* '); sql.Add(',KHName=(select isnull(D.CustomerNoName,D.CustomerNo) from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.Add(',ConNO=(select isnull(D.ConNO,'''') from JYOrderCon_Main D inner Join JYOrderCon_Sub E on E.Mainid=D.Mainid where E.Subid=A.ConID)'); sql.add(',YRfactoryName=(select R.factoryName from CK_SXPB_CR R where R.SPID=A.APID)'); SQL.Add(',PRTColor=(select PRTColorEng from JYOrder_Sub where SubId=A.SubId)'); SQL.Add(',PRTHX=(select PRTHX from JYOrder_Sub where SubId=A.SubId)'); sql.Add(',AOrdDefstr1=(select MJStr4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJQty4=(select MJQty4 from WFB_MJJY where MJID=A.MJID)'); sql.Add(',MJXH=(select MJXH from WFB_MJJY where MJID=A.MJID)'); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC B on A.CRID=B.CRID'); sql.Add(' where 1=2 '); Open; end; SCreateCDS20(ADOQueryTemp,CDS_MainSel); SInitCDSData20(ADOQueryTemp,CDS_MainSel); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set '); sql.add(' CRTime=NULL'); sql.Add(',CRType='''',CRFlag=''待出库'''); sql.Add(',CRNote='''''); SQL.Add(',CKOrdNo='''' '); sql.Add(',CRFlagQty=0'); sql.Add(',BaoID='''',BaoNo='''' '); sql.Add('where CKOrdNo='''+trim(CKOrdNo.Text)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; MovePanel1.Visible:=True; if CDS_MainSel.IsEmpty=False then Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text:='0'; MovePanel2.Visible:=False; Exit; except MovePanel2.Visible:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销异常!','提示',0); end; end; end.