unit U_CKProductCPKCList; 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, MovePanel, cxCheckBox, Menus, cxCalendar, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, BtnEdit, Math, Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, RM_e_Xls, U_BaseList, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, cxTextEdit, cxPC; type TfrmCKProductCPKCList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBClose: TToolButton; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_1: TDataSource; GPM_1: TcxGridPopupMenu; CDS_Main: TClientDataSet; MovePanel2: TMovePanel; ThreeColorBase: TcxStyleRepository; SHuangSe: TcxStyle; SkyBlue: TcxStyle; Default: TcxStyle; QHuangSe: TcxStyle; Red: TcxStyle; FontBlue: TcxStyle; TextSHuangSe: TcxStyle; FonePurple: TcxStyle; FoneClMaroon: TcxStyle; FoneRed: TcxStyle; RowColor: TcxStyle; handBlack: TcxStyle; cxBlue: TcxStyle; RMDB_Main: TRMDBDataSet; ADOQueryPrint: TADOQuery; RM1: TRMGridReport; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; RMDBHZ: TRMDBDataSet; RMDBPRT: TRMDBDataSet; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label14: TLabel; ISCRTime: TCheckBox; ToolButton1: TToolButton; CDS_Label: TClientDataSet; ToolButton2: TToolButton; RMXLSExport1: TRMXLSExport; BaoID: TEdit; cxPageControl1: TcxPageControl; cxTabSheet1: TcxTabSheet; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn27: TcxGridDBColumn; cxGridDBColumn28: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn37: TcxGridDBColumn; cxGridDBColumn41: TcxGridDBColumn; cxGridDBColumn31: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridDBColumn15: TcxGridDBColumn; cxGridDBColumn16: TcxGridDBColumn; cxGridDBColumn18: TcxGridDBColumn; cxGridDBColumn19: TcxGridDBColumn; cxGridDBColumn20: TcxGridDBColumn; cxGridDBColumn40: TcxGridDBColumn; cxGridDBColumn21: TcxGridDBColumn; cxGridDBColumn32: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; cxTabSheet2: TcxTabSheet; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column4: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column22: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Panel6: TPanel; Label31: TLabel; LBCPAP: TLabel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; DS_2: TDataSource; CDS_2: TClientDataSet; GPM_2: TcxGridPopupMenu; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label7: TLabel; Label10: TLabel; Label12: TLabel; Label1: TLabel; Label2: TLabel; Label6: TLabel; Label11: TLabel; Label13: TLabel; Label19: TLabel; Label8: TLabel; P_CodeName: TEdit; orderNo: TEdit; JYType: TComboBox; LOTNO: TEdit; conNo: TEdit; APID: TEdit; RKPlace: TEdit; P_Color: TEdit; ganghao: TEdit; P_HX: TEdit; P_Code: TEdit; JYID: TEdit; ToolButton3: TToolButton; Panel4: TPanel; Label20: TLabel; Panel10: TPanel; Image2: TImage; Button1: TButton; RadioGroup1: TRadioGroup; TV2Column1: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Label9: TLabel; P_ColorNo: TEdit; Tv1Column4: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); 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 Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure MPRTCodeNameKeyPress(Sender: TObject; var Key: Char); procedure CPTypeKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TV2DblClick(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure orderNoKeyPress(Sender: TObject; var Key: Char); procedure JYTypeChange(Sender: TObject); private FLeft, FTop: Integer; CurrentPage, RecordsNumber: Integer; procedure SetStatus(); procedure InitGrid(); procedure GetLabel(); { Private declarations } public issel: integer; CANSHU2: string; { Public declarations } end; var frmCKProductCPKCList: TfrmCKProductCPKCList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_ProductOrderListSel, U_LbaelMap; {$R *.dfm} procedure TfrmCKProductCPKCList.GetLabel(); var fsj: string; begin fsj := 'select distinct(LMName) name from Lbael_Map where LMType=''成品库存码单'' '; SInitRadioGroupBySql(ADOQueryCmd, RadioGroup1, 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 TfrmCKProductCPKCList.SetStatus(); begin case cxPageControl1.ActivePageIndex of 0: begin ClearOrHideControls(Panel1, '0', True, True); ClearOrHideControls(Panel1, '1', True, False); end; 1: begin ClearOrHideControls(Panel1, '0', false, True); ClearOrHideControls(Panel1, '1', True, True); end; end; end; procedure TfrmCKProductCPKCList.FormDestroy(Sender: TObject); begin inherited; frmCKProductCPKCList := nil; end; procedure TfrmCKProductCPKCList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmCKProductCPKCList.FormCreate(Sender: TObject); begin inherited; EndDate.DateTime := SGetServerDateTime(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 20; canshu2 := Trim(Self.fParameters2); end; procedure TfrmCKProductCPKCList.Image2Click(Sender: TObject); begin Panel4.Visible := false; end; procedure TfrmCKProductCPKCList.InitGrid(); var WSql: string; begin MovePanel2.Left := (self.Width - MovePanel2.Width) div 2; MovePanel2.Visible := True; MovePanel2.Refresh; WSql := SGetFilters(Panel1, 1, 2); if Trim(WSql) <> '' then WSql := ' and ' + WSql; try ADOQueryMain.DisableControls; case cxPageControl1.ActivePageIndex of 0: begin with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select LOTNO,A.OrderNo,A.ConNo,A.P_Code,A.P_CodeName,A.P_Spec,A.P_Color,A.P_ColorNo,A.P_KuanNo,A.P_MF,A.P_KZ,A.P_HX,A.APID,A.GangNo,A.RCGangNo '); sql.Add(' ,sum(A.JYGW) JYGW, sum(A.JYTare) JYTare, sum(A.JYNW) JYNW,sum(A.JYLen) JYLen, sum(A.JYYLen) JYYLen '); sql.Add('from V_Cloth_CP_KC A '); sql.Add('where 1=1 ' + (WSql)); sql.Add('and exists(select jyid from jy_cloth E WHERE E.JYID=A.JYID AND E.fdanwei= ' + QuotedStr(Trim(canshu2))); sql.Add(')'); sql.Add('group by LOTNO,A.OrderNo,A.ConNo,A.P_Code,A.P_CodeName,A.P_Spec,A.P_Color,A.P_ColorNo,A.P_KuanNo,A.P_MF,A.P_KZ,A.P_HX,A.APID,A.GangNo,A.RCGangNo '); Open; end; SCreateCDS(ADOQueryMain, CDS_2); SInitCDSData(ADOQueryMain, CDS_2); end; 1: begin with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select top ' + inttostr(RecordsNumber) + ' * '); sql.Add(' ,DJBRCGangNo =(select X.RCGangNo from CK_SXPB_CR X where X.SPID=temp_row.APID)'); sql.Add(' 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 V_Cloth_CP_KC AA where 1=1 ' + WSql); sql.Add('and exists(select jyid from jy_cloth E WHERE E.JYID=AA.JYID AND E.fdanwei= ' + QuotedStr(Trim(canshu2))); sql.Add(')'); sql.Add(') temp_row'); sql.Add(' where rownumber> ' + inttostr(((CurrentPage - 1) * RecordsNumber))); sql.Add(' order by rownumber'); Open; end; SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber)); end; end; MovePanel2.Visible := false; finally ADOQueryMain.EnableControls; MovePanel2.Visible := false; end; end; procedure TfrmCKProductCPKCList.JYTypeChange(Sender: TObject); begin inherited; InitGrid(); end; procedure TfrmCKProductCPKCList.TBRafreshClick(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductCPKCList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductCPKCList.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '成品仓库'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '成品仓库'); Close; end; procedure TfrmCKProductCPKCList.FormShow(Sender: TObject); begin inherited; CurrentPage := 1; RecordsNumber := 500; ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '成品仓库'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '成品仓库'); SetStatus(); GetLabel(); end; procedure TfrmCKProductCPKCList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('库存列表', cxGrid2); end; procedure TfrmCKProductCPKCList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FLeft := X; FTop := Y; end; procedure TfrmCKProductCPKCList.TV2DblClick(Sender: TObject); begin AssignmentControls(Panel1, CDS_2, '0'); cxPageControl1.ActivePageIndex := 1; end; procedure TfrmCKProductCPKCList.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 TfrmCKProductCPKCList.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmCKProductCPKCList.Button1Click(Sender: TObject); var fPrintFile, fPrintFile10, FMainID, LBName: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据', '提示', 0); Exit; end; LBName := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; ExportFtErpFile(LBName + '.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; FMainID := ''; CDS_Main.DisableControls; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin First; while not Eof do begin if Fieldbyname('Ssel').AsBoolean then begin ADOQueryCmd.append; ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_Main.fieldbyname('JYID').AsString); ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); ADOQueryCmd.post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; CDS_Main.EnableControls; if CDS_Label.Locate('LMName', LBName, []) then begin with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql').AsString) + ' @Code=' + quotedstr(Trim(DCode))); Open; end; SCreateCDS(ADOQueryPrint, CDS_PRT); SInitCDSData(ADOQueryPrint, CDS_PRT); if trim(CDS_Label.fieldbyname('LMSql1').AsString) <> '' then begin with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql1').AsString) + ' @Code=' + quotedstr(Trim(DCode))); Open; end; end; SCreateCDS(ADOQueryPrint, CDS_HZ); SInitCDSData(ADOQueryPrint, CDS_HZ); end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + LBName + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; Panel4.Visible := false; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmCKProductCPKCList.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmCKProductCPKCList.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductCPKCList.MPRTCodeNameKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmCKProductCPKCList.orderNoKeyPress(Sender: TObject; var Key: Char); begin inherited; if Key = #13 then begin InitGrid(); end; end; procedure TfrmCKProductCPKCList.CPTypeKeyPress(Sender: TObject; var Key: Char); begin CurrentPage := 1; InitGrid(); end; procedure TfrmCKProductCPKCList.cxPageControl1Change(Sender: TObject); begin CurrentPage := 1; SetStatus(); InitGrid(); end; procedure TfrmCKProductCPKCList.ToolButton1Click(Sender: TObject); begin Panel4.Visible := true; end; procedure TfrmCKProductCPKCList.ToolButton2Click(Sender: TObject); var fPrintFile, fPrintFile10, FMainID, fImagePath2, LBName: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据', '提示', 0); Exit; end; LBName := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; ExportFtErpFile(LBName + '.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; FMainID := ''; CDS_Main.DisableControls; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin First; while not Eof do begin if Fieldbyname('Ssel').AsBoolean then begin ADOQueryCmd.append; ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_Main.fieldbyname('JYID').AsString); ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); ADOQueryCmd.post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; CDS_Main.EnableControls; if CDS_Label.Locate('LMName', trim(LBName), []) 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; SCreateCDS(ADOQueryPrint, CDS_PRT); SInitCDSData(ADOQueryPrint, CDS_PRT); end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\label0001.xls'; if FileExists(fImagePath2) then DeleteFile(fImagePath2); fImagePath2 := ExtractFilePath(Application.ExeName) + 'image\label.xls'; RM1.PrepareReport; RM1.ExportTo(RMXLSExport1, fImagePath2); end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmCKProductCPKCList.ToolButton3Click(Sender: TObject); begin try frmLbaelMap := TfrmLbaelMap.Create(Application); with frmLbaelMap do begin FLMType := '成品库存码单'; if ShowModal = 1 then begin end; end; finally frmLbaelMap.Free; end; GetLabel(); end; end.