unit U_QryBSPrtDyeOutList; 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, BtnEdit, cxCurrencyEdit, U_WindowFormdesign, dxSkinWXI; type TfrmQryBSPrtDyeOutList = class(TfrmBaseList) ToolBar3: TToolBar; Trefresh: TToolButton; TsaveGrid: TToolButton; Tclose: TToolButton; DataSource1: TDataSource; ADOQueryList: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; dxLayoutControl_query: TdxLayoutControl; dxLayoutControl_queryGroup_Root: TdxLayoutGroup; frmFrameDateSel1: TfrmFrameDateSel10; CDS_List: TClientDataSet; cxProgressBar1: TMovePanel; ADOQueryCmd: TADOQuery; TBADD: TToolButton; TBdel: TToolButton; TBedit: TToolButton; TBexcpet: TToolButton; TBprint: TToolButton; TgridSet: TToolButton; BPIOID: TcxTextEdit; dxLayoutItem1: TdxLayoutItem; P_name: TcxTextEdit; dxLayoutItem2: TdxLayoutItem; P_spec: TcxTextEdit; dxLayoutItem4: TdxLayoutItem; ADOQueryTemp: TADOQuery; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column14: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column12: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Tv1Column7: TcxGridDBColumn; 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 TBADDClick(Sender: TObject); procedure TBdelClick(Sender: TObject); procedure TBeditClick(Sender: TObject); procedure TBexcpetClick(Sender: TObject); procedure TV1Column3PropertiesEditValueChanged(Sender: TObject); procedure TBprintClick(Sender: TObject); procedure TgridSetClick(Sender: TObject); procedure cxButton4Click(Sender: TObject); procedure cxButton1Click(Sender: TObject); procedure cxButton5Click(Sender: TObject); procedure BPIOIDKeyPress(Sender: TObject; var Key: Char); private fWindowDesign: TWindowFormdesign; fDesignCode: string; procedure initGrid(); procedure initForm(); protected public canshu1, FStkName, canshu3: string; FFSPID: string; end; var frmQryBSPrtDyeOutList: TfrmQryBSPrtDyeOutList; implementation uses U_RTFun, U_globalVar, U_dataLink, U_FormLayOutDesign, U_LabelPrint, U_cxGridCustomSet, U_ZDYHelp, U_QryBSPrtDyeOutEdit; {$R *.dfm} procedure TfrmQryBSPrtDyeOutList.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 TfrmQryBSPrtDyeOutList.TV1Column3PropertiesEditValueChanged(Sender: TObject); var mvalue: string; begin mvalue := TcxTextEdit(Sender).EditingText; with CDS_List do begin Edit; FieldByName('PH').Value := Trim(mvalue); Post; end; try with AdoqueryCmd do begin close; sql.Clear; sql.Add('update Dye_Formula_Sample_Sub SET PH=''' + trim(mvalue) + ''' where DFSMID=''' + trim(CDS_List.fieldbyName('DFSMID').AsString) + ''''); sql.Add('and fsNo=''' + trim(CDS_List.fieldbyName('fsNo').AsString) + ''''); execsql; end; except end; self.tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmQryBSPrtDyeOutList.TBADDClick(Sender: TObject); begin try frmQryBSPrtDyeOutEdit := TfrmQryBSPrtDyeOutEdit.Create(Application); with frmQryBSPrtDyeOutEdit do begin FBCId := ''; FStkName := Self.FStkName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmQryBSPrtDyeOutEdit.Free; end; end; procedure TfrmQryBSPrtDyeOutList.TBdelClick(Sender: TObject); begin if CDS_List.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) '); sql.Add('values(''染化料出库'' '); sql.Add(',' + quotedstr(Trim(CDS_List.fieldbyname('BPIOID').AsString))); sql.Add(',''删除'' '); sql.Add(',' + quotedstr(DName)); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(Trim(CDS_List.fieldbyname('BPIOID').AsString))); sql.Add(') '); Sql.Add('exec P_BS_Product_Out_Del '); Sql.Add(' @BPIOIDS=' + quotedstr(Trim(CDS_List.fieldbyname('BPIOID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); ADOQueryCmd.Connection.CommitTrans; CDS_List.Delete; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmQryBSPrtDyeOutList.TBeditClick(Sender: TObject); begin if CDS_List.IsEmpty then Exit; with ADOQueryTemp do begin Close; Sql.Clear; Sql.Add('exec P_BS_Product_Out_Edit '); Sql.Add(' @BPIOIDS=' + quotedstr(Trim(CDS_List.fieldbyname('BPIOID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; try frmQryBSPrtDyeOutEdit := TfrmQryBSPrtDyeOutEdit.Create(Application); with frmQryBSPrtDyeOutEdit do begin FBCId := Trim(CDS_List.fieldbyname('BPIOID').AsString); TBDel.Visible := False; TBAdd.Visible := False; FStkName := Self.FStkName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmQryBSPrtDyeOutEdit.Free; end; end; procedure TfrmQryBSPrtDyeOutList.TBexcpetClick(Sender: TObject); begin if ADOQueryList.IsEmpty then exit; TcxGridToExcel(FStkName + '出库列表', cxGrid2); end; procedure TfrmQryBSPrtDyeOutList.TBprintClick(Sender: TObject); var WSQL: string; begin inherited; if CDS_List.IsEmpty then Exit; WSQL := CDS_List.fieldbyname('ZIONO').AsString; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'RHLCK'; FFiltration1 := WSQL; if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmQryBSPrtDyeOutList.TcloseClick(Sender: TObject); begin close; end; procedure TfrmQryBSPrtDyeOutList.TgridSetClick(Sender: TObject); begin fWindowDesign.OpenGridDesignWin10(fDesignCode, 'cxgrid2', tv1); end; procedure TfrmQryBSPrtDyeOutList.TrefreshClick(Sender: TObject); begin toolbar3.SetFocus; initGrid(); end; procedure TfrmQryBSPrtDyeOutList.BPIOIDKeyPress(Sender: TObject; var Key: Char); begin inherited; if Key = #13 then begin initGrid(); end; end; procedure TfrmQryBSPrtDyeOutList.cxButton1Click(Sender: TObject); begin inherited; frmFrameDateSel1.cxButton1Click(Sender); initGrid; end; procedure TfrmQryBSPrtDyeOutList.cxButton4Click(Sender: TObject); begin inherited; frmFrameDateSel1.cxButton4Click(Sender); initGrid; end; procedure TfrmQryBSPrtDyeOutList.cxButton5Click(Sender: TObject); begin inherited; frmFrameDateSel1.cxButton5Click(Sender); initGrid; end; procedure TfrmQryBSPrtDyeOutList.cxTabControl1Change(Sender: TObject); begin inherited; initGrid(); end; procedure TfrmQryBSPrtDyeOutList.dxLayoutControl_queryDblClick(Sender: TObject); begin layoutDesign(TdxLayoutControl(Sender), ADOQueryCmd, PWideChar(dcode)); end; procedure TfrmQryBSPrtDyeOutList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := cafree; end; procedure TfrmQryBSPrtDyeOutList.FormCreate(Sender: TObject); begin inherited; cxgrid2.Align := alClient; canshu1 := self.fParameters1; FSTKName := Trim(self.fParameters2); frmFrameDateSel1.enddate.Date := SGetServerDate(ADOQueryBaseTemp); frmFrameDateSel1.begdate.Date := frmFrameDateSel1.enddate.Date - 30; end; procedure TfrmQryBSPrtDyeOutList.FormDestroy(Sender: TObject); begin inherited; frmQryBSPrtDyeOutList := nil; end; procedure TfrmQryBSPrtDyeOutList.FormShow(Sender: TObject); begin inherited; InitForm(); end; procedure TfrmQryBSPrtDyeOutList.InitForm(); begin inherited; addQryContionByLay(ADOQueryBaseTemp, fformId, 'cxgrid2', dxLayoutControl_query, 7); ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption); InitGrid(); end; procedure TfrmQryBSPrtDyeOutList.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 A.* '); SQL.Add(',CKPRICE=(SELECT PRICE FROM BS_Product_IO E WHERE A.STKID=E.BPIOID)'); SQL.Add(',CKMONEY=Qty*(SELECT PRICE FROM BS_Product_IO E WHERE A.STKID=E.BPIOID)'); 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.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.BegDate.Date)) + ''''); sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.EndDate.Date + 1)) + ''''); sql.Add(' and isnull(StkName,'''')=''' + Trim(FStkName) + ''''); SQL.Add(' and ioFlag=''出库'' '); sql.Add(Trim(mSqlWhere)); sql.Add('order by FILLTIME desc'); // showmessage(Sql.text); Open; end; SCreateCDS(ADOQueryList, CDS_List); SInitCDSData(ADOQueryList, CDS_List); finally ADOQueryList.EnableControls; end; end; end.