unit U_CKProductBCPOutList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxCheckBox, Menus, MovePanel, RM_E_llPDF, cxCalendar, Math, Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmCKProductBCPOutList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; Label4: TLabel; MPRTCodeName: TEdit; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; Tv1: TcxGridDBTableView; cxGrid2Level1: TcxGridLevel; cxGrid2: TcxGrid; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; Label5: TLabel; orderNo: TEdit; Label6: TLabel; MJID: TEdit; v1Column7: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; Label8: TLabel; MPRTKZ: TEdit; Label9: TLabel; MPRTMF: TEdit; Label7: TLabel; v1Column3: TcxGridDBColumn; RMXLSExport1: TRMXLSExport; v1Column4: TcxGridDBColumn; Label10: TLabel; CkOrdNo: TEdit; v1Column5: TcxGridDBColumn; v1Column10: TcxGridDBColumn; TBCKCX: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; MovePanel2: TMovePanel; v1Column12: TcxGridDBColumn; DS_JuanPRT: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; Label11: TLabel; v1Column15: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; conNo: TEdit; Label15: TLabel; Label16: TLabel; KHConNo: TEdit; Label17: TLabel; apid: TEdit; v1Column21: TcxGridDBColumn; v1Column22: TcxGridDBColumn; begtime: TDateTimePicker; endTime: TDateTimePicker; ADOQueryPrint: TADOQuery; RMDB_Main: TRMDBDataSet; v1rkplace: TcxGridDBColumn; RKplace: TEdit; Label19: TLabel; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; RM3: TRMGridReport; v1Column24: TcxGridDBColumn; RMDBPRT: TRMDBDataSet; CDS_PRT: TClientDataSet; Label22: TLabel; KHNmae: TEdit; v1Column25: TcxGridDBColumn; Label24: TLabel; CKType: TComboBox; CPType: TComboBox; Panel6: TPanel; Label31: TLabel; LBCPAP: TLabel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; IsJYTime: TCheckBox; PRTColor: TEdit; ganghao: TEdit; v1Column13: TcxGridDBColumn; ComboBox1: TComboBox; ToolButton1: TToolButton; ToolButton2: TToolButton; v1Column14: TcxGridDBColumn; Label1: TLabel; KuanHao: TEdit; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; TBCKCX1: TToolButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBCKCXClick(Sender: TObject); procedure orderNoKeyPress(Sender: TObject; var Key: Char); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure CPTypeChange(Sender: TObject); procedure CKTypeChange(Sender: TObject); procedure edtSMNOKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TBCKCX1Click(Sender: TObject); private FLeft, FTop: Integer; CurrentPage, RecordsNumber: Integer; procedure InitGrid(); { Private declarations } public canshu1: string; { Public declarations } end; //var // frmCKProductBCPOutList: TfrmCKProductBCPOutList; implementation uses U_DataLink, U_Fun, U_SysLogHelp, U_RTFun; {$R *.dfm} procedure TfrmCKProductBCPOutList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCKProductBCPOutList.FormCreate(Sender: TObject); begin EndDate.DateTime := SGetServerDateTime(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 20; end; procedure TfrmCKProductBCPOutList.InitGrid(); var fwhere, Pwhere: string; begin MovePanel2.Left := (self.Width - MovePanel2.Width) div 2; MovePanel2.Visible := True; MovePanel2.Refresh; Pwhere := SGetFilters(Panel1, 1, 2); // if IsJYTime.Checked then // begin // fwhere := ' where CRTime>' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)); // fwhere := fwhere + ' and CRTime<=' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)); // if trim(Pwhere) <> '' then // fwhere := fwhere + ' and ' + trim(Pwhere); // end // else begin if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add(' select top ' + IntToStr(RecordsNumber) + ' * from '); sql.Add('(select rownumber=Cast(row_number() over(order by AA.filltime desc) as int )'); sql.Add(',COUNT(1) OVER() AS TotalCount'); sql.Add(',* from (select A.* '); sql.Add(' ,B.orderNo,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ,B.conNo,B.KHconNo '); sql.Add(' ,C.PRTColor,C.PRTEColor'); sql.Add(' , KHNmae=(case when ISNULL(E.SHDanWei,'''')='''' then D.KHNmae else E.SHDanWei end)'); sql.Add(' , CKDate=(case when ISNULL(E.FHDate,'''')='''' then D.CKDate else E.FHDate end)'); sql.Add(' , CKType=(case when ISNULL(E.CRType,'''')='''' then D.CKType else E.CRType end)'); sql.Add(' from CK_BanCP_CR A inner join JYOrder_Main B on A.MainId=B.MainId inner join JYOrder_Sub C on A.SubId=C.SubId '); sql.Add(' LEFT join CK_BanCP_CKList D on A.CKOrdNo=D.CKOrdNo '); sql.Add(' LEFT join FHSQ_Main_CP E on A.CKOrdNo=E.fsid '); sql.Add(' where A.CRFlag=''出库'' '); if IsJYTime.Checked then begin sql.Add(' and A.CRTime>' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))); sql.Add(' and CRTime<=' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))); end; sql.Add(' ) AA'); sql.Add(fwhere); sql.Add(') temp_row'); sql.Add(' where rownumber> ' + IntToStr((CurrentPage - 1) * RecordsNumber)); Open; end; // with ADOQueryMain do // begin // Close; // sql.Clear; // sql.Add('exec P_Page_FinishClothCK '); // sql.Add('@pageIndex=' + inttostr(CurrentPage)); // sql.Add(',@pageSize=' + inttostr(RecordsNumber)); // sql.Add(',@criteria= ' + quotedstr(fwhere)); // Open; // end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber)); MovePanel2.Visible := false; finally ADOQueryMain.EnableControls; MovePanel2.Visible := false; end; end; procedure TfrmCKProductBCPOutList.TBRafreshClick(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPOutList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductBCPOutList.TBCloseClick(Sender: TObject); begin if Trim(DName) = 'ADMIN' then begin WriteCxGridAll(trim(self.Caption), Tv1, ADOQueryCmd, ADOQueryTemp); end; Close; end; procedure TfrmCKProductBCPOutList.FormShow(Sender: TObject); begin ReadCxGridAll(trim(self.Caption), Tv1); CurrentPage := 1; RecordsNumber := 500; if Trim(canshu1) = '管理' then begin TBCKCX.Visible := True; end else begin TBCKCX.Visible := false; end; end; procedure TfrmCKProductBCPOutList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; SelExportData(Tv1, ADOQueryMain, ''); end; procedure TfrmCKProductBCPOutList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCKProductBCPOutList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCKProductBCPOutList.TBCKCXClick(Sender: TObject); var FFMainId, FPrice, strsql, sqlstr: string; begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要撤销数据吗?', '提示', 32 + 4) <> IDYES then Exit; MovePanel2.Visible := True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_BanCP_CR Set CRFlag=''待出库'',CRType='''',CRTime=NULL,CRNote='''' '); sql.Add(' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''''); sql.Add(' and CRFlag=''出库'''); sql.Add(' UPdate CK_BanCP_KC Set KCValid=''Y'' ,CKDate=0 '); SQL.Add(' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''''); sql.Add(' Update WFB_MJJY Set MJStr2=''已入库'' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''' '); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('exec P_DB_UPFH ' + quotedstr(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))); ExecSQL; end; strsql := '卷ID:' + trim(CDS_Main.FieldByName('MJID').AsString) + ' 出库单号:' + trim(CDS_Main.FieldByName('CKOrdNo').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('出库撤销'))); sql.Add(',' + quotedstr(trim(strsql))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_Update_OrderHZ :MainId'); Parameters.ParamByName('MainId').Value := Trim(CDS_Main.FieldByName('MainId').AsString); ExecSQL; end; CDS_Main.Delete; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; MovePanel2.Visible := False; Exit; except MovePanel2.Visible := False; CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销异常!', '提示', 0); end; end; procedure TfrmCKProductBCPOutList.orderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmCKProductBCPOutList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmCKProductBCPOutList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft := X; FTop := Y; end; procedure TfrmCKProductBCPOutList.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmCKProductBCPOutList.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmCKProductBCPOutList.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPOutList.CPTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPOutList.CKTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductBCPOutList.edtSMNOKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin end; end; procedure TfrmCKProductBCPOutList.ToolButton1Click(Sender: TObject); var fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp); if trim(ComboBox1.Text) = '美国SL-专用码单' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDMGSLHZ '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_HZ); SInitCDSData20(ADOQueryTemp, CDS_HZ); with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDMGSL '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); end; if trim(ComboBox1.Text) = '回修出库单' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDHX '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); end; if trim(ComboBox1.Text) = '意大利码单' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDYDL '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); end; if trim(ComboBox1.Text) = '业务员订单' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDYWY '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); sql.add(',@MDFalg=''汇总'''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_HZ); SInitCDSData20(ADOQueryTemp, CDS_HZ); with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDYWY '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); sql.add(',@MDFalg=''明细'''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); end; if trim(ComboBox1.Text) = '小阿姨码单' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDXAYHZ '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_HZ); SInitCDSData20(ADOQueryTemp, CDS_HZ); with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CKMDXAYMX '); sql.add('@CKOrdNo=' + quotedstr(Trim(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString)))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); end; RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf'; if FileExists(fPrintFile) then begin RM3.LoadFromFile(fPrintFile); RMVariables['Filler'] := trim(DName); RM3.ShowReport; end else begin Application.MessageBox(PChar('没有找到' + fPrintFile), '提示', 0); end; end; procedure TfrmCKProductBCPOutList.ToolButton2Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin fModel := self.caption; // facction:='生产指示单删除'; showmodal; free; end; end; procedure TfrmCKProductBCPOutList.TBCKCX1Click(Sender: TObject); var FFMainId, FPrice, strsql, sqlstr: string; begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要撤销数据吗?', '提示', 32 + 4) <> IDYES then Exit; MovePanel2.Visible := True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPdate CK_BanCP_KC Set KCValid=''Y'' ,CKDate=0 '); sql.Add(' where exists(select MJID from CK_BanCP_CR X where X.MJID=CK_BanCP_KC.MJID and X.CKOrdNo=''' + Trim(CDS_Main.fieldbyname('CKOrdNo').AsString) + ''')'); // SQL.Add(' where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''''); sql.Add(' Update WFB_MJJY Set MJStr2=''已入库'' '); sql.Add(' where exists(select MJID from CK_BanCP_CR X where X.MJID=WFB_MJJY.MJID and X.CKOrdNo=''' + Trim(CDS_Main.fieldbyname('CKOrdNo').AsString) + ''')'); sql.Add('Update CK_BanCP_CR Set CRFlag=''待出库'',CRType='''',CRTime=NULL,CRNote='''' '); sql.Add(' where CKOrdNo=''' + Trim(CDS_Main.fieldbyname('CKOrdNo').AsString) + ''''); sql.Add(' and CRFlag=''出库'''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('exec P_DB_UPFH ' + quotedstr(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))); ExecSQL; end; strsql := '出库单号:' + trim(CDS_Main.FieldByName('CKOrdNo').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('出库撤销'))); sql.Add(',' + quotedstr(trim(strsql))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Mainid from CK_BanCP_CR where CKOrdNo=' + quotedstr(trim(CDS_Main.fieldbyname('CKOrdNo').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; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; MovePanel2.Visible := False; TBRafresh.Click; Exit; except MovePanel2.Visible := False; CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('撤销异常!', '提示', 0); end; end; end.