unit U_DyeClothStkTotalList; 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, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, MovePanel, Math, Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxTextEdit, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxPC, System.StrUtils; type TfrmDyeClothStkTotalList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_1: TDataSource; GPM_1: TcxGridPopupMenu; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_1: TClientDataSet; begtime: TDateTimePicker; endTime: TDateTimePicker; IsJYTime: TCheckBox; ToolButton4: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column22: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column27: TcxGridDBColumn; v1Column28: TcxGridDBColumn; v1Column10: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column46: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label3: TLabel; Label5: TLabel; lbl1: TLabel; OrderNo: TEdit; C_Name: TEdit; PCId: TEdit; Tv1Column11: TcxGridDBColumn; PM_1: TPopupMenu; PM11: TMenuItem; N1: TMenuItem; Tv1Column13: TcxGridDBColumn; Label1: TLabel; CustName: TEdit; 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 orderNoKeyPress(Sender: TObject; var Key: Char); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure JYTypeChange(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure CDS_1BeforeOpen(DataSet: TDataSet); procedure Tv1DataControllerFilterBeforeChange(Sender: TcxDBDataFilterCriteria; ADataSet: TDataSet; const AFilterText: string); procedure Tv1TcxGridDBDataControllerTcxDataSummaryFooterSummaryItems6GetText(Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean; var AText: string); procedure ToolButton4Click(Sender: TObject); procedure PM11Click(Sender: TObject); procedure N1Click(Sender: TObject); private CurrentPage, RecordsNumber: Integer; lstCust: TStringList; procedure InitGrid(); procedure SetStatus(); { Private declarations } public canshu1, FWorkshop: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_LabelPrint; {$R *.dfm} procedure TfrmDyeClothStkTotalList.SetStatus(); begin end; procedure TfrmDyeClothStkTotalList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; FreeAndNil(lstCust); Action := caFree; end; procedure TfrmDyeClothStkTotalList.FormCreate(Sender: TObject); begin inherited; lstCust := TStringList.Create; EndDate.DateTime := SGetServerDateTime(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 20; FWorkshop := trim(Self.fParameters3); end; procedure TfrmDyeClothStkTotalList.InitGrid(); var WSql: string; begin WSql := SGetFilters(Panel1, 1, 2); if Trim(WSql) <> '' then WSql := ' and ' + WSql; if IsJYTime.Checked then begin WSql := WSql + ' and IOTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)); WSql := WSql + ' and IOTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select IOTime,OrderNo,C_Name,PCId,IOType,Grade,CustName,C_Width,C_GramWeight,CIMachNo,Workshop'); sql.Add(' ,COUNT(PieceNo) SumPieceNo,sum(GrossWeight) SumGrossWeight,sum(Tare) SumTare,sum(NetWeight) SumNetWeight'); sql.Add(' ,Sum(Meter) SumMeter,Sum(Yardage) SumYardage'); sql.Add(' from ('); sql.Add(' select IOTime,OrderNo,C_Name,PCId,IOType,Grade,C_Width,C_GramWeight,CIMachNo,PieceNo,GrossWeight,Tare,NetWeight,Meter,Yardage,Workshop '); sql.Add(' ,CustName=(select CustName from Dye_Plan_Main X where X.MainId=A.MainId)'); sql.Add(' from V_Dye_Cloth_Stk A '); if trim(FWorkshop) <> '' then sql.Add(' where Workshop=''' + trim(FWorkshop) + ''' '); sql.Add(' )AA'); sql.Add(' where 1=1' + WSql); sql.Add(' GROUP BY IOTime,OrderNo,C_Name,PCId,IOType,Grade,CustName,C_Width,C_GramWeight,CIMachNo,Workshop'); // showmessage(sql.text); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); finally ADOQueryMain.EnableControls; TV1.DataController.Filter.Clear; end; end; procedure TfrmDyeClothStkTotalList.TBRafreshClick(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmDyeClothStkTotalList.CDS_1BeforeOpen(DataSet: TDataSet); begin lstCust.Clear; end; procedure TfrmDyeClothStkTotalList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmDyeClothStkTotalList.cxPageControl1Change(Sender: TObject); begin CurrentPage := 1; SetStatus(); InitGrid(); end; procedure TfrmDyeClothStkTotalList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmDyeClothStkTotalList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '³ÉÆ·²Ö¿â'); CurrentPage := 1; RecordsNumber := 500; canshu1 := Trim(Self.fParameters1); SetStatus(); end; procedure TfrmDyeClothStkTotalList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(Self.Caption, cxGrid1); end; procedure TfrmDyeClothStkTotalList.orderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmDyeClothStkTotalList.PM11Click(Sender: TObject); begin SelOKNo(CDS_1, false); end; procedure TfrmDyeClothStkTotalList.Tv1DataControllerFilterBeforeChange(Sender: TcxDBDataFilterCriteria; ADataSet: TDataSet; const AFilterText: string); begin lstCust.Clear; end; procedure TfrmDyeClothStkTotalList.Tv1TcxGridDBDataControllerTcxDataSummaryFooterSummaryItems6GetText(Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean; var AText: string); begin if lstCust <> nil then AText := IntToStr(lstCust.Count); end; procedure TfrmDyeClothStkTotalList.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmDyeClothStkTotalList.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmDyeClothStkTotalList.TCBNORChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmDyeClothStkTotalList.JYTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmDyeClothStkTotalList.N1Click(Sender: TObject); begin SelOKNo(CDS_1, true); end; procedure TfrmDyeClothStkTotalList.ToolButton4Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '³ÉÆ·²Ö¿â'); end; end.