unit U_DyeGreyClothInList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, dxSkinWXI, dxScrollbarAnnotations; type TfrmDyeGreyClothInList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label12: TLabel; C_name: TEdit; FromCoName: TEdit; BCIOID: TEdit; C_spec: TEdit; IOType: TComboBox; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Label10: TLabel; BatchNo: TEdit; v1Column9: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column20: TcxGridDBColumn; ToolButton1: TToolButton; Tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column2: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Label6: TLabel; Label7: TLabel; C_Width: TEdit; C_GramWeight: TEdit; ToolButton3: TToolButton; Tv1Column3: TcxGridDBColumn; cxGrid1: TcxGrid; TV2: TcxGridDBTableView; TV2Column1: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn17: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DS_2: TDataSource; CDS_2: TClientDataSet; Tv1Column5: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; TV2Column5: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; ToolButton4: TToolButton; RMDB_1: TRMDBDataSet; ADOQueryPrint: TADOQuery; ToolButton5: TToolButton; ToolButton6: TToolButton; Panel2: TPanel; Label9: TLabel; Label11: TLabel; tube: TEdit; Packaging: TEdit; Label13: TLabel; Seal: TEdit; Button1: TButton; Button4: TButton; TV2Column7: TcxGridDBColumn; ToolButton7: TToolButton; ToolButton8: TToolButton; ToolButton9: TToolButton; TV2Column8: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure BCIOIDChange(Sender: TObject); procedure C_specChange(Sender: TObject); procedure FromCoNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); // procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); private canshu1, canshu2, canshu3, FWorkshop: string; procedure InitGrid(); procedure setStatus(); { Private declarations } public FSTKName: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_DyeGreyClothInEdit, U_LabelPrint, U_LabelList, U_ZDYHelp; {$R *.dfm} procedure TfrmDyeGreyClothInList.setStatus(); begin if canshu1 = '查询' then begin TBAdd.Visible := false; TBEdit.Visible := false; TBDel.Visible := false; end; if canshu1 = '管理' then begin ToolButton7.Visible := True; ToolButton8.Visible := True; ToolButton9.Visible := True; end else begin ToolButton7.Visible := false; ToolButton8.Visible := false; ToolButton9.Visible := false; end; end; procedure TfrmDyeGreyClothInList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmDyeGreyClothInList.FormCreate(Sender: TObject); begin inherited; EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; canshu1 := Trim(self.fParameters1); canshu2 := Trim(self.fParameters2); FWorkshop := Trim(self.fParameters3); end; procedure TfrmDyeGreyClothInList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from BS_Cloth_IO A'); sql.add(' where A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); sql.Add(' and isnull(STKNAME,'''')=''' + Trim(FSTKNAME) + ''''); SQL.Add(' and IOFlag=''入库'' '); if trim(FWorkshop) <> '' then sql.Add(' and A.Workshop=''' + trim(FWorkshop) + ''' '); SQL.Add(' order by IOTime desc'); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmDyeGreyClothInList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmDyeGreyClothInList.ToolButton1Click(Sender: TObject); begin WriteCxGrid(Self.Caption, Tv1, '染色坯布仓库'); end; procedure TfrmDyeGreyClothInList.ToolButton2Click(Sender: TObject); var MBCIOID: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); Edit; FieldByName('SSel').Value := False; Post; end; end; CDS_Main.EnableControls; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'DyeGreyClothInPrint1'; FFiltration1 := MBCIOID; if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; procedure TfrmDyeGreyClothInList.ToolButton3Click(Sender: TObject); var FlabelCaption, FXSTYPE: string; FPIZHONG, FXS: Double; fmainid: string; begin if CDS_Main.IsEmpty = true then begin exit; end; fmainid := Trim(CDS_Main.fieldbyname('BCIOID').AsString); try frmLabelList := TfrmLabelList.Create(Application); with frmLabelList do begin fmainid := Trim(CDS_Main.fieldbyname('BCIOID').AsString); if ShowModal = 1 then begin FlabelCaption := Trim(LBName1.Text); FPIZHONG := StrToFloatDEF(PIZHONG.TEXT, 0); FXS := StrToFloatDEF(XS.TEXT, 0); FXSTYPE := XSTYPE.TEXT; end; end; finally frmLabelList.Free; end; if FlabelCaption = '' then exit; with CDS_Main do begin DisableControls; First; while not eof do begin if fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update BS_CLOTH_IO Set LBName=''' + Trim(FlabelCaption) + ''''); SQL.ADD(',PIZHONG=' + FloatToStr(FPIZHONG)); SQL.ADD(',XS=' + FloatToStr(FXS)); SQL.ADD(',XSTYPE=' + QuotedStr(FXSTYPE)); sql.Add(' where BCIOID=''' + Trim(self.CDS_Main.fieldbyname('BCIOID').AsString) + ''''); ExecSQL; end; with Self.CDS_Main do begin Edit; FieldByName('LBName').Value := Trim(FlabelCaption); FieldByName('XS').Value := FloatToStr(FXS); FieldByName('XSTYPE').Value := Trim(FXSTYPE); FieldByName('PIZHONG').Value := FloatToStr(FPIZHONG); Post; end; end; next; end; First; EnableControls; end; // initgrid(); tv1.Controller.EditingController.ShowEdit(); CDS_Main.locate('BCIOID', fmainid, []); end; procedure TfrmDyeGreyClothInList.ToolButton4Click(Sender: TObject); var MBCIOID, fPrintFile: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); Edit; FieldByName('SSel').Value := False; Post; end; end; CDS_Main.EnableControls; // with ADOQueryPrint do begin Close; SQL.Clear; sql.Add('exec P_BS_Cloth_In_Prt1 '); sql.Add(' @Filtration=' + quotedstr(trim(MBCIOID))); Open; end; SCreateCDS(ADOQueryPrint, CDS_PRT); SInitCDSData(ADOQueryPrint, CDS_PRT); ExportFtErpFile('分切指示单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\分切指示单.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.showReport; sleep(200); end else Application.MessageBox(PChar('没有找到' + trim(fPrintFile)), '提示信息', 0); end; procedure TfrmDyeGreyClothInList.ToolButton5Click(Sender: TObject); var MBCIOID, fPrintFile: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); Edit; FieldByName('SSel').Value := False; Post; end; end; CDS_Main.EnableControls; // with ADOQueryPrint do begin Close; SQL.Clear; sql.Add('exec P_BS_Cloth_In_Prt1 '); sql.Add(' @Filtration=' + quotedstr(trim(MBCIOID))); Open; end; SCreateCDS(ADOQueryPrint, CDS_PRT); SInitCDSData(ADOQueryPrint, CDS_PRT); ExportFtErpFile('分切指示单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\分切指示单.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.printReport; sleep(200); end else Application.MessageBox(PChar('没有找到' + trim(fPrintFile)), '提示信息', 0); end; procedure TfrmDyeGreyClothInList.ToolButton6Click(Sender: TObject); begin Panel2.Visible := True; tube.Text := CDS_2.FieldByName('tube').AsString; Packaging.Text := CDS_2.FieldByName('Packaging').AsString; Seal.Text := CDS_2.FieldByName('Seal').AsString; end; procedure TfrmDyeGreyClothInList.ToolButton7Click(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'Packaging'; flagname := '包装袋'; if ShowModal = 1 then begin end; end; finally frmZDYHelp.Free; end; end; procedure TfrmDyeGreyClothInList.ToolButton8Click(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'seal'; flagname := '腰封'; if ShowModal = 1 then begin end; end; finally frmZDYHelp.Free; end; end; procedure TfrmDyeGreyClothInList.ToolButton9Click(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'tube'; flagname := '纸管'; if ShowModal = 1 then begin end; end; finally frmZDYHelp.Free; end; end; procedure TfrmDyeGreyClothInList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin try ADOQueryCmd.DisableControls; with ADOQueryCmd do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from BS_Cloth_IO_mx A'); sql.add('where bcioid=' + QuotedStr(cds_main.FieldByName('bcioid').AsString)); Open; end; SCreateCDS(ADOQueryCmd, cds_2); SInitCDSData(ADOQueryCmd, cds_2); finally ADOQueryCmd.EnableControls; end; end; procedure TfrmDyeGreyClothInList.Button1Click(Sender: TObject); begin try with cds_2 do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Bs_Cloth_IO_mx SET tube=' + quotedstr(trim(tube.Text))); sql.Add(',Packaging=' + quotedstr(trim(Packaging.Text))); sql.Add(',Seal=' + quotedstr(trim(Seal.Text))); sql.Add('where mxid=' + quotedstr(trim(CDS_2.fieldbyname('mxid').AsString))); execsql; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('参数修改'))); sql.Add(',' + quotedstr(trim('mxid:' + trim(cds_2.FieldByName('mxid').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; end; next; end; First; EnableControls; end; panel2.Visible := false; try ADOQueryCmd.DisableControls; with ADOQueryCmd do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from BS_Cloth_IO_mx A'); sql.add('where bcioid=' + QuotedStr(cds_main.FieldByName('bcioid').AsString)); Open; end; SCreateCDS(ADOQueryCmd, cds_2); SInitCDSData(ADOQueryCmd, cds_2); finally ADOQueryCmd.EnableControls; end; except end; end; procedure TfrmDyeGreyClothInList.Button4Click(Sender: TObject); begin panel2.Visible := False; end; procedure TfrmDyeGreyClothInList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmDyeGreyClothInList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmDyeGreyClothInList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Self.Caption, Tv1, '染色坯布仓库'); setStatus(); InitGrid(); end; procedure TfrmDyeGreyClothInList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(FSTKName + '入库列表', cxGrid2); end; procedure TfrmDyeGreyClothInList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; end; procedure TfrmDyeGreyClothInList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmDyeGreyClothInList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmDyeGreyClothInList.TBDelClick(Sender: TObject); var MBCIOID: string; begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); CDS_Main.Delete; end; end; CDS_Main.EnableControls; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_BS_Cloth_In_Del '); Sql.Add(' @BCIOIDS=' + quotedstr(MBCIOID)); 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_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmDyeGreyClothInList.TBAddClick(Sender: TObject); begin try frmDyeGreyClothInEdit := TfrmDyeGreyClothInEdit.Create(Application); with frmDyeGreyClothInEdit do begin FBCId := ''; frmDyeGreyClothInEdit.canshu3 := Trim(Self.canshu3); FWorkshop := self.FWorkshop; FSTKName := Self.FSTKName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDyeGreyClothInEdit.Free; end; end; procedure TfrmDyeGreyClothInList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryTemp do begin Close; Sql.Clear; Sql.Add('exec P_BS_Cloth_In_Edit '); Sql.Add(' @BCIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BCIOID').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 frmDyeGreyClothInEdit := TfrmDyeGreyClothInEdit.Create(Application); with frmDyeGreyClothInEdit do begin FBCId := Trim(CDS_Main.fieldbyname('BCIOID').AsString); TBDel.Visible := False; TBAdd.Visible := False; FWorkshop := self.FWorkshop; FSTKName := Self.FSTKName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDyeGreyClothInEdit.Free; end; end; procedure TfrmDyeGreyClothInList.BCIOIDChange(Sender: TObject); begin if Length(Trim(BCIOID.Text)) < 4 then begin if Trim(BCIOID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmDyeGreyClothInList.C_specChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDyeGreyClothInList.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDyeGreyClothInList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.