unit U_SMPK; 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, ShellAPI, cxTextEdit, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, RM_e_Xls; type TfrmSMPK = class(TForm) ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; DS_MainSel: TDataSource; CDS_MainSel: TClientDataSet; cxGridPopupMenu4: TcxGridPopupMenu; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v3Column1: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; v3Column2: TcxGridDBColumn; Panel2: TPanel; Label5: TLabel; KuWei: TEdit; BaoID: TEdit; Button2: TButton; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label12: TLabel; CDS_Main: TClientDataSet; CRType: TEdit; v3Column4: TcxGridDBColumn; RMXLSExport1: TRMXLSExport; RMDBMX: TRMDBDataSet; RM1: TRMGridReport; CDS_JuanPRT: TClientDataSet; v3Column3: TcxGridDBColumn; 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); function YSData(Order_Main10: TClientDataSet): Boolean; private { Private declarations } FCKOrdNo, FSMStr, JXFlag: string; public { Public declarations } end; var frmSMPK: TfrmSMPK; implementation uses U_DataLink, U_RTFun, MMSystem, U_FHSQListSel; {$R *.dfm} function TfrmSMPK.YSData(Order_Main10: TClientDataSet): Boolean; var CRID, YFID, PriceUnit, OrderUnit, FComTaiTou, FromSubID: string; fprice, huilv: double; begin // Result:=False; // fprice:=0; // huilv:=0; // PriceUnit:='RMB'; // with Order_Main10 do // begin // begin // with ADOQueryTemp do // begin // Close; // SQL.Clear; // sql.Add('select *,fPrice=dbo.F_Get_Order_Price(MainID,subID) from JYOrder_Sub Where subID='''+Trim(Order_Main10.fieldbyname('subID').AsString)+''''); // Open; // end; // IF not ADOQueryTemp.IsEmpty then // begin // PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); // OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); // fPrice:= ADOQueryTemp.fieldbyname('fPrice').AsFloat; // huilv:= ADOQueryTemp.fieldbyname('huilv').AsFloat; // end; // IF huilv=0 then huilv:=1; // CRID:='0'; // with ADOQueryTemp do // begin // Close; // sql.Clear; // sql.Add(' select * from YF_Money_CR '); // sql.Add(' where mainID='''+Trim(Order_Main10.fieldbyname('mainID').AsString)+''''); // sql.Add(' and subID='''+Trim(Order_Main10.fieldbyname('subID').AsString)+''''); // sql.Add(' and CRTime='''+FormatDateTime('yyyy-MM-dd',CRTime.Date)+'''') ; // sql.Add(' and YFName=''销售金额'' '); // Open; // end; // if ADOQueryTemp.IsEmpty then // begin // if GetLSNo(ADOQueryCmd,YFID,'CS','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<>1'); // Open; // end; // with ADOQueryCmd do // begin // Append; // FieldByName('YFID').Value:=Trim(YFID); // FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('mainID').AsString); // FieldByName('CRID').Value:=StrToInt(CRID); // FieldByName('Filler').Value:=Trim(DName); // FieldByName('CRType').Value:='应收款登记'; // FieldByName('CRFlag').Value:='应收收'; // FieldByName('QtyFlag').Value:=1; // FieldByName('FactoryName').Value:=Trim(TocustName.Text); // FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date)); // FieldByName('YFType').Value:='自动生成'; // FieldByName('Price').Value:=fprice; // FieldByName('HuiLv').Value:=huilv; // FieldByName('BZType').Value:=Trim(PriceUnit); // FieldByName('QtyUnit').Value:=Trim(OrderUnit); // FieldByName('ComTaiTou').Value:=Trim(FComTaiTou); // FieldByName('YFName').Value:='销售金额'; // FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); // FieldByName('subID').Value:=Trim(Order_Main10.fieldbyname('subID').AsString); // FieldByName('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNO').AsString); // FieldByName('P_CodeName').Value:=Trim(Order_Main10.fieldbyname('MprtCodeName').AsString); // FieldByName('P_Spec').Value:=Trim(Order_Main10.fieldbyname('MprtSpec').AsString); // FieldByName('P_color').Value:=Trim(Order_Main10.fieldbyname('PRTColor').AsString); // FieldByName('status').Value:='0'; // Post; // end; // end // else // begin // YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); // end; // IF uppercase(OrderUnit)='KG' then // begin // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(B.MJQty4),0) from CK_BanCP_CR A,WFB_MJJY B where A.MJID=B.MJID and A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(' where YFID='''+Trim(YFID)+''''); // ExecSQL; // end; // end // else // IF (uppercase(OrderUnit)='Y') and (uppercase(Trim(Order_Main10.fieldbyname('QtyUnit').AsString))='M') then // begin // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('update YF_Money_CR Set Qty=(select cast(isnull(Sum(A.Qty),0)/0.9144 as decimal(18,1)) from CK_BanCP_CR A where A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(' where YFID='''+Trim(YFID)+''''); // ExecSQL; // end; // end // else // IF (uppercase(OrderUnit)='M') and (uppercase(Trim(Order_Main10.fieldbyname('QtyUnit').AsString))='Y') then // begin // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('update YF_Money_CR Set Qty=(select cast(isnull(Sum(A.Qty),0)*0.9144 as decimal(18,1)) from CK_BanCP_CR A where A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(' where YFID='''+Trim(YFID)+''''); // ExecSQL; // end; // end // else // begin // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') '); // sql.Add(' where YFID='''+Trim(YFID)+''''); // ExecSQL; // end; // end; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); // sql.Add(' where YFID='''+Trim(YFID)+''''); // 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('Qty').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; // //Next; // end; // end; // Result:=True; end; procedure TfrmSMPK.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmSMPK.FormDestroy(Sender: TObject); begin frmSMPK := nil; end; procedure TfrmSMPK.FormShow(Sender: TObject); begin BaoID.SetFocus; ReadCxGrid('扫描出库', Tv3, '坯布仓库'); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.kuwei,B.* '); sql.Add(' from CK_PBCP_CR A'); sql.Add(' inner join WFB_MJJY_PB B on A.MJID=B.MJID'); sql.Add(' where 1=2'); Open; end; SCreateCDS(ADOQueryTemp, CDS_MainSel); end; procedure TfrmSMPK.BaoIDKeyPress(Sender: TObject; var Key: Char); var maxno, SMFlag, KYCKFlag, FMainId: string; FFQty: Integer; begin if Key = #13 then begin if trim(KuWei.Text) = '' then begin Application.MessageBox('请输入库位!', '提示', 0); Exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add(' select A.*,B.CRID '); sql.Add(' from WFB_MJJY_PB A'); sql.Add(' inner join CK_PBCP_CR B on A.MJID=B.MJID and B.CRFlag=''入库'' '); sql.Add(' where A. MJID=''' + Trim(BaoID.Text) + ''''); // showmessage(SQL.Text); Open; end; if ADOQueryTemp.IsEmpty then begin PlaySound('wav\扫描错误.wav', 0, SND_FILENAME or SND_ASYNC); BaoID.Text := ''; Exit; end else begin SCreateCDS(ADOQueryTemp, CDS_Main); SInitCDSData(ADOQueryTemp, CDS_Main); end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update CK_PBCP_CR set KuWei =' + quotedstr(trim(KuWei.Text))); sql.Add(' where MJID=''' + Trim(BaoID.Text) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; with CDS_MainSel do begin Append; FieldByName('Mainid').Value := Self.CDS_Main.fieldbyname('Mainid').Value; FieldByName('SubID').Value := Self.CDS_Main.fieldbyname('SubID').Value; FieldByName('MJMaoZ').Value := Self.CDS_Main.fieldbyname('MJMaoZ').Value; FieldByName('MJId').Value := Self.CDS_Main.fieldbyname('MJId').Value; FieldByName('APXH').Value := Self.CDS_Main.fieldbyname('APXH').Value; FieldByName('CarNo').Value := Self.CDS_Main.fieldbyname('CarNo').Value; FieldByName('KuWei').Value := trim(KuWei.Text); FieldByName('APBatchNo').Value := Self.CDS_Main.fieldbyname('APBatchNo').Value; Post; end; BaoID.Text := ''; PlaySound('wav\正确.wav', 0, SND_FILENAME or SND_ASYNC); Exit; except BaoID.Text := ''; PlaySound('数据保存失败暂停发货.wav', 0, SND_FILENAME or SND_ASYNC); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('盘库异常!', '提示', 0); end; end; end; procedure TfrmSMPK.Button2Click(Sender: TObject); begin Close; WriteCxGrid('扫描出库', Tv3, '坯布仓库'); end; end.