unit U_CpRkSaoMNewCS; 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, BtnEdit, RM_System, RM_Common, RM_Class, RM_GridReport, RM_Dataset; type TfrmCpRkSaoMNewCS = class(TForm) cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column1: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; cxGridPopupMenu1: TcxGridPopupMenu; CDS_Main: TClientDataSet; DataSource1: TDataSource; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; Panel1: TPanel; MJID: TEdit; Label1: TLabel; v1Column5: TcxGridDBColumn; Button2: TButton; Button3: TButton; CDS_Sub: TClientDataSet; DataSource2: TDataSource; ADOQuerySub: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; cxGridPopupMenu3: TcxGridPopupMenu; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DS_MainSel: TDataSource; CDS_MainSel: TClientDataSet; v3KgQty: TcxGridDBColumn; Button1: TButton; cxGridPopupMenu4: TcxGridPopupMenu; MovePanel1: TMovePanel; Edit1: TEdit; Edit2: TEdit; Label2: TLabel; Label3: TLabel; Button4: TButton; cxGrid1: TcxGrid; Tv2: TcxGridDBTableView; v1OrderNo: TcxGridDBColumn; v2Column2: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column14: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1PRTMF: TcxGridDBColumn; v1PRTKZ: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column2: TcxGridDBColumn; v3Column2: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v3PRTColor: TcxGridDBColumn; v3Column4: TcxGridDBColumn; v3Column5: TcxGridDBColumn; Button5: TButton; v1Column7: TcxGridDBColumn; v3Column6: TcxGridDBColumn; PopupMenu2: TPopupMenu; MenuItem1: TMenuItem; MovePanel2: TMovePanel; CRTime: TDateTimePicker; Label4: TLabel; Button6: TButton; RKOrdID: TEdit; RKPlace: TBtnEditA; Label5: TLabel; Label6: TLabel; Label7: TLabel; BaoNo: TEdit; RKOrdPS: TEdit; Button7: TButton; v3Column7: TcxGridDBColumn; RM1: TRMGridReport; Button8: TButton; ADOQueryPrt: TADOQuery; RMDB_Main: TRMDBDataSet; v3Column8: TcxGridDBColumn; ComboBox1: TComboBox; Edit3: TEdit; Label8: TLabel; v1MJID: TcxGridDBColumn; Label9: TLabel; gangNo: TEdit; Bao: TEdit; Label10: TLabel; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v3Column1: TcxGridDBColumn; Label12: TLabel; v1conNo: TcxGridDBColumn; v1KHConNO: TcxGridDBColumn; v1StyleNo: TcxGridDBColumn; v3ConNo: TcxGridDBColumn; v3KHConNO: TcxGridDBColumn; v3styleNo: TcxGridDBColumn; ADOQueryPrint: TADOQuery; v1MJQty4: TcxGridDBColumn; v3MJQty4: TcxGridDBColumn; v1MJType: TcxGridDBColumn; Label11: TLabel; Label13: TLabel; CRType: TComboBox; Label14: TLabel; CRNote: TEdit; ADOQueryPrice: TADOQuery; v3CRNote: TcxGridDBColumn; v1CRNote: TcxGridDBColumn; v1PRTHX: TcxGridDBColumn; v3PRTHX: TcxGridDBColumn; ClientDataSet1: TClientDataSet; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure MJIDKeyPress(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 Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure RKPlaceBtnClick(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Edit3Click(Sender: TObject); procedure BaoKeyPress(Sender: TObject; var Key: Char); procedure N3Click(Sender: TObject); procedure BaoNoChange(Sender: TObject); procedure MenuItem1Click(Sender: TObject); private { Private declarations } FBaoId:String; procedure InitGrid(); procedure InitSubGrid(); procedure SavedataCK(); function YSData(Order_Main10:TClientDataSet):Boolean; function YFData(Order_Main10:TClientDataSet):Boolean; function HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; public { Public declarations } end; var frmCpRkSaoMNewCS: TfrmCpRkSaoMNewCS; implementation uses U_DataLink,U_Fun,U_OrderSelRK,U_ZDYHelp,MMSystem; {$R *.dfm} function TfrmCpRkSaoMNewCS.HTData(FeeType:string;FeeMoney:double;Order_Main11:TClientDataSet):Boolean; var CRID,OrdMainId,YFID,FComTaiTou,FCRID,FFactoryName,OrderUnit,PriceUnit,FConNo:String; FTaoQty:double; begin Result:=False; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select Top 1 A.PriceUnit,A.OrderUnit,B.ConNo,A.TaoQty 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); FTaoQty:=ADOQueryTemp.fieldbyname('TaoQty').AsFloat; 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=2'); 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:=FeeMoney; if FTaoQty=0 then fieldbyname('Qty').value:=1 else fieldbyname('Qty').value:=FTaoQty; 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); with ADOQueryCmd do begin Close; sql.Clear; sql.add('update YF_Money_CR Set '); sql.add('BBMoney='''+trim(floattostr(FeeMoney))+''','); sql.add('Price='''+trim(floattostr(FeeMoney))+''','); sql.add('Money='''+trim(floattostr(FeeMoney))+''' '); sql.add('where YFID='''+Trim(ADOQueryTemp.fieldbyname('YFID').AsString)+''''); execsql; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); Open; end; if ADOQueryTemp.FieldByName('Money').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; function TfrmCpRkSaoMNewCS.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 PriceUnit,OrderUnit 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=2'); 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; 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.MJQty4),0) from CK_BanCP_CR A '); sql.Add(' where 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(A.MJQty4),0) from CK_BanCP_CR A '); sql.Add(' where 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 PS 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; function TfrmCpRkSaoMNewCS.YSData(Order_Main10:TClientDataSet):Boolean; var CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,FConNo,FOrderNo:String; FPRTPrice:String; begin Result:=False; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select Top 1 B.ConNo,'); sql.add('PIPrice=isnull((select C.Price From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.PRTPrice)');//只做HAM发票PI就有单价,不做就为空 sql.add(',PIOrderUnit=isnull((select C.QtyUnit From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.OrderUnit)');//只做HAM发票PI就有单价,不做就为空 sql.add(',PIBZType=isnull((select C.BZType From JYOrderFPPI_Sub C where C.YFID=A.Subid),A.PriceUnit)');//只做HAM发票PI就有单价,不做就为空 sql.add(' from JYOrderCon_Sub A inner join JYOrderCon_Main B on A.Mainid=B.Mainid '); sql.add('Where Subid='''+Trim(Order_Main10.fieldbyname('ConID').AsString)+''''); Open; end; PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PIBZType').AsString); OrderUnit:=Trim(ADOQueryTemp.fieldbyname('PIOrderUnit').AsString); if ADOQueryTemp.fieldbyname('PIPrice').AsFloat=0 then FPRTPrice:='0' else FPRTPrice:=trim(ADOQueryTemp.fieldbyname('PIPrice').AsString); 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=2'); 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 Mainid='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); sql.add(' and YFName=''成品销售金额'''); sql.add(' and isnull(PBNote,'''')='''+trim(CRNote.Text)+''''); 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; 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') and (Trim(OrderUnit)<>'Kg') and (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.MJQty4),0) from CK_BanCP_CR A '); end; sql.Add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType=''检验入库'' '); sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); 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=''检验入库'' '); sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); sql.add(') '); sql.Add(',JZQty=(select isnull(Sum(A.MJQty4),0) from CK_BanCP_CR A '); sql.add(' where A.ConID=YF_Money_CR.YFTypeId and A.CRType=''检验入库'' '); sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); 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=''检验入库'' '); sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); 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=''检验入库'' '); sql.add(' and A.Mainid=YF_Money_CR.Mainid and isnull(A.CRNote,'''')=YF_Money_CR.PBNote'); SQL.Add(' )'); sql.add(',Price='''+trim(FPRTPrice)+''''); sql.Add(' where YFID='''+Trim(YFID)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.add('update YF_Money_CR Set '); sql.add('BBMoney=Qty*Price,'); sql.add('Money=Price*Qty '); sql.add('where YFID='''+Trim(YFID)+''''); 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').AsFloat=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*ADOQueryPrice.FieldByName('TaoQty').AsFloat,Order_Main10); Result:=True; end; procedure TfrmCpRkSaoMNewCS.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmCpRkSaoMNewCS.FormDestroy(Sender: TObject); begin frmCpRkSaoMNewCS:=nil; end; procedure TfrmCpRkSaoMNewCS.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A '); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add(' where 1=2'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); // SInitCDSData20(ADOQueryMain,CDS_Main); SCreateCDS20(ADOQueryMain,CDS_MainSel); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCpRkSaoMNewCS.FormShow(Sender: TObject); begin ReadCxGrid('订单选择',Tv2,'成品仓库'); ReadCxGrid('成品出库',Tv1,'成品仓库'); ReadCxGrid('成品出库Sels',Tv3,'成品仓库'); InitSubGrid(); InitGrid(); CRTime.DateTime:=SGetServerDate(ADOQueryTemp); end; procedure TfrmCpRkSaoMNewCS.MJIDKeyPress(Sender: TObject; var Key: Char); var maxno:String; CRID:Integer; MaxCkNo,MaxCkSubNo,DBID:String; begin if Key=#13 then begin Label12.Caption:=''; if CDS_Sub.IsEmpty then begin MJID.Text:=''; Application.MessageBox('未选单不能扫描出库!','提示',0); Exit; end; if Trim(RKOrdID.Text)='' then begin Application.MessageBox('入库单号不能为空!','提示',0); Exit; end; if CDS_Main.Locate('MJId',Trim(MJID.Text),[])=false then begin application.MessageBox('选择的订单没有该卷布','提示'); exit; end; CDS_Main.Locate('MJId',Trim(MJID.Text),[]); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1 where 1=1'); sql.Add('select Top 1 CRID from CK_BanCP_CRID where 1=1 '); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').Value; if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','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=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',CRTime.DateTime); FieldByName('CRFlag').Value:='入库'; FieldByName('CRType').Value:=trim(CRType.Text); FieldByName('CRID').Value:=CRID; FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; FieldByName('MJQty4').Value:=CDS_Main.fieldbyname('MJQty4').Value; FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('Filler').Value:=Trim(DName); FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); FieldByName('CRNote').Value:=Trim(CRNote.Text); if BaoNo.Text<>'' then begin FieldByName('BaoNo').Value:=Trim(BaoNo.Text); FieldByName('BaoID').Value:=Trim(Bao.Text); end; FieldByName('RKPlace').Value:=Trim(RKPlace.Text); FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_KC where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=CRID; FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已入库'',BaoNo='''+trim(BaoNo.Text)+''',BaoID='''+trim(Bao.Text)+''' '); sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; end; if CRType.Text='回修入库' then begin IF not YFData(CDS_Main) then begin ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('生成应付款失败!','提示信息',0); end; end; if CRType.Text='检验入库' then begin if YSData(CDS_Main)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('更新应收款失败!','提示',0); Exit; 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:=IntToStr(CRID); FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; FieldByName('SOrddefstr1').Value:=CDS_Main.fieldbyname('SOrddefstr1').Value; FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); FieldByName('BaoNo').Value:=Trim(BaoNo.Text); FieldByName('BaoID').Value:=Trim(Bao.Text); FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; FieldByName('CRNote').Value:=trim(CRNote.Text); FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; FieldByName('MJQty4').Value:=Self.CDS_Main.fieldbyname('MJQty4').Value; FieldByName('KHName').Value:=Self.CDS_Main.fieldbyname('KHName').Value; FieldByName('YRfactoryName').Value:=Trim(Self.CDS_Main.fieldbyname('YRfactoryName').AsString); FieldByName('PRTHX').Value:=Self.CDS_Main.fieldbyname('PRTHX').Value; Post; end; if BaoNo.Text<>'' then begin if Edit3.Text<>'' then begin Button8.Click; BaoNo.Text:=IntToStr(StrToInt(BaoNo.Text)+1); if GetLSNo(ADOQueryCmd,DBID,'DB','CK_BanCP_CR',4,1)=False then begin Application.MessageBox('取包条码失败!','提示',0); Exit; end; Bao.Text:=Trim(DBID); end; 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(MJID.Text); MJID.Text:=''; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select isnull(Count(BCID),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); Open; end; RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'匹'; Exit; except; MJID.Text:=''; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('入库异常!','提示',0); end; end; end; procedure TfrmCpRkSaoMNewCS.SavedataCK(); var CRID:Integer; MaxCkNo,MaxCkSubNo:String; begin //if Trim(Cds_Main.fieldbyname('SubType').AsString)='大卷' then //////////////////////////////////////////////////////////////保存到半成品仓库//////////////////////////////////////////////// with ADOQueryCmd do begin Close; sql.Clear; SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); sql.Add('select * from CK_BanCP_CRID'); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').Value; if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','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('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryTemp); FieldByName('CRFlag').Value:='入库'; FieldByName('CRType').Value:=trim(CRType.Text); //FieldByName('JTType').Value:=Trim(XJFlag); FieldByName('CRID').Value:=CRID; 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('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('Filler').Value:=Trim(DName); FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=CRID; FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; Post; 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; procedure TfrmCpRkSaoMNewCS.Button2Click(Sender: TObject); begin IF (trim(RKOrdID.Text)<>'') and (CDS_MainSel.RecordCount>0) then begin if Application.MessageBox('确定要关闭界面,不打印入库单吗?','提示',32+4)<>IDYES then Exit; end; tv1.Controller.EditingController.ShowEdit(); tv3.Controller.EditingController.ShowEdit(); Close; WriteCxGrid('订单选择',Tv2,'成品仓库'); WriteCxGrid('成品出库',Tv1,'成品仓库'); WriteCxGrid('成品出库Sels',Tv3,'成品仓库'); end; procedure TfrmCpRkSaoMNewCS.Button3Click(Sender: TObject); var maxno:string; begin {if CDS_Main.IsEmpty=False then begin Application.MessageBox('已扫描不能更改单号!','提示',0); Exit; end;} try frmOrderSelRK:=TfrmOrderSelRK.Create(Application); with frmOrderSelRK 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('OrderNo').AsString); FieldByName('CustomerNoName').Value:=Trim(CDS_OrderSel.fieldbyname('CustomerNoName').AsString); FieldByName('MPRTCodeName').Value:=Trim(CDS_OrderSel.fieldbyname('MPRTCodeName').AsString); FieldByName('PRTOrderQty').Value:=Trim(CDS_OrderSel.fieldbyname('PRTOrderQty').AsString); 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; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A '); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add(' where 1=2'); Open; end; SCreateCDS20(Self.ADOQueryTemp,CDS_Main); CDS_Sub.DisableControls; with CDS_Sub do begin First; while not Eof do begin if Trim(Self.CDS_Sub.fieldbyname('SFlag').AsString)<>'2' then begin with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A '); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add(' where isnull(A.MJStr2,'''')=''未入库'' and isnull(A.FHStatus,'''')='''''); SQL.Add(' and D.Subid='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); Open; end; SInitCDSData20(Self.ADOQueryTemp,CDS_Main); end; CDS_Sub.Edit; CDS_Sub.FieldByName('SFlag').Value:='2'; CDS_Sub.Post; Next; end; end; CDS_Sub.EnableControls; Button6.OnClick(self); BaoNo.Text:='1'; if trim(Bao.Text)='' then begin if GetLSNo(ADOQueryCmd,maxno,'DB','CK_BanCP_CR',4,1)=False then begin Application.MessageBox('取包条码失败!','提示',0); Exit; end; Bao.Text:=Trim(maxno); end; end; end; finally; frmOrderSelRK.Release; end; end; procedure TfrmCpRkSaoMNewCS.InitSubGrid(); begin try ADOQuerySub.DisableControls; with ADOQuerySub do begin Close; sql.Clear; sql.Add('select A.*,B.*,Cast('''' as varchar(20)),Cast('''' as varchar(20)) 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 TfrmCpRkSaoMNewCS.Button1Click(Sender: TObject); 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; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; CDS_MainSel.DisableControls; with CDS_MainSel do begin First; while Locate('SSel',True,[]) do begin 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('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('APID').Value:=Self.CDS_MainSel.fieldbyname('APID').Value; FieldByName('CPType').Value:=Self.CDS_MainSel.fieldbyname('CPType').Value; FieldByName('MJQty4').Value:=Self.CDS_MainSel.fieldbyname('MJQty4').Value; FieldByName('PRTColor').Value:=Self.CDS_MainSel.fieldbyname('PRTColor').Value; FieldByName('AOrddefstr1').Value:=Self.CDS_MainSel.fieldbyname('AOrddefstr1').Value; FieldByName('SOrddefstr1').Value:=CDS_MainSel.fieldbyname('SOrddefstr1').Value; FieldByName('MJXH').Value:=Self.CDS_MainSel.fieldbyname('MJXH').Value; FieldByName('KHName').Value:=Self.CDS_MainSel.fieldbyname('KHName').Value; FieldByName('YRfactoryName').Value:=Self.CDS_MainSel.fieldbyname('YRfactoryName').Value; FieldByName('ConPerson2').Value:=Self.CDS_MainSel.fieldbyname('ConPerson2').Value; FieldByName('conDefstr2').Value:=Self.CDS_MainSel.fieldbyname('conDefstr2').Value; FieldByName('conDefstr3').Value:=Self.CDS_MainSel.fieldbyname('conDefstr3').Value; FieldByName('ConNo').Value:=Self.CDS_MainSel.fieldbyname('ConNo').Value; FieldByName('KHConNO').Value:=Self.CDS_MainSel.fieldbyname('KHConNO').Value; FieldByName('StyleNo').Value:=Self.CDS_MainSel.fieldbyname('StyleNo').Value; FieldByName('ConID').Value:=Self.CDS_MainSel.fieldbyname('ConID').Value; FieldByName('PRTHX').Value:=self.CDS_MainSel.fieldbyname('PRTHX').Value; CRNote.Text:=trim(Self.CDS_MainSel.fieldbyname('CRNote').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(',RKOrdId='''''); SQL.Add(',RKPlace='''',BaoNo='''',BaoID='''' '); sql.Add('where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''未入库'',BaoNo='''',BaoID='''' where MJID='''+Trim(CDS_MainSel.fieldbyname('MJID').AsString)+''''); ExecSQL; end; end; CDS_MainSel.Delete; end; end; CDS_MainSel.EnableControls; CDS_Main.EnableControls; MovePanel2.Visible:=False; MovePanel1.Visible:=True; if CDS_MainSel.IsEmpty=False then Edit1.Text:=IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text:='0'; Edit2.Text:=Trim(CDS_Main.fieldbyname('MJId').AsString); if Trim(RKOrdID.Text)<>'' then begin with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); sql.Add(' from CK_BanCP_CR A where A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); Open; end; SCreateCDS20(ADOQueryCmd,ClientDataSet1); SInitCDSData20(ADOQueryCmd,ClientDataSet1); RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'匹'; with ClientDataSet1 DO begin First; while not eof do begin if CRType.Text='回修入库' then begin IF not YFData(ClientDataSet1) then begin application.MessageBox('生成应付款失败!','提示信息',0); exit; end; end; if CRType.Text='检验入库' then begin if YSData(ClientDataSet1)=False then begin Application.MessageBox('更新应收款失败!','提示',0); Exit; end; end; next; end; end; end; ADOQueryCmd.Connection.CommitTrans; except; MovePanel2.Visible:=False; CDS_MainSel.DisableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销失败!','提示',0); end; end; procedure TfrmCpRkSaoMNewCS.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 TfrmCpRkSaoMNewCS.Button4Click(Sender: TObject); begin MovePanel1.Visible:=False; end; procedure TfrmCpRkSaoMNewCS.Button5Click(Sender: TObject); var maxno:String; CRID:Integer; MaxCkNo,MaxCkSubNo,DBID,FDD:String; begin if CDS_Sub.IsEmpty then Exit; {if CDS_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('数据没有全选','提示',0); Exit; end; } if Trim(RKOrdID.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(',RKOrdId='''+trim(RKOrdId.Text)+''''); SQL.Add(',RKPlace='''+trim(RKPlace.Text)+''' '); sql.Add('where ConID='''+Trim(CDS_Sub.fieldbyname('ConSubid').AsString)+''''); sql.Add(' and CRFlag=''待入库'''); ExecSQL; end; Next; end; end; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A '); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add(' where 1=2'); Open; end; SCreateCDS20(Self.ADOQueryTemp,CDS_Main); SInitCDSData20(Self.ADOQueryTemp,CDS_Main); with ADOQuerySub do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已入库'' '); sql.Add('where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID and B.RKOrdId='''+Trim(RKOrdId.Text)+''')'); ExecSQL; end; with ADOQuerySub do begin Close; sql.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.add(',F.RKOrdId,F.CRNote'); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A'); sql.Add(' inner join CK_BanCP_CR F on F.MJID=A.MJID'); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add('where F.RKOrdId='''+trim(RKOrdId.Text)+''''); Open; end; SCreateCDS20(ADOQuerySub,CDS_MainSel); SInitCDSData20(ADOQuerySub,CDS_MainSel); MovePanel2.Visible:=False; with ADOQuerySub do begin Close; sql.Clear; SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); sql.Add(' from CK_BanCP_CR A where A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); Open; end; SCreateCDS20(ADOQuerySub,ClientDataSet1); SInitCDSData20(ADOQuerySub,ClientDataSet1); RKOrdPS.Text:=Trim(ADOQuerySub.fieldbyname('ZPS').AsString)+'匹'; with ClientDataSet1 DO begin First; while not eof do begin if CRType.Text='回修入库' then begin IF not YFData(ClientDataSet1) then begin application.MessageBox('生成应付款失败!','提示信息',0); exit; end; end; if CRType.Text='检验入库' then begin if YSData(ClientDataSet1)=False then begin Application.MessageBox('更新应收款失败!','提示',0); Exit; end; end; next; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; except; MJID.Text:=''; CDS_Main.EnableControls; MovePanel2.Visible:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('入库异常!','提示',0); end; end; procedure TfrmCpRkSaoMNewCS.Button6Click(Sender: TObject); var maxno:string; begin if GetLSNo(ADOQueryCmd,maxno,'9','CK_BanCP_CR',4,1)=False then begin Application.MessageBox('取入库单号失败!','提示',0); Exit; end; RKOrdID.Text:=Trim(maxno); end; procedure TfrmCpRkSaoMNewCS.RKPlaceBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='KuWei'; flagname:='库位'; if ShowModal=1 then begin RKPlace.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCpRkSaoMNewCS.Button7Click(Sender: TObject); var fPrintFile:String; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin if Trim(RKOrdID.Text)='' then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\入库单标签.rmf'; with ADOQueryPrt do begin Close; sql.Clear; sql.Add('select A1.CRTime,A1.RKOrdID,A.MJTypeOther as QtyUnit,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO,'); sql.Add('PRTColor=DBO.F_Get_Order_SubStr(RKOrdID,''RKColor''),SOrddefstr1=DBO.F_Get_Order_SubStr(RKOrdID,''RKSOrddefstr1''),'); sql.Add('SOrddefstr4=DBO.F_Get_Order_SubStr(RKOrdID,''RkSOrddefstr4''),PRtHX=DBO.F_Get_Order_SubStr(RKOrdID,''RKPRtHX''), '); sql.Add('PRTkuanNo=DBO.F_Get_Order_SubStr(RKOrdID,''RkPrtkuanno''),'); sql.Add('MJStr4=DBO.F_Get_Order_SubStr(RKOrdID,''RKGangNO''), '); sql.Add('khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=D.conNO), '); sql.Add('Bsl=(select count(distinct baoNo) from CK_BanCP_CR X where X.RKOrdID=A1.RKOrdID), '); SQL.ADD('count(A.MJID) as JSl,sum(A.MJMaoZ) MJMAOZ,sum(MJQty2) as MJQty2,sum(MJQty3) as MJQty3,sum(MJQty4) as MJQty4,SUM(A.MJLen)as MJLen'); sql.Add('from CK_BanCP_CR A1 inner join WFB_MJJY A on A.MJID=A1.MJID '); sql.Add(' inner join JYOrder_Sub C on C.SubID=A.SubID'); sql.Add(' inner join JYOrder_Main D on D.MainID=A.MainID'); sql.Add(' where A1.RKOrdID='''+Trim(RKOrdID.Text)+''''); SQL.ADD(' group by A1.CRTime,A1.RKOrdID,A.MJTypeOther,D.OrderNo,D.conNo,D.customerNoName,D.MprtCodeName,D.Mprtspec,D.OrdPerson1,D.MPRTKuanNO'); //ShowMessage(ADOQueryPrt.SQL.Text); Open; end; try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(ADOQueryPrt.fieldbyname('RKOrdID').AsString); fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); except application.MessageBox('条形码生成失败!','提示信息',MB_ICONERROR); exit; end; if FileExists(fPrintFile) then begin //CDS_MainSel.Locate('RKOrdID',Trim(RKOrdID.Text),[]); //RMVariables['RKOrdID']:=Trim(CDS_MainSel.fieldbyname('RKOrdID').AsString); //RMVariables['OrderNo']:=Trim(CDS_MainSel.fieldbyname('OrderNo').AsString); //RMVariables['PS']:=Trim(RKOrdPS.Text); //RMVariables['QtyUnit']:=Trim(CDS_MainSel.fieldbyname('QtyUnit').AsString); RMVariables['QRBARCODE']:=fImagePath; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\入库单标签.rmf'),'提示',0); end; end; procedure TfrmCpRkSaoMNewCS.Button8Click(Sender: TObject); var fPrintFile:String; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' SELECT D.ConLBName,D.ConNLBName'); sql.Add(' from WFB_MJJY A'); sql.add(' inner join CK_SXPB_CR B on B.SPID=A.APID'); SQL.ADD(' left join JYOrderCon_Sub C on C.Subid=A.ConID '); sql.add(' left join JYOrderCon_Main D on D.Mainid=C.Mainid '); SQL.Add('where A.MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); Open; IF not ADOQueryPrint.IsEmpty then begin if Trim(ADOQueryPrint.fieldbyname('ConNLBName').AsString)='' then begin application.MessageBox('没有设置包标签,不能打包!','提示信息',0); exit; end; end; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ADOQueryPrint.fieldbyname('ConNLBName').AsString)+'.rmf'; with ADOQueryPrt do begin Close; sql.Clear; sql.Add('select A.BaoId,A.BaoNo'); if Edit3.Text<>'' then begin sql.add(' ,WM.MJXH'); end; sql.add(' ,A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO SOrddefstr1,isnull(E.SOrdDefStr4,C.PRTColorEng) PRTColorEng,C.PRtHX,'); sql.Add(' F.KHConNO,Count(A.BaoId) JSl,Sum(WM.MJQty4) MJQty4,Sum(WM.MJQty2) MJQty2,Sum(WM.MJMaoZ) MJMaoZ,Sum(WM.MJLen) MJLen'); sql.add(' ,D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4 GangNo'); sql.add(' ,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode '); sql.Add(' from CK_BanCP_CR A inner join WFB_MJJY WM on A.MJID=WM.MJID'); sql.Add(' inner join CK_SXPB_CR B on WM.APID=B.SPID'); sql.Add(' Left join JYOrder_Sub C on WM.SubID=C.SubID'); sql.Add(' Left join JYOrder_Main D on WM.MainID=D.MainID'); SQL.ADD(' Left join JYOrderCon_Sub E on E.Subid=A.ConID '); sql.add(' Left join JYOrderCon_Main F on F.Mainid=E.Mainid '); sql.Add(' where A.BaoId='''+Trim(Bao.Text)+''' and A.CRflag=''入库'' '); sql.Add(' Group by A.BaoId,A.BaoNo'); if Edit3.Text<>'' then begin sql.add(' ,WM.MJXH'); end; sql.add(',A.QtyUnit,D.OrderNo,D.LengUnit,F.conNo,D.customerNoName,D.MprtCodeName,D.OrdPerson1,F.conDefstr2,F.ConPerson2,F.conDefstr3,C.PRTColor,C.PRTColorNO,E.SOrddefstr4,C.PRTColorEng,F.KHConNO,C.PRtHX'); sql.add(',D.MPRTCode,D.MPRTspec,E.styleNo,WM.MJStr4,E.PRTMF,E.PRTKZ,E.PRTspec,E.PRTCodeName,E.PRTCode'); Open; end; if ADOQueryPrt.RecordCount>1 then begin Application.MessageBox('打包错误,请撤销入库!','提示',0); Exit; end; try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(ADOQueryPrt.fieldbyname('BaoID').AsString); fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); except application.MessageBox('条形码生成失败!','提示信息',MB_ICONERROR); exit; end; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE']:=fImagePath; RM1.LoadFromFile(fPrintFile); //RM1.ShowReport; rm1.PrintReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\包标签.rmf'),'提示',0); end; //CDS_MainSel.EmptyDataSet; FBaoId:=''; end; procedure TfrmCpRkSaoMNewCS.Edit3Click(Sender: TObject); begin if Trim(Edit3.Text)='√' then begin Edit3.Text:=''; fbaoID:=''; end else begin Edit3.Text:='√'; fbaoID:=''; end; end; procedure TfrmCpRkSaoMNewCS.BaoKeyPress(Sender: TObject; var Key: Char); var maxno:String; CRID:Integer; MaxCkNo,MaxCkSubNo:String; begin if Key=#13 then begin Label12.Caption:=''; if CDS_Sub.IsEmpty then begin Bao.Text:=''; Application.MessageBox('未选单不能扫描出库!','提示',0); Exit; end; if Trim(RKOrdID.Text)='' then begin Application.MessageBox('入库单号不能为空!','提示',0); Exit; end; IF trim(Bao.text)='' then begin // Label12.Caption:='包号不能为空!'; Application.MessageBox('包号不能为空!','提示',0); Exit; end; if CDS_MainSel.Locate('baoID',Trim(Bao.Text),[]) then begin MovePanel1.Visible:=True; Edit2.Text:=Trim(Bao.Text); Label12.Caption:='提醒:此包重复扫描!'; Bao.Text:=''; // 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:=''; // Application.MessageBox('此卷不包含在待入库的卷数据中!','提示',0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin DisableControls; while CDS_Main.Locate('BaoID',Trim(Bao.Text),[]) do begin with ADOQueryCmd do begin Close; sql.Clear; SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1'); sql.Add('select * from CK_BanCP_CRID'); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').Value; if GetLSNo(ADOQueryCmd,MaxCkNo,'JR','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('MainId').Value:=Trim(CDS_Main.fieldbyname('MainId').AsString); FieldByName('SubId').Value:=Trim(CDS_Main.fieldbyname('SubId').AsString); FieldByName('APID').Value:=Trim(CDS_Main.fieldbyname('APID').AsString); FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJId').AsString); FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',CRTime.DateTime); FieldByName('CRFlag').Value:='入库'; FieldByName('CRType').Value:='检验入库'; //FieldByName('JTType').Value:=Trim(XJFlag); FieldByName('CRID').Value:=CRID; 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('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('Filler').Value:=Trim(DName); FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); FieldByName('RKOrdId').Value:=Trim(RKOrdID.Text); FieldByName('BaoNo').Value:=Trim(CDS_Main.fieldbyname('BaoNo').AsString); FieldByName('BaoID').Value:=Trim(CDS_Main.fieldbyname('BaoID').AsString); FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; FieldByName('RKPlace').Value:=Trim(RKPlace.Text); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=CRID; FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString); FieldByName('KCKGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; FieldByName('KCQty').Value:=CDS_Main.fieldbyname('Qty').Value; FieldByName('KCQtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''已入库'' '); IF trim(gangNo.Text)<>'' then sql.Add(',MJStr4='+Quotedstr(trim(gangNo.Text))); sql.Add('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('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:=IntToStr(CRID); FieldByName('APID').Value:=Self.CDS_Main.fieldbyname('APID').Value; FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; FieldByName('BCID').Value:=Trim(MaxCkNo); FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); FieldByName('PRTColor').Value:=CDS_Main.fieldbyname('PRTColor').Value; FieldByName('MJXH').Value:=CDS_Main.fieldbyname('MJXH').Value; IF trim(gangNo.Text)<>'' then FieldByName('AOrdDefstr1').Value:=trim(gangNo.Text) else FieldByName('AOrdDefstr1').Value:=CDS_Main.fieldbyname('AOrdDefstr1').Value; FieldByName('SOrddefstr1').Value:=CDS_Main.fieldbyname('SOrddefstr1').Value; FieldByName('RKOrdID').Value:=Trim(RKOrdID.Text); FieldByName('BaoNo').Value:=Trim(CDS_Main.fieldbyname('BaoNo').AsString); FieldByName('BaoID').Value:=Trim(CDS_Main.fieldbyname('BaoID').AsString); FieldByName('ConPerson2').Value:=Self.CDS_Main.fieldbyname('ConPerson2').Value; FieldByName('conDefstr2').Value:=Self.CDS_Main.fieldbyname('conDefstr2').Value; FieldByName('conDefstr3').Value:=Self.CDS_Main.fieldbyname('conDefstr3').Value; FieldByName('ConNo').Value:=Self.CDS_Main.fieldbyname('ConNo').Value; FieldByName('KHConNO').Value:=Self.CDS_Main.fieldbyname('KHConNO').Value; FieldByName('StyleNo').Value:=Self.CDS_Main.fieldbyname('StyleNo').Value; FieldByName('ConID').Value:=Self.CDS_Main.fieldbyname('ConID').Value; Post; end; CDS_Main.Delete; end; CDS_Main.EnableControls; end; {with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select Mainid from CK_BanCP_CR where RKOrdId='''+Trim(RKOrdID.Text)+''''); SQL.Add(' group by MainId'); Open; end; if ADOQueryCmd.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('不同订单不能使用相同的入库单号!','提示',0); Exit; 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:=''; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select isnull(Count(*),0) ZPS from CK_BanCP_CR where RKOrdID='''+Trim(RKOrdID.Text)+''''); Open; end; RKOrdPS.Text:=Trim(ADOQueryCmd.fieldbyname('ZPS').AsString)+'匹'; Exit; except Bao.Text:=''; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('入库异常!','提示',0); end; end; end; procedure TfrmCpRkSaoMNewCS.N3Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if Trim(Fieldbyname('baoNo').AsString)<>'' then begin Edit; FieldByName('SSel').Value:=True; Post; end; Next; end; end; CDS_Main.EnableControls; end; procedure TfrmCpRkSaoMNewCS.BaoNoChange(Sender: TObject); var DBID:string; begin if BaoNo.Text<>'' then begin if GetLSNo(ADOQueryCmd,DBID,'DB','CK_BanCP_CR',4,1)=False then begin Application.MessageBox('取包条码失败!','提示',0); Exit; end; end; Bao.Text:=Trim(DBID); end; procedure TfrmCpRkSaoMNewCS.MenuItem1Click(Sender: TObject); begin if CDS_MainSel.IsEmpty then Exit; if Application.MessageBox('确定要执行此操作吗?','提示',32+4)<>IDYES then Exit; MovePanel2.Visible:=True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; CDS_Sub.DisableControls; with Self.ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A '); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add(' where 1=2'); Open; end; SCreateCDS20(Self.ADOQueryTemp,CDS_MainSel); SInitCDSData20(Self.ADOQueryTemp,CDS_MainSel); with ADOQuerySub do begin Close; sql.Clear; sql.Add('Update WFB_MJJY Set MJStr2=''未入库'' '); sql.Add('where exists (select B.MJID from CK_BanCP_CR B where B.MJID=WFB_MJJY.MJID and B.RKOrdId='''+Trim(RKOrdId.Text)+''')'); ExecSQL; end; with ADOQuerySub do begin Close; sql.Clear; sql.Add('select orderNo=(select OrderNo from JYOrder_Main where MainId=A.MainId)'); sql.Add(',isnull(E.CustomerNoName,E.CustomerNo) KHName'); sql.Add(',PRTColor=(select JS.PRTColorEng from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',PRTHX=(select JS.PRTHX from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.add(',B.factoryName YRfactoryName,A.MJMaoZ KgQty,A.MJLen Qty,A.MJTypeOther QtyUnit,A.MJType CPType '); sql.add(',F.RKOrdId,F.CRNote'); sql.Add(',SOrddefstr1=(select SOrddefstr1 from JYOrder_Sub JS where JS.SubId=A.SubId) '); sql.Add(',AOrdDefStr1=A.MJStr4,E.ConPerson2,E.conDefstr2,E.conDefstr3,E.ConNo,E.KHConNO,D.StyleNo,D.Subid ConID,A.* '); sql.Add(' from WFB_MJJY A'); sql.Add(' inner join CK_BanCP_CR F on F.MJID=A.MJID'); sql.add(' left join CK_SXPB_CR B on B.SPID=A.APID '); sql.Add(' left join JYOrderCon_Sub D on D.Subid=A.Conid '); sql.add(' left join JYOrderCon_Main E on E.Mainid=D.Mainid '); sql.Add('where F.RKOrdId='''+trim(RKOrdId.Text)+''''); Open; end; SCreateCDS20(ADOQuerySub,CDS_Main); SInitCDSData20(ADOQuerySub,CDS_Main); 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(',RKOrdId='''''); SQL.Add(',RKPlace='''' '); sql.Add('where RKOrdID='''+trim(RKOrdID.Text)+''''); ExecSQL; end; MovePanel2.Visible:=False; with ADOQuerySub do begin Close; sql.Clear; SQL.Add('select isnull(Count(BCID),0) ZPS,ConID,Mainid'); sql.Add(',QtyUnit=(select B.OrderUnit from JYOrderCon_Sub B where B.Subid=A.ConID)'); sql.Add(',KHName=(select isnull(B.CustomerNoName,B.CustomerNo) from JYOrderCon_Main B inner join JYOrderCon_Sub C on B.Mainid=C.Mainid where C.Subid=A.ConID)'); sql.Add(' from CK_BanCP_CR A where A.CRFlag=''入库'' and A.RKOrdID='''+Trim(RKOrdID.Text)+''' group by Conid,Mainid'); Open; end; SCreateCDS20(ADOQuerySub,ClientDataSet1); SInitCDSData20(ADOQuerySub,ClientDataSet1); RKOrdPS.Text:=Trim(ADOQuerySub.fieldbyname('ZPS').AsString)+'匹'; with ClientDataSet1 DO begin First; while not eof do begin if CRType.Text='回修入库' then begin IF not YFData(ClientDataSet1) then begin application.MessageBox('生成应付款失败!','提示信息',0); exit; end; end; if CRType.Text='检验入库' then begin if YSData(ClientDataSet1)=False then begin Application.MessageBox('更新应收款失败!','提示',0); Exit; end; end; next; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set '); sql.Add('RKOrdId='''' '); sql.Add('where RKOrdID='''+trim(RKOrdID.Text)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; except; MovePanel2.Visible:=False; CDS_MainSel.DisableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销失败!','提示',0); end; end; end.