unit U_CKProductCPOutListHZ; 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, cxCalendar, Math, Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList; type TfrmCKProductCPOutListHZ = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; MPRTCodeName: TEdit; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; Tv1: TcxGridDBTableView; cxGrid2Level1: TcxGridLevel; cxGrid2: TcxGrid; v2Column1: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; Label5: TLabel; orderNo: TEdit; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; RMXLSExport1: TRMXLSExport; v1Column4: TcxGridDBColumn; Label10: TLabel; CkOrdNo: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; MovePanel2: TMovePanel; DS_JuanPRT: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; v1Column15: TcxGridDBColumn; v1Column19: TcxGridDBColumn; conNo: TEdit; Label15: TLabel; begtime: TDateTimePicker; endTime: TDateTimePicker; ADOQueryPrint: TADOQuery; RMDB_Main: TRMDBDataSet; RM3: TRMGridReport; v1Column24: TcxGridDBColumn; Label22: TLabel; KHName: TEdit; Label24: TLabel; v1Column13: TcxGridDBColumn; Label1: TLabel; CRType: TComboBox; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column12: TcxGridDBColumn; ToolButton1: TToolButton; ComboBox1: TComboBox; CDS_Label: TClientDataSet; v1Column14: TcxGridDBColumn; Label9: TLabel; MPRTCode: TEdit; ToolButton2: TToolButton; v1Column1: TcxGridDBColumn; ADOQuery1: TADOQuery; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; 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 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 CPTypeChange(Sender: TObject); procedure CRTypeChange(Sender: TObject); procedure edtSMNOKeyPress(Sender: TObject; var Key: Char); procedure FormDestroy(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); private FLeft, FTop: Integer; CurrentPage, RecordsNumber: Integer; procedure InitGrid(); procedure PrintMD(MStatus: string); { Private declarations } public canshu1: string; { Public declarations } end; var frmCKProductCPOutListHZ: TfrmCKProductCPOutListHZ; implementation uses U_DataLink, U_RTFun, U_CKProductBCPOutListHZFS; {$R *.dfm} procedure TfrmCKProductCPOutListHZ.PrintMD(MStatus: string); var fImagePath2, fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete TBSubID where DName=''' + Trim(DCode) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('SELECT * FROM TBSubID where 1=2 '); open; end; with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * '); sql.Add(' from CK_BanCP_CR A '); sql.Add(' where A.CRFlag=''出库'' '); sql.Add('and crflag=''出库'' and CKOrdNo=' + quotedstr(Trim(CDS_Main.fieldbyname('CKOrdNo').AsString))); sql.Add('and SQCKCS=' + quotedstr(trim(CDS_Main.fieldbyname('SQCKCS').asstring))); open; end; FMainID := ''; try ADOQueryCmd.Connection.BeginTrans; with ADOQuery1 do begin First; while not Eof do begin ADOQueryCmd.append; ADOQueryCmd.fieldbyname('SubId').Value := Trim(ADOQuery1.fieldbyname('MJID').AsString); ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); ADOQueryCmd.post; ADOQuery1.NEXT; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; if CDS_Label.Locate('LMName', trim(ComboBox1.Text), []) then begin // with ADOQueryPrint do // begin // Close; // sql.Clear; // sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql').AsString) + ' @Code=' + quotedstr(Trim(DCode))); //// ShowMessage(SQL.Text); // Open; // end; with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql').AsString) + ' @CKOrdNo=' + quotedstr(Trim(CDS_Main.fieldbyname('CKZDH').AsString))); Open; end; SCreateCDS(ADOQueryPrint, CDS_PRT); SInitCDSData(ADOQueryPrint, CDS_PRT); with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec P_Print_CKMD_DXHZ @code=' + quotedstr(Trim(DCode))); // ShowMessage(sql.Text); Open; end; SCreateCDS(ADOQueryPrint, CDS_HZ); SInitCDSData(ADOQueryPrint, CDS_HZ); end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf'; if FileExists(fPrintFile) then begin if MStatus = 'Excel' then begin RM3.LoadFromFile(fPrintFile); fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\label0001.xls'; if FileExists(fImagePath2) then DeleteFile(fImagePath2); fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\label.xls'; RM3.PrepareReport; RM3.ExportTo(RMXLSExport1, fImagePath2); end else begin RM3.LoadFromFile(fPrintFile); RMVariables['ZDR'] := trim(DName); RM3.ShowReport; end; end else begin Application.MessageBox(PChar('没有找到' + fPrintFile), '提示', 0); end; end; procedure TfrmCKProductCPOutListHZ.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmCKProductCPOutListHZ.FormCreate(Sender: TObject); begin inherited; EndDate.DateTime := SGetServerDateTime(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 20; end; procedure TfrmCKProductCPOutListHZ.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 trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add(' select AAA.* '); sql.Add(' ,CKZDH=AAA.CKOrdNo+''-''+ISNULL(cast(AAA.SQCKCS as varchar(10)),'''') '); sql.Add(' ,GuiXing=(select GuiXing from FHSQ_Main X where X.fsid=AAA.CKOrdNo) '); sql.Add(' from ( '); sql.Add(' select AA.* '); sql.Add(' ,B.orderNo,C.MPRTCode,C.MPRTCodeName,C.MPRTMF,C.MPRTKZ,C.conNo,B.KHconNo,B.lidan,B.ywy '); sql.Add(' from ( '); sql.Add(' select count(A.MJID) PS,SUM(A.NETKGQty) NETKGQty,SUM(A.KGQty) KGQty, SUM(A.Qty) Qty, SUM(A.MJYLen) MJYLen,A.CKOrdNo,A.SQCKCS,A.MainId,A.SUBID '); sql.Add(' ,convert(varchar(10),A.CRTime,120) CRTime,A.CRType,A.CDDanwei'); sql.Add(' from CK_BanCP_CR A '); sql.Add(' where A.CRFlag=''出库'' and A.ClothDegree=''成品'' '); sql.Add(' and A.CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))); sql.Add(' and A.CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))); sql.Add(' GROUP BY A.CKOrdNo,A.SQCKCS,A.MainId,A.SUBID ,A.CDDanwei,convert(varchar(10),A.CRTime,120),A.CRType,A.CDDanwei ) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on AA.SUBID=C.SUBID '); sql.Add(' ) AAA '); sql.Add(fwhere); Open; end; SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); MovePanel2.Visible := false; finally ADOQueryMain.EnableControls; MovePanel2.Visible := false; end; end; procedure TfrmCKProductCPOutListHZ.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCKProductCPOutListHZ.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductCPOutListHZ.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '成品仓库'); Close; end; procedure TfrmCKProductCPOutListHZ.FormShow(Sender: TObject); var fsj: string; begin inherited; ReadCxGrid(trim(self.Caption), Tv1, '成品仓库'); fsj := 'select distinct(LMName) name from Lbael_Map where LMType=''出库码单汇总'' '; SInitComBoxBySql(ADOQueryCmd, ComboBox1, true, fsj); with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; Sql.Add('select * from Lbael_Map where LMType=''出库码单汇总'''); Open; end; SCreateCDS(ADOQueryTemp, CDS_Label); SInitCDSData(ADOQueryTemp, CDS_Label); end; procedure TfrmCKProductCPOutListHZ.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; // SelExportData(Tv1, ADOQueryMain, ''); end; procedure TfrmCKProductCPOutListHZ.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmCKProductCPOutListHZ.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmCKProductCPOutListHZ.orderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmCKProductCPOutListHZ.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin try frmCKProductBCPOutListHZFS := TfrmCKProductBCPOutListHZFS.Create(Application); with frmCKProductBCPOutListHZFS do begin FCKOrdNo := Self.CDS_Main.fieldbyname('CKOrdNo').AsString; if ShowModal = 1 then begin InitGrid(); end; end; finally frmCKProductBCPOutListHZFS.Free; end; end; procedure TfrmCKProductCPOutListHZ.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft := X; FTop := Y; end; procedure TfrmCKProductCPOutListHZ.CPTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductCPOutListHZ.CRTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductCPOutListHZ.edtSMNOKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin end; end; procedure TfrmCKProductCPOutListHZ.FormDestroy(Sender: TObject); begin inherited; frmCKProductCPOutListHZ := nil; end; procedure TfrmCKProductCPOutListHZ.ToolButton1Click(Sender: TObject); begin PrintMD('Report'); end; procedure TfrmCKProductCPOutListHZ.ToolButton2Click(Sender: TObject); begin PrintMD('Excel'); end; end.