unit U_DyeClothWaitStorage; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, DBClient, ComCtrls, ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, Vcl.ToolWin; type TfrmDyeClothWaitStorage = class(TForm) Panel1: TPanel; Label2: TLabel; OrderNo: TEdit; Label3: TLabel; C_Color: TEdit; CDS_OrderSel: TClientDataSet; DataSource1: TDataSource; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; Label8: TLabel; CustName: TEdit; cxGrid1: TcxGrid; Tv2: TcxGridDBTableView; v2Column3: TcxGridDBColumn; v2Column2: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column14: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1PRTMF: TcxGridDBColumn; v1PRTKZ: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; cxStyleRepository3: TcxStyleRepository; cxStyle3: TcxStyle; v2Column8: TcxGridDBColumn; ToolBar3: TToolBar; ToolButton5: TToolButton; ToolButton1: TToolButton; ToolButton8: TToolButton; ToolButton7: TToolButton; Tv2Column1: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton5Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } end; var frmDyeClothWaitStorage: TfrmDyeClothWaitStorage; implementation uses U_DataLink, U_RTFun; {$R *.dfm} procedure TfrmDyeClothWaitStorage.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmDyeClothWaitStorage.FormDestroy(Sender: TObject); begin frmDyeClothWaitStorage := nil; end; procedure TfrmDyeClothWaitStorage.FormShow(Sender: TObject); begin ReadCxGrid('订单选择1', Tv2, '成品仓库'); InitGrid(); end; procedure TfrmDyeClothWaitStorage.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select A.*'); sql.Add(',ZPPS=(select Count(KC.StkID) from Dye_Cloth_Stock KC where KC.StkCycles=0 AND KC.PCID=A.PCID and KC.StkExists=0 ) '); sql.Add(',ZPKGQty=(select sum(StkGrossWeight) from Dye_Cloth_Stock KC where KC.StkCycles=0 AND KC.PCID=A.PCID and KC.StkExists=0 ) '); sql.Add(',ZPQty=(select sum(StkMeter) from Dye_Cloth_Stock KC where KC.StkCycles=0 AND KC.PCID=A.PCID and KC.StkExists=0 ) '); sql.Add(' from Dye_Plan_Card A '); sql.Add(' where exists(select KC.PCID from Dye_Cloth_Stock KC where KC.StkCycles=0 AND KC.PCID=A.PCID and KC.StkExists=0)'); // ShowMessage(sql.Text); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_OrderSel); SInitCDSData(ADOQueryMain, CDS_OrderSel); finally ADOQueryMain.EnableControls; end; end; procedure TfrmDyeClothWaitStorage.OrderNoChange(Sender: TObject); begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_OrderSel); SInitCDSData(ADOQueryMain, CDS_OrderSel); end; procedure TfrmDyeClothWaitStorage.ToolButton1Click(Sender: TObject); var KHName: string; begin if CDS_OrderSel.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; CDS_OrderSel.DisableControls; KHName := ''; with CDS_OrderSel do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin if Trim(KHName) = '' then begin KHName := Trim(fieldbyname('CustNo').AsString); end else begin if Trim(fieldbyname('CustNo').AsString) <> KHName then begin Application.MessageBox('不能选择不同客户!', '提示', 0); Exit; end; end; end; Next; end; end; CDS_OrderSel.EnableControls; ModalResult := 1; end; procedure TfrmDyeClothWaitStorage.ToolButton5Click(Sender: TObject); begin InitGrid(); end; procedure TfrmDyeClothWaitStorage.ToolButton7Click(Sender: TObject); begin Close; end; procedure TfrmDyeClothWaitStorage.ToolButton8Click(Sender: TObject); begin WriteCxGrid('订单选择1', Tv2, '成品仓库'); end; procedure TfrmDyeClothWaitStorage.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ModalResult := 1; end; end.