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, dxDateRanges,
  IdExplicitTLSClientServerBase, U_BaseList, cxContainer, dxDBBarCode, dxBarCode,
  Vcl.Clipbrd, cxTextEdit, BtnEdit, StrUtils, Vcl.Buttons,
  dxScrollbarAnnotations, cxProgressBar;

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;
    cxSplitter1: TcxSplitter;
    Panel1: TPanel;
    DS_1: TDataSource;
    ADOQueryMain: TADOQuery;
    CDS_1: TClientDataSet;
    TBExport: TToolButton;
    RM1: TRMGridReport;
    RMDB_Main: TRMDBDataSet;
    ODPat: TOpenDialog;
    IdFTP1: TIdFTP;
    SaveDialog1: TSaveDialog;
    TBUP: TToolButton;
    TBCopy: TToolButton;
    Panel2: TPanel;
    DSCYNO: TDataSource;
    CDS_CYNO: TClientDataSet;
    Panel5: TPanel;
    cxDBTreeList1: TcxDBTreeList;
    cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
    Label11: TLabel;
    Label12: TLabel;
    Panel3: TPanel;
    adoqueryPicture: TADOQuery;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBMLEdit: TToolButton;
    OpenDialog1: TOpenDialog;
    PM_1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Panel7: TPanel;
    Panel4: TPanel;
    Label14: TLabel;
    LBCPAP1: TLabel;
    Button1: TButton;
    Button2: TButton;
    TCBNOR1: TComboBox;
    RMBarCodeObject1: TRMBarCodeObject;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    N3: TMenuItem;
    Panel9: TPanel;
    Panel10: TPanel;
    GroupBox1: TGroupBox;
    ScrollBox1: TScrollBox;
    CDS_Tree: TClientDataSet;
    ADOQueryPrint: TADOQuery;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    Label3: TLabel;
    Label4: TLabel;
    Label9: TLabel;
    Label8: TLabel;
    C_Code: TcxTextEdit;
    C_Name: TcxTextEdit;
    C_GramWeight: TcxTextEdit;
    C_Composition: TcxTextEdit;
    ToolButton6: TToolButton;
    GPM_2: TcxGridPopupMenu;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1SSel: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    v1CYNo: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    Tv1Column24: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    Tv1Column8: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column10: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Tv1Column9: TcxGridDBColumn;
    Tv1Column6: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    Tv1Column23: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column12: TcxGridDBColumn;
    Tv1Column14: TcxGridDBColumn;
    Tv1Column15: TcxGridDBColumn;
    Tv1Column16: TcxGridDBColumn;
    Tv1Column17: TcxGridDBColumn;
    Tv1Column18: TcxGridDBColumn;
    Tv1Column19: TcxGridDBColumn;
    Tv1Column20: TcxGridDBColumn;
    Tv1Column21: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    DS_2: TDataSource;
    ADO_2: TADOQuery;
    cxSplitter3: TcxSplitter;
    ToolButton7: TToolButton;
    Tv1Column11: TcxGridDBColumn;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    Tv1Column13: 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 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 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 ToolButton4Click(Sender: TObject);
    procedure C_CodeKeyPress(Sender: TObject; var Key: Char);
    procedure ToolButton5Click(Sender: TObject);
    procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure Tv1DblClick(Sender: TObject);
  private
    { Private declarations }
    CurrentPage, RecordsNumber: Integer;
    CTID: string;
    PState: Integer;
    FCTID, FTopID, FJurisdiction, FCTType, canshu3, canshu4, CTID1, CTID2, FCTType1: string;
    procedure SetStatus();
    procedure setpage();
    procedure InitTree();
    procedure InitGrid();
    procedure InitGrid2();
    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_ClothInfoImport, U_SysLogHelp, U_ClothInfoInput1,
  U_ClothInfoInput2, U_ClothInfoLog;

{$R *.dfm}
procedure TfrmClothInfo.InitGrid2();
var
  SqlStr: string;
begin

  if CDS_1.IsEmpty then
    exit;

  SqlStr := 'select * from BS_Cloth_Info_Sub A  where BCIID =' + quotedstr((CDS_1.fieldbyname('BCIID').AsString));

  SqlStr := SqlStr + 'ORDER BY      CASE  WHEN C_COLORNO NOT LIKE ''%[^0-9]%'' THEN dbo.getNum(C_Colorno)  ELSE 9999999999   ';
  SqlStr := SqlStr + '  END ,C_ColorNo';

  InitAdoData(ADO_2, Tv1, SqlStr, '', '');

