unit U_CPFHSQDZList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit, RM_E_llPDF, cxDropDownEdit, cxTextEdit, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmCPFHSQDZList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; v1OrdDate: TcxGridDBColumn; v1OrdPerson1: TcxGridDBColumn; Order_Main: TClientDataSet; RMDB_Main: TRMDBDataSet; RMXLSExport1: TRMXLSExport; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; CDS_PM: TClientDataSet; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; SHDanWei: TEdit; Filler: TEdit; MPRTCodeName: TEdit; OrderNo: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxTabControl1: TcxTabControl; cxSplitter1: TcxSplitter; ADOQuerySub: TADOQuery; DataSource2: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; //RMllPDFExport1: TRMllPDFExport; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v1Column5: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ClientDataSet2: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; CDS_Note: TClientDataSet; RM1: TRMGridReport; v1Column11: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column25: TcxGridDBColumn; v2Column12: TcxGridDBColumn; v1Column2: TcxGridDBColumn; CDSUser: TClientDataSet; IdHTTP1: TIdHTTP; v2Column6: TcxGridDBColumn; v2Column7: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v1Column6: TcxGridDBColumn; btnOK: TToolButton; btnOKCX: TToolButton; v2Column4: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2Column9: TcxGridDBColumn; RMDB_XZC: TRMDBDataSet; CDS_PS: TClientDataSet; v1Column9: TcxGridDBColumn; v1Column12: TcxGridDBColumn; ToolButton2: TToolButton; Panel5: TPanel; Label28: TLabel; Button5: TButton; Button6: TButton; edtTruckId: TEdit; v1Column14: TcxGridDBColumn; v2Column10: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; Label3: TLabel; FHYWY: TEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure SHDanWeiChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure btnOKClick(Sender: TObject); procedure btnOKCXClick(Sender: TObject); procedure Button5Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Button6Click(Sender: TObject); private procedure InitGrid(); procedure InitSubGrid(); procedure InitForm(); procedure SetStatus(); function DelData(): Boolean; { Private declarations } public FFInt: Integer; canshu1, FFSID: string; { Public declarations } end; implementation uses U_DataLink, U_CPFHSQInPut, U_Fun, U_ZDYHelp, U_CPFHSQXZ, U_LabelList,U_RTFun; {$R *.dfm} procedure TfrmCPFHSQDZList.SetStatus(); begin btnOK.Visible := False; btnOKCX.Visible := False; case cxTabControl1.TabIndex of 0: begin btnOK.Visible := true; end; 1: begin btnOKCX.Visible := true; end; end; end; procedure TfrmCPFHSQDZList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCPFHSQDZList.TBCloseClick(Sender: TObject); begin if Trim(DName)='ADMIN' then begin WriteCxGridAll(trim(self.Caption), Tv1,ADOQueryCmd,ADOQueryTemp); WriteCxGridAll(trim(self.Caption)+'2', Tv2,ADOQueryCmd,ADOQueryTemp); end; Close; end; procedure TfrmCPFHSQDZList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.*'); sql.Add(' from FHSQ_Main_CP A'); sql.Add(' where SQType=''成品布'''); case cxTabControl1.TabIndex of 0: begin SQL.Add(' and isnull(A.Chker,'''')<>'''' '); SQL.Add(' and isnull(A.Status,'''')=''已确认'' '); sql.Add(' and CKConfirmtime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.Add(' and CKConfirmtime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); end; 1: begin sql.Add(' and CKConfirmtime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.Add(' and CKConfirmtime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); SQL.Add(' and isnull(A.Chker,'''')<>'''' '); SQL.Add(' and isnull(A.Status,'''')=''已发货'' '); end; end; // showmessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCPFHSQDZList.InitForm(); begin ReadCxGridAll(trim(self.Caption), Tv1); ReadCxGridAll(trim(self.Caption)+'2', Tv2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; SetStatus(); InitGrid(); end; procedure TfrmCPFHSQDZList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; function TfrmCPFHSQDZList.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete FHSQ_Sub_CP where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete FHSQ_Main_CP where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmCPFHSQDZList.TBRafreshClick(Sender: TObject); begin InitGrid(); TBFind.Click; InitSubGrid(); end; procedure TfrmCPFHSQDZList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmCPFHSQDZList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmCPFHSQDZList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmCPFHSQDZList.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmPBFHSQInPut := TfrmPBFHSQInPut.Create(Application); with frmPBFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmPBFHSQInPut.Free; end; end; procedure TfrmCPFHSQDZList.SHDanWeiChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmCPFHSQDZList.InitSubGrid(); begin with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then sql.Add('select * from FHSQ_Sub_CP A where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + '''') else sql.Add('select * from FHSQ_Sub_CP A where 1=2'); Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmCPFHSQDZList.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); InitSubGrid(); end; procedure TfrmCPFHSQDZList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then begin sql.Add('select A.* from FHSQ_Sub_CP A '); sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); end else begin sql.Add('select A.* from FHSQ_Sub_CP A '); sql.Add(' where 1=2'); end; Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmCPFHSQDZList.btnOKClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main_CP SET Status=''已发货'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPDATE CK_BanCP_CR Set '); sql.add(' CRTime=getdate(),CRType=''扫描出库'',CRFlag=''出库'' '); sql.Add(' ,XSType='''+Trim(Order_Main.fieldbyname('CRType').AsString)+''' '); sql.Add(' ,XSKHName='''+Trim(Order_Main.fieldbyname('SHDanWei').AsString)+''' '); sql.Add(' ,XSYWY='''+Trim(Order_Main.fieldbyname('FHYWY').AsString)+''' '); sql.add(',Filler='''+Trim(DName)+''' '); sql.Add(' where CK_BanCP_CR.CRFlag=''待出库'' and CKOrdNo= ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPDATE CK_BanCP_KC Set '); sql.add(' KCValid=''N'' , CKDate=DATEDIFF(DD,0,getdate()) '); sql.Add(' where exists(select MJID from CK_BanCP_CR X where CK_BanCP_KC.MJID=X.MJID and X.CRFlag=''出库'' and X.CKOrdNo= ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString)) + ') '); 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 X where WFB_MJJY.MJID=X.MJID and X.CRFlag=''出库'' and X.CKOrdNo= ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString)) + ') '); SQL.Add(' and WFB_MJJY.MJStr2=''已入库'' '); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('exec P_DB_UPFH ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Mainid from CK_BanCP_CR where CKOrdNo='+ quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); sql.Add(' Group by MainId'); Open; end; with ADOQueryTemp do begin First; while not eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_Update_OrderHZ :MainId'); Parameters.ParamByName('MainId').Value:=Trim(ADOQueryTemp.FieldByName('MainId').AsString); ExecSQL; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; Order_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('出库失败!', '提示信息', 0); end; end; procedure TfrmCPFHSQDZList.btnOKCXClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main_CP SET Status=''已确认'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPDATE CK_BanCP_CR Set '); sql.add(' CRTime=null,CRType=null,CRFlag=''待出库'' '); sql.Add(' where CK_BanCP_CR.CRFlag=''出库'' and CKOrdNo= ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPDATE CK_BanCP_KC Set '); sql.add(' KCValid=''Y'' , CKDate=0 '); sql.Add(' where exists(select MJID from CK_BanCP_CR X where CK_BanCP_KC.MJID=X.MJID and X.CRFlag=''待出库'' and X.CKOrdNo= ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString)) + ') '); 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 X where WFB_MJJY.MJID=X.MJID and X.CRFlag=''待出库'' and X.CKOrdNo= ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString)) + ') '); SQL.Add(' and WFB_MJJY.MJStr2=''已出库'' '); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('exec P_DB_UPFH ' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Mainid from CK_BanCP_CR where CKOrdNo='+ quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); sql.Add(' Group by MainId'); Open; end; with ADOQueryTemp do begin First; while not eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_Update_OrderHZ :MainId'); Parameters.ParamByName('MainId').Value:=Trim(ADOQueryTemp.FieldByName('MainId').AsString); ExecSQL; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; Order_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('撤销出库失败!', '提示信息', 0); end; end; procedure TfrmCPFHSQDZList.Button5Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if trim(edtTruckId.Text) = '' then begin Application.MessageBox('集装箱号不能为空!', '提示', 0); Exit; end; try cxGrid1.Enabled := False; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main_CP SET TruckId=' + quotedstr(Trim(edtTruckId.Text))); sql.Add('where FSID=' + quotedstr(FFSID)); execsql; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('数据保存成功!', '提示信息'); Order_Main.Locate('FSID', FFSID, []); with Order_Main do begin Edit; FieldByName('TruckId').Value := Trim(edtTruckId.Text); end; Panel5.Visible := True; cxGrid1.Enabled := True; except ADOQueryCmd.Connection.RollbackTrans; cxGrid1.Enabled := True; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure TfrmCPFHSQDZList.ToolButton2Click(Sender: TObject); begin FFSID := trim(Order_Main.fieldbyname('FSID').AsString); Panel5.Visible := True; end; procedure TfrmCPFHSQDZList.Button6Click(Sender: TObject); begin Panel5.Visible := False; end; end.