unit U_QryBSPrtMachStkList; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ToolWin, cxGraphics, cxControls, cxLookAndFeels, cxContainer, cxEdit, dxLayoutcxEditAdapters, dxBarBuiltInMenu, cxPC, dxLayoutContainer, cxClasses, cxTextEdit, dxLayoutControl, cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxNavigator, dxDateRanges, dxScrollbarAnnotations, Data.DB, cxDBData, cxCalendar, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridCustomView, cxGrid, U_BaseList, Data.Win.ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, Datasnap.DBClient, cxCheckBox, cxButtonEdit, cxSplitter, dxCore, cxDateUtils, cxMaskEdit, cxDropDownEdit, cxProgressBar, Vcl.Menus, RM_Common, RM_Class, RM_GridReport, RM_Dataset, cxLookAndFeelPainters, Vcl.ExtCtrls, dxSkinsCore, dxSkinsDefaultPainters, dxLayoutControlAdapters, FrameDateSel10, Vcl.StdCtrls, MovePanel, cxCurrencyEdit, U_WindowFormdesign, BtnEdit, dxSkinWXI; type TfrmQryBSPrtMachStkList = class(TfrmBaseList) ToolBar3: TToolBar; Trefresh: TToolButton; TsaveGrid: TToolButton; Tclose: TToolButton; DataSource1: TDataSource; ADOQueryList: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; dxLayoutControl_query: TdxLayoutControl; dxLayoutControl_queryGroup_Root: TdxLayoutGroup; CDS_List: TClientDataSet; cxProgressBar1: TMovePanel; ADOQueryCmd: TADOQuery; ToolButton1: TToolButton; TBexcpet: TToolButton; TgridSet: TToolButton; P_Name: TcxTextEdit; dxLayoutItem2: TdxLayoutItem; P_Spec: TcxTextEdit; dxLayoutItem3: TdxLayoutItem; ADOQueryTemp: TADOQuery; BatchNo: TcxTextEdit; dxLayoutItem1: TdxLayoutItem; P_Code: TcxTextEdit; dxLayoutItem4: TdxLayoutItem; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column14: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; procedure TrefreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TcloseClick(Sender: TObject); procedure TsaveGridClick(Sender: TObject); procedure dxLayoutControl_queryDblClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure TBexcpetClick(Sender: TObject); procedure TgridSetClick(Sender: TObject); procedure P_CodeKeyPress(Sender: TObject; var Key: Char); private fWindowDesign: TWindowFormdesign; fDesignCode:string; procedure initGrid(); procedure initForm(); protected public canshu1, FSTKName, canshu3: string; end; var frmQryBSPrtMachStkList: TfrmQryBSPrtMachStkList; implementation uses U_RTFun, U_globalVar, U_dataLink,U_FormLayOutDesign, U_LabelPrint,U_cxGridCustomSet, U_PrtDyeInfoInPut, U_ZDYHelp; {$R *.dfm} procedure TfrmQryBSPrtMachStkList.TsaveGridClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption); if gIsCanDesign then begin saveLayOut(application, dxLayoutControl_query, ADOQueryCmd,PWideChar( fDllFileName + '|' + Self.Name + '|' + dxLayoutControl_query.Name + '.ini')); end; end; procedure TfrmQryBSPrtMachStkList.ToolButton1Click(Sender: TObject); begin if CDS_List.IsEmpty then Exit; if CDS_List.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; ModalResult := 1; end; procedure TfrmQryBSPrtMachStkList.TBexcpetClick(Sender: TObject); begin inherited; if ADOQueryList.IsEmpty then exit; TcxGridToExcel(FSTKName + '库存列表', cxGrid2); end; procedure TfrmQryBSPrtMachStkList.TcloseClick(Sender: TObject); begin close; end; procedure TfrmQryBSPrtMachStkList.TgridSetClick(Sender: TObject); begin fWindowDesign.OpenGridDesignWin10(fDesignCode,'cxgrid2',tv1); end; procedure TfrmQryBSPrtMachStkList.TrefreshClick(Sender: TObject); begin inherited; initGrid(); end; procedure TfrmQryBSPrtMachStkList.cxTabControl1Change(Sender: TObject); begin inherited; initGrid(); end; procedure TfrmQryBSPrtMachStkList.dxLayoutControl_queryDblClick( Sender: TObject); begin layoutDesign(TdxLayoutControl(Sender),ADOQueryCmd,PWideChar(dcode)); end; procedure TfrmQryBSPrtMachStkList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action:=cafree; end; procedure TfrmQryBSPrtMachStkList.FormCreate(Sender: TObject); begin inherited; cxgrid2.Align:=alClient; canshu1 := Trim(Self.fParameters1); FSTKName := Trim(Self.fParameters2); canshu3 := Trim(Self.fParameters3); end; procedure TfrmQryBSPrtMachStkList.FormDestroy(Sender: TObject); begin inherited; frmQryBSPrtMachStkList := nil; end; procedure TfrmQryBSPrtMachStkList.FormShow(Sender: TObject); begin inherited; InitForm(); end; procedure TfrmQryBSPrtMachStkList.InitForm(); begin addQryContionByLay(ADOQueryBaseTemp,fformId,'cxgrid2',dxLayoutControl_query,7); ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption); InitGrid(); end; procedure TfrmQryBSPrtMachStkList.InitGrid(); var mSqlWhere: string; begin mSqlWhere := SLGetFilters(dxLayoutControl_query, 1, 2); if trim(mSqlWhere) <> '' then begin mSqlWhere := ' and ' + trim(mSqlWhere); end; try ADOQueryList.DisableControls; with ADOQueryList do begin Filtered := False; Close; sql.Clear; sql.Add(' select price,P_Code,P_Name,P_Spec,BatchNo,SUM(StkQty)StkQty,QtyUnit,money=sum(price*StkQty) '); SQL.Add(' ,p_type=(select p_type from Bs_Product_Info e where e.p_code=a.p_code)'); sql.Add(' from BS_Product_IO A '); SQL.Add(' where A.IOFlag=''入库'' and isnull(StkQty,0)>0 '); sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + ''''); sql.Add(Trim(mSqlWhere)); SQL.Add('GROUP BY price,P_Code,P_Name,P_Spec,BatchNo, QtyUnit'); Open; end; SCreateCDS(ADOQueryList, CDS_List); SInitCDSData(ADOQueryList, CDS_List); finally ADOQueryList.EnableControls; end; end; procedure TfrmQryBSPrtMachStkList.P_CodeKeyPress(Sender: TObject; var Key: Char); begin inherited; if key = #13 then begin initGrid(); end; end; end.