unit U_ClothInfo; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, jpeg, U_SLT, ComObj, Menus, cxLookAndFeels, cxLookAndFeelPainters, cxTLdxBarBuiltInMenu, cxNavigator, dxBarBuiltInMenu, cxPC, Math, RM_BarCode, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, IdExplicitTLSClientServerBase, U_BaseList, cxContainer, dxDBBarCode, dxBarCode, Vcl.Clipbrd, cxTextEdit, BtnEdit, StrUtils, cxButtonEdit; type FdDy = record inc: integer; //客户端套接字句柄 FDdys: string[32]; //客户端套接字 FdDysName: string[32]; //客户端套接字 end; TfrmClothInfo = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; DS_Tree: TDataSource; ADOQueryTree: TADOQuery; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; GPM_1: TcxGridPopupMenu; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxSplitter1: TcxSplitter; Panel1: TPanel; TBFilter: TToolButton; v1CYNo: TcxGridDBColumn; v1Column3: TcxGridDBColumn; DS_1: TDataSource; ADOQueryMain: TADOQuery; CDS_1: TClientDataSet; v1Column12: TcxGridDBColumn; TBExport: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; ODPat: TOpenDialog; IdFTP1: TIdFTP; SaveDialog1: TSaveDialog; TBUP: TToolButton; Label3: TLabel; C_Code: TEdit; TBCopy: TToolButton; Panel2: TPanel; v1SSel: TcxGridDBColumn; DSCYNO: TDataSource; CDS_CYNO: TClientDataSet; Panel5: TPanel; cxDBTreeList1: TcxDBTreeList; cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn; Label11: TLabel; Label12: TLabel; Panel3: TPanel; adoqueryPicture: TADOQuery; v1Column1: TcxGridDBColumn; v1Column9: TcxGridDBColumn; Label4: TLabel; C_Name: TEdit; TBAdd: TToolButton; TBEdit: TToolButton; TBMLEdit: TToolButton; OpenDialog1: TOpenDialog; Label9: TLabel; C_GramWeight: TEdit; Label8: TLabel; C_Width: TEdit; PM_1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; v1Column11: TcxGridDBColumn; Panel7: TPanel; Panel4: TPanel; Label14: TLabel; LBCPAP1: TLabel; Button1: TButton; Button2: TButton; TCBNOR1: TComboBox; RMBarCodeObject1: TRMBarCodeObject; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; ToolButton1: TToolButton; DataSource3: TDataSource; CDS_Sub: TClientDataSet; Tv1Column2: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; cxGridPopupMenu2: TcxGridPopupMenu; ToolButton2: TToolButton; N3: TMenuItem; Panel9: TPanel; Panel10: TPanel; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; CDS_Tree: TClientDataSet; ADOQueryPrint: TADOQuery; CDS_Label: TClientDataSet; Tv1Column1: TcxGridDBColumn; ToolButton3: TToolButton; Tv1Column3: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Panel6: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; Tv1Column4: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ToolBar3: TToolBar; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; CDS_GX: TClientDataSet; DataSource2: TDataSource; ADOQuery1: TADOQuery; ToolButton6: TToolButton; Panel8: TPanel; CTName: TEdit; Label1: TLabel; ToolButton9: TToolButton; RMDB_1: TRMDBDataSet; Tv1Column10: TcxGridDBColumn; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; Label2: TLabel; BCIID: TEdit; RMDB_Main1: TRMDBDataSet; ADOQueryPrint1: TADOQuery; TV2Column3: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; TV2Column5: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxDBTreeList1DblClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBFilterClick(Sender: TObject); procedure CYNoChange(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBUPClick(Sender: TObject); procedure TBCopyClick(Sender: TObject); procedure C_CodeKeyPress(Sender: TObject; var Key: Char); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBMLEditClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TCBNOR1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure TextEdit(Sender: TObject); procedure HXNameBtnUpClick(Sender: TObject); procedure HXNameBtnDnClick(Sender: TObject); procedure cbbHXChange(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CTNameChange(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure BCIIDKeyPress(Sender: TObject; var Key: Char); private { Private declarations } CurrentPage, RecordsNumber: Integer; CTID: string; PState: Integer; FCTID, FTopID, FJurisdiction, FCTType: string; procedure SetStatus(); procedure InitTree(); procedure InitGrid(); procedure InitSub(); procedure ReadINIFile(); procedure InitImage(); procedure LookImage(FileName: string); public dFdDy: array[0..20] of FdDy; //客户端连接数组 { Public declarations } end; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_RTFun, U_ClothInfoInput, U_CloInfoFileUp, U_ClothTypeSel, U_ZDYHelp, U_LabelPrint, U_PatternSel; {$R *.dfm} procedure TfrmClothInfo.LookImage(FileName: string); var sFieldName: string; begin sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\图片查看'; if not DirectoryExists(pchar(sFieldName)) then CreateDirectory(pchar(sFieldName), nil); sFieldName := sFieldName + '\' + trim(FileName); try IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '服务器地址', '127.0.0.1'); IdFTP1.Username := 'three'; IdFTP1.Password := '641010'; IdFTP1.Connect(); except end; if IdFTP1.Connected then begin application.ProcessMessages; try // ShowMessage(PChar(Trim('D:\' + Trim(FileName)))); IdFTP1.Get(Trim(UserDataFlag + 'YP\' + FileName), sFieldName, true, false); except Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; end else begin Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL); end; procedure TfrmClothInfo.SetStatus(); begin TBAdd.Enabled := False; TBCopy.Enabled := False; TBEdit.Enabled := False; TBMLEdit.Enabled := False; TBDel.Enabled := False; TBUP.Enabled := False; if FJurisdiction <> '查询' then begin TBAdd.Enabled := true; TBCopy.Enabled := true; TBEdit.Enabled := true; TBMLEdit.Enabled := true; TBDel.Enabled := true; TBUP.Enabled := true; end; end; procedure TfrmClothInfo.InitTree(); begin with ADOQueryTree do begin Close; SQL.Clear; sql.add('update Bs_Cloth_Type set ctcount= (select count(*) from V_BS_Cloth_Info A inner join (select * from [dbo].[F_BS_CloType](Bs_Cloth_Type.CTID ) ) B on A.CTID=B.CTID)'); SQL.Add('select CTName=CTName+''(''+cast(CTCount as varchar(10))+'')'',* from BS_Cloth_Type A where CTType=' + quotedstr(FCTType)); sql.Add(' order by A.CTName'); Open; end; SCreateCDS(ADOQueryTree, CDS_Tree); SInitCDSData(ADOQueryTree, CDS_Tree); cxDBTreeList1.Items[0].Expand(false); end; procedure TfrmClothInfo.InitGrid(); var fwhere, MBCIID, Pwhere: string; begin Panel2.Visible := True; Panel2.Refresh; if not CDS_1.IsEmpty then MBCIID := Trim(CDS_1.FieldByName('BCIID').AsString) else MBCIID := ''; Pwhere := SGetFilters(Panel1, 1, 2); if trim(Pwhere) <> '' then begin if fwhere <> '' then fwhere := fwhere + ' and ' + trim(Pwhere) else fwhere := ' where ' + trim(Pwhere); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; Filtered := False; sql.Clear; sql.Add(' exec P_BS_CloInfo_Get '); sql.Add(' @CTID=' + quotedstr(Trim(CDS_Tree.fieldbyname('CTID').AsString))); sql.Add(',@pageIndex=' + inttostr(CurrentPage)); sql.Add(',@pageSize=' + inttostr(RecordsNumber)); sql.Add(',@criteria= ' + quotedstr(fwhere)); // ShowMessage(sql.Text); Open; end; // SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); TV1.DataController.Filter.Clear; LBCPAP1.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber)); finally ADOQueryMain.EnableControls; TV1.DataController.Filter.Clear; end; Panel2.Visible := False; if MBCIID <> '' then CDS_1.Locate('BCIID', MBCIID, []); end; procedure TfrmClothInfo.InitSub(); begin if cds_1.IsEmpty then exit; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add('select * from BS_Cloth_Glide where BCIID=''' + Trim(cds_1.FieldByName('BCIID').AsString) + ''''); Open; end; SCreateCDS(ADOQuery1, CDS_GX); SInitCDSData(ADOQuery1, CDS_GX); end; procedure TfrmClothInfo.FormClose(Sender: TObject; var Action: TCloseAction); var i, j: integer; begin inherited; j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); Action := cafree; end; procedure TfrmClothInfo.FormCreate(Sender: TObject); begin inherited; FJurisdiction := Trim(Self.fParameters1); FCTType := Trim(self.fParameters2); end; procedure TfrmClothInfo.TBCloseClick(Sender: TObject); begin if DirectoryExists(ExtractFileDir('D:\Right1209')) then winexec('cmd /c rd /s /q D:\Right1209', sw_hide); Close; end; procedure TfrmClothInfo.TBDelClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if CDS_1.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; while CDS_1.Locate('SSel', true, []) do begin if Trim(CDS_1.fieldbyname('BCIID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete BS_Cloth_Info where BCIID=''' + Trim(CDS_1.fieldbyname('BCIID').AsString) + ''''); sql.Add('delete BS_Cloth_Glide where BCIID=''' + Trim(CDS_1.fieldbyname('BCIID').AsString) + ''''); ExecSQL; end; end; CDS_1.Delete; end; end; procedure TfrmClothInfo.FormShow(Sender: TObject); begin inherited; ReadCxGrid(self.Caption + 'TV1', Tv1, '样品管理'); // pnlreport.Top := FTop + 110; application.ProcessMessages; RecordsNumber := 500; CurrentPage := 1; InitTree(); SetStatus(); InitGrid(); C_Name.SetFocus; end; procedure TfrmClothInfo.cbbHXChange(Sender: TObject); begin InitImage(); end; procedure TfrmClothInfo.CTNameChange(Sender: TObject); var Fctname: string; begin inherited; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from BS_Cloth_Type where CTName like ''%' + trim(ctname.Text) + '%'' '); open; end; if ADOQueryTemp.IsEmpty then Fctname := '' else Fctname := ctname.Text; with ADOQueryTree do begin close; sql.Clear; sql.add('exec P_BS_CloInfo_Tree ''%' + trim(Fctname) + '%'' '); open; end; SCreateCDS(ADOQueryTree, CDS_Tree); SInitCDSData(ADOQueryTree, CDS_Tree); cxDBTreeList1.Items[0].Expand(false); cxDBTreeList1.fullexpand; CDS_Tree.Locate('CTName', ADOQueryTree.FieldByName('FirstName').AsString, []) end; procedure TfrmClothInfo.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmClothInfo.cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin inherited; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'GYName'; flagname := '工序名称'; fnote := true; V1Note.Caption := '工序编号'; if ShowModal = 1 then begin with CDS_GX do begin edit; FieldByName('ProcessName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); FieldByName('ProcessNO').Value := Trim(ClientDataSet1.fieldbyname('Note').AsString); post; end; end; end; finally frmZDYHelp.Free; end; toolbutton6.Click; end; procedure TfrmClothInfo.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin inherited; try frmPatternSel := TfrmPatternSel.Create(Application); with frmPatternSel do begin if ShowModal = 1 then begin with CDS_GX do begin edit; FieldByName('PatternName').Value := Trim(Cds_1.fieldbyname('C_Name').AsString); FieldByName('PatternNO').Value := Trim(Cds_1.fieldbyname('C_Code').AsString); post; end; end; end; finally frmPatternSel.Free; end; toolbutton6.Click; end; procedure TfrmClothInfo.cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with cds_gx do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; tv2.Controller.EditingController.ShowEdit(); ToolButton6.Click; end; procedure TfrmClothInfo.TBRafreshClick(Sender: TObject); begin InitTree(); InitGrid(); end; procedure TfrmClothInfo.TBFilterClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); end; end; procedure TfrmClothInfo.CYNoChange(Sender: TObject); begin //if Length(Trim(TEdit(Sender).Text))<4 then Exit; if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); end; end; procedure TfrmClothInfo.TBExportClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxGrid1); end; procedure TfrmClothInfo.TBUPClick(Sender: TObject); var ffbciid: string; begin ffbciid := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); try frmCloInfoFileUp := TfrmCloInfoFileUp.Create(Application); with frmCloInfoFileUp do begin Code.Text := Trim(Self.CDS_1.fieldbyname('C_Code').AsString); FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); if ShowModal = 1 then begin end; end; finally frmCloInfoFileUp.Free; end; Self.InitGrid(); Self.CDS_1.Locate('BCIID', ffbciid, []); InitImage(); end; procedure TfrmClothInfo.ReadINIFile(); var programIni: Tinifile; //配置文件名 FileName: string; begin FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI'; programIni := Tinifile.create(FileName); server := programIni.ReadString('SERVER', '服务器地址', '127.0.0.1'); programIni.Free; end; procedure TfrmClothInfo.InitImage(); var i, j: integer; jpg: TJpegImage; myStream: TADOBlobStream; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); if CDS_1.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add(' select A.TFID,A.WBID,A.FilesOther,A.FileName from TP_File A '); sql.add('where A.WBID=' + quotedstr(trim(CDS_1.fieldbyname('BCIID').AsString))); // if Trim(cbbHX.Text) <> '' then // sql.add(' and A.HXName=' + quotedstr(trim(cbbHX.Text))); open; end; j := adoqueryPicture.RecordCount; if j < 1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg := TJpegImage.Create(); for i := 0 to j - 1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then begin myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSlt.Create(Self); Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; Mach[i].Left := 0 + i * 165; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmClothInfo.TBCopyClick(Sender: TObject); begin try frmClothInfoInput := TfrmClothInfoInput.Create(Application); with frmClothInfoInput do begin CopyInt := 1; FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); with Self.ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from BS_Cloth_Type where CTID = ''' + Trim(Self.CDS_1.fieldbyname('CTID').AsString) + ''' '); open; end; FCTID := Trim(Self.CDS_1.fieldbyname('CTID').AsString); FCTNO := Trim(Self.ADOQueryTemp.fieldbyname('CTNO').AsString); Fctname := Trim(Self.ADOQueryTemp.fieldbyname('CTName').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput.Free; end; end; procedure TfrmClothInfo.C_CodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmClothInfo.TBAddClick(Sender: TObject); var i: Integer; FieldName: string; begin try frmClothInfoInput := TfrmClothInfoInput.Create(Application); with frmClothInfoInput do begin CopyInt := 0; FBCIID := ''; FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString); FCTNO := Trim(Self.CDS_Tree.fieldbyname('CTNO').AsString); Fctname := Trim(Self.CDS_Tree.fieldbyname('CTName').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput.Free; end; end; procedure TfrmClothInfo.TBEditClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; try frmClothInfoInput := TfrmClothInfoInput.Create(Application); with frmClothInfoInput do begin CopyInt := 0; FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); with Self.ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from BS_Cloth_Type where CTID = ''' + Trim(Self.CDS_1.fieldbyname('CTID').AsString) + ''' '); open; end; FCTID := Trim(Self.CDS_1.fieldbyname('CTID').AsString); FCTNO := Trim(Self.ADOQueryTemp.fieldbyname('CTNO').AsString); Fctname := Trim(Self.ADOQueryTemp.fieldbyname('CTName').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput.Free; end; end; procedure TfrmClothInfo.TextEdit(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; if mvalue = '' then mvalue := '0'; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Cloth_Info set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where BCIID=' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString))); ExecSQL; end; Tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmClothInfo.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); var fsj: string; begin // fsj := 'select DISTINCT HXNAME name from TP_File where ISNULL(HXNAME,'''')<>'''' AND WBID=' + quotedstr(trim(CDS_1.fieldbyname('BCIID').AsString)); // // SInitComBoxBySql(ADOQueryTemp, cbbHX, True, fsj); initsub(); InitImage(); end; procedure TfrmClothInfo.TBMLEditClick(Sender: TObject); var MCTID: string; begin if CDS_1.IsEmpty then exit; if CDS_1.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MCTID := ''; try frmClothTypeSel := TfrmClothTypeSel.create(self); with frmClothTypeSel do begin FCTType := Self.FCTType; if showmodal = 1 then begin MCTID := trim(frmClothTypeSel.cds_tree.fieldbyname('CTID').asstring); end; end; finally frmClothTypeSel.free; end; if trim(MCTID) <> '' then begin try with CDS_1 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_Info SET CTID=''' + trim(MCTID) + ''' '); sql.Add('where BCIID=' + quotedstr(trim(CDS_1.fieldbyname('BCIID').AsString))); execsql; end; with ADOQueryCmd do begin close; sql.Clear; SQL.Add('exec P_BS_CloInfo_Code @BCIID=' + quotedstr(trim(CDS_1.fieldbyname('BCIID').AsString))); Open; end; end; next; end; First; EnableControls; end; application.MessageBox('操作成功!', '提示信息'); initGrid(); except CDS_1.EnableControls; application.MessageBox('操作失败!', '提示信息', 0); end; end; end; procedure TfrmClothInfo.N1Click(Sender: TObject); begin SelOKNoFiler(Tv1, True); end; procedure TfrmClothInfo.N2Click(Sender: TObject); begin SelOKNoFiler(Tv1, False); end; procedure TfrmClothInfo.N3Click(Sender: TObject); begin Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmClothInfo.TCBNOR1Change(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR1.Text); CurrentPage := 1; C_Code.SetFocus; InitGrid(); end; procedure TfrmClothInfo.HXNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmClothInfo.HXNameBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'HX' + Trim(Self.CDS_1.fieldbyname('CYNO').AsString); flagname := '花型'; if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothInfo.BCIIDKeyPress(Sender: TObject; var Key: Char); begin inherited; if Key = #13 then begin try CurrentPage := 1; CDS_Tree.Locate('CTName', '产品列表', []); bciid.OnKeyPress := nil; InitGrid(); BCIID.Text := ''; finally bciid.OnKeyPress := BCIIDKeyPress; end; end; end; procedure TfrmClothInfo.Button1Click(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmClothInfo.Button2Click(Sender: TObject); begin if CurrentPage < CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmClothInfo.ToolButton1Click(Sender: TObject); begin try frmClothInfoInput := TfrmClothInfoInput.Create(Application); with frmClothInfoInput do begin CopyInt := 0; ToolButton1.Visible := False; FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); with Self.ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from BS_Cloth_Type where CTID = ''' + Trim(Self.CDS_1.fieldbyname('CTID').AsString) + ''' '); // showmessage(sql.Text); open; end; FCTID := Trim(Self.CDS_1.fieldbyname('CTID').AsString); FCTNO := Trim(Self.ADOQueryTemp.fieldbyname('CTNO').AsString); Fctname := Trim(Self.ADOQueryTemp.fieldbyname('CTName').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput.Free; end; end; procedure TfrmClothInfo.ToolButton2Click(Sender: TObject); begin WriteCxGrid(self.Caption + 'TV1', Tv1, '样品管理'); end; procedure TfrmClothInfo.ToolButton3Click(Sender: TObject); var WSql: string; begin if CDS_1.IsEmpty then Exit; Tv1.OnFocusedRecordChanged := nil; if CDS_1.Locate('SSel', True, []) = False then begin Tv1.OnFocusedRecordChanged := Tv1FocusedRecordChanged; Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := ''; CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.fieldbyname('SSel').AsBoolean then begin if WSql <> '' then begin WSql := WSql + ',' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)); end else begin WSql := quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)); end; end; Next; end; end; CDS_1.Locate('SSel', True, []); Tv1.OnFocusedRecordChanged := Tv1FocusedRecordChanged; CDS_1.EnableControls; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'ClothInfoPrint'; FFiltration1 := WSql; label3.Visible := true; label4.Visible := true; inputcode.visible := True; inputnote.visible := true; if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; procedure TfrmClothInfo.ToolButton4Click(Sender: TObject); begin inherited; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'GYName'; flagname := '工序名称'; fnote := true; V1Note.Caption := '工序编号'; if ShowModal = 1 then begin with CDS_GX do begin Append; FieldByName('Glideidx').Value := cds_gx.RecordCount + 1; FieldByName('ProcessName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); FieldByName('ProcessNO').Value := Trim(ClientDataSet1.fieldbyname('Note').AsString); post; end; end; end; finally frmZDYHelp.Free; end; ToolButton6.Click; end; procedure TfrmClothInfo.ToolButton5Click(Sender: TObject); begin inherited; with CDS_GX do begin if IsEmpty then Exit; if RecNo >= 1 then begin //Prior; Edit; fieldByName('GlideIdx').Value := fieldByName('GlideIdx').Value - 1; Post; Prior; Edit; fieldByName('GlideIdx').Value := fieldByName('GlideIdx').Value + 1; Post; end; Prior; end; ToolButton6.Click; end; procedure TfrmClothInfo.ToolButton6Click(Sender: TObject); var maxId, GlideNo: string; begin inherited; maxId := cds_1.FieldByName('BCIID').asstring; with CDS_GX do begin First; while not eof do begin if CDS_GX.FieldByName('GlideNo').AsString = '' then begin if GetLSNo(ADOQueryCmd, GlideNo, 'G', 'BS_Cloth_Glide', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin GlideNo := CDS_GX.FieldByName('GlideNo').AsString; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from BS_Cloth_Glide where GlideNo=''' + trim(GlideNo) + ''' '); Open; end; with ADOQueryCmd do begin if ADOQueryCmd.IsEmpty then begin append; FieldByName('BCIID').value := maxId; FieldByName('GlideNo').value := GlideNo; FieldByName('Filler').value := Trim(DName); end else begin edit; FieldByName('Editer').value := Trim(DName); FieldByName('EDITTIME').Value := SGetServerDateTime(ADOQueryTemp); end; RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_GX, 'BS_Cloth_Glide', 0); FieldByName('Price').Value := cds_gx.FieldByName('Price').Value; post; end; with CDS_GX do begin edit; FieldByName('GlideNo').Value := GlideNo; FieldByName('BCIID').value := maxId; post; end; Next; end; end; with ADOQueryCmd do begin close; sql.Clear; SQL.Add('exec P_BS_CloInfo_Code @BCIID=''' + maxId + ''' '); Open; end; with cds_1 do begin edit; FieldByName('C_Code').value := ADOQueryCmd.FieldByName('C_Code').AsString; post; end; end; procedure TfrmClothInfo.ToolButton7Click(Sender: TObject); begin inherited; CDS_GX.IndexFieldNames := 'GlideIdx'; with CDS_GX do begin if IsEmpty then Exit; Next; if not Eof then Prior else begin exit; end; if not Eof then begin Edit; fieldByName('GlideIdx').Value := fieldByName('GlideIdx').Value + 1; Post; Prior; Edit; fieldByName('GlideIdx').Value := fieldByName('GlideIdx').Value - 1; Post; end; Next; end; ToolButton6.Click; end; procedure TfrmClothInfo.ToolButton8Click(Sender: TObject); var k: integer; begin if CDS_GX.IsEmpty then exit; if CDS_GX.fieldbyname('GlideNo').AsString <> '' then begin with ADOQueryCmd do begin close; SQL.Clear; sql.Add('delete BS_Cloth_Glide where GlideNo=''' + CDS_GX.fieldbyname('GlideNo').AsString + ''' '); ExecSQL; end; end; CDS_GX.Delete; CDS_GX.IndexFieldNames := 'GlideIdx'; CDS_GX.DisableControls; CDS_GX.First; k := 1; while not CDS_GX.Eof do begin CDS_GX.Edit; CDS_GX.FieldByName('GlideIdx').Value := k; CDS_GX.Post; inc(k); CDS_GX.Next; end; CDS_GX.First; CDS_GX.EnableControls; ToolButton6.Click; end; procedure TfrmClothInfo.ToolButton9Click(Sender: TObject); var WSql: string; fPrintFile, fPrintFile10, FMainID, LBName: string; begin if CDS_1.IsEmpty then Exit; LBName := '样品详情'; ExportFtErpFile(LBName + '.rmf', ADOQueryTemp); Tv1.OnFocusedRecordChanged := nil; if CDS_1.Locate('SSel', True, []) = False then begin Tv1.OnFocusedRecordChanged := Tv1FocusedRecordChanged; Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := ''; CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.fieldbyname('SSel').AsBoolean then begin if WSql <> '' then begin WSql := WSql + ',' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)); end else begin WSql := quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)); end; end; Next; end; end; CDS_1.Locate('SSel', True, []); Tv1.OnFocusedRecordChanged := Tv1FocusedRecordChanged; CDS_1.EnableControls; with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec P_BS_CloInfo_PrtImg @Filtration=' + quotedstr(Trim(WSql))); // showmessage(sql.Text); Open; end; with ADOQueryPrint1 do begin Close; sql.Clear; sql.add('exec P_BS_CloPatInfo_Prt @Filtration=' + quotedstr(Trim(WSql))); // showmessage(sql.Text); Open; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + LBName + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.DefaultCopies := 1; RM1.ShowReport end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; end.