unit U_DyeFormulaLargeList; interface uses Windows, Messages, strUtils, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCurrencyEdit, cxTextEdit, cxDropDownEdit, Menus, cxLookAndFeelPainters, StdCtrls, ComCtrls, BtnEdit, Buttons, cxButtons, cxContainer, cxListBox, ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ToolWin, cxLookAndFeels, cxNavigator, ADODB, DBClient, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, cxCustomListBox, U_BaseList, cxButtonEdit, dxBarBuiltInMenu, cxGridCustomPopupMenu, cxGridPopupMenu, cxPC, RM_BarCode; type TfrmDyeFormulaLargeList = class(TfrmBaseList) ToolBar2: TToolBar; TMdy: TToolButton; TDel: TToolButton; Tprint: TToolButton; Tclose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; CDS_SheetDye: TClientDataSet; DS_SheetDye: TDataSource; RM1: TRMGridReport; Panel8: TPanel; ToolButton1: TToolButton; TBfind: TToolButton; begdate: TDateTimePicker; enddate: TDateTimePicker; C_ColorNo: TEdit; PCID: TEdit; Label26: TLabel; Label29: TLabel; CustName: TEdit; Label30: TLabel; Label31: TLabel; C_Name: TEdit; Label32: TLabel; Label33: TLabel; C_Color: TEdit; GPM_1: TcxGridPopupMenu; GPM_2: TcxGridPopupMenu; ToolButton2: TToolButton; CheckBox1: TCheckBox; ToolButton3: TToolButton; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; TV1DyeCode: TcxGridDBColumn; TV1dyeName: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; TV1dyeStyle: TcxGridDBColumn; TV1curUnitDyeNum: TcxGridDBColumn; TV1pbUnit: TcxGridDBColumn; TV1sumNum: TcxGridDBColumn; TV1sumNum_KG: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; cxGrid1: TcxGrid; tv1: TcxGridDBTableView; tv1gangNo: TcxGridDBColumn; tv1sheetNo: TcxGridDBColumn; tv1sheetStyle: TcxGridDBColumn; tv1filltime: TcxGridDBColumn; tv1Column4: TcxGridDBColumn; tv1Column1: TcxGridDBColumn; tv1Column2: TcxGridDBColumn; tv1Column3: TcxGridDBColumn; tv1Column6: TcxGridDBColumn; tv1DeviceNo: TcxGridDBColumn; tv1curNum: TcxGridDBColumn; tv1YB: TcxGridDBColumn; tv1Volume: TcxGridDBColumn; tv1filler: TcxGridDBColumn; tv1beizhu: TcxGridDBColumn; tv1Column7: TcxGridDBColumn; tv1Column8: TcxGridDBColumn; tv1Column9: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; CDS_Main: TClientDataSet; DS_1: TDataSource; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure TcloseClick(Sender: TObject); procedure TDelClick(Sender: TObject); procedure TprintClick(Sender: TObject); procedure TBfindClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure PCIDKeyPress(Sender: TObject; var Key: Char); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure TMdyClick(Sender: TObject); private procedure InitGrid(); procedure InitSub(MDFLMID: string); { Private declarations } public fdept, Fbuzhong: string; { Public declarations } end; const gFactor = 10; var frmDyeFormulaLargeList: TfrmDyeFormulaLargeList; implementation uses U_DataLink, U_RTFun, U_LabelPrint, U_DyeFormulaLargeInput; {$R *.dfm} procedure TfrmDyeFormulaLargeList.InitGrid(); var WSql: string; mDFLMID: string; begin if not CDS_Main.IsEmpty then mDFLMID := CDS_Main.FieldByName('DFLMID').AsString; WSql := SGetFilters(Panel8, 1, 2); if trim(WSql) <> '' then begin WSql := ' and ' + trim(WSql); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin close; filtered := false; sql.Clear; sql.Add('select * from Dye_Formula_Large_Main '); sql.Add('where 1=1 '); if CheckBox1.Checked then begin sql.Add('and DFLDate>=''' + formatdateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add('and DFLDate<''' + formatdateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''' '); end else begin sql.Add('and FDFLDate>DATEADD(dd,-180,GETDATE())'); end; sql.Add(WSql); sql.Add('order by DFLMID DESC'); open; end; SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); if not CDS_Main.Locate('DFLMID', mDFLMID, []) then CDS_Main.First; finally ADOQueryMain.EnableControls; end; end; procedure TfrmDyeFormulaLargeList.InitSub(MDFLMID: string); begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from Dye_Formula_Large_Sub where DFLMID=''' + trim(MDFLMID) + ''' '); open; end; SCreateCDS(ADOQueryTemp, CDS_SheetDye); SInitCDSData(ADOQueryTemp, CDS_SheetDye); end; procedure TfrmDyeFormulaLargeList.PCIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmDyeFormulaLargeList.FormDestroy(Sender: TObject); begin inherited; frmDyeFormulaLargeList := nil; end; procedure TfrmDyeFormulaLargeList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := cafree; end; procedure TfrmDyeFormulaLargeList.FormCreate(Sender: TObject); begin inherited; begdate.DateTime := DServerDate - 7; enddate.DateTime := DServerDate; end; procedure TfrmDyeFormulaLargeList.tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSub(trim(CDS_Main.fieldByName('DFLMID').AsString)); end; procedure TfrmDyeFormulaLargeList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(self.Caption + tv1.Name, Tv1, '大货配方'); ReadCxGrid(self.Caption + tv2.Name + '2', Tv2, '大货配方'); InitGrid(); end; procedure TfrmDyeFormulaLargeList.TcloseClick(Sender: TObject); begin close; end; procedure TfrmDyeFormulaLargeList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmDyeFormulaLargeList.ToolButton1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmDyeFormulaLargeList.ToolButton2Click(Sender: TObject); begin WriteCxGrid(self.Caption + tv1.Name, Tv1, '大货配方'); WriteCxGrid(self.Caption + tv2.Name + '2', Tv2, '大货配方'); end; procedure TfrmDyeFormulaLargeList.ToolButton3Click(Sender: TObject); begin try frmDyeFormulaLargeInput := TfrmDyeFormulaLargeInput.create(self); with frmDyeFormulaLargeInput do begin FDFLMID := ''; if showmodal = 1 then begin Self.InitGrid(); end; end; finally frmDyeFormulaLargeInput.free; end; end; procedure TfrmDyeFormulaLargeList.TDelClick(Sender: TObject); var mcurSheetNo: string; mCarNo: string; begin if CDS_Main.IsEmpty then exit; if Trim(CDS_Main.fieldbyname('FillId').AsString) <> Trim(Dcode) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; mcurSheetNo := trim(CDS_Main.fieldByName('DFLMID').asString); if application.MessageBox(pchar('警告信息,确定要删除此领料单【' + mcurSheetNo + '】吗?'), '警告信息', 1 + mb_defButton2) = 2 then exit; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Dye_Formula_Large_Main set DelId=' + quotedstr(DCode) + ',Deler=' + quotedstr(DName) + ',Deltime=getdate() where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); sql.Add('insert into Dye_Formula_Large_Main_Del select * from Dye_Formula_Large_Main where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); sql.Add('delete Dye_Formula_Large_Main where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); sql.Add('update Dye_Formula_Large_Sub set DelId=' + quotedstr(DCode) + ',Deler=' + quotedstr(DName) + ',Deltime=getdate() where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); sql.Add('insert into Dye_Formula_Large_Sub_Del select * from Dye_Formula_Large_Sub where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); sql.Add('delete Dye_Formula_Large_Sub where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); execsql; end; InitGrid(); end; procedure TfrmDyeFormulaLargeList.TMdyClick(Sender: TObject); begin if Trim(CDS_Main.fieldbyname('FillId').AsString) <> Trim(Dcode) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; try frmDyeFormulaLargeInput := TfrmDyeFormulaLargeInput.create(self); with frmDyeFormulaLargeInput do begin FDFLMID := trim(CDS_Main.fieldbyName('DFLMID').AsString); if showmodal = 1 then begin Self.InitGrid(); end; end; finally frmDyeFormulaLargeInput.free; end; end; procedure TfrmDyeFormulaLargeList.TprintClick(Sender: TObject); var WSql: string; begin if CDS_Main.IsEmpty then Exit; WSql := QuotedStr(Trim(CDS_Main.fieldbyname('DFLMID').AsString)); try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'DyeFormulaLarge'; FFiltration1 := WSql; if ShowModal = 1 then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Dye_Formula_Large_Main set PrtNum=PrtNum+1,PrtTime=getdate(),Prter=' + quotedstr(Trim(DName))); sql.Add('where DFLMID=' + quotedstr(trim(CDS_Main.fieldByName('DFLMID').AsString))); execsql; end; end; end; finally frmLabelPrint.Free; end; end; procedure TfrmDyeFormulaLargeList.TBfindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel8, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; end.