unit U_THSQSMTH; 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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmTHSQSMTH = class(TForm) ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; DS_MainSel: TDataSource; CDS_MainSel: TClientDataSet; cxGridPopupMenu4: TcxGridPopupMenu; Panel2: TPanel; Label5: TLabel; Label4: TLabel; Label9: TLabel; TCPiQty: TEdit; RKOrdID: TEdit; BaoID: TEdit; CRTime: TDateTimePicker; CustomerNoName: TEdit; Button2: TButton; Label8: TLabel; cpname: TEdit; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label2: TLabel; Edit1: TEdit; Label12: TLabel; CDS_Main: TClientDataSet; Button1: TButton; Label1: TLabel; orderNo: TEdit; RMXLSExport1: TRMXLSExport; RMDBMX: TRMDBDataSet; RM1: TRMGridReport; CDS_JuanPRT: TClientDataSet; Label10: TLabel; edtIsSMTH: TEdit; lbl2: TLabel; Panel1: TPanel; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cv3Column3: TcxGridDBColumn; VC_MJXH: TcxGridDBColumn; v3Column1: TcxGridDBColumn; v3Column2: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Tv3Column1: 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); procedure edtIsSMTHClick(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } FRKOrdID, FSMStr, JXFlag, CZZT, fcuowu: string; procedure TMPanDuan(); procedure InitCKGrid(); public { Public declarations } end; var frmTHSQSMTH: TfrmTHSQSMTH; implementation uses U_DataLink, U_Fun, U_RTFun, MMSystem, U_FHSQListSel, U_CKProductBCPKCListSel, U_TCSQXZ; {$R *.dfm} procedure TfrmTHSQSMTH.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmTHSQSMTH.FormDestroy(Sender: TObject); begin frmTHSQSMTH := nil; end; procedure TfrmTHSQSMTH.FormShow(Sender: TObject); begin BaoID.SetFocus; ReadCxGrid('扫描出库', Tv3, '坯布仓库'); CRTime.DateTime := SGetServerDate(ADOQueryTemp); end; procedure TfrmTHSQSMTH.TMPanDuan(); begin //判断扫描的是发货申请单,还是布匹条码 ,判断是否已经扫描过发货单 ,或者更改了发货单 JXFlag := ''; if Copy(FSMStr, 1, 2) = 'TC' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Order_TC A where A.MainId=''' + Trim(FSMStr) + ''''); SQL.Add('AND ISNULL(STATUS,''0'')=''3'''); Open; end; if ADOQueryTemp.IsEmpty then begin JXFlag := '999'; PlaySound('wav\退仓单不存在.wav', 0, SND_FILENAME or SND_ASYNC); Exit; end; if Trim(RKOrdID.Text) <> '' then begin FRKOrdID := Trim(RKOrdID.Text); end; RKOrdID.Text := Trim(FSMStr); if FSMStr <> FRKOrdID then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.*'); sql.Add(' from CK_BanCP_CR A'); sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID'); sql.Add(' where A.CRFLAG=''入库'' and A.RKOrdID=''' + Trim(RKOrdID.Text) + ''''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_MainSel); SInitCDSData20(ADOQueryTemp, CDS_MainSel); if CDS_MainSel.IsEmpty = False then Edit1.Text := floatToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text := '0'; end; BaoID.Text := ''; JXFlag := '888'; end else begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from WFB_MJJY A '); sql.Add('where A.MJID=' + quotedstr(Trim(FSMStr))); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.APID from WFB_MJJY A '); sql.Add('where A.MJID=' + quotedstr(Trim(FSMStr))); // ShowMessage(sql.Text); Open; end; if ADOQueryTemp.IsEmpty then begin JXFlag := '999'; PlaySound('wav\未检验暂停发货.wav', 0, SND_FILENAME or SND_ASYNC); Exit; end else begin JXFlag := '999'; Application.MessageBox('请检查指示单是否正确!', '提示', 0); PlaySound('wav\条码错误暂停发货.wav', 0, SND_FILENAME or SND_ASYNC); Exit; end; end; if Trim(RKOrdID.Text) = '' then begin JXFlag := '999'; PlaySound('wav\未扫描退仓单.wav', 0, SND_FILENAME or SND_ASYNC); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR A '); sql.Add('where A.CRFlag=''待出库'' and A.MJID=' + quotedstr(Trim(FSMStr))); Open; end; if not ADOQueryTemp.IsEmpty then begin JXFlag := '999'; PlaySound('wav\条码未出库.wav', 0, SND_FILENAME or SND_ASYNC); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.CKOrdNo from CK_BanCP_CR A '); sql.Add('where A.MJID=' + quotedstr(Trim(FSMStr))); sql.Add('and A.RKOrdID=' + quotedstr(Trim(FRKOrdID))); sql.Add('and A.CRFlag=''待出库'' '); Open; end; if not ADOQueryTemp.IsEmpty then begin JXFlag := '999'; PlaySound('wav\已扫描.wav', 0, SND_FILENAME or SND_ASYNC); Exit; end; // with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select count(*)gs from CK_BanCP_kc A '); sql.Add('where A.MJID=' + quotedstr(Trim(FSMStr))); sql.Add('and EXISTS(select subid from ORDER_TC_MX b where b.PRTCODE=a.C_CODE and b.PRTCOLOR=a.C_COLOR and b.MAINID=' + quotedstr(Trim(RKOrdID.Text))); SQL.Add(')'); // ShowMessage(SQL.Text); Open; end; if ADOQueryTemp.fieldbyname('gs').AsString = '0' then begin JXFlag := '999'; Application.MessageBox('该产品不在该退货申请内!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR A '); sql.Add('where A.MJID=' + quotedstr(Trim(FSMStr))); sql.Add('and ISNowCycle=1 and A.CRFlag=''出库'' '); Open; end; SCreateCDS20(ADOQueryTemp, CDS_Main); SInitCDSData20(ADOQueryTemp, CDS_Main); end; //判断扫描的是发货申请单,还是布匹条码 ,判断是否已经扫描过发货单 ,或者更改了发货单 FHDate end; procedure TfrmTHSQSMTH.BaoIDKeyPress(Sender: TObject; var Key: Char); var maxno, SMFlag, KYCKFlag, FMainId, ff: string; FFQty: Integer; begin if Key = #13 then begin FSMStr := Trim(BaoID.Text); if edtIsSMTH.Text = '' then begin TMPanDuan(); if Trim(JXFlag) = '999' then begin BaoID.Text := ''; fcuowu := '错误'; Exit; end; if Trim(JXFlag) = '888' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(' from Order_TC A'); sql.Add(' where A.MainId=''' + Trim(RKOrdID.Text) + ''' '); Open; end; SCSHDataNew(ADOQueryTemp, Panel2, 2); InitCKGrid(); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_CPCK_Insert_TCRK '); sql.add(' @RKOrdID=' + quotedstr(Trim(RKOrdID.Text))); sql.add(',@DName=' + quotedstr(DName)); sql.Add(',@MJID=' + quotedstr(Trim(FSMStr))); ExecSQL; end; // FMainId := Trim(CDS_Main.fieldbyname('MainID').AsString); // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('exec P_Do_FHSQ ''' + Trim(CKOrdNo.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('KGQty').Value := Self.CDS_Main.fieldbyname('KGQty').Value; FieldByName('MJId').Value := Self.CDS_Main.fieldbyname('MJId').Value; FieldByName('MJXH').Value := Self.CDS_Main.fieldbyname('MJXH').Value; FieldByName('ganghao').Value := Self.CDS_Main.fieldbyname('ganghao').Value; Post; end; BaoID.Text := ''; PlaySound('wav\正确.wav', 0, SND_FILENAME or SND_ASYNC); except BaoID.Text := ''; PlaySound('wav\数据保存失败暂停发货.wav', 0, SND_FILENAME or SND_ASYNC); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库异常!', '提示', 0); end; end else begin if not CDS_MainSel.Locate('MJID', FSMStr, []) then Exit; end; end; //判断发货匹数 CDS_MainSel // if CDS_MainSel.IsEmpty = False then // Edit1.Text := IntToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) // else // Edit1.Text := '0'; if CDS_MainSel.IsEmpty = False then Edit1.Text := floatToStr(Tv3.DataController.Summary.FooterSummaryValues[2]) else Edit1.Text := '0'; // with ADOQueryTemp do // begin // Close; // sql.Clear; // sql.Add(' select COUNT(*) fhjs from CK_BanCP_CR where CKOrdNo= ''' + Trim(CKOrdNo.Text) + ''''); // Open; // end; // ff := Format('%.2f', [StrToFloat(Edit1.Text)]); // with ADOQueryTemp do // begin // Close; // sql.Clear; // sql.Add(' select sum(KGQTY) FMJMaoZ from CK_BanCP_CR where CKOrdNo= ''' + Trim(CKOrdNo.Text) + ''''); // Open; // end; // if StrToFloat(Edit1.Text) <> ADOQueryTemp.FieldByName('FMJMaoZ').AsFloat then //asfloat // if Tv3.DataController.Summary.FooterSummaryValues[3] <> ADOQueryTemp.FieldByName('FMJMaoZ').AsFloat then // begin // PlaySound('数据保存失败暂停发货.wav', 0, SND_FILENAME or SND_ASYNC); // Application.MessageBox('出库异常,请重新选择申请单!', '提示', 0); // end; end; procedure TfrmTHSQSMTH.Button2Click(Sender: TObject); begin Close; WriteCxGrid('扫描出库', Tv3, '坯布仓库'); end; procedure TfrmTHSQSMTH.edtIsSMTHClick(Sender: TObject); begin if Trim(edtIsSMTH.Text) = '' then edtIsSMTH.Text := '√' else edtIsSMTH.Text := ''; end; procedure TfrmTHSQSMTH.InitCKGrid(); begin if RKOrdID.Text <> '' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.*, B.MJMaoZ,B.MJStr4,B.MJXH,B.MJID,C.PRTColor'); sql.Add(' from CK_BanCP_CR A'); sql.Add(' inner join WFB_MJJY B on A.MJID=B.MJID'); SQL.Add(' inner join JYOrder_Sub C ON B.SUBID=C.SubId'); sql.Add(' where A.CRFlag=''入库'' and A.RKOrdID=''' + Trim(RKOrdID.Text) + ''''); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryTemp, CDS_MainSel); SInitCDSData20(ADOQueryTemp, CDS_MainSel); end; end; procedure TfrmTHSQSMTH.Button1Click(Sender: TObject); var MKey: Char; begin MKey := #13; try frmTCSQXZ := TfrmTCSQXZ.Create(self); with frmTCSQXZ do begin if ShowModal = 1 then begin BaoID.Text := Trim(Order_Main.fieldbyname('TCNO').AsString); BaoIDKeyPress(BaoID, MKey); end; end; finally frmTCSQXZ.Free; end; end; end.