unit U_QryBSPrtMachInList; 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 TfrmQryBSPrtMachInList = 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; FromCoName: TcxTextEdit; dxLayoutItem3: TdxLayoutItem; BatchNo: TcxTextEdit; dxLayoutItem5: TdxLayoutItem; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column4: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; Tv1Column5: 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 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; end; var frmQryBSPrtMachInList: TfrmQryBSPrtMachInList; implementation uses U_RTFun, U_globalVar, U_dataLink, U_FormLayOutDesign, U_LabelPrint, U_cxGridCustomSet, U_ZDYHelp, U_QryBSPrtMachInEdit; {$R *.dfm} procedure TfrmQryBSPrtMachInList.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 TfrmQryBSPrtMachInList.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 TfrmQryBSPrtMachInList.TBADDClick(Sender: TObject); begin try frmQryBSPrtMachInEdit := TfrmQryBSPrtMachInEdit.Create(Application); with frmQryBSPrtMachInEdit do begin FBCId := ''; frmQryBSPrtMachInEdit.canshu3 := Trim(Self.canshu3); FSTKName := Self.FSTKName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmQryBSPrtMachInEdit.Free; end; end; procedure TfrmQryBSPrtMachInList.TBdelClick(Sender: TObject); var MBPIOID: string; begin if CDS_List.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if CDS_List.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBPIOID := ''; CDS_List.DisableControls; with CDS_List do begin First; while CDS_List.Locate('SSel', True, []) do begin MBPIOID := MBPIOID + ',' + Trim(CDS_List.fieldbyname('BPIOID').AsString); CDS_List.Delete; end; end; CDS_List.EnableControls; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('exec P_Fin_Flow_Judge '); Sql.Add(' @FFIDS=' + quotedstr(MBPIOID)); 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 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(MBPIOID)); sql.Add(',''删除'' '); sql.Add(',' + quotedstr(DName)); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(MBPIOID)); sql.Add(') '); Sql.Add('exec P_BS_Product_In_Del '); Sql.Add(' @BPIOIDS=' + quotedstr(MBPIOID)); 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; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmQryBSPrtMachInList.TBeditClick(Sender: TObject); begin if CDS_List.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('exec P_Fin_Flow_Judge '); Sql.Add(' @FFIDS=' + 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; with ADOQueryTemp do begin Close; Sql.Clear; Sql.Add('exec P_BS_Product_In_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 frmQryBSPrtMachInEdit := TfrmQryBSPrtMachInEdit.Create(Application); with frmQryBSPrtMachInEdit 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 frmQryBSPrtMachInEdit.Free; end; end; procedure TfrmQryBSPrtMachInList.TBexcpetClick(Sender: TObject); begin if ADOQueryList.IsEmpty then exit; TcxGridToExcel(FSTKName + '入库列表', cxGrid2); end; procedure TfrmQryBSPrtMachInList.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 := 'RHL'; FFiltration1 := WSQL; if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmQryBSPrtMachInList.TcloseClick(Sender: TObject); begin close; end; procedure TfrmQryBSPrtMachInList.TgridSetClick(Sender: TObject); begin fWindowDesign.OpenGridDesignWin10(fDesignCode, 'cxgrid2', tv1); end; procedure TfrmQryBSPrtMachInList.TrefreshClick(Sender: TObject); begin inherited; initGrid(); end; procedure TfrmQryBSPrtMachInList.BPIOIDKeyPress(Sender: TObject; var Key: Char); begin inherited; if Key = #13 then begin initGrid(); end; end; procedure TfrmQryBSPrtMachInList.cxButton1Click(Sender: TObject); begin inherited; frmFrameDateSel1.cxButton1Click(Sender); initGrid; end; procedure TfrmQryBSPrtMachInList.cxButton4Click(Sender: TObject); begin inherited; frmFrameDateSel1.cxButton4Click(Sender); initGrid; end; procedure TfrmQryBSPrtMachInList.cxButton5Click(Sender: TObject); begin inherited; frmFrameDateSel1.cxButton5Click(Sender); initGrid; end; procedure TfrmQryBSPrtMachInList.dxLayoutControl_queryDblClick(Sender: TObject); begin layoutDesign(TdxLayoutControl(Sender), ADOQueryCmd, PWideChar(dcode)); end; procedure TfrmQryBSPrtMachInList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := cafree; end; procedure TfrmQryBSPrtMachInList.FormCreate(Sender: TObject); begin inherited; cxgrid2.Align := alClient; canshu1 := Trim(self.fParameters1); FSTKName := Trim(self.fParameters2); canshu3 := Trim(self.fParameters3); frmFrameDateSel1.enddate.Date := SGetServerDate(ADOQueryBaseTemp); frmFrameDateSel1.begdate.Date := frmFrameDateSel1.enddate.Date - 30; end; procedure TfrmQryBSPrtMachInList.FormDestroy(Sender: TObject); begin inherited; frmQryBSPrtMachInList := nil; end; procedure TfrmQryBSPrtMachInList.FormShow(Sender: TObject); begin inherited; InitForm(); end; procedure TfrmQryBSPrtMachInList.InitForm(); begin inherited; addQryContionByLay(ADOQueryBaseTemp, fformId, 'cxgrid2', dxLayoutControl_query, 7); ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption); InitGrid(); end; procedure TfrmQryBSPrtMachInList.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.*,money=isnull(price,0)*Qty '); 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'); Open; end; SCreateCDS(ADOQueryList, CDS_List); SInitCDSData(ADOQueryList, CDS_List); finally ADOQueryList.EnableControls; end; end; end.