end;

procedure TfrmClothInfo.setpage();
begin


//  cxPageControl3.Refresh;
end;

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
//  try
//    cxDBTreeList1.BeginUpdate;
//    CDS_Tree.DisableControls;
//    with ADOQueryTree do
//
//    begin
//      Close;
//      SQL.Clear;
//      SQL.Add('SELECT * FROM F_BS_CloType('''' )');  // 传递空参数获取所有分类
//
//
//      // 添加过滤条件
//      SQL.Add('WHERE CTType = ' + QuotedStr(FCTType));
//
//      if canshu4 = '二次加工' then
//      begin
//        SQL.Add(' and CTID=' + quotedstr('CT2412300005'));
//      end
//      else
//      begin
//        SQL.Add(' and CTID <>' + quotedstr('CT2412300005'));
//
//      end;
//
//
//      SQL.Add('order by  CTName');
//      Open;
//    end;
//
//    SCreateCDS(ADOQueryTree, CDS_Tree);
//    SInitCDSData(ADOQueryTree, CDS_Tree);
//
//  finally
//    CDS_Tree.EnableControls;
//    cxDBTreeList1.EndUpdate;
//
//    cxDBTreeList1.Items[0].Expand(false);
//  end;
//
//end;

procedure TfrmClothInfo.InitTree();
begin
  try
    cxDBTreeList1.BeginUpdate;
    CDS_Tree.DisableControls;

    with ADOQueryTree do
    begin
      SQL.Clear;

      if canshu4 = '二次加工' then
      begin
        SQL.Add('SELECT * FROM dbo.F_BS_CloType(''CT2505100001'') A ORDER BY CTName ');
      end
      else
      begin
        SQL.Add('SELECT * FROM dbo.F_BS_CloType(''CT2412300003'') A ORDER BY CTName ');
      end;

      Open;
    end;

    SCreateCDS(ADOQueryTree, CDS_Tree);
    SInitCDSData(ADOQueryTree, CDS_Tree);

  finally
    CDS_Tree.EnableControls;
    cxDBTreeList1.EndUpdate;

    cxDBTreeList1.Items[0].Expand(False);
  end;
  if canshu4 = '二次加工' then
  begin
    Self.cds_tree.Locate('CTName', '产品档案', []);
  end
  else
  begin
    Self.cds_tree.Locate('CTName', '成品', []);
  end;

end;

procedure TfrmClothInfo.InitGrid();
var
  fwhere, Pwhere, SqlStr: string;
begin
  Panel2.Visible := True;
  Panel2.Refresh;
  setpage();

  Pwhere := SGetFilters(Panel1, 1, 2);

  if trim(Pwhere) <> '' then
  begin
    if fwhere <> '' then
      fwhere := fwhere + ' and ' + trim(Pwhere)
    else
      fwhere := ' where ' + trim(Pwhere);
  end;

  SqlStr := ' exec P_BS_CloInfo_Get  ';
  SqlStr := SqlStr + ' @CTID=' + quotedstr(Trim(CDS_Tree.fieldbyname('CTID').AsString));
  SqlStr := SqlStr + ',@pageIndex=' + inttostr(CurrentPage);
  SqlStr := SqlStr + ',@pageSize=' + inttostr(RecordsNumber);
  SqlStr := SqlStr + ',@criteria= ' + quotedstr(fwhere);

  InitCDSData(ADOQueryMain, CDS_1, Tv1, SqlStr, SGetFilters(Panel1, 1, 2), 'BCIID');

  LBCPAP1.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber));

  Panel2.Visible := False;

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);
  canshu3 := Trim(self.fParameters3);
  canshu4 := Trim(self.fParameters4);
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);
var
  RTValues: TArray<string>;
