unit U_TatClothInfo;

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;

  TfrmTatClothInfo = 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);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    CurrentPage, RecordsNumber: Integer;
    CTID: string;
    PState: Integer;
    FCTID, FTopID, FJurisdiction, FCTType: 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_TatClothInfoInput, U_CloInfoFileUp, U_ClothTypeSel,
  U_ZDYHelp, U_LabelPrint;
{$R *.dfm}

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.SetStatus();
begin

end;

procedure TfrmTatClothInfo.InitTree();
begin
  with ADOQueryTree do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from BS_Cloth_Type where CTType=' + quotedstr(FCTType));
    Open;
  end;
  SCreateCDS(ADOQueryTree, CDS_Tree);
  SInitCDSData(ADOQueryTree, CDS_Tree);
  cxDBTreeList1.Items[0].Expand(false);
end;

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.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 TfrmTatClothInfo.FormCreate(Sender: TObject);
begin
  inherited;
  FJurisdiction := Trim(Self.fParameters1);
  FCTType := Trim(self.fParameters2);

end;

procedure TfrmTatClothInfo.TBCloseClick(Sender: TObject);
begin

  if DirectoryExists(ExtractFileDir('D:\Right1209')) then
    winexec('cmd /c rd /s /q D:\Right1209', sw_hide);
  Close;
end;

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid(self.Caption + 'TV1', Tv1, '样品管理');
  application.ProcessMessages;
  RecordsNumber := 500;
  CurrentPage := 1;
  InitTree();
  SetStatus();
  InitGrid();

end;

procedure TfrmTatClothInfo.cbbHXChange(Sender: TObject);
begin
  InitImage();

end;

procedure TfrmTatClothInfo.cxDBTreeList1DblClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmTatClothInfo.TBRafreshClick(Sender: TObject);
begin
  InitTree();
  InitGrid();
end;

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.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 TfrmTatClothInfo.TBExportClick(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;
  TcxGridToExcel(self.Caption, cxGrid1);
end;

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.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 TfrmTatClothInfo.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 TfrmTatClothInfo.TBCopyClick(Sender: TObject);
begin
  try
    frmTatClothInfoInput := TfrmTatClothInfoInput.Create(Application);
    with frmTatClothInfoInput do
    begin
      CopyInt := 1;
      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
    frmTatClothInfoInput.Free;
  end;
end;

procedure TfrmTatClothInfo.C_CodeKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    CurrentPage := 1;
    InitGrid();
  end;
end;

procedure TfrmTatClothInfo.TBAddClick(Sender: TObject);
var
  i: Integer;
  FieldName: string;
begin
  try
    frmTatClothInfoInput := TfrmTatClothInfoInput.Create(Application);
    with frmTatClothInfoInput do
    begin
      CopyInt := 0;
      FBCIID := '';
      FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString);

      if ShowModal = 1 then
      begin
        Self.InitGrid();
      end;
    end;
  finally
    frmTatClothInfoInput.Free;
  end;
end;

procedure TfrmTatClothInfo.TBEditClick(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;
  try
    frmTatClothInfoInput := TfrmTatClothInfoInput.Create(Application);
    with frmTatClothInfoInput 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
    frmTatClothInfoInput.Free;
  end;
end;

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.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 TfrmTatClothInfo.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(ADOQueryHelp.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;
          end;
          next;
        end;
        First;
        EnableControls;
      end;
      application.MessageBox('操作成功！', '提示信息');
      initGrid();
    except
      CDS_1.EnableControls;
      application.MessageBox('操作失败！', '提示信息', 0);
    end;
  end;

end;

procedure TfrmTatClothInfo.N1Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, True);
end;

procedure TfrmTatClothInfo.N2Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, False);
end;

procedure TfrmTatClothInfo.N3Click(Sender: TObject);
begin
  Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

procedure TfrmTatClothInfo.TCBNOR1Change(Sender: TObject);
begin
  RecordsNumber := StrToInt(TCBNOR1.Text);
  CurrentPage := 1;
  C_Code.SetFocus;
  InitGrid();
end;

procedure TfrmTatClothInfo.HXNameBtnDnClick(Sender: TObject);
begin
  TBtnEditC(Sender).Text := '';
  TBtnEditC(Sender).TxtCode := '';

end;

procedure TfrmTatClothInfo.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 TfrmTatClothInfo.Button1Click(Sender: TObject);
begin
  if CurrentPage > 1 then
    CurrentPage := CurrentPage - 1;
  InitGrid();
end;

procedure TfrmTatClothInfo.Button2Click(Sender: TObject);
begin
  if CurrentPage < CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber then
    CurrentPage := CurrentPage + 1;
  InitGrid();
end;

procedure TfrmTatClothInfo.ToolButton1Click(Sender: TObject);
begin
  try
    frmTatClothInfoInput := TfrmTatClothInfoInput.Create(Application);
    with frmTatClothInfoInput 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
    frmTatClothInfoInput.Free;
  end;
end;

procedure TfrmTatClothInfo.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid(self.Caption + 'TV1', Tv1, '样品管理');
end;

procedure TfrmTatClothInfo.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.

