unit U_ClothInfo_Tat; 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; type FdDy = record inc: integer; //�ͻ������־�� FDdys: string[32]; //�ͻ������� FdDysName: string[32]; //�ͻ������� end; TfrmClothInfo_Tat = 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; Panel11: TPanel; cbbHX: TComboBox; Label7: TLabel; CDS_Tree: TClientDataSet; ADOQueryPrint: TADOQuery; CDS_Label: TClientDataSet; Tv1Column1: TcxGridDBColumn; ToolButton3: TToolButton; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column8: 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); private { Private declarations } CurrentPage, RecordsNumber: Integer; CTID: string; PState: Integer; FCTID, FTopID: string; FJurisdiction: string; procedure SetStatus(); procedure InitTree(); procedure InitGrid(); 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_Tat, U_CloInfoFileUp, U_YPTypeHelpCP, U_ZDYHelp, U_LabelPrint; {$R *.dfm} procedure TfrmClothInfo_Tat.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_Tat.SetStatus(); begin end; procedure TfrmClothInfo_Tat.InitTree(); var i: Integer; begin with ADOQueryTree do begin Close; SQL.Clear; SQL.Add('select * from BS_Cloth_Type'); Open; end; SCreateCDS(ADOQueryTree, CDS_Tree); SInitCDSData(ADOQueryTree, CDS_Tree); cxDBTreeList1.Items[0].Expand(false); end; procedure TfrmClothInfo_Tat.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_Tat.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_Tat.TBCloseClick(Sender: TObject); begin if DirectoryExists(ExtractFileDir('D:\Right1209')) then winexec('cmd /c rd /s /q D:\Right1209', sw_hide); Close; end; procedure TfrmClothInfo_Tat.TBDelClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; 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) + ''''); ExecSQL; end; end; CDS_1.Delete; end; end; procedure TfrmClothInfo_Tat.FormShow(Sender: TObject); begin inherited; FJurisdiction := Self.fParameters1; ReadCxGrid(self.Caption + 'TV1', Tv1, '��Ʒ����'); // pnlreport.Top := FTop + 110; application.ProcessMessages; RecordsNumber := 500; CurrentPage := 1; InitTree(); SetStatus(); InitGrid(); end; procedure TfrmClothInfo_Tat.cbbHXChange(Sender: TObject); begin InitImage(); end; procedure TfrmClothInfo_Tat.cxDBTreeList1DblClick(Sender: TObject); begin InitGrid(); end; procedure TfrmClothInfo_Tat.TBRafreshClick(Sender: TObject); begin InitTree(); InitGrid(); end; procedure TfrmClothInfo_Tat.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_Tat.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_Tat.TBExportClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxGrid1); end; procedure TfrmClothInfo_Tat.TBUPClick(Sender: TObject); begin 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 Self.InitGrid(); // Self.CDS_1.Locate('BCIID', BCIID, []); end; end; finally frmCloInfoFileUp.Free; end; InitImage(); end; procedure TfrmClothInfo_Tat.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_Tat.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_Tat.TBCopyClick(Sender: TObject); begin try frmClothInfoInput_Tat := TfrmClothInfoInput_Tat.Create(Application); with frmClothInfoInput_Tat do begin CopyInt := 1; FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString); if Trim(Self.CDS_Tree.fieldbyname('CPName').AsString) = '��Ʒ' then begin Application.MessageBox('�������ѡ������ٸ���', '��ʾ', 0); Exit; end; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput_Tat.Free; end; end; procedure TfrmClothInfo_Tat.C_CodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmClothInfo_Tat.TBAddClick(Sender: TObject); var i: Integer; FieldName: string; begin try frmClothInfoInput_Tat := TfrmClothInfoInput_Tat.Create(Application); with frmClothInfoInput_Tat do begin CopyInt := 0; FBCIID := ''; FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput_Tat.Free; end; end; procedure TfrmClothInfo_Tat.TBEditClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; try frmClothInfoInput_Tat := TfrmClothInfoInput_Tat.Create(Application); with frmClothInfoInput_Tat do begin CopyInt := 0; FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput_Tat.Free; end; end; procedure TfrmClothInfo_Tat.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_Tat.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); InitImage(); end; procedure TfrmClothInfo_Tat.TBMLEditClick(Sender: TObject); var fYPType: string; begin if CDS_1.IsEmpty then exit; if CDS_1.Locate('ssel', true, []) = false then begin Application.MessageBox('û��ѡ������!', '��ʾ', 0); Exit; end; fYPType := ''; frmYPTypeHelpCP := TfrmYPTypeHelpCP.create(self); with frmYPTypeHelpCP do begin if showmodal = 1 then begin fYPType := trim(ADOQueryHelp.fieldbyname('CTID').asstring); end; free; end; if trim(fYPType) = '' then exit; 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(fYPType) + ''' '); sql.Add('where BCIID=' + quotedstr(trim(CDS_1.fieldbyname('BCIID').AsString))); execsql; end; end; next; end; First; EnableControls; end; application.MessageBox('�����ɹ���', '��ʾ��Ϣ'); initgrid(); except CDS_1.EnableControls; application.MessageBox('����ʧ�ܣ�', '��ʾ��Ϣ', 0); end; end; procedure TfrmClothInfo_Tat.N1Click(Sender: TObject); begin SelOKNoFiler(Tv1, True); end; procedure TfrmClothInfo_Tat.N2Click(Sender: TObject); begin SelOKNoFiler(Tv1, False); end; procedure TfrmClothInfo_Tat.N3Click(Sender: TObject); begin Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmClothInfo_Tat.TCBNOR1Change(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR1.Text); CurrentPage := 1; C_Code.SetFocus; InitGrid(); end; procedure TfrmClothInfo_Tat.HXNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmClothInfo_Tat.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_Tat.Button1Click(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmClothInfo_Tat.Button2Click(Sender: TObject); begin if CurrentPage < CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmClothInfo_Tat.ToolButton1Click(Sender: TObject); begin try frmClothInfoInput_Tat := TfrmClothInfoInput_Tat.Create(Application); with frmClothInfoInput_Tat do begin CopyInt := 0; ToolButton1.Visible := False; FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString); FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmClothInfoInput_Tat.Free; end; end; procedure TfrmClothInfo_Tat.ToolButton2Click(Sender: TObject); begin WriteCxGrid(self.Caption + 'TV1', Tv1, '��Ʒ����'); end; procedure TfrmClothInfo_Tat.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; if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; end.