begin

  if CDS_1.IsEmpty then
    Exit;

  RTValues := SelCDSKey(CDS_1, ['BCIID']);

  if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      Sql.Clear;
      Sql.Add('exec P_BS_Cloth_Info_Del ');
      Sql.Add(' @BCIIDS=' + quotedstr(RTValues[0]));
      Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
      Sql.Add(',@DName=' + quotedstr(Trim(DName)));

       //操作日志
      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('成品编号：' + trim(Self.CDS_1.fieldbyname('C_Code').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');

      OPEN;
    end;
    if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
      raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
    ADOQueryCmd.Connection.CommitTrans;
    InitGrid();
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
  end;

end;

procedure TfrmClothInfo.FormShow(Sender: TObject);
begin
  inherited;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add(' exec P_BS_CloInfo_Hot ');
    ExecSQL;
  end;
  ReadCxGrid(self.Caption + 'TV1', Tv1, '样品管理');
  ReadCxGrid(self.Caption + 'TV2', Tv2, '样品管理');

  application.ProcessMessages;

  RecordsNumber := 500;
  CurrentPage := 1;
  InitTree();
  SetStatus();
  InitGrid();
  InitGrid2();
end;

procedure TfrmClothInfo.cbbHXChange(Sender: TObject);
begin
  InitImage();
  InitGrid2();
end;

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

procedure TfrmClothInfo.TBRafreshClick(Sender: TObject);
begin
//  InitTree();
  InitGrid();
  InitImage();
  InitGrid2();
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.C_CodeKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    CurrentPage := 1;
    InitGrid();
    InitImage();
    InitGrid2();
  end;
end;

procedure TfrmClothInfo.TBExportClick(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;
  TcxGridToExcel(self.Caption, cxGrid1);
end;

procedure TfrmClothInfo.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.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)));
      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
  if Self.CDS_Tree.locate('CTName', Self.CDS_1.fieldbyname('CTName').AsString, []) then
  begin

    try
      frmClothInfoInput := TfrmClothInfoInput.Create(Application);
      with frmClothInfoInput do
      begin
        TypeInt := 1;
        canshu3 := Self.canshu3;
        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.Free;
    end;
  end;

end;

procedure TfrmClothInfo.TBAddClick(Sender: TObject);
var
  i: Integer;
  FieldName: string;
begin
  if Self.CDS_Tree.fieldbyname('CTLevel').AsInteger = 1 then
  begin
    Application.MessageBox('请选择产品分类!', '提示', 0);
    Exit;
  end;

  try
    frmClothInfoInput := TfrmClothInfoInput.Create(Application);
    with frmClothInfoInput do
    begin
      canshu3 := Self.canshu3;
      TypeInt := 0;
      FBCIID := '';
      FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').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
      canshu3 := Self.canshu3;
      TypeInt := 2;
      FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString);
      FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString);
        //操作日志
      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('成品编号：' + trim(Self.CDS_1.fieldbyname('C_Code').AsString))));
        sql.Add(',' + quotedstr(trim('成功')));
        sql.Add(')');
        EXECSQL;
      end;
      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.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 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.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
      canshu3 := Self.canshu3;
      FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString);
      FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString);
      ToolButton1.Visible := False;
      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, '样品管理');
  WriteCxGrid(self.Caption + 'TV2', Tv2, '样品管理');
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;
      if ShowModal = 1 then
      begin
//        Self.InitGrid();
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;

end;

procedure TfrmClothInfo.ToolButton4Click(Sender: TObject);
begin
  try
    frmClothInfoImport := TfrmClothInfoImport.Create(Application);
    with frmClothInfoImport do
    begin
      FCTID := Trim(Self.CDS_Tree.fieldbyname('CTID').AsString);
      if ShowModal = 1 then
      begin
        Self.InitGrid();
      end;
    end;
  finally
    frmClothInfoImport.Free;
  end;
end;

procedure TfrmClothInfo.ToolButton5Click(Sender: TObject);
begin
  try
    frmSysLogHelp := TfrmSysLogHelp.Create(Application);
    with frmSysLogHelp do
    begin
      Opevent.Text := '成品编号';
      if ShowModal = 1 then
      begin
      end;
    end;
  finally
    frmSysLogHelp.Free;
  end;
end;

procedure TfrmClothInfo.ToolButton6Click(Sender: TObject);
begin
  try
    frmClothInfoLog := TfrmClothInfoLog.Create(Application);
    with frmClothInfoLog do
    begin
      FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString);
      if ShowModal = 1 then
      begin
        Self.InitGrid();
      end;
    end;
  finally
    frmClothInfoLog.Free;
  end;
end;

procedure TfrmClothInfo.ToolButton7Click(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 := 'ClothInfoPrint2';
      FFiltration1 := WSql;
      if ShowModal = 1 then
      begin
//        Self.InitGrid();
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;
end;

procedure TfrmClothInfo.ToolButton8Click(Sender: TObject);
var
  MCTID: string;
begin

end;

procedure TfrmClothInfo.Tv1DblClick(Sender: TObject);
begin
  if TBEdit.Visible and TBEdit.Enabled then
    TBEdit.Click
  else
    ToolButton1.Click;
end;

procedure TfrmClothInfo.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  InitImage();
  InitGrid2();
end;

end.

